今回は、安全なパスワードって、どんなパスワード? の続きということで、ハッカーがどんな方法でパスワードを盗むのかということについて書きます。これが分かれば、どういうパスワードが強いのかということも分かってくるはずです。
ただ、具体的な話をはじめる前に、先にいっておきたいことがあります。
「俺は、ちゃんと8文字以上のパスワードで、英字(大・小)、数字、記号も使ってるから関係ないね!」と思っている方、その安心感は捨てたほうがいいです。英字、数字、記号を使った8文字のパスワードを解読するには、何十日〜何百日かかるから安全だという話をよく聞きますが、あまり信用しない方がよさそうです。なぜなら、コンピューターに、あらゆる可能性をすべて試させた場合にかかる時間だからです。 例えば、”aaaaaaaa, aaaaaaab, aaaaaaab”といった感じに、すべてのパターンを試させる場合です。
でも… ハッカーがそんなアホなことをやる訳がありません。そんなことをやっているのが周りのハッカー仲間にバレたら、間違いなくイジメられることでしょう。
ハッカーたちが使う手法について調べた結果いえることは、ハッカーというのは、ものすごくスマートで、勤勉で、それでもって繊細かつ大胆な生き物だということです。それでは、彼らの偉大なアートを紹介しましょう!!
ここで使っているのは、とりあえずハッカーを褒めて褒めて褒めまくれ作戦です。嫌われたら攻撃される確率が上がってしまうので… これも重要なプライバシー対策の1つですね。
ハッカー物語:パスワード求めて三千里
Photo by mikael altemark
ここで紹介するのは、ハッキングの中でもパスワードを暴く手法に限ります。その他にも、偽サイトを使ってあなたにパスワードを書かせようとしたり、ウィルス感染でパスワードを盗もうとしたりといった手法もあります。しかし、たとえどんなに強力なパスワードを作っても、これらの攻撃の対策にはなりません。今回は、いかに強いパスワードを作るかということが関心なので、パスワードを盗むタイプの攻撃はバッサリ省きます。
ハッカーがパスワードを暴く方法には、辞書攻撃(dictionary attack)というものと総当たり攻撃(brute force attack)というものの2つがあり、基本的には、この2つを組み合わせた形で攻撃が行われます。それでは、順番に見ていきましょう!
1. 辞書攻撃
文字通りの意味です。辞書に載っている言葉をつかってパスワードを解読しようとする手法を指します。ただし、その「辞書」がどんな辞書か、というのがミソです。辞書攻撃で使う辞書とは、単なる英単語の辞書のことではなく、パスワードとして使われていそうな単語や数字、記号のパターンが集められたものです。まあ言い換えれば、偉大なるハッカーの先人たちが残した、ハッキング大辞典です。
この辞書の質が高ければ高いほど、ハッキングのスピードは早くなります。本当にいいものは、文字や数字、記号がそれぞれどこに配置されるのか、というパターンまでもが反映されています。パスワードを作るのが人間である以上、どうしても記憶しやすいパターンが好まれてしまいます。例えば、ほんとんどの人は最初の文字が大文字で、最後の方に数字や記号が来るといった具合にです。こういうパターンも辞書にしっかりと反映されている訳です。
この辞書攻撃、例えるとするならば、優秀な指揮官です。
Photo by Dennis Jarvis
そう、ヨーロッパを席巻したフランス人の天才指揮官、ナポレオン・ボナパルトのプログラムバージョンだと思ってください。最強です。おまけに馬にも乗れます…
ハッカーはナポレオンを味方につけている訳ですから、体力だけを消耗するようなムダな攻撃はしかけて来ません。あなたの弱みを見抜き、そのポイントだけを的確に攻撃してきます。
辞書攻撃とは、最小限の戦力を使って、最大限の結果を出すツワモノな訳です!!
2. 総当たり攻撃
これも文字通りの意味です。可能な組み合わせをすべて試していくという、かなり力任せの戦法のことです。ここでは当然、人間が地道にキーボードをカタカタやる訳ではなく、コンピューターに自動でやらせます。なので、コンピューターの性能がものをいいます。ちなみに、最近の性能だと、英字6桁のパスワードは数秒で解読されるみたいです。あっという間ですね。
この総当たり攻撃、例えるとするならば、特殊部隊です。
Photo by The U.S. Army
そう、アメリカが世界に代表する特殊部隊、SEALsのバーチャルバージョンだと思ってください。最強です。おまけに筋肉ムキムキです。
ハッカーはSEALsをも味方につけているわけですから、消耗戦においても最強のパフォーマンスを見せます!
総当たり攻撃とは、結果を出すまで走りつづける、体力MAXのモンスターな訳です!
辞書攻撃 + 総当たり攻撃 = 最強
先にも言いましたが、ハッカーは、辞書攻撃と総当たり攻撃を組み合わせて攻撃してきます。
ナポレオンとSealds、最強の頭脳と最強の体、の二つでもって攻撃してくるんです!!
生半可なパスワードなんて、ものの一瞬で見破られます。勝ち目ゼロです!
ハッカーの攻撃に耐えうるパスワードとは
結論からいいます。
ハッカーの強力な攻撃に耐えることのできるパスワードとは、時間を割いて考え抜かれた法則を持つパスワードです。
結局のところ、予測可能なパスワードはすぐ見破られます。それを避けるためには、ちゃんと時間を作って、自分だけの法則を作る必要があります。その法則がオリジナルなものであればあるほど、予測は難しくなります。しかし、決して何日もかけろといっている訳ではありません。10〜20分ぐらい時間をかければできることだと思います。
それじゃあ、具体的にはどういう法則にすればいいのか? ハッカーの攻撃方法を参考にした上で、次の二つのルールをそれぞれ個人の法則に入れることがもっとも効果的であると言えます。
文字数の多いパスワード
単純といえば単純ですが、文字数が多ければ多いほど、パスワードを予測することは難しくなります。ただし、文字数が多いと言っても、「123456789」のようなパスワードでは意味がありません。これでは、未だに全裸で鬼退治に行っています。勝ち目はありません。
ポイントは予測しにくいものを作ることです。効果的な方法は、パスワードではなく、「パスフレーズ」にすることです。そうです、単語ではなく文です!! 例えば、今年の自分の目標を使ってみるというのはどうでしょうか? ”Kinnen ni shippai shita koto wo dare ni mo barasanai” みたいな感じですね。ちなみに、禁煙には成功しています(笑)
これなら、自分の目標なんで覚えやすいですし、パスワードを書くたびに目標を再認識できるというおまけも付いてきます。一石二鳥ですね!
自分だけのタイピングルール
長いパスワードに、自分だけのタイピングルールを組み合わせれば、さらに効果的です。さっきのパスワードを例にみてみましょう。
各単語の頭文字だけを使う。
“Kinnen ni shippai shita koto wo dare ni mo barasanai” → ”knsskwdnmb”
さらに、関連する数字や記号を付け加える。この時、数字や記号をどう配置するかのルールも考えた方がいいでしょう。ランダムに分布させた方が効果的です。この場合、例えば禁煙することで月1万3千円節約できるということで、次のようにします。
“knsskwdnmb” → ”knss$k13.n0m0b0”
こんな感じです。今年の抱負と自分だけのタイピングルールを使って、15文字の意味不明なパスワードが完成です。しかも、意味不明なわりには覚えやすいはずです!
以上、みなさんも10分か20分だけでいいので、自分のパスワードのことについて真剣に考えてください。ハッカーは考えられないくらいの時間と労力を投資して、攻撃してきます。
人生の1日の、たった数十分ぐらい使うのが当然だと思うのは、僕だけですか!?
P.S. 前回に引き続き、もう一度言います。決してハッカーになりたい訳ではありません。