Linux는 이전 비밀번호와 새 비밀번호를 어떻게 비교합니까?

Linux는 이전 비밀번호와 새 비밀번호를 어떻게 비교합니까?

나는 Linux(적어도 Debian)에서는 모든 비밀번호가 해시되어 /etc/shadow.

하지만 덕분에 libpam-cracklib몇 가지 비밀번호 규칙을 추가할 수 있습니다. 예를 들어, 이전 비밀번호와 새 비밀번호 간에 동일할 수 있는 문자 수를 나타내는 매개변수를 /etc/pam.d/common-password설정할 수 있습니다 .Difok

하지만 새 비밀번호를 입력하면 Linux는 내 실제 비밀번호를 모르기 때문에(해시만 있음) 이전 비밀번호와의 유사성을 어떻게 알 수 있습니까?

감사해요!

답변1

PAM 모듈에 비밀번호 변경(또는 비밀번호 변경에 참여)을 요청하면 모듈은 사용자가 지정한 새 비밀번호와 이전 비밀번호를 검색할 수 있습니다.크리스토퍼passwd이전 비밀번호와 새 비밀번호를 요구합니다(다른 사용자의 비밀번호로 실행하여 변경하지 않는 한 ) root. 모듈은 이 정보를 사용하여 현재 해시를 뒤집거나 변형을 열거하지 않고도 두 개의 비밀번호를 비교할 수 있습니다.

관련된 PAM 기능은 다음과 같습니다.pam_sm_chauthtok그리고pam_get_item, 해당 문서(및 그 안에 참조된 다른 페이지)는 진행 상황을 이해하는 데 도움이 될 것입니다. libpam-cracklib에서 어떻게 수행되는지 확인할 수 있습니다 .소스 코드.

관련 정보