レインボーテーブル攻撃は、パスワードデータベースの脆弱性を狙う脅威アクターにとって、古くからあるものの、今なお有効な手法です。
今日の高度な持続的脅威は、次のような、より巧妙な手法を選ぶ可能性があります:リモートデスクトッププロトコル(RDP)攻撃。しかし、暗号解読攻撃――脆弱性を探るために暗号システムを調査する攻撃――は、サイバーセキュリティの脅威環境において、依然として正当な懸念事項です。
レインボーテーブル攻撃は、適切なプライバシーおよびセキュリティ機能を備えていないパスワードデータベースの脆弱性を狙う脅威アクターにとって、有効な手法です。パスワードソルトやハッシュアルゴリズムへのパッチ適用などの対策は、レインボーテーブル攻撃への対抗に不可欠です。
この記事では、レインボーテーブル攻撃、レインボーテーブルの仕組み、暗号解読攻撃から防御するためのベストプラクティスなどについて解説します。
ジャンプ先:
暗号解読攻撃とは
暗号解読攻撃とは、暗号化方式に関する情報を総当たりで探索し、権限のないアクターが暗号セキュリティシステムを侵害する攻撃です。暗号解読攻撃は、パスワードを平文で保存せず、代わりにパスワードの暗号学的ハッシュを保存するオペレーティングシステムを標的とします。
暗号解読者や悪意のあるアクターは、暗号方式、平文、暗号文に関する基本情報を使って、暗号化された通信を解読できます。
暗号学:暗号化と暗号解読
暗号学とは、データを秘密裏に保存・共有することに関わるコンピューターサイエンスの分野です。暗号学の発展は、政府機関、軍事部隊、企業、そして今日のデジタルユーザーのデータ保護に不可欠な役割を果たしてきました。暗号に関する研究は、次の2つに分けられます:
- 暗号化:データを暗号化するための方法論および応用。
- 暗号解読:暗号を破るプロセスと手法、およびメッセージを復号する方法。

暗号解読者とは
暗号解読者は通常、暗号文から平文を導き出すなど、暗号システムのペネトレーションテストを担当します。企業は、暗号アルゴリズム(暗号)を開発し、暗号セキュリティシステムを分析するために、暗号解読者を雇用することがよくあります。
詳しく読む:インターネットセキュリティのおすすめスイート&ソフトウェア
暗号解読攻撃の一般的な種類
| 攻撃の種類 | 暗号解読者のタスク |
|---|---|
| 暗号文のみ(COA) | 追加情報なしでメッセージを復号する |
| 既知平文(KPA) | 一部の情報を使って暗号鍵を見つける |
| 選択平文(CPA) | 選択した平文の入力を使って暗号鍵を評価する |
| 適応的選択平文(ACPA) | 高度なCPA手法を使って暗号鍵を評価する |
| 選択暗号文(CCA) | 選択した暗号文の入力を使って暗号鍵を評価する |
| 中間者(MITM) | 通信チャネルの暗号化を操作する |
| 辞書攻撃 | 辞書の単語を暗号化してパスワードファイルを試行する |
レインボーテーブルとは
レインボーテーブルは、暗号セキュリティシステムで使われる既知のハッシュをまとめたキーと値のテーブルです。これらの事前計算済みデータセットを使うと、パスワードクラッキングを行うアクターは暗号文から逆算できます。この処理には時間がかかることがありますが、キーと値のテーブルによって、暗号解読者や脅威アクターはレインボーテーブル攻撃を実行できます。
レインボーテーブル攻撃とは
レインボーテーブル攻撃は、暗号学的ハッシュ関数を悪用して、認証済みアカウントへのアクセスを侵害します。組織のパスワードデータベースを入手できる脅威アクターは、パスワードのハッシュ情報を使ってレインボーテーブルを作成できます。そこから、レインボーテーブルはハッカーや暗号解読者に、パスワードハッシュを解読するための対応表を提供します。
こちらも読む:おすすめの脆弱性管理ツール
レインボー攻撃への防御
パスワードからの脱却
多要素認証
パスワード攻撃への対策として、今日ほとんどのサービスが提供している重要な機能の1つが、常に推奨されている二要素認証(2FA)と多要素認証(MFA)です。2FAとMFAは、パスワードだけに頼らず、少なくとももう1つの認証要素を追加することで、単独のレインボーテーブル攻撃を防ぎます。
パスワードレス認証
パスワードレス認証は、顧客、従業員、一般ユーザーのアカウントを安全に保護する取り組みにおいて、引き続き重要なトレンドです。一般的なパスワードレス方式には、次のようなものがあります:
- 生体認証
- メールベース認証
- IDおよびアクセス管理(IAM)
- シングルサインオン(SSO)
パスワードソルト
パスワードがハッシュ化される前に、標準的なセキュリティ強化ポリシーでは、平文パスワードに「ソルト付け」と呼ばれる固有の文字列を追加します。これらの文字列、つまりソルトは保存され、Webアプリケーションサービスプロバイダーに知られており、ユーザーが意図したパスワードに加えて、アカウントにさらなるセキュリティ層を提供します。
アカウントのパスワード全体で同じソルトを使う方が、ソルトを使わないよりは優れています。しかし、パスワードごとに固有のソルトを使えば、さらに堅牢なセキュリティを実現できます。このようにパスワードにソルトを付加してハッシュ化することで、攻撃者によるアクセスの試みはさらに困難になります。
ハッシュアルゴリズムに注目
暗号学的ハッシュアルゴリズムは、ユーザーの入力データを暗号文に変換する数学的処理です。そのため、方式の選択はパスワードセキュリティの計算式における重要な要素となります。SHA、RSA、BLAKE、MDなどのハッシュアルゴリズムは、同じ入力に対して常に同じ出力を返す、効率的で信頼性の高い計算を暗号解読者に提供します。
ハッシュアルゴリズムは、レインボーテーブル攻撃を含むリバースエンジニアリングに対して耐性があります。ただし、これはパスワードデータベースに安全なポリシーが適用されている場合に限られます。
詳しく読む:1PasswordとLastPass:主要なパスワードマネージャーを比較
レインボーテーブルの歴史
HellmanとRivestによる初期開発
暗号解読攻撃には膨大な計算能力が必要であり、完全な探索結果をメモリに保存することは、1980年以前には現実的ではありませんでした。1976年、Martin Hellmanは、コンピューターサイエンスの研究者として公開鍵暗号の先駆的研究に携わり、Diffie-Hellman-Merkle鍵交換を実現しました。その4年後、暗号学者のRon Rivest(RSAのR)は、メモリに保存した特徴点と事前計算済みデータによって、侵入に要する時間を短縮する、同様の暗号解読手法に取り組みました。
Oechslinによる暗号解読の時間とメモリーのトレードオフ
2003年、スイスのコンピューター科学者Phillppe Oechslinは、HellmanとRivestによる元の手法を基に、暗号解読における時間とメモリーのトレードオフを高速化する方法,を発表し、今日レインボーテーブルとして知られるものを開発しました。Oechslinが提案した手法は、暗号解読中に必要となる計算回数を半分に減らし、レインボーテーブルを時間とメモリーのトレードオフ手法の高度な形態にするとともに、より迅速なパスワードクラッキングを可能にしました。

レインボーテーブル攻撃は今も脅威なのか
はい。攻撃の戦術、技術、および手順(TTP)は進化していますが、レインボー攻撃は、十分なパスワードセキュリティを実践していない組織にとって、依然として脅威です。セキュリティ管理者は、データのプライバシーを継続的に確保するため、自組織の暗号方式を把握しておく必要があります。
レインボーテーブルは、暗号解読と量子コンピューターによる暗号解読攻撃の未来について、より広範な問題を提起します。ポスト量子暗号アルゴリズムの開発は重要な進展であり、将来の通信とデータを保護するうえで不可欠です。





