TOPセキュリティ > レインボーテーブルの仕組みと現在の役割は(後)

セキュリティ

レインボーテーブルの仕組みと現在の役割は(後)

2021/07/29

Michael Hill CSO

 レインボーテーブルは、パスワードのハッシュ値から元のパスワードを割り出すために使うテーブルの一種。ハッシュ値とパスワードを対応付けるために、ハッシュ関数と還元関数で導き出した大規模なテーブルを生成して使う仕組みとなっている。Philippe Oechslin氏が考案し、2003年に論文を発表した。手法自体は、1980年代初頭のMartin Hellman氏とRonald Rivest氏の研究に基づいている。両氏の研究は、暗号解読の処理時間と所要メモリーのトレードオフについて探ったものだった。「レインボー」という名前は、テーブルの中で還元関数を順番に使用していく様子を、虹の色の違いになぞらえている。

前回から続く)

レインボーテーブルの攻撃と防御

Credit: PCWorld Coupons
Credit: PCWorld Coupons

 米KnowBe4のセキュリティ意識向上アドボケイト、Javvad Malik氏は、レインボーテーブルを使った攻撃を防ぐ方法は単純だと話す。「パスワードをハッシュ値に変換する際に、ソルト(ランダムな値)を加えればよい。攻撃側が持っているのがレインボーテーブルのみの場合、ソルトなしでパスワードを正しく導き出すことはできない。いわば、認証用に取得した指紋の上に、ランダムな形のスタンプを押すようなものだ。指紋とスタンプの両方が合わないと、完全一致にはならない」

 現在では、パスワードをハッシュ化する時にソルトを最初から用いている企業がほとんどだ。しかし、アプリなどを開発する際に、パスワードのハッシュ化でかなり脆弱な仕組みを利用してしまう開発者は必ずいるとMalik氏は言う。あるいは、旧式のハッシュアルゴリズムを使っている場合もある。こうしたケースでは、レインボーテーブル攻撃の恐れがある。

 現在の強力なパスワードクラッキングの手法を使っていない攻撃者が、従来型のレインボーテーブルの手法で探索を行うことも考えられる。暗号研究者のJean-Philippe Aumasson氏によると、例えばGSMの暗号アルゴリズム「A5/1」のクラッキングなど、短い鍵の解読であれば、レインボーテーブルは今も有効だ。

↑ページ先頭へ