本文へスキップ

レインボーテーブル攻撃とは?

れいんぼーてーぶるこうげき

レインボーテーブル攻撃とは、あらかじめ計算したハッシュ値の対応表を使ってパスワード効率的に解析するクラッキング手法です。

レインボーテーブル攻撃とは、パスワードとそのハッシュ値の対応関係を事前に大量計算して表(レインボーテーブル)にまとめておき、漏洩したハッシュ値からパスワードを逆引きするサイバー攻撃の手法です。

通常、パスワードはハッシュ化されてデータベースに保存されます。ハッシュ関数は一方向性があるため、ハッシュ値からパスワードを直接復元することはできません。しかしレインボーテーブルは「削減関数」を使ってハッシュとパスワードを交互に変換したチェーンを作ることで、総当たりより少ない保存容量で効率的に逆引きを実現します。攻撃の流れは以下の通りです。

  • 事前にパスワード候補とハッシュのチェーンを大量生成してテーブルを作成する
  • 漏洩したハッシュ値をテーブル内で検索する
  • 一致するエントリからチェーンをたどって元のパスワードを特定する

レインボーテーブル攻撃への対策として最も有効なのが「ソルト」の付加です。ソルトとはパスワードに付け加えるランダムな文字列で、ユーザーごとに異なる値を使うことでレインボーテーブルを事前計算する意味をなくします。現代のシステムではbcryptやArgon2のようにソルトを内包し計算コストを調整できる専用のパスワードハッシュ関数を使うことが標準的とされています。MD5やSHA-1など汎用ハッシュのみによるパスワード保存は危険です。

使い方・例文

企業のデータベースが不正アクセスを受けてハッシュ化済みパスワードが流出した際、攻撃者がレインボーテーブルを使ってパスワードを短時間で解析する場面で登場します。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語