Ci-dessous est une image du processus que j'ai pris pour créer un utilisateur sous Bash sous Linux.
Je comprends que le mot de passe ne devrait pas être affiché pour des raisons de sécurité, mais ce que je veux dire, c'est pourquoi les astérisques (ou les caractères que j'ai saisis) n'apparaissent pas?
command-line
terminal
password
passwd
Kaiylar
la source
la source
Réponses:
Parce que c'est ainsi que nous faisons les choses dans * nix land. :) Cela donne un peu plus de sécurité en ne affichant pas un tas d'astérisques. De cette façon, quelqu'un qui voit votre écran ne peut pas voir la longueur de votre mot de passe.
Mais je dois admettre que c’est un peu effrayant de ne pas recevoir de commentaires lorsque vous entrez un mot de passe, surtout si vous avez un mauvais clavier. Ainsi, la plupart des dialogues de mot de passe d'interface graphique sur les systèmes * nix vous donnent une sorte de retour, par exemple en utilisant des astérisques, ou plus communément. Et certains affichent même chaque caractère au fur et à mesure que vous le tapez, mais le remplacez immédiatement par un
*
ou, mais ce n'est pas très bien si quelqu'un peut regarder par-dessus votre épaule. Ou s'ils ont un appareil capable de capter et de décoder le signal vidéo envoyé de votre ordinateur à votre moniteur.la source
stty -echo
Quel est le moyen le plus simple de masquer les entrées de l'utilisateur?
Ne pas l'afficher!
Cacher les mots de passe lors de la frappe est une vieille tradition. Cela a du sens du point de vue de la sécurité dans la plupart des contextes: si quelqu'un vous regarde par-dessus votre épaule, vous ne voulez pas vous permettre de voir facilement ce que vous tapez. (Certaines consignes de sécurité modernes, par exemple 1 2 3 4 5 , recommandent toutefois de pouvoir afficher le mot de passe, car cela permet à l’utilisateur de choisir des mots de passe plus complexes et d’être sûr de ne pas perdre son temps à réparer inaperçu. Le plus gros risque n’est pas de surfer sur l’épaule, mais plutôt de deviner la force brute, peut-être même hors ligne.)
Après avoir décidé que le mot de passe devait être caché, les développeurs devaient décider comment le faire. Le terminal a un mode dans lequel l'entrée utilisateur est affichée (écho activé) et un mode dans lequel l'entrée utilisateur n'est pas affichée (écho désactivé). Le mode écho désactivé a une existence intrinsèque: c'est le mode dans lequel le terminal ne fait pas le travail supplémentaire consistant à faire écho aux entrées de l'utilisateur. Ce mode doit également exister pour les applications où la saisie d'une touche n'insère pas ce caractère, mais invoque un raccourci d'application lié à cette touche. Ainsi, les commandes telles
passwd
que le réglage du terminal en mode écho lorsqu’elles lisent un mot de passe.L'impression d'astérisques pour chaque caractère nécessiterait un travail d'implémentation supplémentaire pour un bénéfice relativement modeste, ce que les responsables de la mise en œuvre de la
passwd
commande n'ont pas eu envie de faire. Il n'y a pas de mode terminal pour l'impression des astérisques, car il s'agirait d'une fonctionnalité très spécialisée, utile uniquement lors de la saisie de mots de passe.En passant, si vous souhaitez voir votre mot de passe lors de sa modification, vous pouvez l'utiliser
cat | passwd
(du moins sur certains systèmes - certaines versions depasswd
nécessitent une option du typecat | passwd --stdin
et d'autres ne l'acceptent pas du tout). (Vous pouvez même le faire{ echo 'current password'; echo 'new password'; echo 'new password'; } | passwd
, mais ne le faites pas: cela sauvegarderait les mots de passe dans l'historique du shell, ce qui risquerait beaucoup plus de fuir.) Organiser pour cela avec des commandes qui lisent le mot de passe depuis le terminal plutôt que ce qui est fait. leur entrée standard, telle quesudo
oussh
, est plus complexe; Si vous avez une interface graphique disponible, vous pouvez utiliser ssh-askpass, qui indique le nombre de caractères que vous avez saisis (SUDO_ASKPASS=/usr/bin/ssh-askpass sudo -A
pour sudo; pour ssh, c'est compliqué de l'appeler depuis un terminal).la source
Rendre le mot de passe invisible le rend plus sécurisé, car la longueur du mot de passe ne peut pas être vue par d'autres. Cela évite que d'autres personnes essaient de deviner le mot de passe de sa longueur et se connectent à votre compte.
la source