2

私は、ソルトなしでMD5を使用してパスワードをハッシュするレガシーアプリを持っています。ソルトを使用してSHA1に切り替えたいのですが、現在のユーザーのパスワードを保持したいと思います。

私の計画は、ハッシュ関数をに変更することsha1(md5(password) + salt)です。を使用して、既存のすべてのハッシュをバッチ処理できるようになりますsha1(<existing_pass> + salt)

  1. この場合、md5を保持しても安全ですか?
  2. すべてのユーザーに単一のソルトを使用しても大丈夫ですか?
4

2 に答える 2

1
  • 質問1についてはよくわかりませんが、大丈夫そうです。

  • 質問2の場合:すべてのユーザーに同じソルトを使用することは決してOKではありません。ソルトには2つの機能があります。事前に生成されたハッシュ/レインボーテーブルを使用してリークされたデータベースを検索することを防ぎ、辞書ベースのハッシュの生成とそれらを使用したデータベースの検索も防止します。食塩は最初のケースで機能し、レインボーテーブルを使用できなくなりますが、クラッカーによる辞書攻撃を防ぐことはできません。クラッカーがグローバルソルトを知っている場合、クラッカーは頻繁にパスワードを生成し、それらをハッシュしてデータベース全体をgrepすることができます。ユーザーごとにソルトが生成される場合、このシナリオは不可能です。

于 2012-06-12T07:52:34.730 に答える
1
  1. md5を保持することはお勧めできません。この質問を読んでください:SHA-512とsaltを使用してMD5ハッシュパスワードをハッシュしますか?

  2. ユーザーごとに1つのソルトを用意することをお勧めします。同じソルトを使用すると、同じパスワードを持つユーザーは同じハッシュを持ち、すべてのパスワードに対して同時にレインボーテーブルを作成できます。

于 2012-06-12T07:55:15.820 に答える