インターネットの普及が本格的に始まった頃、私は中学生でした。携帯電話も徐々に広まっていましたが、中学生にはまだ早いと判断する親も多く、デスクトップPC(しかもCRT!)で友達とメールを楽しんでいました。
そんな、ある日ワケのわからない遊びが流行り出します。フリーメールアドレスを作り、そのアカウントのパスワードを暴き出す、というものです。そこで使われていたパスワードは誕生日や本名といった3秒くらいで解読できそうなものから、みんなが解読不能なものまで色々ありました。
友達内でやっていたから笑える過去話で済みますが、これが全く知らない人にやられたら……と思うと、ぞっとしますね。
最近また、パスワードを突破され、不正ログインされるという事件をよく聞くようになりました。特にWordPressのユーザーネーム「admin」に対して辞書攻撃を仕掛ける一件は、ウェブ管理者に大きなインパクトを与えましたね。
全世界のWordPressサイトに大規模攻撃; デフォルトのアドミンユーザ名’admin’がねられている(TechCrunch)
他にもgooの10万IDに対しても辞書攻撃による不正アクセス事件がありました。
「gooID」に不正ログイン攻撃、10万アカウントが突破される(Internet Watch)
スパムウェアやフィッシングサイトといったツールを通したアカウント情報の抜き取りにも注意が必要ですが、今回は辞書攻撃による被害を無くすためのパスワード生成方法を考えてみましょう。
パスワード
まずは、WordPressやgooの不正アクセスに使われた『辞書攻撃』について復習しましょう。
辞書攻撃はパスワードで使われやすい文字列を組み合わせて突破していく方法です。広義の内容になると、ブルートフォースアタック、総当たり法とも言われます。その名の通り、あらゆる文字の組み合わせを試していく解読方法になっていきます。原始的ですが、認証失敗の回数制限が設けられていない場合、パスワードを突破される可能性があります。
参考までに、情報処理推進機構(IPA)が発表している辞書攻撃で解読するまでにかかる時間を掲載しています。
(Credit: IPA)
4桁未満では、どんなに難しくしても9分以下という短時間で突破されてしまいます。逆に10桁以上なら膨大な時間がかかることがわかります。
他にも、12文字のパスワードを解読するのにかかるコストは1億6500万円であるのに対し、4文字の場合は1円以下である、というデータもあります。
12文字は1億6500万円 IPA、パスワード解読コスト試算(日本経済新聞)
しかし、分かっていてもパスワードを分かり辛くするのは難しいものです。考えるのが難しかったり、自分で覚えるのが面倒など色々な理由があります。
それでは、簡単に考えられながらも、破られにくいパスワードとは無いのでしょうか? 少し考えてみましょう。
1. ベースとなる文字列をいくつか出してみる
普段パスワードで使っているような文字列でかまいません。一度箇条書きにしてみてください。
私の例であれば…
- knowledge7p(ゲームで使っているHN)
- siratama(同上)
- keiichi(本名)
- futaba(通っていた小学校)
- asakusa(よく行っているので)
- 1014(誕生日)
こんなものでしょうか。
2. 色々と入れ替えてみる
いくつか方法を考えられますが、今回はそれぞれの最初と最後の文字を抜き出してみましょう。
k s k f a 1 p a i a a 4
かなりランダムになりましたね。より適当に混ぜていくと、
k 4 s a k a f i a a 1 p
となります。ちなみにこれは前、後ろ、前、後ろと並べた結果です。もう何がなんだかわかりません。
3. サイトごとにランダムなものを混ぜてみる
例えば、パスワードを作っている時間を入れてみましょう。私がこれを書いている時間は18:03なので、
1 8 0 3
を入れます。単純に後ろに突っ込んだだけでも、
k 4 s a k a f i a a 1 p 1 8 0 3
となり、桁数(16)・ランダム性もかなりのものになります。
4. 時々大文字を入れる
大文字を混ぜるとより解読され辛くなるのは、IPAの資料の通りです。適当な場所を大文字にしてみましょう。
K 4 s a K a f I a a 1 p 1 8 0 3
KとIを大文字にしてみました。
5. パスワードチェッカーを使う
この方法で作ったものを、パスワードチェッカーにかけてみましょう。実際に使うものですから、安心できるところでかけることをオススメします。ここではMicrosoftのパスワードチェッカーを使うことにしましょう。
https://www.microsoft.com/ja-jp/security/pc-security/password-checker.aspx
『強い』となりました。ちなみにこの後6桁ほど適当にキーボードを叩くと『非常に強い』と出ました。ここまですると覚えられなさそうですが、不安なら『非常に強い』を目指すためにベースとなる文字を増やしたり、サイトごとに使うランダムな数字を増やすとよいでしょう。
6. どこにメモを取るか
回答となるものを作成しては本末転倒です。
サイトごとにキーとなるもの——入れ替えるときに使ったパターンやサイトごとに入れたランダムな文字——をメモ帳に入力しておくとよいでしょう。
直接的な回答は入れてはいけません。
まとめ
ソーシャルメディアやWEBサービス、勤怠管理等々、あらゆるものにパスワードが求められるこの時代。簡単に解読されないパスワードにすることは自己保身の第一です。
アカウントが乗っ取られないパスワードを作成しましょう!
(Photo: 南京錠 クローズ 茶色 金属 鍵穴 by PDPhotos)