ハッカーはパスワードを破るためにさまざまな方法を使用しますが、その1つがレインボーテーブル攻撃です。場合によっては、この方法は辞書攻撃や資格情報スタッフィングよりも高速な場合があります。
本記事では、レインボーテーブル攻撃の仕組みと、その防止策について解説します。
レインボーテーブル攻撃の定義
レインボーテーブル攻撃とは、ハッカーがシステムに侵入するために使用する暗号攻撃の一種です。これは、デジタルフィンガープリントとして機能するハッシュからパスワードを特定することで行われます。ハッシュ関数は、各パスワードをそれに対応する文字列にマッピングします。
すべてのパスワードを一つずつ試すブルートフォース攻撃とは異なり、レインボーテーブル攻撃では、テーブルが事前計算されていれば推測を行う必要はありません。この事前計算されたテーブル(色分けされた見た目からレインボーテーブルと呼ばれます)は、本質的に、ハッシュ値のペアとそれに対応するプレーンテキストをリンクさせた大規模なデータベースです。Protonはこの仕組みに精通しており、セキュリティ対策としてこのリスクを軽減する設計を採用しています。
レインボーテーブルによるパスワード攻撃の仕組み
1. パスワードリストの作成
レインボーテーブルを作成する際、ハッカーは、123456、password、qwertyのような単純なパターンを持つ最も可能性が高く一般的に使用されるパスワードや、辞書にある単語、あるいはデータ侵害によって取得されたパスワードダンプを標的にすることがよくあります。
2. ハッシュ関数の選択とパスワードの変換
レインボーテーブル攻撃は、MD-5、SHA-1、LM Hash、NTLM Hashのような、よりシンプルで高速な暗号ハッシュ関数に対して有効です。これらは、ソルト化する(ハッシュ化の前に各パスワードにランダムなデータを追加する)機能や、キー伸長(パスワードを繰り返しハッシュ化する)といったセキュリティ機能を使用しないためです。
| MD-5でハッシュ化されたパスワード | プレーンテキストパスワード |
| 482c811da5d5b4bc6d497ffa98491e38 | password123 |
各プレーンテキストパスワードは、ハッシュ関数を通じて実行され、対応するハッシュが生成されます。これは、上記の例のように一意で固定サイズの文字列となります。すべてのパスワードがハッシュ化されると、ハッカーはそれらを使用してレインボーテーブルを作成できます。
3. パスワードを暴くためのレインボーテーブルの作成
レインボーテーブルは、1列目にハッシュ化されたパスワード、2列目にプレーンテキストのパスワードが記載された大きなExcelシートのようなものと見なすことができます。もし侵害されたハッシュがこのテーブル内に存在すれば、その横にあるセルが侵害されたパスワードであることになります。
レインボーテーブル攻撃の例
レインボーテーブル攻撃がどのように行われるかを示す2つの仮説的な例を紹介します。
- ハッカーは、ソルト化を行わない古いハッシュアルゴリズムを使用しているソーシャルメディアサイトを特定します。SQLインジェクションの欠陥を悪用して、攻撃者はウェブサイトのデータベースからユーザーのパスワードのハッシュ値を抽出します。その後、事前計算されたレインボーテーブルを使用して、これらのハッシュの数千個を即座にプレーンテキストのパスワードに戻し、ユーザーアカウントを侵害します。
- ネットワークの日常的な監視中に、ハッカーはeコマースのウェブサイトがパスワードのハッシュをサーバー間で安全でない方法で転送していることを発見し、ネットワークスニッフィングツールを使用してこのデータをキャプチャします。パスワードのハッシュにアクセスできるようになったハッカーは、レインボーテーブル攻撃を使用して顧客のパスワードをデコードし、ショッピングアカウントや個人情報へのアクセス権を取得します。
レインボーテーブル攻撃によるデータ侵害
レインボーテーブル攻撃は、現実世界において数百万件ものログイン詳細を盗み出すために使用されてきました。
例えば、ロシアのサイバー犯罪者による2012年のLinkedInハッキング(新しいウィンドウ)では、約650万人のユーザーアカウントパスワードが盗まれ、重大なデータ侵害を引き起こしました。最初の発見の後、LinkedInは2016年に、同一の事件に関連するさらに1億件の侵害されたメールアドレスとパスワードを発見しました。盗まれたパスワードは保護が不十分で、ソルト化するような追加のセキュリティ対策が欠けていたため、攻撃者が標準的なレインボーテーブルを使用して復号化するのが容易でした。
レインボーテーブル攻撃を防止する方法
強力なハッシュ関数を採用しているプラットフォームを選ぶ
bcrypt(新しいウィンドウ)やArgon2(新しいウィンドウ)のような安全なハッシュ関数は、ソルト化(新しいウィンドウ)を使用して、ハッシュを作成する前にパスワードにランダムなデータを追加します。ソルトがなければ、パスワードのハッシュがレインボーテーブルに表示されることはなく、攻撃は失敗します。
特定のサービスやアプリがパスワードの保存にどのハッシュ関数を使用しているかを確認するには、そのプライバシーポリシー(新しいウィンドウ)、FAQセクション、サポートページ、セキュリティ認証、または監査(もしあれば)、技術文書、あるいは開発者向けリソース(新しいウィンドウ)を確認してください。簡単なインターネット検索で確認できるほか、カスタマーサポートに問い合わせて聞くこともできます。
ご自身でウェブサイトやデータベースを運営している場合は、強力なハッシュ化アルゴリズムを実装するプラグインやモジュールを使用して、セキュリティ設定を更新した状態に保ってください。
複雑なパスワードを使用する
推測されやすいパスワードを使用するのではなく、12文字以上で、大文字と小文字、数字、記号を組み合わせた安全なパスワードを選択してください。強力なパスワードの例には、?GmmM1Z[c5:Fやbeht=ty]P:)Gf^c?p?+7などがあります。サイバー攻撃者がこのような複雑なパスワードをレインボーテーブル攻撃で標的にすることは困難です。
多要素認証を有効にする
2要素認証 (2FA)のような多要素認証 (MFA) は、パスワードによる認証要求に少なくとも1つの追加的な認証プロセスを加えるものです。これには、2FA認証アプリで生成されるコードなどが含まれます。仮に攻撃者がレインボーテーブル攻撃によってお客様のパスワードを特定できたとしても、次の認証ステップを通過することはできません。
さらに、身に覚えのない追加の認証要求が届いた場合は、何者かがお客様のアカウントに侵入しようとしている明白な兆候です。すぐにパスワードを変更することで迅速に対応できます。
メールエイリアスアドレスを使用する
メールエイリアスアドレス(新しいウィンドウ)は、プライマリーメールアドレスと接続されていないため、レインボーテーブル攻撃につながる可能性のあるデータ侵害からお客様を保護できます。例えば、重要なメッセージや財務関連にはメインのメールアドレスを使用し続け、信頼できないサービスにサインアップするような場合にはメールエイリアスを使用するといった使い分けが可能です。エイリアスメールアドレスがハッキングされた場合でも、単にそれを無効化するだけで済みます。
データ侵害についてインターネットを監視する
最新の侵害情報に注意を払うことで、利用しているサービスが侵害を受けているかどうか、またデータが流出したかどうかを判断できます。これにより、パスワードを直ちに変更するなどの事前の対策を講じ、露出した可能性のあるデータを悪用してハッカーがアカウントへの不正なアクセス権を取得することを防ぐことができます。
Proton Passがどのように役立つか
Proton Passは、強力なパスワードを生成(新しいウィンドウ)し、一箇所で管理することで、レインボーテーブル攻撃からお客様を保護します。また、2FAトークン用のTOTP(時間ベースのワンタイムパスワード)認証もサポートしています。さらに、このアプリは、お客様のプライマリーメールアドレスがオンラインで公開されるのを防ぐためのhide-my-emailエイリアスを提供しています。
すべてのProton Passユーザーは、Pass Monitor(新しいウィンドウ)を使用してすべてのパスワードの健全性を監視し、ダークウェブモニタリングを使用してさまざまなソースでのデータ侵害を追跡できます。Protonのセキュリティモデルは安全なbcryptハッシュアルゴリズムを使用しており、パスワードをハッシュ化する前にソルト化することでレインボーテーブル攻撃を阻止します。さらに、アカウント乗っ取り攻撃を検出・防止するために、Proton Sentinelと呼ばれる高度なセキュリティプログラムも実行しています。
今すぐProton Passの無料アカウントに登録して、レインボーテーブル攻撃からアカウントを保護しましょう。






