Pocket

あなたがもしパスワード強度メーターを信頼してパスワード強度を判定しているとしたら、悪いニュースをいくつかお知らせしなければならない。コンコルディア大学の研究者らによる新たな研究によると、こういったパスワード強度判定にはかなり矛盾があり、ユーザーに悪影響をおよぼす恐れもあることが分かった。

われわれが行った大規模な実証分析によると、一般に使われている強度メーターにはかなり矛盾があり、首尾一貫したフィードバックを得ることはできませんでした。中には明らかに誤解を招くような強度判定を行う場合もあることが分かりました。

研究者のグザヴィエ・ド・カルネ・ド・カルナヴァレとモハメッド・マナンは、利用者の多いウェブサイトやパスワードマネージャーを選び、パスワード強度メーターを調査した。調査の対象となったウェブサイトには、アップル、Dropbox、Drupal、グーグル、eBay、マイクロソフト、PayPal、Skype、Tencent QQ、Twitter、ヤフー 、ロシアのメールプロバイダYandex Mailなどが含まれる。また、有名なパスワードマネージャーのLastPass、1Password、KeePassでも調査を行った。さらに、調査の幅を広げるため、フェデックスと中国鉄路総公司のカスタマーサービスセンターも対象とした。

次に、ド・カルネ・ド・カルナヴァレとマナンは一般的な辞書から950万個近くのパスワードリストを作成した。その中には実際に漏えいしたパスワードのリストも含まれている。そして、上記のサービスでパスワード強度メーターがどのような判定を行うかを調査した。

効果のなきルール

通常、パスワード強度メーターはパスワードの長さや文字の種類の多さ(大文字、小文字、数字、記号など)を調べる。よく用いられる単語や、脆弱なパターンを検知する場合もある。

しかし、パスワードの構成を調べる強度メーターは、破られやすいパターンを無視することがままある。例えば小文字のlを数字の1に置き換えるような、いわゆる「ハッカー語」的な置換は考慮しない。当然のことながら、ハッカーがパスワードを破る際にはこのようなバリエーションも調べられる。

矛盾した結果

非常に紛らわしいことに、ほぼ同一のパスワードで全く異なる結果が出た。例えば、Paypal01というパスワードはSkypeの基準では脆弱とみなされたが、PayPalでは強いとされた。Password1はDropboxでは非常に脆弱だが、ヤフーでは非常に強固で、マイクロソフトの3つのチェッカーではそれぞれ異なる結果(強い、弱い、中程度)となった。#football1というパスワードもDropboxでは非常に弱く、Twitterでは最強という判定だった。

中には、最低限の条件を重視するために、ちょっとした文字の変更によって判定結果が変わることもあった。フェデックスはpassword$1を非常に脆弱と判定したものの、Password$1は非常に強いとした。ヤフーはqwertyを弱いと判定したが、qwerty1では強いという結果だった。

グーグルでも同様の問題が生じた。password0は弱いが、password0+は強いと判定した。フェデックスの問題も判明している。+ˆv16#5{]を非常に弱いパスワードと判定したのだが、それはどうやら大文字がないためらしい。

「強度メーターの中には非常に脆弱で一貫性がなく(例えばヤフーやYandex)、なぜこのような判定を行うのか疑問なものもあります」と彼らは述べている。

強度メーターはブラックボックスだらけだ

ド・カルネ・ド・カルナヴァレとマナンはパスワードチェッカーの曖昧さによって損害が生じることになると主張している。一貫性のないパスワード強度判定のせいでユーザーが混乱し、問題にもなりうる。

「われわれが調査した中で、DropboxとKeePass(ある程度まで)を除いて、強度メーターの設計方法や、強度判定の技術を裏打ちするロジックに関して公にしている強度メーターはない」と彼らは述べている。

DropboxとKeePassを除いて、パスワード強度メーターは場当たり的な方法で設計されているとみられ、脆弱なパスワードを強固と判定することがしばしばあった。彼らはこのように記している。「Dropboxのかなりシンプルなパスワードチェッカーは、パスワードの分析に際して非常に効果的であり、方向性として正しいと考えられる(KeePassも同様のアルゴリズムを採用している)」。

ド・カルネ・ド・カルナヴァレとマナンは、これらのウェブサービスに対し、一般に共有されているアルゴリズムをパスワード強度メーターに採用することを推奨している。とりわけ強く提言しているのは、DropboxやKeePassが導入しているオープンソースの zxcvbnアルゴリズムを利用、あるいは拡張することだ。

トップ画像提供:nikcname

Pocket