(Mark Joseph Edwards)

 長らくパスワードは,「より長く」「より複雑な」ものが好ましいとされてきた。短くて単純なパスワードは長く複雑なパスワードよりもはるかに簡単に破れるからだ。ランダムに生成されたパスワードを好んで使う人もいる。普通はそのほうが特定の言語の既知の言葉を変形して作ったものより,破るのが難しい。

Windowsではパスワードに最大127文字が使える
 ご存じのようにWindows 2000以降のOSでは,最大127文字までのパスワードが使える。文字としては,句読点と特殊文字のほかにUnicodeの文字が利用可能だ。127文字なのは,パスワードの文字を格納する配列の長さが256バイトだからだ。Unicodeでは1文字を表すのに2バイト必要である。そのため,配列に記録できる文字の最大数は127,つまり配列のサイズの約半分になる。

 127もの文字を利用すれば,今われわれの多くが使っているものより複雑なパスワードやパスフレーズ(パスワード文)が作成できる。私にとっては,パスワードとパスフレーズの唯一の本質的な違いは,パスフレーズが間をスペースで区切った単語の集まりで,パスワードより大抵の場合長い,ということぐらいだ。

長くしたらパスワードの代わりにパスフレーズを使うべき
 読者のみなさんの中にはMicrosoftのセキュリティ・インシデント・レスポンス・チームのメンバーとして働くRobert Hensing氏をご存知の方がいるかもしれない。同氏はブログ(RSS配信版該当サイト通常のWeb版該当サイト)を持っている。彼は7月に面白いブログの記事(該当サイト)を書いていた。そこにはパスワードの代わりにパスフレーズを使うべきだと書かれている。

 Hensing氏は,記事でなぜ長いパスフレーズを使ったほうがよいと思うか解説している。結局はそのほうが破るのに時間がかかるからだ。パスワードに使われそうな文字のハッシュ値をあらかじめ計算しておく手法を使えば,パスワードを最小の時間で破れる。

 短い単一の単語のパスワードはあまり安全ではない。あらかじめ計算したハッシュ値やパスワード・クラッキング・ツールを使うと簡単に破れる。しかし,複数の単語やランダムに生成された文字の組み合わせを入れて作った長いパスフレーズはクラッキングがはるかに難しい。解読に非常に長い時間がかかるためだ。パスワードによるセキュリティ確保の前提の1つは,パスワードはそれを破るために必要な時間よりも寿命を短くするべきだ,ということだ。そうすればパスワードはそれが破られる前に,変更されて安全だ。

最低でも24文字を使う必要があるならユーザーはパスフレーズを作る
 もちろん,あなたのパスワードを知りたがっている存在の中には,分散コンピューティングや超高速コンピュータなど,平均的な侵入者よりも非常に早く,しかも長さに関係なくパスワードを破れるような手法を使える連中もいるだろう。だがほとんどの侵入者はそうした環境を利用できない。そのため,パスフレーズを使ったり,それを頻繁に変えたりすることで大部分の侵入者を寄せ付けないようにできるはずだ。さっそくやってみようではないか。

 ユーザーにパスフレーズの利用を強制するには,一定数の文字をパスワードに使わなければいけないようにポリシーを設定すればよい。例えば最低でも24文字を使う必要があるなら,ユーザーは長い文字列よりも簡単に思い出せる文を考えようとするだろう。もしこのコンセプトに興味があるなら,Hensing氏のブログを読んで,いろいろな読者からのコメントを吟味してみることだ。