즉, 비밀번호를 더 안전하게 만들 수 있는 방법이 있습니까? 예약된 Bash 스크립트를 사용하여 무작위로 생성된 IE 사용자 비밀번호의 솔트를 변경합니다. 한 달에 두 번, 일반 및 일반 서버 사용자는 이에 대해 아무것도 모르거나 사용자 행동에 영향을 미치지 않거나 비밀번호로 직접 아무것도 할 필요가 없습니까?
내 댓글이 삭제된 후 중재자가 나에게 새로운 질문을 하라고 지시한 이전 포럼 스레드에 대한 참조 링크는 다음과 같습니다. 암호화된 비밀번호를 만드는 방법
답변1
Unix 및 Linux StackExchange에 오신 것을 환영합니다!
이 아이디어의 문제점은 비밀번호 해시가뒤집을 수 없는: 해시된 비밀번호를 "복호화"하여 로그인 시 사용자가 입력한 것과 비교하는 대신, 사용자가 입력한 비밀번호는 저장된 비밀번호 해시와 동일한 솔트로 해시되며 결과는 저장된 해시와 비교됩니다. 일치하면 사용자가 유효한 비밀번호를 입력했고 로그인이 승인된 것으로 간주됩니다.
(예, 이론적으로는 두 개의 비밀번호 입력으로 동일한 해시가 생성될 수 있지만 이는극도로너무 가능하지 않습니다. )
사용자를 개입시키지 않고 새로운 솔트로 모든 비밀번호를 다시 해시할 수 있으려면 모든 사람의 현재 비밀번호의 일반 텍스트(또는 가역적으로 암호화되어 일반 텍스트와 동등한) 버전을 저장해야 합니다. 이것이 바로 암호 해싱 체계가 애초에 방지하도록 설계된 것입니다.
새로운 솔트를 사용하여 기존 비밀번호를 다시 해싱하는 것은 그리 유용하지도 않습니다. 악의적인 사람이 비밀번호 해시를 다시 해시하기 전에 복사본을 얻은 경우 여유 시간에 이전 솔트를 사용하여 해시를 무차별 대입한 다음 다음을 사용할 수 있습니다. 시스템에서 발견된 비밀번호를 새 소금으로 변경하세요.로그인 시 시스템에서 요청한 실제 비밀번호는 여전히 동일하기 때문입니다.
비밀번호 저장에 솔티드 해시를 사용하는 목적은 두 가지입니다.
1.) 관리자가 해시를 볼 때 실제 비밀번호가 동일한 두 사용자를 실수로 발견하는 것을 방지합니다.
2.) 비밀번호 해시가 포함된 파일이 악의적인 손에 들어간 경우 시스템 관리자는 유출을 인지하고 악의적인 로그인이 발생하기 전에 사용자에게 비밀번호를 변경하도록 할 시간이 있습니다. (좋은 비밀번호는 실제로 사전 공격에 강할 수 있지만 이를 위해서는 비밀번호를 설정하거나 변경할 때 비밀번호 품질 검사를 구현해야 합니다.)
최신 시스템에서는 비밀번호 해시가 /etc/shadow
일반 사용자가 읽을 수 없는 위치에 저장된다는 점에 유의하세요. 따라서 해시가 잘못된 사람의 손에 들어가면 시스템 보안이 상당히 손상되었음을 의미합니다. 사용자가 비밀번호를 변경해야 한다고 불평하는 것에 대해 걱정하는 것보다 더 큰 문제가 있습니다!