WebメールやSNS、さらにはチャットツールやオンラインゲームなど、インターネット上のさまざまなサービスの利用を始めると、多数のアカウントの管理が必要となってきます。今回は、そういったアカウント、特にパスワードの管理方法についてまとめたいと思います。
使ってはいけないパスワード
昨年1月のことになりますが、米インパーバ(Imperva)が、ソーシャルゲームを開発する米ロックユー(Rockyou)から流出した3200万件のアカウントを調査し、もっとも多く使われているパスワードについて報告しています(インパーバ「3200万件の漏洩 パスワード解析結果を公表」)。
これによると、使われているパスワードの1位は「123456」で、29万731件もありました。2位は「12345」で7万9078件、3位は「123456789」で7万6790件と、数字を順番に並べただけのパスワードが続きます。8位と9位にも「1234567」と「12345678」がランクインしています。こういった簡単なパスワードや辞書に登録されている単語を使用したパスワードが、全体の20%ほどのユーザーが使用していると報告されています。当然ながら、このようなパスワードは、マルウェアや攻撃者の格好の標的になってしまいます。
1位から10位までのパスワードは、以下のようになります。
- 123456
- 12345
- 123456789
- Password
- iloveyou
- princess
- rockyou
- 1234567
- 12345678
- abc123
こうした情報を実際に利用するのが、8月末に発見されたWindowsのリモートデスクトッププロトコルを利用して感染を行なうマルウェア「Morto」です。このマルウェアに感染すると、他のPCに対してリモートデスクトップサービスの使用ポートであるTCP 3389番に接続を試みます。もしサービスが動作している場合、administratorのアカウントに対しマルウェアに埋め込まれている複数のパスワードでログインを試みるのですが、この中にはインパーバの報告にあったパスワードが多数含まれているのです。
リモートデスクトップの画面。遠隔のサーバー管理などによく利用される
これはあくまでも「Morto」の亜種の1つが使用するもので、亜種の種類によっては別のパスワードが使用される場合もあります。ですが、少なくともここに記載したパスワードを使用している場合は、すぐに変更すべきです。
強力なパスワードの作り方
それでは、どのようなパスワードを使用するのがよいのでしょうか。パスワードを設定する際には、8文字以上で、
- アルファベットの大文字
- アルファベットの小文字
- 数字
- 記号
のすべてを含んでいるのが、望ましいとされています。これは、パスワードを破る2つの代表的な攻撃手法に対抗するためです。
1つめの攻撃方法は、「ブルートフォース攻撃(Brute Force Attack)」と呼ばれるもので、いわゆる総あたりでパスワードを試す方法です。1桁ずつすべてのパスワードの順列を試していく方法のため、パスワードの桁数を多くすることで対抗できます。
たとえばパスワードに使用できるのがアルファベットの大文字と小文字、数字の0~9、5種類の記号の場合、使われる可能性がある文字種は1桁につき67種類です(26+26+10+5=67)。これが8桁ある場合は、67の8乗で406067677556641通り、つまり400兆通り以上になります。1秒に100万回試したとしても、すべてを試し終わるのに12年以上かかる計算です。平均して半分でヒットするとしても6年です。
ところが、これが6桁だけだと「90458382169通り」つまり約900億通りと大幅に減ってしまい、同じ計算で半年しかかかりません。さらに減って4桁となると、1日を切ってしまうのです。
もう1つの攻撃方法は、「辞書攻撃(Dictionary Attack)」と呼ばれるもので、辞書に載っているような単語を使ってパスワードを試す方法です。これには、パスワードが辞書に登録されていないような文字列にすればよいため、アルファベット、数字、記号を組み合わせることが推奨されています。
パスワードをどう管理するか
強力なパスワードを作ることそれ自体は、難しいことではありません。自分で考えつかない場合は、ランダムな文字列のパスワードを生成するプログラムを利用することもできます。しかし、多くのサービスでパスワードが必要とされる現在、強力なパスワードを個別に作り、管理していくのは困難な作業でもあります。
辞書攻撃に対抗しようと思うと、どうしてもランダムな文字列になってしまいますし、それが8桁ともなると覚えきれるものではありません。かといって、付箋に書いてPCに貼ったり、ましてやテキストファイルに保存してしまってはソーシャルエンジニアリングやマルウェアの餌食になってしまいます。
もし、自分で管理・運用しているシステムであれば、費用がかかりますが、セキュリティトークンを使用するという解決策があります。セキュリティトークンは、時刻などを元に一定時間有効なパスワードを生成するもので、ユーザーは自分でパスワードを考える必要はなく、表示されるパスワードを入力するだけで済みます。ただし、セキュリティトークン自体が紛失していないかなどの管理を行なう必要があります。
そういったコストをかけられない、あるいは自分で管理しているシステムではないためセキュリティトークンを使えない場合は、特殊な方法でメモをすることをお勧めします。
たとえば、普段「sh197!fe」というパスワードを使っている場合、メモには「srhg15977s!df@e1」のように書きます。そして自分は奇数桁だけを使うということだけを憶えておくのです。もちろん奇数桁だけを使うということすら忘れてしまった場合は、パスワードの再発行などが必要になりますが、8桁のランダムな文字列をまるまる暗記するよりは、はるかに簡単でしょう
使いまわしや永続使用は禁止
当然ですが、強力なパスワードであっても、使いまわしをすれば一カ所でも破られた場合の被害が大きくなるため、やってはいけません。また、使用している期間が長ければ長いほど、パスワードが破られる危険性が高まるため、一定期間で変えていく必要があります。メモを使うにしても、何十個もアカウントを管理することはたいへんなため、使うサービスなどを吟味して、本当に必要なものだけを使うようにしましょう。
筆者紹介:富安洋介
エフセキュア株式会社 テクノロジー&サービス部 プロダクトエキスパート
2008年、エフセキュアに入社。主にLinux製品について、パートナーへの技術的支援を担当する。
この連載の記事
-
最終回
TECH
セキュリティの根本はインシデントに備えた体制作りから -
第54回
TECH
マルウェア感染の被害を抑える「転ばぬ先の出口対策」 -
第53回
TECH
マルウェア感染を発見した際の初期対応 -
第52回
TECH
ついに成立したサイバー刑法に懸念点はないか -
第51回
TECH
施行されたサイバー刑法における「ウイルス作成罪」の内容 -
第50回
TECH
サイバー刑法が過去に抱えていた問題点 -
第49回
TECH
ウイルス作者を取り締まるサイバー刑法ができるまで -
第48回
TECH
医療ICTの今後の広がり -
第47回
TECH
重大な情報を扱う医療ICTのセキュリティ対策 -
第46回
TECH
医療ICTの柱「レセプト電算処理システム」の仕組みと問題 -
第45回
TECH
医療分野で普及が進む電子カルテシステムの課題 - この連載の一覧へ