3

LinkedInの大きなパスワードリークに照らして、私はパスワードのセキュリティについて考えてきました。私が過去に使用したWeb開発フレームワークは、通常、マスターのアプリケーションレベルのソルトをアプリ定数として保存し、すべてのユーザーパスワードをその値でソルトします(アプリごとにランダムに生成されます)。例:擬似コード:password = hash(App::salt + userPassword)

ユーザーごとにランダムなソルトを生成し、それを各ユーザーのパスワードと一緒にデータベースに保存することを提案する多くのアドバイスを読みました。私の質問は、これによりセキュリティがどのように向上するかということです。攻撃者がデータベースからパスワードダイジェストのリストを入手した場合、攻撃者もソルトを取得できる可能性がありますよね?または、テーブルの残りの部分にアクセスせずにパスワードダイジェストを取得する、私が知らない攻撃ベクトルはありますか?

4

1 に答える 1

5

ユーザーごとにランダムなソルトを保存すると、レインボーテーブル攻撃が無効になります。

「マスターソルト」の場合でも、そのようなテーブルを事前に計算して攻撃に使用することができます。ユーザーごとのソルトでは、これは実用的ではなくなります。

于 2012-06-06T23:55:09.590 に答える