1

Web アプリケーションでは、/dev/urandom から数バイトを読み取って、パスワードをハッシュするためのランダムなソルトを取得しています。

ハッシュする前にソルトをbase64にするのは良いですか? base64 エンコーディングでは末尾に = が追加されることがあるため、既知のプレーンテキスト攻撃が発生する可能性があります。しかし、ソルトはデータベースに保存されているため、問題はないかもしれません。それとも間違っていますか?

これはアプリケーションのセキュリティに影響しますか?

4

4 に答える 4

2

ほとんどの場合、おそらくそうではありません。パスワードを復号化するにはソルトを知る必要があるため、攻撃者はハッシュ化されたパスワードと使用されたソルトの両方を取得できると想定できます。あなたのソルトが現在防御しているのは、レインボーテーブルベースの攻撃と作業量の増加だけです(パスワードnと比較するために、各平文を1回ではなく何回もハッシュする必要があるため).n

あなたの塩が適度な長さである限り、あなたはおそらく大丈夫です.

于 2014-12-21T22:46:21.903 に答える
2

いいえ、安全ではありません。

ユーザーのパスワードにはハッシュ関数を使用しないでください。代わりに、PBKDF2 や scrypt などのパスワードベースのキー派生関数を適切な回数の反復で使用して、ハッシュを遅くし、ブルートフォース攻撃のリスクを軽減する必要があります。

キー派生関数とパスワード ハッシュの違いは何ですか?

Web アプリケーションに PHP を使用している場合:

ソルトを base64 でエンコードする必要がありますか (パスワードをハッシュするため)?

PHP パスワードの安全なハッシュとソルト

于 2014-12-21T22:54:30.117 に答える