概要
ソルトとは、パスワードや重要なデータをハッシュ化する際に追加される「ランダムな文字列」のことです。
ソルトを使うことで、同じパスワードでも異なるハッシュ値を生成でき、
総当たり攻撃(ブルートフォース)やレインボーテーブル攻撃に対する耐性が高まります。
セキュリティ分野で非常に重要な役割を担っています。
正式名称
Salt(ソルト)
略称
特になし
特徴
- パスワードのハッシュ化にランダム性を持たせる
- 同じパスワードでもソルトが異なればハッシュ結果も異なる
- レインボーテーブル攻撃を無効化できる
- 一般的にユーザーごとに固有のソルトを生成し、データベースに保存する
- 単独ではなく「ハッシュ関数」と組み合わせて使われる
具体例
例えば、ユーザーが「password」というパスワードを登録した場合:
- ソルトなしでハッシュ化(SHA-256)すると:
5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
- ソルト(例:
XyZ123!
)を追加してハッシュ化すると:
passwordXyZ123!
↓
8a7c5e73f2a1b02bb3b3cabc8d2c45edb8ab8f3c38e9a8c0c3e2c48ffdd9a6d0
関連用語
用語 | 解説 |
---|---|
ハッシュ関数 | データを固定長の文字列に変換する関数(SHA-256, bcryptなど) |
レインボーテーブル攻撃 | ハッシュ値と元のパスワードを対応させた表を使う攻撃手法 |
ペッパー(Pepper) | ソルトと似ているが、アプリケーション側で秘密に保持する追加のランダム文字列 |
ブルートフォース攻撃 | 総当たりでパスワードを試す攻撃 |