ソルトとは、パスワードなどをハッシュ化する際に、元のデータにランダムな文字列を付加する技術です。同じパスワードでもユーザーごとに異なるハッシュ値を生成させることで、パスワードが漏洩した際に、レインボーテーブル攻撃などの手法でパスワードが推測されるのを防ぐ目的があります。
ソルトの仕組みと目的
- ランダムな値の付加:ソルトはパスワードごとに異なるランダムな文字列です。
- ハッシュ値の多様化:パスワードとソルトを結合してハッシュ化することで、同じパスワードを使っていても、ユーザーごとに生成されるハッシュ値が異なります。
- レインボーテーブル攻撃への対策:ハッシュ関数は同じ入力に対して常に同じ出力を生成するため、同じパスワードを使用している複数のユーザーのハッシュ値が一致すると、攻撃者にパスワードが特定されやすくなります。ソルトを付与することで、この問題を防ぎ、攻撃者が事前に計算したハッシュ値の対応表(レインボーテーブル)を使った解析を無効化します。
ソルトの特徴
- 秘密にする必要はない:パスワードとは異なり、ソルトは秘密にしておく必要はなく、ハッシュ化されたパスワードと共にデータベースに保存されます。
- 攻撃コストの増大:ユーザー数が増えればソルトの組み合わせパターンも膨大になるため、攻撃者がレインボーテーブルで解析しようとしても、非常に多くのテーブルが必要となり、時間と労力がかかるようになります。
コメント