少し汗ばむくらいの陽気の中,相談室はいつものように開店休業状態だ。室長の四谷博士は,大あくびをしながら相談員の市谷君に声をかけた。

室長:いつもながら暇じゃのう。

市谷:そうですねえ…。そういえば最近,オンライン・バンキングを始めたんですよ。

室長:おお。時代の最先端って感じじゃな。

市谷:…それほどでもないと思いますが。しかし,最近のオンライン・バンキングは進んでますねえ。パスワードひとつとっても,直接キーボードから入力しないようになっているし,使い捨てパスワードを採用している銀行もあるみたいですよ。

室長:どれもパスワードが盗まれないようにする対策じゃな…。パスワード管理が甘いと,簡単に不正アクセスされてしまうからのう。

 そのとき,市谷君のパソコンがメール着信を知らせてきた。

市谷:話が聞こえたんですかね? 不正アクセスっぽい相談が来ました。読みますね。「リアルマネー・トレーディング用に蓄えていた,オンライン・ゲームのレアアイテムを盗まれました。ゲームの管理会社に言っても取り合ってもらえません。苦労してためたものなので悔しいのですが,何とかなりませんか?」。

室長:リアルマネー・トレーディングって何じゃ?

市谷:オンライン・ゲームで獲得したアイテムを現実のお金で売買することですよ。

室長:なるほど…。管理会社が動いてくれないのなら,何ともならんじゃろうなあ。…これで一件落着じゃな!

市谷:…。もうちょっと何とか答えられませんかね?

室長:詳細がわからんとなあ。そもそも,なぜ盗まれたのじゃろう?

市谷:それ,メールで質問してみますね。

室長:返事が返ってくるかのう?

市谷:…あ,もう来ましたよ,返事が。「おそらくパスワードが甘かったことが原因だと思います。管理会社にもそう言われました」ですって。

室長:なるほどのう。ちなみにどんなパスワードだったんじゃ?

市谷:また質問します…。…返事来ました。返事早いですねえ,この方。「パスワードは,“pasuwado(パスワード)”です。二度と破られないようにするには,どうしたらいいでしょうか?」(図1)。

図1●秘密にしていたパスワードが解読された
図1●秘密にしていたパスワードが解読された
オンライン・ゲーム・サイトのパスワードが解読された。二度と破られないようにするにはどうしたらいいのだろうか。

室長:“pasuwado”って,簡単すぎるも何も,論外じゃな…。

市谷:一応,英語そのままじゃないんですけどねえ。

室長:盲点を突いたつもりだったのか? 今どきそんな手は通用しないじゃろう。しかしそれよりも問題なのは,わしらの質問に答えて簡単にパスワードを明かしてることじゃなあ。

 パスワードは,第三者が不正にアクセスするのを防ぐためのもの。売買や取引をしたり,重要な情報を扱うようなときは,慎重な管理が必要だ。だが,パスワードの管理の重要性を認識しているユーザーは少ない。驚くほど多くの人が,すぐわかってしまうような簡単なパスワードを設定している。

安易なパスワードは意味が無い

 例えば英国でユーザーが設定しているパスワードのトップは,「123」だという(表1)。アンケートに正直に答えるようなユーザーはそもそも意識が低いとも言えるが,それにしてもこんなパスワードでは,ほとんど無いも同然だ(表2)。

表1●英国でよく使われるパスワードのトップ10   表1●英国でよく使われるパスワードのトップ10
英国のスチュアート・ブラウン氏のブログ「Modern Life」(http://www.modernlifeisrubbish.co.uk/article/
top-10-most-common-passwords)
による。

表2●日本のクラッカが攻撃に使うパスワードのトップ10  表2●日本のクラッカが攻撃に使うパスワードのトップ10
警察庁の分析レポート (http://www.cyberpolice.go.jp/server/rd_env/pdf/20060817_SSH.pdf)による。SSHサービスに対する攻撃を調べたもの。

市谷:liverpool(リバプール)にarsenal(アーセナル)かあ。英国人はやはりサッカーが好きなんですね。

室長:じゃな。しかし,パスワードのランキングが人気のバロメータになるとは,セキュリティ上は由々しき事態じゃのう。

市谷:いっそのこと,超マイナーなチームにしちゃえば安全ですかね?

室長:いや。マイナーとかメジャーとかは関係ないのじゃ。

 パスワードに対する攻撃方法で代表的なものは,「辞書攻撃」と「ブルート・フォース攻撃」である(図2)。いずれもパスワード入力を何通りも試して,正しいパスワードを解読する。

図2●盗まれなくてもパスワードは解読されてしまう
図2●盗まれなくてもパスワードは解読されてしまう
よく使われる文字列はすぐに解読される。そうでなくても総当たりで試されればいつかは破られる。

 辞書攻撃は,パスワードに使われそうな単語の一覧表を“辞書”として持ち,それを次々に試す方法(図2のA)。サッカーのチーム名といったパスワードが危ないのは,辞書攻撃で簡単に解読されてしまうからだ。

 よくあるパスワードの英字を記号に置き換える方法は,単純な辞書攻撃にはある程度有効だ。例えば「sonodam」の「s」を「$」に,「a」を「@」に置き換えて,「$onod@m」にするといった具合だ。ただし,最近はこのような置き換えに対応できる辞書攻撃ツールが存在するので,安心できない。

 一方ブルート・フォース攻撃は,総当たり攻撃とも呼ぶ。これは,可能な文字の組み合わせをすべて試す方法である(同B)。この攻撃にかかれば,理論上はどんなパスワードもすべて解かれてしまうことになる。

市谷:パスワードに単語を使うのは論外なんですね。でも結局はどんな文字列でも解読されてしまうんですか。

室長:そうなんじゃ。ただしパスワードは,長さや文字によって解読しやすさが大きく変わるんじゃ。そこで気をつけねばならないのは,長さや文字を工夫してパスワードの寿命を可能な限り長くすることなんじゃよ。

 ブルート・フォース攻撃によってパスワードが解読されるまでの時間は,使う文字の種類やパスワードの長さに大きく左右される(表3)。

表3●使う文字の種類と桁数による,パスワードの組み合わせ数と総当たり所要時間
表3●使う文字の種類と桁数による,パスワードの組み合わせ数と総当たり所要時間
総当たり所要時間は毎秒40万回のペースで攻撃することを前提に計算した。
[画像のクリックで拡大表示]

 例えば数字4桁のパスワードの種類は1万通り。クラッカがブルート・フォース攻撃で最大1万回試行すれば,パスワードは解読できてしまう。もちろんこの回数は「最大」で,クラッカは通常もっと早く解読に成功する。ただし,数字や文字などの組み合わせが多くなれば,それだけ寿命は延びるのである。

 パスワードの組み合わせを多くする方法は二つ。一つは使う文字の種類を増やすこと。もう一つは,パスワードの桁数を増やすことだ。