Security

Linux如何比較新舊密碼?

  • October 11, 2017

我知道在 Linux(至少是 debian)上,每個密碼都經過雜湊處理並儲存在/etc/shadow.

但是,由於libpam-cracklib您可以添加一些密碼規則。例如,/etc/pam.d/common-password您可以設置Difokwhich 是一個參數,指示舊密碼和新密碼之間可以相同的字母數。

但是,當我輸入新密碼時,linux 怎麼知道與舊密碼的相似性,因為它不知道我的真實密碼(它只有一個雜湊值)?

謝謝 !

當您要求 PAM 模組更改密碼(或參與更改密碼)時,該模組可以檢索使用者提供的新密碼和舊密碼:正如Christopher指出的那樣,passwd要求舊密碼以及新的(除非您以身份執行它root並更改另一個使用者的密碼)。該模組可以使用該資訊來比較兩個密碼,而無需以某種方式反轉目前的雜湊或列舉變體。

涉及的 PAM 函式包括pam_sm_chauthtokpam_get_item,其文件(以及那裡引用的其他頁面)應該可以幫助您了解正在發生的事情。libpam-cracklib您可以在的原始碼中看到它是如何完成的。

引用自:https://unix.stackexchange.com/questions/397480