2

重複の可能性:
ランダム ソルトを使用してパスワード ハッシュを改善する

ランダムなソルトを生成する有効なセキュリティ上の理由はありますが、それをパスワードと同じ DB および静的なソルトに保存しますか?

例えば:

$hashedPass = crypt($pass, $staticsalt.createRandomSalt());// just an example for sanity 
$user->setPass = hashedPass;
$hash->setSalt = createRandomSalt();//assuming same result...

セキュリティ コミュニティがハッシュ (ユーザー名など) に既存の列を使用することを推奨していることは知っていますが、実際には意味がわかりません。DBがハッキングされた場合、攻撃者はユーザー名も取得します...別の列/テーブルにある場合は、追加のセキュリティ対策を組み込むことができます.

4

1 に答える 1

4

レコードごとのソルトを生成している場合は、ハッシュされたパスワードとともにソルトを保存する必要がありますそうしないと、pw を確認できなくなります。

登録ユーザー:

$salt = rand_salt();
$pw = 'foo';
$hashed = md5($salt . $pw);

ログインする:

$pw = $_POST['password'];
$hashed = md5($pw);  // oops... no salt. can't hash the pw properly anymore.

サーバーがハッキングされた場合、ハッシュ、ソルト、ユーザー名がどのデータベースに分散されているかは関係ありません-それらはドアの外に出ています.

しかし、少なくともソルトを使用すると、攻撃者の仕事がより困難になります。スクリプト キディ レインボー テーブルが適用されなくなったためです。12345通常のパスワード ( 、passwordなど)に対して事前に生成されたハッシュがありましたが、2d%@#41234xrs12345またはではありませんでした89yusdf;hjlk2342sdf@@password

于 2013-01-10T17:04:31.403 に答える