山崎 文明/ビジネスアシュアランス 社長
写真1●CSI Annual Meeting 2010におけるジム・イエーガー氏の基調講演
写真1●CSI Annual Meeting 2010におけるジム・イエーガー氏の基調講演
[画像のクリックで拡大表示]

 「HSM(Hardware Security Module)が解析できた」---。ジム・イエーガー氏の一言に、セキュリティの専門家たちは凍りついた。10月26日から29日まで米ワシントンで開催された「CSI Annual Meeting 2010」における最大の驚きは、クラウドコンピューティングがもたらす莫大な計算能力は社会的脅威にもなりうるという事実だった(写真1)。

 CSI(Computer Security Institute)は最古参のセキュリティに関するカンファレンスだ。2010年の会合は「第37回」と30年以上の歴史を誇る。企業ユーザーや政府当局者、コンサルタントなど米国を中心に各国のセキュリティ業界の有名人が集まる。今回は世界的な不況の影響もあり、参加者は300人と全盛期の半分以下だった。とはいえ、内容は充実していた。冒頭のクラウドがもたらす新しい脅威など、現在の米国が直面している真のセキュリティ上の課題が浮き彫りになった。

 HSMは暗号鍵の生成と鍵の保管ならびに暗号化を行うハードウエアである。HSMは暗号鍵が外部に漏れないよう耐タンパー性(こじ開けようとすると暗号鍵が自動的に消去される機能)を備えた装置なので、ハッキングはほぼ不可能と思われてきた。基調講演に登壇した米ジェネラル・ダイナミクス・インフォーメーション・システムズ デジタル・フォーレンジックビジネス責任者のジム・イエーガー氏は、HSMすら“陥落可能”ということを事例とともに紹介した。イエーガー氏は元空軍准将で諜報部門への在籍経験があり、現在も国防総省のCyber Crime Centerのサポートをしている。

レインボー・アタックによるHSM解析に成功

 イエーガー氏によると、ジェネラル・ダイナミクス・インフォーメーション・システムズは4桁のPIN(暗証番号)の暗号解析を実施した。利用したHSMは実験用に購入した市販のものだ。攻撃手法はいわゆる「レインボーアタック」だ。

 レインボーアタックでは「レインボーテーブル」と呼ばれる情報を使ってパスワードを解析する。ジェネラル・ダイナミクス・インフォーメーション・システムズが実施したHSM解析の実験は以下の通りだ。

 まず、利用されうる4けたのPINとして「0000」から「9999」まで考えられる限りの数字の組み合わせを用意する。この4けたのPINをHSMで暗号化することで、4けたのPINに対応した大量の暗号結果(PINブロックと呼ぶ)を得られる。このPINとPINブロックの組み合わせがレインボーテーブルだ。

写真2●レインボー・アタックによるHSMの解析を説明するスライド
写真2●レインボーアタックによるHSMの解析を説明するスライド
[画像のクリックで拡大表示]

 不正に入手したと仮定した任意のPINブロックと、レインボーテーブルのPINブロックが一致する値を探す。一致するものが検出できれば、レインボーテーブルから元の4桁のPINを探り当てることができる(写真2)。

 言ってみれば非常に単純な力技で、理論的には可能とされてきたが、実際にHSMの解析に成功したという話はなかった。それだけに、イエーガー氏が示した事例がセキュリティ専門家に与えたショックは大きかった。

 ジェネラル・ダイナミクス・インフォーメーション・システムズがレインボーアタックに成功したのはコンピュータの処理能力が格段に進歩した証だ。これまでは“架空の脅威”に過ぎなかったレインボーアタックも、現実の脅威として認識しなければならない時代になった。

クレジットカードの暗証番号が盗まれる恐れも

 PINブロックのフォーマットは「ANSI X9.8」や「ISO 9564」として国際標準になっている。これらの標準規格に準拠したHSMは、ATM(現金自動預け払い機)やPOSレジシステムなどに実装されている。

 イエーガー氏は講演では直接触れなかったが、クレジットカード番号や暗証番号のPINブロックは、POSレジシステムや小売店の販売システムに保存しているケースが多い。イエーガー氏が示した実験結果は、POSレジシステムへの攻撃でクレジットカード番号と暗証番号が盗まれてしまう可能性を示唆している。

 こうした事態を想定して、クレジットカード業界のセキュリティ対策基準「PCI DSS(Payment Card Industry Data Security Standard)」では、クレジットカードの認証後はクレジットカード番号とPINブロックを消去しなければならないとしている。