Windowsネットワークに流れる認証パケットをキャプチャして,脆弱なパスワードなら数秒で見つけ出す――。2004年4月26日,セキュリティフライデーはこうしたシステムを開発済みであることを公表した。「システム自体は2003年10月に構築していたが販売予定がなかったので公表していなかった。最近ほぼ同様のアイデアがWeb上で公開されたために,同業者へのけん制のために公表に踏み切った。脆弱パスワード検知システムとして2004年秋に信頼の置ける機関に限定して売り出すつもりだ」(佐内大司社長)という。システムは1.6GHz動作のPentium 4,128Mバイトの主記憶,約1.6テラバイトのハードディスクで構成されている。

図●セキュリティフライデーが開発したシステム
NTLMv1/新NTLMのチャレンジ/レスポンス認証では,パスワードをMD4でハッシュ化し,この値(NTLMハッシュ)でチャンレンジを暗号化する。今回のシステムではあらかじめパスワード候補からNTLMハッシュを作っておき,ハードディスクに格納している。また,NTLMv1/新NTLMのアルゴリズムの欠陥を突いて,走査するパスワードを6万5545分の1にするアルゴリズムを組み込んでいる。
 ただし「用意したありがちな約6300億個のパスワード候補にマッチした場合のみパスワードが割り出せる」(佐内社長)。つまり,アルファベットや数字だけでなく,記号を織り交ぜて作った文字数の多いパスワードは推測できない。

NTLMv1の欠陥を突いて高速化

 Windowsネットワークでは一般的にチャレンジ/レスポンスと呼ばれる認証方式が利用される。まず,クライアントから認証要求を受けたサーバーがクライアントにチャレンジと呼ばれるランダムデータを送る。次にクライアントがチャレンジをパスワードで暗号化した値(レスポンス)をサーバーに送り返して認証を行う。

 今回のシステムでは,キャプチャしたチャレンジとパスワード候補からレスポンス候補を作り出し,実際のレスポンスと比較する([拡大表示])。合致すれば,パスワードが判明する。

 このシステムが解析対象とする認証方式は,Windows XPとWindows 2000 Service Pack 3以降がデフォルトで利用する新NTLMとWindows NT 4.0とWindows 2000 Service Pack 2以前がデフォルトで利用するNTLMv1である。

 NTLMv1および新NTLMの認証アルゴリズムにはパスワードを高速に割り出せてしまうという欠陥がある。例えば,6文字程度のアルファベットと数字でできたパスワードの場合,総当りで解析すると1週間程度必要である。ところが,この欠陥を突くことで試してみる総パスワード数を6万5545分の1に絞り込める 1。つまり,1週間かかった解析が10秒程度で終わる。

 「NTLMv1の欠陥は1998年に発表されていたので,NTLMv1のパスワード解析システムを作ることは以前から可能だった。しかし,現在主流の新NTLMは暗号化のアルゴリズムが解明されていなかった。ところが2003年7月に新NTLMv1のアルゴリズムがセキュリティ研究者によって解明され,新NTLMにNTLMv1同様の欠陥があることを知った 2。これが今回のシステム開発につながった」(関英信技術企画室長)という。

(中道 理)