it-swarm.com.de

Warum ist das eingegebene Passwort nicht sichtbar?

Unten sehen Sie ein Bild des Prozesses, den ich unternommen habe, um einen Benutzer für Bash unter Linux zu erstellen.

(Creating user and assigning password in bash

Ich verstehe, dass das Passwort aus Sicherheitsgründen nicht angezeigt werden sollte, aber ich meine, warum werden Sternchen (oder die von mir eingegebenen Zeichen) nicht angezeigt?

40
Kaiylar

Denn so machen wir es in * nix land. :) Es bietet ein wenig zusätzliche Sicherheit, da keine Sternchen angezeigt werden. Auf diese Weise kann jemand, der Ihren Bildschirm sieht, die Länge Ihres Passworts nicht sehen.

Aber ich muss zugeben, dass es ein bisschen beängstigend ist, bei der Eingabe eines Passworts kein Feedback zu erhalten, insbesondere wenn Sie eine schlechte Tastatur haben. Die meisten GUI-Passwortdialoge auf * nix-Systemen geben Ihnen also eine Art Feedback, z. mit Sternchen oder häufiger ⬤. Einige zeigen sogar jedes Zeichen während der Eingabe an, ersetzen es jedoch sofort durch ein * oder ⬤, aber das ist nicht so gut, wenn dir jemand über die Schulter schaut. Oder wenn sie über ein Gerät verfügen, das das von Ihrem Computer an Ihren Monitor gesendete Videosignal aufnehmen und dekodieren kann.

42
PM 2Ring

Was ist der einfachste Weg, Benutzereingaben zu verbergen?

Nicht anzeigen!

Das Verstecken von Passwörtern während der Eingabe ist eine alte Tradition. Aus Sicherheitsgründen ist dies in den meisten Kontexten sinnvoll: Wenn jemand über Ihre Schultern schaut, möchten Sie es nicht einfach machen, zu sehen, was Sie eingeben. (Einige moderne Sicherheitsrichtlinien, z. B. 1245 empfehlen eine Option, um das Passwort sichtbar zu machen, da der Benutzer so komplexere Passwörter auswählen und sicher sein kann, dass er seine Zeit nicht damit verbringt, unsichtbare Tippfehler zu beheben. Das größte Risiko besteht nicht beim Schulter-Surfen, sondern beim Brute-Force-Raten , möglicherweise offline.)

Nachdem die Implementierer entschieden hatten, dass das Passwort ausgeblendet werden sollte, mussten sie entscheiden, wie es gemacht werden soll. Das Terminal verfügt über einen Modus, in dem Benutzereingaben angezeigt werden (Echo ein), und einen Modus, in dem Benutzereingaben nicht angezeigt werden (Echo aus). Der Echo-Aus-Modus ist in gewisser Weise inhärent vorhanden: In diesem Modus erledigt das Terminal nicht die zusätzliche Arbeit, Benutzereingaben zu wiederholen. Dieser Modus muss auch für Anwendungen vorhanden sein, bei denen durch Eingabe einer Taste dieses Zeichen nicht eingefügt wird, sondern stattdessen eine Anwendungsverknüpfung aufgerufen wird, die an diese Taste gebunden ist. Befehle wie passwd setzen das Terminal einfach in den Echo-Off-Modus, während sie ein Passwort lesen.

Das Drucken von Sternchen für jedes Zeichen würde zusätzliche Implementierungsarbeit für nur einen relativ geringen Vorteil erfordern, was die Implementierer des Befehls passwd nicht wollten. Es gibt keinen Terminalmodus zum Drucken von Sternchen, da dies eine sehr spezielle Funktion ist, die nur bei der Eingabe von Kennwörtern nützlich ist.

Übrigens, wenn Sie Ihr Passwort beim Ändern sehen möchten, können Sie cat | passwd Verwenden (zumindest auf einigen Systemen - einige Versionen von passwd erfordern eine Option wie cat | passwd --stdin und manche akzeptieren das überhaupt nicht). (Sie können sogar { echo 'current password'; echo 'new password'; echo 'new password'; } | passwd Ausführen, aber tun Sie das nicht: Dadurch werden die Kennwörter im Shell-Verlauf gespeichert, wodurch ein viel höheres Risiko für Undichtigkeiten besteht.) Ordnen Sie dies mit Befehlen an, aus denen das Kennwort gelesen wird Das Terminal ist komplexer als die Standardeingabe wie Sudo oder ssh. Wenn Sie eine GUI zur Verfügung haben, können Sie ssh-askpass verwenden, das anzeigt, wie viele Zeichen Sie eingegeben haben (Sudo_ASKPASS=/usr/bin/ssh-askpass Sudo -A für Sudo; für ssh ist es kompliziert, wenn Sie es von einem Terminal aus aufrufen).

Wenn Sie das Passwort unsichtbar machen, wird es sicherer, da die Länge des Passworts von anderen nicht gesehen werden kann. Dies vermeidet das Risiko, dass andere versuchen, das Passwort anhand seiner Länge zu erraten und sich in Ihrem Konto anzumelden.

2
Coder AP