8

まず、私はプログラミングに比較的慣れていないので、これが素朴な質問またはばかげた質問である場合は、私に優しくしてください。

さて、私は小さなアプリケーションを作成しているところです。その一部には、ユーザーパスワードのハッシュが含まれます。これを行うための最良の方法を研究した後、md5は提案として表示され、その使用を批判する記事に表示される回数とほぼ同じです。

代替案は、SHA-1などのようなもので、より強力で、ひびが入る可能性が低くなります。これは完全に理にかなっています。

要点をつかむには:

  1. md5がまだハッシュに広く使用されているのはなぜですか
  2. パスワードをハッシュするためにmd5を自動的に割引する必要がありますか、それとも他のハッシュメカニズムよりも実際に使用が優れている特定のユースケースがありますか?
4

5 に答える 5

10

パスワードのハッシュには、MD5もSHA-1も使用しないでください。それらは計算が高速になるように設計されていますが、これはまさにあなたが望まないことです。人々がパスワードをハッシュするためにこれらのハッシュアルゴリズムを使用している場合、それはおそらく彼らが代替案について知らないためです。

代わりに、この目的のために特別に設計されたbcryptのようなものを使用する必要があります。必要に応じて計算が難しくなるように構成できます。コンピューターの速度が上がるにつれて、計算にラウンドを追加するだけで、計算にかかる時間を長くすることができます。これにより、ハッシュを取得し、ブルートフォース攻撃または辞書ベースの攻撃を使用してパスワードを取得しようとする攻撃者の速度が低下します。

関連している

于 2012-06-23T10:03:13.837 に答える
1

関数が使用されるのと同じ理由mysql_*で、Web上のほとんどのリソースとチュートリアルは情報が古く、初心者のプログラマーはそれらを盲目的に使用します(チュートリアルがそう言っているためです!)。

私は新しいプログラマーのせいではありません。チュートリアルを更新しなかったのはチュートリアルメーカーのせいです。Googleの検索アルゴリズムも通常、年齢を考慮に入れており、検索結果の上位に古いエントリを表示します。

代替案については、マーク・バイアーズが私よりも上手く言ったと思います。

于 2012-06-23T10:05:27.663 に答える
0

md5がまだハッシュに広く使用されているのはなぜですか?

そうではない。Wordpressでさえ何年も前にそれを放棄しました。そしてWordpressは広く使われています。

自動的に割引する必要がありますか、それとも他のハッシュメカニズムよりも実際に使用が優れている特定のユースケースがありますか?

私はあなたが何を意味するのか分かりません。パスワードハッシュに適したハッシュアルゴリズムを使用すれば、それほど心配する必要はありません。

于 2012-06-23T10:10:31.540 に答える
0

MD5は、暗号化する前に実際のパスワードと混合するために適切な「ソルト」を使用する限り、ほとんどの場合[*]使用してもかなり安全です。

MD5で「最初の原像攻撃」を実行するためのブルートフォース以外の既知の方法はまだありません。つまり、ハッシュが与えられた場合、元のパスワードが何であったかを把握します。

上記の「ソルト」は、暗号化されたパスワードが「レインボーテーブル」または「ダイジェストする文字列」の他の既存のリストで簡単に検索されないようにするために必要です。

最近のLinked-Inパスワードリークは、saltが重要である理由の良い例です。ユーザーのパスワードをソルトできなかったため、パスワードのハッシュはすでに計算されているため(多くの場合、Googleで検出されたため)、パスワードの多くは簡単に元に戻されました。

あなたがまだすべきではないことは、塩自体を簡単に決定することです。攻撃者が塩が何であるかを理解できれば、すべての賭けは無効になります。これは、Florianによって投稿された記事で説明されているブルートフォースメカニズムが再び利用可能になるためです。良い塩は長くする必要があり、すべてのユーザーに同じ塩を使用するべきではありません。

MD5自体にこれまでに見つかった唯一の真の弱点は、元のファイルの内容がすでにわかっている場合に、別のファイルと同じMD5ダイジェストを生成する新しいファイルを作成する方法です。これは「2番目の原像攻撃」として知られており、パスワード暗号化にハッシュアルゴリズムの使用を検討する場合は関係ありません。

とはいえ、より優れたアルゴリズム(SHA-2、bcrypt)が利用できる場合は、それを使用することをお勧めします。

[*]ただし、eコマースに関連するものにはMD5を使用しません。

于 2012-06-23T10:11:55.203 に答える
0

md5がまだハッシュに広く使用されているのはなぜですか

たとえば、プログラムの有効性をチェックしたい場合は、まったく問題ありません(md5、ISO)。一部の人々がそれを(もう)使用すべきではないものに使用することはあなたの懸念ではなく、答えられません:)

自動的に割引する必要がありますか、それとも他のハッシュメカニズムよりも実際に使用が優れている特定のユースケースがありますか?

はい。パスワードに使用している場合は割引してください。あなたはすでに弱点を見つけましたが、@ markbyersがあなたが何を使うべきかについて言っていることを見てください、例えばbcrypt

于 2012-06-23T10:04:42.533 に答える