ツイッター、フェイスブック、GmailにPaypal、オンラインバンクまで...。私たちは毎日、多くのウェブサイトを利用しています。複数のウェブサイトで同じパスワードを使いまわすことがセキュリティリスクを高めることは、もはや常識ですし、複数の文字種を使って、できるだけ長いパスワードを作ることが望ましいことも、みなさんすでにご存知かとは思います。しかし、すべてのウェブサイトをセキュリティ度の高いパスワードで、別々に管理するのはかなり困難です。

ウェブアプリ開発歴15年の開発者で、アプリケーションセキュリティやソフトウェア開発のプロセスなど、テクノロジーに関する記事を自身のブログ「troyhunt.com」に執筆しているTroy Hunt氏は、実際に発生した事例をもとに、パスワードの使い回しのリスクについて詳しく述べるとともに、セキュリティリスクを軽減するためのパスワード管理ツールの活用を、次のように勧めています。ポイントは、「パスワードは覚えなきゃいけないもの」という思い込みを捨てる、ということのようです。

 ■「覚えておくために、類推しやすいものを、使い回してしまう」という問題

私たちは、いったいインターネットでいくつのアカウントを持っているのでしょうか? 筆者は、90個だったそうですが、たとえ10個程度のアカウントでも、セキュリティ度が高く、かつ覚えやすいパスワードを別々に作るのはほぼ不可能です。よって、家族の名前、ペット、趣味など、予測できる基準を含むパターンになってしまいがち。しかしこれは「諸刃の剣」。覚えやすい反面、類推されやすいので、ひとたび知れてしまうと、大きな問題が起こってしまいます。あるパターンや類推されやすいワードはよくありません。しかし、もっと悪いのはパスワードを使いまわすことです

■セキュリティ度の低いパスワード

そもそも、セキュリティ度の低いとは何でしょう?

強いパスワードとは、いわゆるエントロピーが高いものをいいます。シンプルにいえば、できるだけ長くて、文字種も順序もランダムなものです。しかし、エントロピーに関するwikipediaページ(英語)では、「人々は、必要なセキュリティ度を満たすパスワードを作成すべく、十分なエントロピーを得ることに怠慢だ」と指摘されています。

では、実際に起こった事例をみていきましょう。

2010年12月、Gawkerが被害に遭い(これについては、米Lifehacker記事・英文も参照のこと)、多数のユーザアカウントが流出しました。さらに悪いことに、これらのアカウントはオンラインに投稿され、誰がどのパスワードでそのサービスにログインしているか? を、誰でも見られる状態だったそうです(なお、ライフハッカー[日本版]では、この件の影響は一切受けていません)。

パスワード強度の観点からいえば、セキュリティ度が極めて低いパスワードが横行していたことです。

123456、password、12345678、qwerty、abc123、12345、monkey、111111、consumer、letmein、1234、dragon、trustno1、baseball、gizmodo、whatever、superman、1234567、sunshine、iloveyou、fuckyou、starwars、shadow、 princess、cheeseなど


これら25のパスワードは、Gawkerアカウントで、あわせて13,411回使われていた(英文)とのこと。使用頻度が一番多かった「123456」だけで、2,500回という数字です。

同様の被害は、2011年2月「rootkit.com」でも起こりました。セキュリティを破られたデータベースのパスワードを分析したところ、トップ25のパスワードは次のとおり。Gawkerの事例と似ています。

123456, password, rootkit, 111111, 12345678, qwerty, 123456789, 123123, qwertyui, letmein, 12345, 1234, abc123, dvcfghyt, 0, r00tk1t, ìîñêâà, 1234567, 1234567890, 123, fuckyou, 11111111, master, aaaaaa, 1qaz2wsx


さらに問題なことに、対応するユーザ名やメールアドレスまで、カンタンに閲覧できてしまったのです(下画像参照。ユーザ名・メールアドレスはぼかし修正済)。

110328password-security2.jpg

以上の事例を見れば、なぜ、セキュリティ度の高いパスワードが重要なのかが、わかることでしょう。パスワードは、データベースの中で暗号化して保存されていました。これらのウェブサイトにおける問題の本質は、暗号技術を徹底的に調べずに、暗号化がきちんと導入されていなかったことです。

rootkit.comのような十分に暗号化されていないデータベースが公開されると、ハッカーは一般的なパスワードのディクショナリーを使ってデータベースとこれらを比較し、一致するものを探すことで、暗号プロセスを作り直せます。もちろん、このプロセスは何百万回も繰り返す必要がありますが、ほとんど自動化されている作業です。パスワードディクショナリーは、一般的に入手可能ですし、データベースを破るために、これらのディクショナリーを走らせるソフトウェアもあります。

最大の制約条件として、リソース集約的なプロセスを実行するには、コンピューティングパワーが必要という点が挙げられます。しかし、これは目覚しい速さで進歩しているものです。毎秒40万パスワードをテストするのに十分な処理パワーは、毎分たった28セントでカンタンに手に入ります(英文記事)。

パスワードが認識されやすいパターンに準じていると、パスワードディクショナリーにも含まれているかもしれませんし、家族の名前など、ユーザにまつわる公知情報をベースに類推されてしまう可能性もあります。また、パスワードが短かったり、文字のバリエーションが十分でなければ、それほど労力をかけずに見破ることが可能です

■パスワードの使い回し

おそらく、複数のウェブサイトで同じパスワードを使いまわしてはいけないことは、多くの人々が認識していると思います。では、なぜダメなのでしょうか?

最近筆者に、警察のスピード違反の取り締まりスポットを共有し合うウェブサービス「trapster」から、次のようなメールが届いたそうです。ウェブサイトがハッキングに遭い、ユーザのメールアドレスやパスワードに危険が及んでいる可能性がある、とのことでした。

110328password-security3.jpg

もし、メールアドレスやパスワードがこのサイトだけならばまだいいですが、これらがソーシャルネットワークや金融機関にも使われていたとしたら、自分の財産にも名声にもおおいに影響を及ぼします。実際、この出来事の翌日、「2年前に削除したはずのTrapster経由で、自分のGoogleアカウントがハッキングされた」というツイートがありました。

110328password-security4.jpg

Gawkerの事例でも、Gawkerアカウントを持つツイッターユーザの間で「acai berry(アサイベリー)スパム」が騒がれました。Gawkerのデータベースは大きく、パスワードの使い回しも多かったため、多くのツイッターアカウントが危険にさらされたのです。

これらの2つの事例をみれば、パスワードを使いまわしたときに何が起こるかがわかります。一方で、Gawker/rootkit.comのハッキングでパスワードを盗まれたユーザを分析したところ、パスワードの使い回しが非常に多いことが判明しました(英文)。

この問題は、明らかにウェブサイトのセキュリティの脆弱さゆえ、という面がおおいにあります。基礎的なセキュリティフローに基づいてウェブサイトを構築するのは、とてもカンタンなことです。この分野におけるもうひとつの問題は、ソフトウェア開発者が、「自分たちのウェブサイトで扱う情報は機密性の高いものではないので、セキュリティはそれほど重要ではない(英文)」という態度をとってしまいがちという点。いうまでもなく、このウェブサイトと同じパスワードを、PayPalのような決済サービスのアカウントに使いまわせば、深刻な問題が発生するおそれがあります。

ウェブサイトでのユーザ名の多くはメールアドレスなので、それほど選択肢はありませんが、ひとつのデータベースが破られると、ユーザ名とパスワードが一致するだけで他のアカウントをも危ぶませることになります。実際、「ユーザ名が個人情報を漏洩させるかもしれない」という考え方もあり、Hotmailにはスパム対策のため、別メールアドレスがカンタンに作成可能です(このテーマについては、ライフハッカーアーカイブ記事「Hotmailでスパム対策用の強力なオプションとしてエイリアスが作成可能に!」参照)。

■これらのセキュリティリスクはどのくらい広まっているのか?

前述のGawker、rootkit.com、Trapsterは最近の事例ですが、ほかにも多くの事例があります。たとえば、オンライン出会いサイト「Plenty of Fish」の例。

110328password-security5.jpg

石けんブランド「Lush」の英ウェブサイトも、2011年初めにハッキングに遭いました。英国居住者でなければ、Lushのアカウントは安全か? というとそうでもありません。他人事ではないのです。

110328password-security6.jpg

すべてのものが攻撃のターゲットになっています。マルウェアはこれよりもっと悪質で、無差別です。現在、5,000万のウイルスがあり、2010年には、2,000万のウイルスが人々を襲いました。脅かしているわけではなく、前述の事例はその一部であり、極めて普通の出来事になっていることを理解する必要があります。つまり、不心得者の攻撃から身を守れるかは自分次第ということです

■「安全な」パスワードという誤った通念

「安全な」というワードは、まるで絶対的な語のようにしばしば投げかけられます。しかし、Stuxnetウイルスを見ると、それが神話でしかないことがわかります。イランの原子力施設で遠心分離器を制御していたコンピュータが、すべてインターネットから切断され、ウイルスのターゲットとなりました。これらのシステムは「安全」と考えられていたはずのものです。

クルマにおける「安全」のようなもので、あるもののほうが、他ののものよりもいいということはもちろんあるでしょうが、むしろ、リスクを軽減することを身につけるべきです。たとえば、パスワードをカンタンにすれば破られるリスクが高まるというように、両者はトレードオフの関係にあります

次の動画は、「安全な」パスワードを作るコツとされているものです。

では、この方法でパスワードを作れば安全なのでしょうか? この動画で紹介されているように「a」の代わりに「@」、「e」の代わりに「3」など、文字を数字や記号に置き換えるという王道な手法があります。しかし、実は他の文字種で置き換えても、セキュリティ面ではあまり効果がないとか。なぜなら、「よからぬ輩」もすでにその技を知っているからです。前述のパスワードディクショナリーにも、置き換えがちな文字種が含まれています。「saygoobye」の「a」を「@」に、「o(オー)」を「0(ゼロ)」に置き換えて「s@yg00dbye」としても安全とはいえません。「s0cc3rRul3s」のような例も同様です。

パスワードを書き出すのも、あまりオススメではありません。なぜなら、どのアカウントにどのパスワードをあてたのか、いちいちメモしなければならないからです。また、手書きのアカウント情報は、自宅のPC、仕事場のPC、モバイルデバイスなど、異なる場所でログインする多くの人々にとって、不便極まりなく、とても適しているとはいえません。さらには、セキュリティに強いパスワードは、可能な限り長くランダムでなければいけません。よって、ログインの入力に手間がかかりますし、入力間違いによるエラーも起こりやすくなります。

WordドキュメントかOutlookのようなメモシステムに保存するのも、けしてオススメしません。暗号化されていないので、カンタンに抜き取られてしまいます。

■パスワードから自分を解放する方法

パスワード管理ツールを使って、パスワードから自分を解放しましょう。『LastPass』や『KeePass』のほか、『1Password』もオススメです。いずれのツールも、しっかり暗号化された場所に、すべてのパスワードが記憶されます。もちろん、暗号化されたファイルを開くのにパスワードが必要ですが、たった一つのパスワードで事足ります。アカウントごとに無数のパスワードを記憶する必要はありません。ここで重要なのは、この唯一のパスワードをセキュリティ度の高いものにすることです

『1Password』の仕組み

ここで、1Passwordの仕組みをご説明します。他のほとんどのウェブサイトでも同様ですが、たとえば「Slashdot」にログインする場合、まずはユーザ名とパスワードを入力。

110328password-security7.jpg

「ログイン」ボタンをクリックすると、以下のように、「1Passwordがこれを保存するかどうか?」ポップアップ画面でたずねてきます。

110328password-security8.jpg

デフォルト名はページのアドレスとなっていますが、名前は変更可能です。「Save」ボタンをたたくと、1Passwordが「マスターパスワード」をたずねてくるので、これを入力しましょう。

110328password-security9.jpg

次に、Slashdotからログアウトし、もう一度ログインしてみます。この場合、Slashdotのユーザ名・パスワードを入力するのではなく、アドレスバーの右にある小さな鍵型アイコンをたたきましょう。

110328password-security10.jpg

すると、マスターパスワードをたずねてくるので、これを入力すれば再ログインできます。

110328password-security11.jpg

この操作は、別のブラウザでも可能です。こちらの例では、Google Chromeを使いましたが、他のブラウザでも、1Passwordは導入できます。


既存パスワードを安全なものに変更する方法

すでに設定しているパスワードの中には、セキュリティ度の低いものもあるでしょう。この場合、1Passwordを使えば、セキュリティの高いパスワードへとカンタンに変更できます。たとえば、以下のスクリーンショットでは、青い部分が自動生成されたパスワードです。これをコピーして、それぞれのウェブサイトに移動して貼り付ければ、従来のパスワードから変更できます。

110328password-security12.jpg

ただし、銀行やエアラインのウェブサイトなど、一部のウェブサイトでは、長くランダムなパスワードが設定できない場合もあります(英文)。また、パスワードの桁数が少なかったり、文字種が制限されていることもあります。とはいえ、それぞれの制約条件の下で、最大限セキュリティ度の高いパスワードを設定することが大切です。


パスワードを携帯する方法

自分のパスワードに、どこでも、どのデバイスからでもアクセスできるようにすることは、重要なポイントです。仕事場のPC、自宅のPC、iPadやiPhoneなど、すべてのものが同期されている必要があります。

1Passwordでは、Dropboxを使ってこれを実現できます。このテーマについては、ライフハッカーアーカイブ記事「『Dropbox』を無敵のパスワード同期ツールとして活用する方法」を参照のこと。

110328password-security13.jpg

オンラインにパスワードファイルを保存することには抵抗があるかもしれませんし、実際、ある程度のリスクはあります。しかし、Dropboxはここ数年、安全な実績を持っていることも事実です。また、万が一第三者の手に渡ったとしても、1Passwordファイルは安全に暗号化されており、マスターパスワードがなければ、これを開けることはできません。


「一ヶ所にすべてを入れてしまう」ということ

たしかに、1Passwordのようなツールを使うと、すべてのパスワードを一ヶ所で保存し、ひとつのパスワードで管理することになります。しかし、その仕組みはよく考えられていて、非常に安全。誰かがすべてのパスワードが含まれているファイルを手にいれたとして、さらにマスターパスワードも流出してしまう、もしくはこれを解読しない限り、パスワードを破られることはありません。ウェブサイト経由で破られてしまう可能性に比べれば、リスクは極めて小さくできます。

もうひとつのリスクとして、1Passwordにおける、いまだ明らかになっていない脆弱性が挙げられます。いわゆる「ゼロデイアタック」はありえます。実際、『LastPass』では先月、そのうちのひとつが見つかり、数時間で修正されました(英文)。このように、脆弱性が見つかれば、すぐに対応してくれるはずです。


■まとめ

110328password-security14.jpgComic from XKCD.

セキュリティとは、リスクを軽減すること。完全に「安全」にはなりえません。できるのは、リスクを小さくすることだけです。セキュリティ面のみならず、パスワード管理ツールはなかなか便利なソリューションといえます。すべてのデバイスで、すべてのアカウントを、たひとつのパスワードでログインできるのはシンプルです。一方、アカウントが破られたことに気づいてからでは、時すでに遅し...。貴重な時間やお金を使って、対応するほかありません。

かなりの長文でしたが、パスワードのセキュリティに十分配慮し、そのための対策を打っておくことの重要性を、改めて認識させてくれる記事だと思います。オンライン上のセキュリティリスクを軽減するために、いまやっておくべきことがないか、この機会に見直してみてはいかがでしょうか?

Troy Hunt(原文/訳:松岡由希子)