私が理解していないのは、自動化された機能がユーザー名を選択し、たとえばWebサイトで毎回異なるパスワードを使用して多くのログイン試行を行うことを妨げていることです. 私には、そのシナリオでは塩は機能していないように見えますか?
正しい。ハッシュとソルティングは、ブルート フォース ログイン試行を防止しません。(そのために、単位時間あたりのログイン試行回数を制限するか、X-failed 試行後に禁止する必要があります)。
ハッシュとソルティングは、盗まれたパスワード リストがクラックされるのを防ぐために(または、そのリストをクラックするのに必要な時間を長くするために) 使用されます。
パスワードを保存する場合、プレーン テキスト、ハッシュ、またはハッシュ + ソルトの 3 つのオプションがあります。パスワードリストを盗んだ場合:
- プレーン テキスト: すべてのユーザーのログイン情報を取得しました。私は彼らになりすますことができます。(良くないね)。
- Hashed :レインボー テーブルを使用して、ハッシュから合理的に迅速にパスワードを決定できます。(それも悪いです)。
- Hashed + salted : レインボー テーブルが機能しなくなりました。各パスワードを解読するのにかなりの時間を費やさなければなりません。それでも可能ですが、かなり難しくなります (そして、あなたが実際に重要でない限り、私はおそらく気にしません)。これにより、セキュリティ違反に気づき、パスワードが盗まれたことを顧客に知らせ、パスワードを変更するように依頼する時間も得られることに注意してください (最終的にハッシュ + ソルト リストをクラックしたとしても、それを使用することはできません)。
したがって、ハッシング + ソルティングは、ブルート フォース方式を使用して盗まれたハッシュからパスワードをクラックしようとする試みを防ぐ (または遅くする) ために使用されます。