Girdiğim şifre neden görünmüyor?


39

Aşağıda bash'ta Linux'ta bir kullanıcı oluşturmak için attığım sürecin bir görüntüsü var.

Bash olarak kullanıcı oluşturma ve şifre atama

Parolanın güvenlik nedeniyle gösterilmemesi gerektiğini anlıyorum, ancak demek istediğim, neden (veya girdiğim karakterler) görünmüyor?


4
Ne zaman Linux hakkında bir sorunuz olursa cevap güvenliktir.
Katz


IBM Notes, bir parola için yazdığınız her karakter için rasgele yıldız işaretlerini gösterdikleri bu garip şeyi yapar. Çok kafa karıştırıcı.

1
Siteler arası dupe: ux.stackexchange.com/q/39774/11086
wim

Yanıtlar:


43

Çünkü biz * nix diyarında bir şeyler yapıyoruz. :) Bir grup yıldız göstermeyerek biraz ekstra güvenlik sağlar. Bu şekilde, ekranınızı gören biri şifrenizin uzunluğunu göremez.

Ancak, özellikle kötü bir klavyeniz varsa, bir şifre girerken herhangi bir geri bildirim almamak biraz korkutucu olduğunu itiraf etmeliyim. Bu nedenle, * nix sistemlerindeki çoğu GUI parola iletişim kutusu size bir tür geri bildirim verir; örneğin, yıldız işaretleri kullanma veya daha sık give. Bazıları yazdığınız her karakteri bile görüntüler, ancak hemen ardından a *veya with ile değiştirin , ancak birileri omzunuzun üzerinden bakıyorsa bu o kadar iyi değildir. Veya bilgisayarınızdan monitörünüze gönderilen video sinyalini toplayıp kodunu çözebilecek bir cihazı varsa.


5
... yardımıylastty -echo
Jeff Schaller

7
Bu cevap fena değil, ancak IMHO Gilles gerçek cevabı verdi. Neredeyse kesinlikle, uygulayıcılar gerçekten "biraz daha fazla güvenlik" düşünmüyorlardı ve kesinlikle kullanıcı deneyimini düşünmüyorlardı. Yaptıkları gibi yaptılar, çünkü bu şekilde yapmak ucuz ve kolaydı. Sonra, daha sonra, bu şekilde çalışmaya devam etmesini bekledik ...
Celada

2
@Celada: Adil nokta. Şimdi, Gilles'un mükemmel cevabını çoktan oyladım.
PM 2Ring

2
@Celada Eklenen güvenlik, hiçbir şey göstermeme konusundaki orijinal kararlara yol açmamış olabilir, ancak bunu her zaman bir fayda olarak görmüştüm ve bu şekilde düşünenlerin, bu şekilde tutmak için iyi bir neden sağladığını görebiliyorum.
Monty Harder

1
Yazılan son karakterin breif gösteriminin çoğunlukla mobil bir yaklaşım olduğunu düşünüyorum, çünkü muhtemelen küçük bir ekran klavyesinde yazmaya daha fazla eğilimlidir. Masaüstü uygulamalarında hiç gördüğümü sanmıyorum.
Barmar

82

Kullanıcı girişini gizlemenin en basit yolu nedir?

Görüntülemiyor!

Şifreleri yazarken gizlemek eski bir gelenek. Çoğu bağlamda güvenlik açısından mantıklı: Birisi omuzlarınızı inceliyorsa, yazdıklarınızı görmeyi kolaylaştırmak istemezsiniz. (Bazı modern güvenlik kuralları, örneğin 1 2 3 4 5 , şifreyi görünür kılmak için bir seçeneğe sahip olmanızı önerir, çünkü bu, kullanıcının daha karmaşık şifreler seçebilmesine ve görünmeyen bir zamanı düzeltmek için zaman harcamayacaklarına güvenmesine izin verir.) yazım hataları. En büyük risk omuz sörfü değil, kaba kuvvet tahmini, muhtemelen çevrimdışı.)

Şifrenin gizlenmesi gerektiğine karar verdikten sonra, uygulayıcılar nasıl yapılacağına karar vermek zorunda kaldılar. Terminal, kullanıcı girişinin gösterileceği bir moda (eko açık) ve kullanıcı girişinin gösterilmediği bir moda (eko kapalı) sahiptir. Yankı kapalı modunun bir şekilde kendine özgü varoluşu vardır: bu, terminalin eko kullanıcı girişi ek işini yapmadığı moddur. Bu mod ayrıca, bir tuşa basmanın o karakteri eklemediği, bunun yerine o anahtara bağlı bazı uygulama kısayollarını çağırdığı uygulamalar için de bulunması gerekir. Öyleyse komutları passwdsadece bir şifre okurken terminali yankı moduna ayarlayın.

Her karakter için yıldız işareti yazdırmak, yalnızca passwdkomutun uygulayıcılarının yapmak istemediği nispeten küçük bir fayda için ek uygulama çalışması gerektirecektir . Yıldız işaretleri yazdırmak için terminal modu yoktur, çünkü yalnızca parola girerken çok yararlı bir özellik olacaktır.

Bu arada, eğer şifrenizi değiştirirken şifrenizi görmek istiyorsanız, kullanabilirsiniz cat | passwd(en azından bazı sistemlerde - bazı versiyonlar passwdgibi bir seçenek gerektirir cat | passwd --stdinve bazıları bunu hiç kabul etmiyor). (Yapabilirsin { echo 'current password'; echo 'new password'; echo 'new password'; } | passwd, ama yapma, şifreleri, daha fazla sızma riski olan kabuk geçmişinde saklar.) Ne olursa olsun, terminalden şifreyi okuyan komutlarla şifreyi düzenler. standart girdiler, örneğin sudoveya sshdaha karmaşıktır; eğer bir GUI'niz varsa, yazdığınız kaç karakteri gösteren ssh-askpass komutunu kullanabilirsiniz ( SUDO_ASKPASS=/usr/bin/ssh-askpass sudo -Asudo için; bir terminalden çağırdığınızda karmaşıktır).


1
Bu, şu ana kadarki en iyi cevap imo ve aslında çok yardımcı oldu. İnancımı netleştirip genişlettiğin için teşekkürler ^, ^ oy vermeyi hak ediyor!
DankyNanky

4
Terminal işleyicisi basit düzenleme özelliklerine (geri alma gibi) ve çizgiyi tamponlamaya özen gösterir. Fgets () kullanarak okunan bir satır, enter tuşuna basılana kadar geri dönmez. bu da baskı yıldızlarını zorlaştırır. Her seferinde bir karakter okuyup yıldızları yankılanırsanız, geri alma işlevini kaybedersiniz veya desteklemek için fazladan çaba göstermeniz gerekir.
Jasen

1
Bu konuyla ilgili tarih açısına girerken, bunun tty'nin teletipewriter ile ilgili olduğu zamanla nasıl bir ilgisi olduğunu merak ediyorum ...
Jasper

1
Bir komutu komut geçmişinde saklanmadan yürütmenin yolları vardır. Örneğin , tarihte tutulmadan komutu çalıştır .
CVn

2
Ek: Kullanıcı girişi yankılanmak için "fazladan iş yapan" terminallere "tam çift yönlü" terminaller denir. Ye Olde Günleri'nde aynı zamanda karakterin yazılmasından hemen sonra karakterin gösterdiği ve işletim sisteminin gösterimi için terminale geri göndermediği "yarı çift yönlü" terminaller de vardı. Doğru hatırlıyorsam, bu terminallerin yankıyı kapatmanın bir yolu yoktu.
alexis

3

Şifrenin görünmez hale getirilmesi, şifrenin uzunluğu başkaları tarafından görülemediğinden, daha güvenli olmasını sağlar. Bu, başkalarının şifreyi uzunluğundan tahmin etmeye ve hesabınıza giriş yapma riskini ortadan kaldırır.


Klavyeler, kullanılmadıkça bir miktar parazit yapma eğilimindedir; bu, şifre uzunluğunu belirlemek için daha sonra analiz edilmek üzere duyulabilir veya kaydedilebilir. Bazı klavye modelleri diğerlerinden daha sessiz . Ayrıca, bazı tuşlar göreceli olarak farklı sesler çıkarmaya meyillidir (boşluk çubuğu, Enter vb.). Bu bağlamda, şifrenizin uzunluğunu gizli tutmanın ne kadar kritik olduğunu da göz önünde bulundurun. üzerine Bilgi Güvenliği .
CVn

@ Michael Kjörling: Söylediğiniz şey ileri düzeyde bir güvenlik ve dikkate alınması gereken geçerli bir nokta (özellikle işitme gücü gerçekten iyi olanlarda, klavyenin gürültüsünden şifre uzunluğunu alabilenler için). Ancak bu, donanım düzeyinde göz önünde bulundurulması gereken bir donanım konusudur ve şu anda, artık gürültü oluşturmayan dokunmatik ekranlı klavyelere sahibiz.
Kodlayıcı AP
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.