私はLinux(少なくともDebian)ではすべてのパスワードがハッシュされています/etc/shadow
。
ただし、おかげでlibpam-cracklib
いくつかのパスワードルールを追加できます。たとえば、古いパスワードと新しいパスワードの間で同じ文字数を表すパラメータを/etc/pam.d/common-password
設定できます。Difok
しかし、新しいパスワードを入力すると、Linuxは私の実際のパスワードを知らないので(ハッシュのみ)、古いパスワードとの類似性をどのように知ることができますか?
ありがとうございます!
答え1
PAMモジュールにパスワードの変更(またはパスワードの変更に参加)を要求すると、モジュールはユーザーが指定した新しいパスワードと古いパスワードを検索できます。クリストファーpasswd
古いパスワードと新しいパスワードを要求します(他のユーザーのパスワードで実行して変更しない限り)root
。モジュールはこの情報を使用して、現在のハッシュを反転したり、バリアントを列挙することなく2つのパスワードを比較できます。
関連するPAM機能は次のとおりです。pam_sm_chauthtok
そしてpam_get_item
、その文書(およびその中で参照されている他のページ)は、進行状況を理解するのに役立ちます。libpam-cracklib
でどのように行われているかを確認できます。ソースコード。