本文へスキップ

ソルトとは?

そると

ソルトとは、パスワードをハッシュ化する際に付加するランダムな文字列で、レインボーテーブル攻撃や同一パスワードの一致を防ぐためのセキュリティ技術です。

ソルト(Salt)とは、パスワードなどの機密データをハッシュ化する前に付加するランダムな値のことです。「塩を振る」という名前のとおり、ハッシュ化の前に素材パスワード)に味付けをするイメージです。

ソルトを使わない場合、同じパスワードは常に同じハッシュ値になります。これにより、あらかじめ多数のパスワードとそのハッシュ値を対応させた「レインボーテーブル」を使った攻撃が有効になってしまいます。また、複数のユーザーが同じパスワードを使っていると、ハッシュ値を見比べるだけでそれが分かってしまいます。

ソルトの仕組みと効果は以下のとおりです。

  • ユーザーごとに異なるランダムなソルトを生成する
  • パスワードにソルトを付加してからハッシュ計算を行う
  • ソルト値とハッシュ値をセットでデータベースに保存する
  • 同じパスワードでも異なるソルトにより異なるハッシュ値が生成される

現代のベストプラクティスでは、bcrypt・scrypt・Argon2などのパスワードハッシュ専用アルゴリズムを使用することが推奨されています。これらのアルゴリズムはソルトの生成・付加・管理を内部的に行い、さらに計算コストを調整する機能を持つことで、総当たり攻撃に対しても強い耐性を提供します。ソルトはあくまで事前計算型の攻撃(レインボーテーブル等)を無効化するための対策であり、強力なハッシュアルゴリズムと組み合わせて初めて効果を発揮します。

使い方・例文

「ユーザーのパスワードをデータベースに保存する際、bcryptで自動的にソルトを付与してからハッシュ化する」のように、ユーザー認証機能の実装やセキュリティ設計の文脈で使われます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語