입력한 비밀번호를 왜 볼 수 없나요?

입력한 비밀번호를 왜 볼 수 없나요?

다음은 Linux의 bash에서 사용자를 생성하는 과정입니다.

$ sudo useradd Alexandra
$ sudo passwd Alexandra
Enter new UNIX password: 
Enter new UNIX password: 
passwd: password updated successfully

보안상의 이유로 비밀번호를 표시하면 안 된다는 것은 알지만, 제가 말하고자 하는 바는 다음과 같습니다.별표(또는 내가 입력한 문자)가 나타나지 않는 이유는 무엇입니까?

답변1

사용자 입력을 숨기는 가장 간단한 방법은 무엇입니까?

표시되지 않습니다!

비밀번호를 입력하는 동안 비밀번호를 숨기는 것은 오래된 전통입니다. 대부분의 경우 이는 보안 관점에서 볼 때 의미가 있습니다. 누군가가 당신을 염탐하고 있다면 다른 사람이 당신이 입력하는 내용을 쉽게 볼 수 있도록 하고 싶지는 않을 것입니다. (다음과 같은 일부 최신 안전 지침은1 2 4 5하지만 비밀번호를 표시하는 옵션을 갖는 것이 좋습니다. 이를 통해 사용자는 더 복잡한 비밀번호를 선택할 수 있고 보이지 않는 철자 오류를 수정하는 데 시간을 낭비하지 않을 수 있습니다. 가장 큰 위험은 어깨 너머로 엿보는 것이 아니라 폭력적인 추측, 어쩌면 오프라인에서 하는 것입니다. )

비밀번호를 숨기기로 결정한 후 구현자는 비밀번호를 숨기는 방법을 결정해야 합니다. 단말기에는 사용자 입력을 표시하는 모드(에코 켜짐)와 사용자 입력을 표시하지 않는 모드(에코 꺼짐)가 있습니다. 반향 꺼짐 모드는 다소 본질적입니다. 이 모드에서는 터미널이 사용자 입력을 반향하는 추가 작업을 수행하지 않습니다. 이 모드는 키를 입력해도 문자가 삽입되지 않고 대신 키에 바인딩된 일부 애플리케이션 바로 가기가 호출되는 애플리케이션에도 존재해야 합니다. 따라서 passwd비밀번호를 읽을 때 끄기 모드와 같은 명령을 에코하도록 터미널을 설정하면 됩니다.

각 문자에 대해 별표를 인쇄하려면 상대적으로 작은 이점을 위해 추가 구현 작업이 필요하며 명령 구현자는 passwd이를 원하지 않았습니다. 별표 인쇄를 위한 터미널 모드는 없습니다. 이는 비밀번호를 입력할 때만 유용한 매우 특수한 기능이기 때문입니다.

그건 그렇고, 비밀번호가 변경되었을 때 확인하고 싶다면 그렇게 할 수 있습니다 cat | passwd(적어도 일부 시스템에서는 passwdRequire an option like this 의 일부 버전이 cat | passwd --stdin있고 일부는 이 옵션을 전혀 허용하지 않습니다). (이렇게 할 수도 있지만 { echo 'current password'; echo 'new password'; echo 'new password'; } | passwd그렇게 하면 안 됩니다. 비밀번호가 쉘 기록에 저장되므로 유출 위험이 훨씬 커집니다.) 표준 입력 대신 터미널에서 비밀번호를 읽는 명령을 사용하세요(예: sudo또는 ssh). 이를 달성하는 것은 더 복잡합니다. 사용 가능한 GUI가 있는 경우 ssh-askpass를 사용하면 입력한 문자 수를 확인할 수 있습니다( SUDO_ASKPASS=/usr/bin/ssh-askpass sudo -Asudo의 경우, ssh의 경우 터미널에서 호출하면 복잡합니다).

답변2

왜냐하면 그것이 *nix 랜드에서 우리가 일을 하는 방식이기 때문입니다. :)별표를 많이 표시하지 않음으로써 약간의 추가 보안을 제공합니다. 이렇게 하면 귀하의 화면을 보는 사람들이 귀하의 비밀번호 길이를 볼 수 없습니다.

하지만 비밀번호를 입력할 때 어떤 피드백도 받지 못하는 것은 조금 무서운 일이라는 점을 인정해야 합니다. 특히 키보드가 좋지 않은 경우에는 더욱 그렇습니다. 따라서 *nix 시스템의 대부분 GUI 비밀번호 대화 상자는 별표나 보다 일반적으로 ⬤를 사용하는 등 일종의 피드백을 제공합니다. 일부는 입력할 때 각 문자를 표시한 다음 즉시 *또는 ⬤로 바꾸지만, 누군가가 당신을 염탐하고 있는 경우에는 좋지 않습니다. 또는 컴퓨터에서 모니터로 전송되는 비디오 신호를 포착하고 디코딩할 수 있는 장치가 있는 경우.

답변3

비밀번호를 보이지 않게 하면 다른 사람이 비밀번호의 길이를 볼 수 없기 때문에 더욱 안전해집니다. 이렇게 하면 다른 사람이 귀하의 비밀번호 길이를 추측하여 귀하의 계정에 로그인하려는 위험을 피할 수 있습니다.

관련 정보