レインボーテーブルの利用は、パスワード解読の一つの手法に過ぎません。一見平凡な名称に惑わされず、依然として重要なサイバー犯罪の研究分野です。以降、レインボーテーブルの詳細と、それに対する守り方について説明します.
レインボーテーブル攻撃と呼ばれる検証攻撃では、攻撃者が既知のパスワードの暗号ハッシュを一覧にまとめます。認証システムではパスワードを平文で保存せず、暗号技術で計算されたハッシュ値で保存されるため、ユーザーのパスワードはハッシュ化され、認証時に保存されたハッシュと比較されます。
これらのハッシュ化技術は平文リストよりはるかに優れていますが、特に古い方式には重大な弱点があります。ハッシュ関数はパスワードの各文字に値を割り当て、ランダムな英数字の列を生成します。攻撃者はあらかじめ全ての可能なハッシュ値を生成したレインボーテーブルを作成することができます。攻撃者がハッシュ化されたパスワードの一覧を入手すると、このテーブルを用いて迅速に対応する平文を割り出すことが可能です。
この方法はブルートフォース攻撃に比べ計算資源をあまり必要としませんが、レインボーテーブルは大量の記憶領域を必要とするため、時間とメモリのトレードオフの例となります。
ハッシュ化とリダクションの連続処理がレインボーテーブルの基本です。リダクション関数はこの処理を反転し、ハッシュ値と対応する平文を結びつけます。
この手順は四段階に分かれます。
まず、可能性のあるパスワード一覧を同じハッシュ関数で変換し、ハッシュ値とその平文パスワードをテーブルに保存します。
新たなハッシュ値を作成するために、既存のハッシュにリダクション関数を適用します。各ハッシュは新たな値に再マッピングされ、次の段階への入力として利用されます。この操作を繰り返し、ハッシュチェーンを生成します。
レインボーテーブルは、ハッカーが暗号化されたパスワードを解読する際に使用するツールです。各チェーンの最後のハッシュから逆順にたどり、対象のハッシュと一致するものを見つけ出します。
検出したハッシュに一致する平文パスワードが、ターゲットハッシュ生成時に使われたものです。攻撃者はこの脆弱性を利用して守られた資源へアクセスします。
文字列のハッシュを新たな文字列へ変換し、更にリダクションします。ここでは、最も一般的なパスワード「12345678」を例に、最初の8文字にMD5ハッシュを適用してテーブルを作成します。
まず、文字列をmd5ハッシュアルゴリズムで処理します。
hashMD5(12345678) = 25d55ad283aa400af464c76d713c07ad
ハッシュを短くするため、最初の8文字のみを使用し、その後再度ハッシュ化します。
hashMD5(25d55ad2) = 5c41c6b3958e798662d8853ece970f70
十分なチェーンハッシュが得られるまで繰り返します。これは平文から最終ハッシュまで一連のチェーンとなります。
テーブルには多数のチェーンを配置します。
Password Cracking
カタログにハッシュ化されたパスワードが存在するか確認し、一致が見つかったら最初からハッシュを実行します。一致するパスワードが確認されると、認証を突破できます。
レインボーテーブルの利点は以下の通りです.
次に、レインボーテーブルの欠点を挙げます:
ハッカーは以下の方法で無許可にハッシュへアクセスし、レインボーテーブル攻撃を実行します:
コンピュータネットワークの管理者は、レインボーテーブル攻撃を防ぐために以下の対策を講ずるべきです:
この方法では、ランダムな文字列を追加した後にパスワードを暗号化します。平文が固定ハッシュであればレインボーテーブル攻撃は成功しますが、追加された文字が元のハッシュ値を変化させます.
生体認証は利用者固有の情報で本人を確認するため、レインボーテーブル攻撃の影響を受けません。パスワードのように入力する必要がなく、各利用者に固有です.
攻撃に必要な計算時間を延ばすため、パスワード、ソルト、および途中のハッシュ値に対してハッシュ関数を繰り返し適用します.
サーバー上のセキュリティソフトは、攻撃者がパスワードレジストリを見つけ出す前に侵入を検知することが可能です.
企業は、Secure Hash Algorithm 1やメッセージダイジェストアルゴリズムなどの安全でないハッシュ手法の使用をやめ、より安全なSHA-3ハッシュアルゴリズムの採用を検討すべきです.
ソルト手法の導入により、レインボーテーブル攻撃の頻度と被害の深刻度は大幅に低下しました。多くの主要なOSやソフトウェアでソルト付きハッシュが利用されています.
AppleのmacOSのパスワード管理機能Keychainもソルトを利用しています。Windowsではソルトを用いない場合もありますが、Syskeyによってハッシュが暗号化されます。それでも、Windowsでは8文字や9文字のパスワードに対してレインボーテーブル攻撃が成立する可能性があります.
近年、GPUを活用したブルートフォース攻撃が、レインボーテーブルを用いたサイバーセキュリティ攻撃に比べ実用性で優れています。GPU攻撃では、CPUの代わりにグラフィックス処理装置を用いてパスワードの推測を行います.
レインボーテーブル攻撃は、他の手法に比べ処理速度が遅く、拡張性にも乏しく、特定のハッシュおよびパスワードの種類に限定されます.
Rainbow Table - GitHub Topics
最新情報を購読