CyberGlossary

暗号

ソルト

別称: 暗号学的ソルト, パスワードソルト

定義

ハッシュ計算前にパスワードへ付加する一意のランダム値で、レインボーテーブルを無効化し各ユーザーのハッシュを別物にする仕組み。

暗号学的ソルト(salt)は、Argon2、scrypt、bcrypt、PBKDF2 などのハッシュ関数や KDF にパスワードを渡す前に混ぜ込む非秘匿のランダム値です。同じパスワードを使う 2 人のユーザーでも保存ハッシュが異なるため、事前計算済みのレインボーテーブルが無力化され、大規模攻撃はバッチ処理ではなくユーザーごとの線形処理になります。少なくとも 16 バイト、暗号学的に安全な RNG で生成し、認証情報ごとに一意で、ハッシュと一緒に保存します(秘匿の必要はありません)。最新のパスワードハッシュ形式(PHC 文字列、$argon2id$...、$2b$...、$scrypt$... など)はソルトを直接埋め込みます。HKDF やランダム化された公開鍵暗号方式も同じ目的でソルトを使用します。

  • $argon2id$v=19$m=65536,t=3,p=1$<base64-salt>$<base64-hash> 形式の Argon2id ハッシュ。
  • アカウント作成時にユーザーごとに生成する 16 バイトのランダムソルト。

関連用語