米マカフィーの教育プログラム「Essentials of Hacking」および「Ultimate Hacking」で筆者が講義する際に詳しく取り上げたい話題の一つは,パスワードのブルート・フォース(総当たり)攻撃(関連記事:Networkキーワード「ブルート・フォース攻撃」とは)とクラック(関連記事:情報セキュリティ入門「パスワード・クラック」)である。筆者は通常,まず生徒たちに「強靱なパスワード・ポリシー」について考えてもらい,その後これらのポリシーに共通する実装や攻撃について分析することにしている。必然的に,生徒が考え出すパスワード・ポリシーは,おおむね以下のようなものとなる。

・最低1文字の大文字
・最低1文字の小文字
・最低1文字の数字
・最低1文字の記号
・長さは最低7文字

 このパスワード・ポリシーを簡単に解析してみると,以下のようなものとなる。

・文字セットの数は,おおまかにアルファベット52文字,数字10個,最大12個の記号(合計74個)
・パスワードの長さは7文字以上
・大半の人は7~8文字のパスワードを選ぶ(ここに危険がひそんでいる)
・パスワードの鍵空間はおよそ74の9乗(つまり66540410775079424で,6.7×10の16乗程度)

 このパスワード・ポリシーは,筆者が目にするほとんどのセキュリティで一様に取り入れられている。これらのルールを導入するための実装部分はそれほど似通ってはいないのだが,これについては別の機会に述べたい。いずれにせよ,上記のようなパスワード・ポリシーは,ごく一般的なケースだ。

 筆者の考えるパスワード・ポリシーは,以下の通りだ(ただし,今回のポイントを証明することに主眼をおいている)。

・すべて小文字
・長さは最低15文字
・辞書に掲載されている単語でないこと

 筆者のパスワード・ポリシーを分析すると,以下のようになる。

・文字セットは26文字
・パスワードの長さは15文字以上
・パスワードの鍵空間はおよそ26の15乗(つまり1677259342285725925376で,1.7×10の21乗程度)

 これら二つのパスワード・ポリシーのどちらが強靱か確かめてみよう。解析ツール「Cain & Abel」を使用して,Webアプリケーションでよく用いられるハッシュ関数(MD5)のパスワードを,総当たりで無理やり解読するのにかかる時間を調べる。

 図1は,Cain&Abelにおいて,生徒たちの考え出した一般的なパスワード・ポリシーを基に,あらゆるパスワードの組み合わせを解読する際の画面である。


図1 生徒たちの考え出した一般的なポリシーに基づくパスワードの強度

 図2は,筆者のパスワード・ポリシーを基に,あらゆるパスワードの組み合わせを解読する際の画面である。


図2 筆者が考えるポリシーに基づくパスワードの強度

結論

・一般的に,パスワードの長さは,その複雑さよりも勝る。このことは,クラック攻撃およびレインボー・テーブル攻撃の両方に当てはまる

・ユーザーはことあるごとに,「Password1!」などの簡単なパスワードを選んでしまいがちだ。このことが信用できなければ,「ハッキング」されたMySpaceアカウントに関する分析(関連記事:MySpaceのフィッシングで収集されたパスワード,最多は「password1」)を確認してもらいたい

・自分のアカウントがよくありがちなパターン――例えばパスワードにユーザー名を含めたり,文字を不必要に多く繰り返したり,辞書に載っているような単語をパスワードに使用したり,最初の文字を大文字にしたり,あるいは最後に記号や数字を用いていたり――かどうかを確認する

・自分のパスワード・ポリシーを貫く。かつて米タイム・ワーナー傘下のAOLで生じた,旧態化したシステムでパスワードが無能力化してしまったケースを思い出してほしい

 この記事は,2007年11月20日に公開した「世界のセキュリティ・ラボから」の記事を再掲載したものです。

McAfee Avert Labs Blog
「Password policy ? Length vs. Complexity」より
November 2, 2007 Posted by Juan Bocanegra
Copyrights (C) 2007 McAfee, Inc. All rights reserved.
本記事の内容執筆時点のものであり,含まれている情報やリンクの正確性,完全性,妥当性について保証するものではありません。
◆この記事は,マカフィーの許可を得て,米国のセキュリティ・ラボであるMcAfee Avert Labsの研究員が執筆するブログMcAfee Avert Labs Blogの記事を抜粋して日本語化したものです。