6

使用するソルトはハッシュ化されたパスワードと同じ長さでなければならないということを読みましたが、その理由は何ですか? パスワード保護を強化しますか? 私はそれをここで読んだ :

攻撃者が考えられるすべてのソルトのルックアップ テーブルを作成できないようにするには、ソルトを長くする必要があります。経験則として、ハッシュ関数の出力と同じサイズのソルトを使用することをお勧めします。たとえば、SHA256 の出力は 256 ビット (32 バイト) であるため、ソルトは少なくとも 32 ランダム バイトである必要があります。

4

3 に答える 3

9

これは、パスワードソルトが必要な理由の良い説明です。

いいえ、ソルトはパスワードと同じ長さである必要はありません。実際、この記事にリストされている実装はどれもそれを行いません。通常、追加されたソルトごとに、攻撃者はストレージバジェットを2倍にする必要があります。

したがって、今日のレベルのテクノロジには、10バイトのソルトがあれば十分です。また、ソルトはバイナリ値ですが、パスワードはそうではないため、ソルトの長さは文字ではなくビット/バイトで測定する必要があることに注意してください。

于 2012-12-28T03:45:13.850 に答える
4

塩はそれほど長くする必要はありませんが、確かに害はありません.

ソルトが満たすべき唯一の実際の要件は、グローバルに一意であることです。いくつかの重複したソルトを持っていても、攻撃者にとって実際にはあまり役に立たないという意味で、それは難しい要件ではありませんソルトがその効果を失い始めるのは、多くの重複を取得した場合のみです.

特に、誕生日のパラドックスにより、salt がランダムに選択される場合、理想的には、少なくとも 2·log 2 ( n ) ビット長である必要があります。ここで、nは予想されるユーザーの最大数 (または、より一般的には、最大選択したハッシュ方法を使用すると予想されるユーザー数)。もちろん、その上にいくらかのセキュリティ マージンを設けることは常に良い考えです。

特に、地球の総人口は 2 32を少し上回っています。これは、地球上のすべての人がシステムのアカウントを登録したとしても、64 ビットのソルトで十分であることを意味します。

于 2012-12-28T03:54:48.837 に答える
2

塩の強さは、パスワードの強さとほぼ同じである必要があります。どちらもブルートフォース攻撃に耐性があるはずだからです。

単純なソルトはより脆弱になりますが、単純なソルトでさえ、ソルトがない場合よりも攻撃が非常に面倒になります。

于 2012-12-28T03:44:27.533 に答える