婉曲的な名前を持つアダルトフレンドファインダーがハッキングされてから数ヶ月後、今度はアシュリー・マディソンがハッキングされたと聞いて、思わず笑ってしまうかもしれません。不倫相手を繋ぐことができると熱心に宣伝しているこのサイトのアカウントが不正アクセスされたと、セキュリティレポーターのブライアン・クレブス氏が述べ、同社も確認しました。
このサイトへの侵入は、数百万、数千万のユーザーアカウントを保有し、そのアカウント情報が広く拡散するサイトに対する、終わりのない攻撃の連続の最新の事例です。クラッカーやホワイトハットハッカーは、アカウントへの攻撃とユーザーへの警告のために、直ちにデータを確認し始めます。
これらの侵害、特に最近の LastPass アカウント情報の侵害から私が導き出した結論は、強力なパスワードに重点を置きすぎていて、一意のパスワードに十分重点を置いていない可能性があるということです。
さて、私は長年、パスワードの独自性について声高に訴え続けてきました。常連の読者の皆さんは、私がまたこの件について長々と語るのを聞き飽きているかもしれません。しかし、多くの場所で同じパスワードを使い回している人が依然として多く、しかもそのパスワードが必ずしも強力とは言えないことも多いため、その理由を説明する価値はあるでしょう。
数の力
強力なパスワードとは、あなたに関する詳細情報から推測できないパスワードです。家族の名前、ペットの名前、過去または現在の住所など、類義語は使用しないでください。また、総当たり攻撃にも非常に強いパスワードでなければなりません。クラックされたサイトの分析で、多くの人が「123456」や「password」といったパスワードを使用しているのを見たことがあるでしょう。
数ヶ月前、パスワードとセキュリティの研究者と話をしたのですが、その研究者は、パスワードの要件を詳細に定めているサイトのほとんどは、たとえ悪いパスワードを示す赤いバーが緑に変わっても、実際にはパスワードの強度を向上させていないと指摘しました。Apple自身のパスワード強度インジケータも例外ではありません。なぜなら、これらの機能は、文字の選択における多様性(つまり「エントロピー」)(例えば、大文字と小文字の混在、数字、句読点など)が十分かどうかしか分析していないからです。そのため、総当たり攻撃で試さなければならない組み合わせの数が増え、赤から緑に変わる品質バーで高いスコアが付けられるのです。
緑のバーがあるにもかかわらず、これはひどいパスワードです。
しかし、「Password1!」はクラッカーにとって非常に簡単に解読できます。なぜなら、彼らは過去の大規模なクラッキングから得た情報に基づいて、選択的なパスを辿っているからです。クラッカーのツールは、人間は最小限の複雑さと最もシンプルな選択肢を追加するだろうと認識しています。そのため、彼らは「Password」(大文字と小文字)にキーボードの最初の数字、そしてその数字のキーキャップを入力します。緑色?品質バーを見れば確かに緑色です。しかし、実際には非常に赤いのです。
以前にも書いたように、「クリスマス ペンギン ヘアカット」のように、まれにしか一緒に現れず、十分な長さの単語の組み合わせは、「B@z00ka!!」や「JWT74PV5JVaj」よりも何桁も何桁も解読が困難です。なぜなら、たとえクラッカーが3つの単語が含まれていることを知っていたとしても、その組み合わせがその言語の典型的なオンラインテキスト(ウェブページや書籍など)に見つからない場合、それらを見つけるための反復回数は依然として非常に多くなるからです。(「Call me Ishmael」は選ばないでください。)
強力なパスワードは、少なくとも基本的な対策を講じたサイトであれば、クラッキングに抵抗します。しかし、固有のパスワードを設定すれば、一度の侵害であらゆる場所で個人情報が漏洩する事態を防ぐことができます。
雪の結晶のように
強力に保護された弱いパスワードは、強力なパスワードと同じくらい強力です。エンジニアリングや設計上の欠陥によって強力なパスワードが漏洩した場合、それは不適切に選択されたパスワードと同じくらい脆弱です。
強力なパスワードを選び、複数の場所で使い回すということは、そのパスワードが紐付けられている各サイトやサービスが、そのサイト側または送信中の傍受を防ぐための適切に設計されたプロセスを備えていることを前提としているということです。また、パスワードを適切な方法で取得し、ハッシュと呼ばれる暗号化された出力として保存していることも前提としています。
あらゆる場所で同じ強力なパスワードを使用している場合、企業がパスワードの入力や保存を適切に保護していなかったことが一度でも明らかになると、他のすべてのサイトでも情報が漏洩することになります。これを回避するには、1Password、LastPass、その他のパスワード管理アプリなどのソフトウェアを使用して、記憶する必要のない強力で固有のパスワードを作成することです。つまり、一度情報が漏洩すると、最悪の場合でも1つのサイトへのアクセスしか漏洩しません。
パスワード盗難を軽減するサイトがいくつかあり、驚くほど効果的です。LastPassはアカウント情報の漏洩を経験しましたが、パスワードの保存方法に関する同社の説明と実装が正しいと仮定すると、ユーザーのパスワードが大量に取得される可能性はほぼゼロです。標的となった個人は、LastPassが保存したパスワードのヒントと組み合わせることで、パスワードを変更する前に解読される可能性がありますが、すべてのパスワードに対する総当たり攻撃は失敗します。
先日、私がプログラミングを担当しているある企業と協力し、古い暗号化ストレージ方式から新しい暗号化ストレージ方式への移行を行いました。これは、彼らが使用しているモジュールのアップデートにより、より優れた方式が利用可能になったことがきっかけです。以前のストレージ方式は問題なく、サイトには個人情報や支払い情報は一切保存されていませんでした。しかし、登録済みのサイト訪問者が他の場所で同じパスワードを使用した場合、侵入時に前述の問題に直面することになります。今回のアップグレードにより、クラッカーが保存されているパスワードに対して総当たり攻撃を行っても、同じ結果を使って他のアカウントの同一の平文パスワードを照合することは不可能になります。(このシステムでは、ハッシュに加えて、パスワードにランダムな値を追加するソルトを使用しています。ソルトは、同一のパスワードを2つ使用しても、同じ結果が保存されないようにします。)
記憶していないパスワードを複数持つのは、恐ろしく危険なことのように聞こえます。しかし、強力なパスワードを一つだけ持つことの方が危険です。私は1Passwordを使っていて、パスワードのデータベースはDropboxに保存しています。1Passwordは常にデータベースを暗号化し、クライアントソフトウェアで復号化します。この手法はLastPassのクライアントとサーバーで採用されているのと同じで、非常に多くの「作業」(計算負荷)を発生させます。そのため、誰かが私のパスワードキャッシュを入手しようとすれば、解読には何年も何十年もかけて集中的に作業しなければなりません。
私が記憶する必要がある唯一の強力なパスワードは、1Passwordのデータを保護するためのもので、オンラインサイトで入力したり、他の場所で使用したりすることはありません。直感に反するように聞こえるかもしれませんが、パスワードの解読は、チェーンの最も弱いリンクに頼るだけです。強力なチェーンリンクは、弱いリンクが切れるのを防ぐことはできません。