ユーザーが工夫をこらしてパスワードを作っても、たいていの場合、ハッカーから身を守ることはできません。たいていのサイトで求められる複雑なパスワードの要件も、たいして役に立たないことが明らかになっています。
セキュリティコンサルタントのRick Redman氏の下の動画での説明によれば、ほとんどのウェブサイトがユーザーのパスワードに課しているルールは、時代遅れで頼りないものだそうです。
みなさんがアカウントを作成するウェブサイトでは、だいたい次のような要件が定められているはずです。
・8文字以上であること
・アルファベットの大文字、小文字、数字を使うこと
・「%」「&」「*」「!」などの特殊文字を使うこと
この要件を満たせば、パスワードの安全性が高くなるような気がします。たしかに「123456」のようなパスワードよりは安全なのですが、最先端を行くパスワードクラッカーたちにとっては、簡単に突破できる些細なハードルにすぎません。Redman氏が指摘しているように、サイトでNTLM暗号化が使用されている場合(Windowsではこれが使われています)、2000ドル程度で購入できる安価なマシンがあれば、8文字のパスワードで考えられるすべての組み合わせを、どれだけ大文字や特殊文字を使ったとしても、わずか3.7日でクラッキングできるのです。パスワードの保存にMD5暗号化を使用しているサイトでも、8日ほどあれば、8文字のパスワードで考えられるすべての組み合わせを試すことができるでしょう。LinkedInが大規模な情報漏れを起こした際に使っていたのはSHA1暗号化ですが、これも24日もあれば、すべての組み合わせをクラッキングできるはずです。パスワードクラッカーがもっと良いマシンを使える場合は、その所要時間は大幅に短くなるでしょう。
言いかえれば、LinkedInがパスワードに関してどんなルールを決めていたにせよ、件の大規模な情報漏れの際にあなたが8文字のパスワードを使っていたのなら、そのパスワードはとっくに、どこかにいるクラッカーに割り出されているということです。しかも、ここで挙げた所要時間は、割り出しに苦労するパスワードが使われていた場合のものです。
現実には、ほとんどの人が、意識的にせよ無意識にせよ、ある特定のパターンに従ってパスワードをつくります。Redman氏は、その例として以下のようなパスワードを挙げています。
Austin1!、Sports9?、Hiphop4$、Camels2%
どの例も、一般の人のパスワードとしては、いかにもありそうなものです。興味の対象や覚えやすい単語が入っていて、大文字ではじまり、サイトのパスワード要件を満たすために、数字と特殊文字が付け足されています。
ところが、この4つの例はどれも、ある特定のパターンに従っています。すなわち、大文字が1つ、小文字が5つ、数字が1つ、特殊文字が1つというパターンです。クラッカーがそうしたパターンを利用すれば、暗号化されたパスワードの解読に要する時間は大幅に短くなります。2000ドルのマシンで8日をかけなくても、パスワードクラッキングアプリを使えば、はるかに短い時間でパスワードを割り出すことができるのです。
パスワードの規定文字数を多くしても必ずしも安全になるわけではない理由も、そこにあります。8文字ではなく12文字のパスワードを作成しなければならない場合、エンドユーザーはおそらく、「Mississippi9」のようなパスワードを使うでしょう。このパスワードはベースとなる単語を長くしただけにすぎず、予測可能なパターンに従っている点は変わりません。
だからといって、複雑なパスワードには意味がないとか、パスワードを抜かれるのはユーザーの自業自得だと言っているわけではありません。みなさんが利用するほとんどのサイトでは、パスワードをどの程度まで複雑にする必要があるのか、その点が充分に説明されていません。問題は私たちの性質にあるのです。私たちが確実に覚えられるようなパスワードは、おそらくプロのパスワードクラッカーなら類推できるでしょう。唯一の安全なパスワードは、あなたが覚えられないパスワードなのです。
読み込み中…