攻撃と脅威
レインボーテーブル攻撃
別称: 時間-空間トレードオフ
定義
ハッシュ関数と還元関数を交互に並べたチェーンを圧縮テーブルに保存し、ソルトなしハッシュを総当たりよりはるかに速く逆引きする事前計算攻撃。
レインボーテーブルは、ハッシュ関数で候補空間を処理した結果を「ハッシュと還元の交互チェーン」として符号化し、各チェーンの端点だけを保存します。ハッシュを解くときは、還元チェーンを繰り返し適用して端点と一致する箇所を探し、対応するチェーンを辿って元のパスワードを復元します。空間と時間のトレードオフであるため、ソルトのない短いパスワードのハッシュをほぼ瞬時に破ります。ユーザーごとのランダムなソルトと、Argon2id、bcrypt、scrypt などの memory-hard ハッシュにより事実上無効化されるため、まともな認証設計ではソルト付きハッシュが必須です。
例
- ソルトなしの MD5・SHA-1 パスワードデータベースを公開レインボーテーブルで解読する。
- ophcrack のテーブルで一定長以下の NTLM ハッシュを復元する。
関連用語
辞書攻撃
あらかじめ用意した一般語彙・漏えいパスワード・ルールに基づく派生形を候補とし、対象に試行する標的型パスワード推測攻撃。
総当たり攻撃
パスワード、PIN、鍵などの候補値を片端から試し、正しい値を割り出す攻撃。
クレデンシャルスタッフィング
ある漏えいから得たユーザー名・パスワードの組合せを他サービスで自動再生し、パスワード使い回しを悪用してアカウントを乗っ取る攻撃。
ソルト
ハッシュ計算前にパスワードへ付加する一意のランダム値で、レインボーテーブルを無効化し各ユーザーのハッシュを別物にする仕組み。
Argon2
2015 年の Password Hashing Competition で優勝し、RFC 9106 に標準化された、メモリ消費型の最新パスワードハッシュ関数兼 KDF。
暗号学的ハッシュ関数
任意長の入力を固定長のダイジェストへ写す決定的な一方向関数で、衝突耐性・原像耐性・第二原像耐性を備える。