「セキュリティーに対する重要性は理解したけれど、用語が難しくて」という声を聞くことがよくあります。そんな方に、「今だから学ぶ!」と題して、連載でセキュリティーの頻出用語を解説します。第24回は、「辞書攻撃」についてです。
辞書攻撃とは、辞書や人名リストなどに掲載されている単語や、それらを組み合わせて、パスワードなどを推測する方法の一つです。
辞書攻撃では、膨大な単語のリストを使用し、受け入れられるパスワードが見つかるまで、それらをすべて試します。最初に、名前や名詞のような分かりやすい、または不十分な選択肢から開始します。次に、単語のリスト、単語の組み合わせ、単語の合成へと進みます。
コンピュータの性能も大幅に向上していますから、これらのデータを利用して、パスワードを推測することは困難なことではありません。
しかし、実際にユーザーサイドでは、分かりやすい単語の組み合わせ以前に、非常に簡単なパスワードを利用していることもよくあります。
2016年1月19日に、パスワード管理サービスを提供するSplashDataは、恒例となるインターネットでよく使用されている「最悪なパスワード」(“Worst Passwords List”)ランキングを発表しました。
1 - 123456 (unchanged from 2014)
2 - password (unchanged)
3 - 12345678 (Up 1)
4 - qwerty (Up 1)
5 - 12345 (Down 2)
6 - 123456789 (Unchanged)
7 - football (Up 3)
8 - 1234 (Down 1)
9 - 1234567 (Up 2)
10 - baseball (Down 2)
11 - welcome (New)
12 - 1234567890 (New)
13 - abc123 (Up 1)
14 - 111111 (Up 1)
15 - 1qaz2wsx (New)
16 - dragon (Down 7)
17 - master (Up 2)
18 - monkey (Down 6)
19 - letmein (Down 6)
20 - login (New)
21 - princess (New)
22 - qwertyuiop (New)
23 - solo (New)
24 - passw0rd (New)
25 - starwars (New)
(出典:SplashData’s fifth annual “Worst Passwords List” shows people continue putting themselves at risk)
これらの例を見ても分かるように、辞書データさえ揃っていれば、簡単に侵入される恐れがあることがわかります。
パスワードの推測が難しいほど、保護は強化された状態になります。たとえば、パスワードを英数字の大文字または小文字の1文字または1桁であるとすると、62通りとなります。コンピュータを利用すれば、一瞬のうちに推測できます。しかし、英数字8桁でパスワードを作成すると、約218兆という膨大な組み合わせになります。しかし、人々は、一般に、推測しやすい組み合わせを選択して、攻撃者を有利にしてしまいます。
では、攻撃されにくいパスワードを作るにはどのようにしたらいいのでしょうか?
セキュリティーの専門家は、次のようなガイドラインを推奨しています。
- 可能な限り多くの文字を使用する (最小でも8文字。できれば10文字以上)
- 大文字と小文字を組み合わせる
- 数字と句読点を入れる
- 名前や誕生日のような個人情報は使わない
- 辞書にある単語は使わない
このガイドラインに従って、実際のパスワードを作るテクニックを紹介します。
- いくつかの単語に句読点を混ぜる “betty,boop$car”
- 単語の中に句読点を入れる “Roos%velt”
- あまり一般的ではない縮約形を使用する “ppcrnbll”
- あるフレーズの語頭の文字と数字を組み合わせる。“koreha totemo kyouryokuna password desu” = “ktk5pd”
このようなパスワードを記憶するのは、必ずしも難しい訳ではありません。強度の高い記憶できるパスワードを作るのは簡単です。
パスフレーズを使用するだけです。
たとえば、『スターウォーズ』の有名な言葉「May The Force Be With You」というフレーズを使うとします。 正確にこのフレーズを使用するだけで、1)長さが8文字以上、2)大文字、3)小文字という条件をクリアします。さらに、文字のいくつかを置き換えると、他の要件を満たせます。Mayについては“@”で“a”を置き換え、Withについては“!”で“i”を置き換え、Forceについて“For”を数字の“4”で置き換えます。そうすれば、“M@yThe4ceBeW!thYou になります。
これは強力なパスワードの例です。
しかし、パスワードは、いくら強力であっても時間をかければいずれ解読されます。そのため、パスワードは決して共有せず、誰にでも目につく場所には書きとめないでください。