パスワードの類似性


9

UNIXマシンでパスワードを変更したかった。通常の「passwd」を実行し、古いパスワードと新しいパスワードを入力しました。

次に、次のメッセージが表示されてマシンが戻ってきました。

BAD PASSWORD: is too similar to the old one

それは私を考えさせました...それは、マシンがどこかに平文で私のパスワードを持っているということですか?そうしないと、古いパスワードと新しいパスワードを比較できないはずですよね?それを可能にするハッシュ関数はありますか?

回答:


6

OK、それで、マイケルハンプトンの提案に従い、pam_cracklib.cのコードを見に行ったところ、pam_cracklibが関数呼び出しを介してPAMから古い(別名、現在の)パスワードを取得しているように見えます(私は、認証のために現在のパスワードを入力しただけです)、次に、古いパスワードと入力した新しいパスワードの間の類似性分析(距離関数)を実行します。

ただし、その履歴にあるすべての古いパスワードに対してこの分析を行うわけではありません。ハッシュとしてのみ保存されるため、それは不可能です。それらについては、それらが同じである場合にのみチェックがあります。だから、私が期待したように、すべてが整然としているように見えますが、今はそれがなぜなのか理解しています...みんなに感謝します。


3

古いパスワードはプレーンテキストでは保存されません。

代わりに、古いパスワードハッシュ/etc/security/opasswdPAMによって格納されます。次に、PAM構成で指定された内容に基づいて、パスワードを変更するときに比較を行います。

PAM構成の例:

password required pam_unix.so sha512 remember=12 use_authtok

ここでは、remember12個の以前のパスワードを記憶させます。

詳細については、pam_cracklibによるLinuxパスワードセキュリティを参照してください。


うーん...まあ、それは間違いなく私が以前に使ったことのあるパスワードではないので...古いパスワードへの文字の変更をチェックする必要があります。しかし、保存されるものがすべてそのパスワードのハッシュである場合、どのようにして比較を行うのでしょうか。暗号化された安全なハッシュの主な機能の1つは、異なるクリアテキストとの比較を許可しないのではないですか?
dertoni 2012

参りました。確かにそれに答えるには、ソースコードを読む必要があると思います。
マイケルハンプトン

私はそれが新しいパスワードのバリエーションを作ることを期待し、これらのバリエーションのハッシュのいずれかが古いパスワードのハッシュと一致する場合、それはあまりにも類似しています。このようにして、ハッシュのみが保存されます。もちろん、ソースコードでもこれをチェックしていません...
Ladadadada '10

わかりました、コードを読んでください...私の発見についての回答を追加しました。答えを見つけるのを助けるための+1 ;-) thx。
dertoni 2012

0

一部のシステムでは、エントロピー(パスワードの複雑さ)を格納/計算して比較することができますが、PAMの場合かどうかはわかりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.