図1 パスワードは広大な畑の中のどこかに宝物を埋めるようなもの
図1 パスワードは広大な畑の中のどこかに宝物を埋めるようなもの
[画像のクリックで拡大表示]
図2 ブルート・フォース攻撃で力任せに探せば“当たり”が見つかってしまう(イラスト:なかがわ みさこ)
図2 ブルート・フォース攻撃で力任せに探せば“当たり”が見つかってしまう(イラスト:なかがわ みさこ)
[画像のクリックで拡大表示]

 ブルート・フォース攻撃(brute force attack)は,クラッカがパスワードや暗号化キーを解読する手法の一つである。「brute force」とは英語で「力ずく」または「強引に」といった意味で,ブルート・フォース攻撃とは考えられるすべての値を片っ端から試すという力任せの解読方法を指す。

 パスワードを使ったシステムでは,数多くの組み合わせの中から特定の一つを知っていることが利用の条件となる。そのパスワードを知らない人にはシステムを利用させないことで,セキュリティを確保するというのが原則だ。これは,宝物を広大な畑のどこかに埋めておけば,普通はなかなか見つからないので大丈夫というようなものである(図1)。

 ところが,手当たり次第に試していけば,パスワードはいつか解読されてしまう恐れがある。例えば,数字4桁のパスワードなら「0000」から「9999」まで,最大1万通りを試せばどれかが当てはまる。これが,ブルート・フォース攻撃といわれるもので,その手法から総当たり攻撃とも呼ばれる。いくら複雑なパスワードを使っても,時間さえかければ,いつかはブルート・フォース攻撃で解読されてしまう恐れがある。

 ブルート・フォース攻撃は手作業で実行するものではない。クラッカは専用のソフトウエアを使ってパスワードを次々と試すため,パソコンの性能の向上に合わせて気の遠くなるような数の組み合わせであっても短時間ですべてを試せるようになってきている。先ほどの例でいえば,これは手作業ではなくブルドーザーで地面すべてを掘り返して宝物を見つけるようなものといえる(図2)。

 また,パスワードとしてよく使われる文字列を用意しておく「辞書攻撃」という手法もよく使われる。これらの文字列を優先的に試すことで,解読時間を短縮するもので,これもブルート・フォース攻撃の一種といえる。

 ブルート・フォース攻撃の危険性は多岐に渡る。例えば,ネットワーク経由で別のコンピュータを操作するSSH(secure shell)や,ファイル転送を実行するFTP(file transfer protocol)サーバーなどを狙うケースがよくある。サーバーのIDとパスワードを盗んで販売したり,サーバーを乗っ取ってフィッシング詐欺サイトを構築したりするのがクラッカの目的である。

 危ないのはインターネットに公開しているサーバーだけではない。無線LANでやりとりしているパケットの情報から暗号化キーを割り出されたり,認証情報を含んだパケットを盗聴されて,IDとパスワードを盗まれたりする危険もある。ノート・パソコンを紛失した場合も,そのパソコンのログイン・パスワードをブルート・フォース攻撃で破られる恐れがある。

 ブルート・フォース攻撃を防ぐために思いつくのは,パスワードに使う文字の数や種類を増やすことである。例えば,小文字のアルファベットだけを使うよりも,アルファベットの大文字/小文字/数字/記号を組み合わせて使えば,同じ8文字としても組み合わせが約1万7221倍に増える。

 ただし,どんなに複雑にしても“絶対安全”とは言えない。だが,専門家によればパスワードに記号を使うと破られにくくなるという。手当たり次第に狙う場合は,クラッカも効率を重視して記号まで解析しないこともあるからだ。

 それ以外の対策としては,定期的なパスワード変更が重要である。クラッカが解読するまでの間に,パスワードを変えてしまえば安全というわけだ。例えばハードウエア・トークンによるワンタイム・パスワードを導入すれば,一定時間ごとに別のパスワードに変わる。無線LANでも,WPA(Wi-Fi Protected Access)のように動的に変化するデータを基に暗号化キーを変える方式にすれば,ブルート・フォース攻撃対策として有効である。