パスワードを作るとき、「複雑にした自分のパスワードは絶対に安全だ」と思い込むのは危険です。
サイトがやたらと細かく、大文字・小文字、数字や記号の組み合わせを使うように求めてきた場合も同様です。こうしたルールに従うことが、パスワードを脆弱にしている可能性があります。
パスワードの組み合わせは約6600兆個。でも…
米Webroot社の上級セキュリティアナリスト、Randy Abrams氏が、簡単なテストをいくつか行ないました。大文字と小文字、数字、記号を含む8文字で作成できるパスワードをすべて数えたのです。その組み合わせは95の8乗通りで、計算すると6,634,204,312,890,625個、つまり約6600兆個になりました。
たとえば、誰かがあなたのパスワードをよくある総当たり攻撃(ブルートフォース攻撃)で解読しようとしているとしましょう。
1秒間に310億個のパスワードを試せるとします。ほどほどに複雑な8文字のパスワードを破るには、最長で212903秒、つまり3548分、約2日半かかります。
では、パスワードを作るのにルールがある場合について少し考えてみましょう。
あなたが利用しているサービスが8文字のパスワードを要求しているとします。Abrams氏は、その制約で組み合わせのうちの70兆6000億個が除外されると指摘しています。
というのも、その制約で1文字から7文字の長さのパスワードがすべて無効とされるからです。それによって、パスワードを破るのに必要な時間がなんと2277秒、つまり38分弱も短くなります。これはなかなかの数字です。
「大文字と小文字を必ず使ってください」は危険
8文字のパスワードを利用する場合(暗記できるようにするため)、安全を考慮して、サービスが大文字と小文字に加えて記号を使うよう求めていたらどうなるでしょうか?
そのほうが安全ですよね?
より複雑なパスワードになりますから、攻撃者は解読しにくくなるはずですよね?
実は、そうとは限りません。
Abrams氏が述べているように、すべて小文字のパスワードが除外されて、作成できるパスワードの数が18.5%減ってしまいます。先ほどの前提では、最長で2日間あれば、解読システムはあなたのパスワードを探り当てられるのです。
サービスがこのパスワードに数字を含めることも求めていたら――そして、あなたがそのアドバイスに従って、元の8文字のまま「複雑な」パスワードを作ったら――総当たり攻撃を行うシステムが推測しなければならない作成可能なパスワードの数を約41%減らしてしまうことになります。
先ほどの前提では、それによって最長時間を34時間、つまり1日半未満に短縮してしまうことになるのです。
「複雑で短い」より、長いパスワードが安全
短いパスワードを推測や総当たり攻撃しにくいものにする最善の方法について思い悩むぐらいなら、より長いパスワードを選ぶほうがはるかに良いと、Abrams氏はアドバイスしています。
なぜなら、サービスがパスワードに制約を設けていても、その影響はずっと小さくなるからです。
長めのパスワードにほとんど影響はないことに、あなたも気づいたかもしれません。さらに、長いパスワードに制約を加えても、たいていの場合、ほどんど意味はありません。
これは、パスワードに1文字追加するごとに、作成可能なパスワードの総数が急増するからです。小文字だけを使って作った16文字のパスワードの組み合わせ数は、4つの文字セットをすべて使って作成した8文字のパスワードの組み合わせ数の650万倍になります。
つまり、「toodlesmypoodles」は「I81B@gle」よりもはるかに解読しにくくなるのです。
たぶん、3語から成るパスフレーズは使わないほうがいいでしょう。
この方法を使うなら、代わりに必ずたくさんの単語(どんな長さでもかまいません)を使ったパスフレーズにしましょう。
最も良いパスワードの組み合わせは?
もっと良いのは、パスワード管理アプリ用に長いパスフレーズ(有名な引用句や広く知られているフレーズではないもの)を使い、2段階認証で2重のセキュリティを加えます。
その後でパスワード管理アプリを使って、ほかのすべてのサービス向けに小文字、大文字、数字、記号をすべて混ぜた16文字以上のパスワードを作り出すことです。気が変になりそうですが。
制約付きの短いパスワードしか持てないサイトにサインアップする場合は(特に、数字しか使ってはいけないサイト)、神経を尖らせましょう。
運が良ければ、そのサイトでも2段階認証を設定して、セキュリティをいくらか強化できるでしょう。
あわせて読みたい
Image: Robert Lucian Crusitu/Shutterstock.com
David Murphy - Lifehacker US[原文]