パスワードは、複雑であれば複雑であるほど破られにくい。このため、パスワードの作成方法を解説する書籍や雑誌の記事の多くには、「理想論」が並べられている(図1)。

確かに、理想の条件を満たせばパスワードは強くなるが、作成することが難しくなり、覚えていることも困難になる。パスワードの強度と、作成・管理の負荷はトレードオフの関係なのだ。
要求が厳しすぎると、ユーザーは「理想的なパスワード」は無理と諦めて、安易な文字列をパスワードに設定してしまう。実際、Webサービスなどから流出したパスワードを見ると、ユーザーの多くは、簡単な文字列をパスワードにしていることが分かる(表1)。

パスワードの流出事件・事故は、世界中で頻繁に発生している。流出したパスワードの一部は、インターネットの掲示板に掲載されるなどして、一時的に誰でも入手可能になる。セキュリティ会社などは、そういったパスワードを収集して分析し、どういったパスワードが多いのかを公表している。
「123456」が使われる
公表されたデータによれば、いずれの事例でも「123456」が上位に入っている。「password」や「abc123」といった文字列をパスワードにしているユーザーも少なくない。
これらの文字列をパスワードに設定していると、容易に推測されて破られる。パスワード破りツールの辞書にも収録されているので、これらのパスワードは、破られて当然だと考えた方がよい。
では、破られないパスワードはどうやって作ればよいのか。前述のように、利用しているWebサービスごとに、全く異なる複雑なパスワードを用意するのは難しい。
ただ、セキュリティは0か1の世界ではない。「理想を実現するのが無理だから諦める」のではなく、「理想を実現できなくても、できるだけ破られにくくする」ことが重要だ。
そこで、本特集で提唱したいのは、「少数の"マスターキー"を用意し、それをアレンジすることで、複雑なパスワードを複数作成する」という現実解だ(図2)。

できるだけ複雑な文字列をマスターキーとして作成する。その文字列に、サービスごとに異なる短い文字列を追加して、パスワードを作る。この方法なら、十分な強度を期待できるとともに、比較的容易に新しいパスワードを生み出せるだろう。