ハッシュアルゴリズムの長所に関する最新の開発については、私は実際には最新ではありません。パスワードを保存するための現在の最善の策は何ですか?
また、ソルティングとキーストレッチはどれだけのセキュリティを提供してくれますか?
ハッシュによって提供される追加のセキュリティについては、使用するハッシュの反復回数によって異なります。例として、2^14 回のハッシュ反復を使用することにしたとします。これにより、パスワードのエントロピーが 14 ビット増加します。ムーアの法則によれば、ハッシュによって提供されるエントロピーの余分なビットは、今日と同じ時間内にパスワードを解読するのに約 18 か月余分にかかることを意味します。したがって、生のパスワードが今日解読されるのと同じ時間で、反復ハッシュが解読されるまでには 21 年 (14 x 18 か月) かかります。
ソルティングによって提供される追加のセキュリティは 2 つあります。レインボー テーブルの効果的な使用を妨げ、パスワードの大きなリスト (ただし、単一のパスワードではない) をクラックするのに時間がかかります。
security.stackexchange でのこの質問は、bcrypt と PBKDF2 の良い議論です -パスワードの保存に bcrypt を推奨するセキュリティ専門家はいますか?
重要なのは、ハッシュ関数だけでは事前計算攻撃 (レインボー テーブルなど) を防ぐことはできないということです。また、ソルトを追加しても、辞書やブルート フォース攻撃からは保護されません。ハッシュ アルゴリズムを使用して独自のスキームを構築するよりも、bcrypt または PBKDF2 を使用する方がはるかに優れています。