でパスワードをハッシュしますMD5
。MD5
最もランダムなソルトを追加する単純なハッシュは、いわゆる「MD5 DECODERS」では認識できないと考えているため、最高のアルゴリズムを使用してそれらをハッシュすることについてはあまり心配していません。私を悩ませている唯一のことは、ブルートフォースです。パスワードのソルトにさまざまなアルファベット (アラビア語、中国語、日本語、キリル文字) の文字を含めても、何か違いがあるかどうか疑問に思っていました。それがブルートフォースを複雑にするかどうかという質問はありますか?
2 に答える
パスワード ハッシュをソルトする利点の 1 つは、ハッシュのリストが侵害された場合にルックアップ リスト (など) を使用するリスクを軽減することです。
説明のために、次のことを考慮してください。
アリスにはパスワード「Ford」があり、値 x としてハッシュされますボブにもパスワード「Ford」があり、値 x としてハッシュされます
ここで、ユーザー/ハッシュ リストが侵害され、 Alice のパスワードがブルート フォースされた場合、攻撃者は Bob のアカウントも侵害する可能性があります。
2 人のユーザー間でパスワードが同じであっても、ハッシュの結果は以前とは異なりますが、両方のユーザーで同じになるため、固定ソルトを使用しても問題は解決しません。Alice のパスワードを見つけることは、Bob にも有効です。
ユーザーごとに決定論的な文字列を使用してパスワードをソルトする (毎回ユーザーに同じものを使用する必要があるため、決定論的である必要があります) ことは、アリスとボブが同じパスワードを持っていても、ハッシュが異なる可能性があることを意味します (おそらく、 salt はユーザー名でした)。アカウントを危険にさらそうとする人は、すべてのユーザーに力ずくでリストを危険にさらさなければなりません。
したがって、ハッシュが有用である理由についてのこの知識があれば、次のポイントに進みます。キャラクターは重要ですか?16 バイトのハッシュ (MD5 など、実際には暗号化の目的で使用するべきではありませんが、既にそのことはわかっています) を考慮すると、128 ビットのエントロピーが得られます。まともな最小パスワード長を持つパスワードポリシーがあり、おそらく適切な文字の組み合わせが必要な場合 (UTF-8 のマルチバイト文字には € でも十分であり、8 ビットすべてにエントロピーが与えられます)漢字のように)、(ユーザーごとに) どんなソルトも同様にうまく機能します。