PR

BIOSパスワードには裏口がある

 実は,市販のパソコンのBIOSには,メーカー・サポート用のパスワードが設定されているのが普通である(図3の(1))。BIOSパスワードを忘れてしまったユーザーのパソコンを元に戻すためのもので,一般には公開されない「裏口」の位置付け。何らかの手段でそのパスワードを手に入れれば,あっけなくパソコンは起動してしまうわけだ。

 また,BIOSのパスワードは,パソコンのBIOSレベルの起動しか制限しない。パソコンからハードディスクが取り出されたときに,ほかのパソコンからアクセスされるのは防げない(同(2))。

図3●BIOSパスワードは簡単に破られる
図3●BIOSパスワードは簡単に破られる
BIOSパスワードは意外に弱い。過信は禁物だ。 [画像のクリックで拡大表示]

流山:…。でも,Windowsパスワードは大丈夫でしょう。

室長:それも,それほどは難しくないんじゃ。いったんパソコンを止めて,このUSBメモリーを挿すじゃろう。

市谷:それで,どうするんですか。

室長USBメモリーに入ったOSで起動するんじゃな。BIOSを書き換えて…。ほら,うまくいった。そこで,ハードディスクの中からパスワード情報が含まれたSAMファイルを取り出すんじゃ。

市谷:ちょっと待ってください。パスワードがそのまま書き込まれているわけではないですよね。解読できないように暗号化されているでしょう。

室長:そうなんじゃが,14文字以下のパスワードは,簡単に解読できてしまうんじゃよ。ほれ…。

流山:あ…。これは僕のパスワード!

14文字以下のパスワードは危ない

 Windowsのパスワードは,意識せずに使うと非常に脆弱になってしまうことがある。Windows 95/98/Meなどとつながるようにするために,Windowsは14文字以下のパスワードを,通常の形式のほかにLMハッシュという古い形式で同時に保存する。このLMハッシュは,簡単に解読できてしまう。

 LMハッシュでは,パスワードを7文字単位に分割し,それぞれをハッシュ関数を使って暗号化する(図4)。その結果を連結して,SAMファイルに保存する。

図4●14文字以下のWindowsパスワードはレインボー・テーブルという方式で簡単に破られる
図4●14文字以下のWindowsパスワードはレインボー・テーブルという方式で簡単に破られる
14文字以下のパスワードを使うと,破られやすい状態でパスワード情報がパソコンの中に残る。Windowsパスワードは15文字以上にするのが望ましい。 [画像のクリックで拡大表示]

 このLMハッシュには二つの問題がある。一つはアルファベットはすべて大文字として認識すること。使える文字記号のうち英字が52文字から26文字に半減するので,パスワードの種類が激減する。組み合わせの数が減るために,機械的に文字を組み合わせてそのすべてを試す,ブルートフォース攻撃に弱くなってしまう。

 さらに,ハッシュの作り方がワンパターンで解きやすいという欠点もある。普通,パスワードを暗号化したハッシュを作るときには,毎回違うハッシュができるように,調味料としてソルト(塩)を混ぜる。例えば暗号化したときの時刻や秒などをハッシュを作るときのパラメータとして使う。こうしてハッシュからパスワードを復元できないようにしている。

 ところがLMハッシュの場合はこのソルトが「固定」。出来上がるハッシュ値は,パスワードが同じなら常に同じになる。このことでパスワード破りがより簡単になる。

LMハッシュは簡単に破られる

 特に,存在し得るパスワードとハッシュ値の組み合わせを網羅しているレインボー・テーブルを使うと簡単に復元できる。SAMファイル内に保存されているハッシュ値とテーブルの値を照合すれば,すぐに該当するパスワードがわかるからだ。

 SAMファイルがあれば,パスワードはレインボー・テーブルから1時間もかからずに探せる。しかもレインボー・テーブルは,その気になれば簡単に入手できる。不幸なことに14文字以下で大文字限定ならば,レインボー・テーブルのデータ量は普通のパソコンで十分扱える大きさである。これは相当ヤバいというべきだろう。

流山:そうだったんですか…。

室長:このパスワードでログオンすれば,ほれ…。好きなように情報にアクセスできるわけじゃな。