web-dev-qa-db-ja.com

私の友人はSHA512アルゴリズムを使用してソルトなしでパスワードをハッシュします。彼に塩を加える必要があることをどのように彼に納得させるのですか?

今日私は信じられないほど愚かな何かを発見しました-私の友人は塩なしでsha512アルゴリズムでユーザーパスワードをハッシュします。私はすぐにこの問題を彼に提起しましたが、彼は誰かが彼のデータベースで単一のパスワードをクラックするのを見たいと言った。私はハッシュなしでは彼のデータベースはレインボー攻撃に対して脆弱であることを彼に話しました、しかし彼は誰もが64の16進文字を持っているので誰もsha512のためにこの大きなレインボーテーブルを持っていないと言った。

彼がまだ塩を加える必要があることをどのように彼に納得させるのですか? sha512のハッシュクラッキングレートが何か知っている人はいますか?その場合、8文字のパスワードすべてを解読するには、これだけ、またはそれ以上の時間がかかると主張できます。

2
bodacydo

彼に挑戦してみませんか? 一般的なパスワード の簡単なRainbowテーブルを作成し、彼のデータベースで実行します。あなたは何かにぶつかるに違いありません(特に、彼がパスワードポリシーを持っていない場合)。ただし、データベースが小さい場合、これは機能しない可能性があります。

13
MrZander

彼が塩を使っていたとしても、それはまだひどい計画でしょう。 SHA-512は高速ハッシュであるため、パスワードを見つけるためにRainbowテーブルは必要ありません。ソルトと一緒に入力をテストするだけで、毎秒数億から数十億の候補パスワードをテストできます。

友人がすべきことは、答えを読んで パスワードを安全にハッシュする方法は? そして、適切なパスワードハッシュメカニズムを選択するBCryptやPBKDF2など。

9
Xander

彼は技術的に正しいかもしれませんが、それでも悪いデザインです。

彼のアプローチは、重複したパスワードが同じハッシュを生成することを意味し、攻撃者のコストを削減できます(1人のユーザーからプレーンテキストのパスワードを見つけ、パスワードハッシュも取得できる場合、どのアカウントが同じパスワードを使用しているかを確認できます) )。

彼のアプローチは、ハッシュを生成する現在の最新技術にも依存しています。塩を加えることで、彼は彼のデザインを「将来を見据えた」(私​​はその用語が嫌いです)。

3
schroeder