パスワードをチェックするプロセスが次のようになったスキームについて読んだことを覚えています。
- データベースで与えられた(ハッシュ、ソルト)、
- ハッシュと照合するためのソルト付きハッシュパスワード、
- ソルトとして古いハッシュを使用したハッシュパスワード、
- データベースに(新しいハッシュ、ソルト、別名古いハッシュ)を保存します。
元のソースが見つかりません。とにかく分かりません
(ランダムソルトを使用するのではなく)ソルトとして古いハッシュを使用することの利点は何ですか?
このスキームの一般的な利点は何ですか(レインボーテーブル攻撃をさらに複雑にしますか?)、そして
利点がある場合、ソルトはPHPassの「内部」で管理されているように見えるため、PHPassを使用してスキームをどのように適用するか...
直感的には、このスキームはせいぜい何もしないか、最悪の場合(過去の値に依存しているため)セキュリティを悪化させると思いますが、パスワードセキュリティは私の直感を信頼できない領域の1つです。教えてください。
編集:
チェックごとにパスワードを再ハッシュすることについて質問しています。これらの同様の質問は、最初の質問(ハッシュをソルトとして使用することは役に立たない)に答えますが、各チェックで再ハッシュすることが有用かどうかはわかりません。