パスワード強度分析
エントロピーからパスワード強度を推定し、解読にかかる時間を表示し、弱さの原因となるチェックリストを提示。
真の強度を測定。 強度は長さだけでなく、エントロピー(パスワードが持つ不確実性のビット数)から推定します。解読時間は毎秒 10 億回の推測を想定。すべてブラウザ内で動き、パスワードは保存も送信もされません。
- ○ 12 文字以上
- ○ 大文字を含む
- ○ 小文字を含む
- ○ 数字を含む
- ○ 記号を含む
- ○ よく使われるパスワードでない
エントロピーからパスワード強度を推定し、解読にかかる時間を表示し、弱さの原因となるチェックリストを提示。
真の強度を測定。 強度は長さだけでなく、エントロピー(パスワードが持つ不確実性のビット数)から推定します。解読時間は毎秒 10 億回の推測を想定。すべてブラウザ内で動き、パスワードは保存も送信もされません。
エントロピーは攻撃者が必要とする試行回数をビットで表したものです。1 ビット増えるごとに作業量は倍になります。ここでの推定式は log2(文字種数) × 長さ です。小文字と数字からなる 10 文字のパスワードなら文字プールは 36 で約 51.7 ビット、攻撃者がプールと長さを知っている前提で約 2^51.7 通りの候補があることになります。
この式が表すのは、そのプールからランダムに選んだパスワードです。あくまで上限であり、人が選んだパスワードがここに届くことはまれです。Password1! は書類上の評価は良好で、大小文字混在、数字、記号、10 文字を満たしますが、あらゆるクラック辞書に載っているため実際の強度は数回の試行にすぎません。このページのチェックリストが単なる採点表ではない理由がこれです。よくあるパスワードの判定に落ちることは、記号の判定に通ることよりはるかに重大です。
答えを桁違いに変える要因が 2 つあります。1 つは攻撃者のハードウェアです。現代の GPU 1 枚で MD5 や SHA-1 のような高速ハッシュに対し毎秒数十億回の試行が可能で、レンタルクラスタを使えばさらに倍増します。もう 1 つは保存側の方式です。適切に設定された bcrypt、scrypt、Argon2 のハッシュは意図的に低速でメモリを要求し、スループットを毎秒数十億から数千に落とします。
つまり同じパスワードでも、あるサイトでは簡単に破られ、別のサイトでは十分安全ということが起こります。ここに表示される数値は高速ハッシュに対するオフライン攻撃を前提とした悲観的なケースですが、どのサイトがどう保存しているかを知る術がない以上、これを基準に考えるのが妥当です。
長さは複雑さに勝ります。小文字のパスワードに 1 文字加えれば探索空間は 26 倍になりますが、短いパスワードに記号クラスを 1 つ加えても倍率ははるかに小さくなります。大きな単語リストからランダムに選んだ 4〜5 語のパスフレーズは 50〜70 ビットに達しながら、入力しやすく記憶もしやすいままです。これが diceware の考え方です。
さらに重要なのは、個々のパスワード強度より使い回しのほうが問題だという点です。強いパスワードでも 10 サイトで使い回せば、安全性は最も弱いサイトと同じになります。1 件の漏洩で 10 件すべてが露出するからです。サイトごとに異なるランダム文字列を生成するパスワードマネージャーは両方の問題を一度に解決し、手入力するパスワードをいくら調整するより実務的な効果が大きくなります。
なお、このページの処理はすべてブラウザ内でローカルに実行されます。入力した内容がどこかに送信されることはありません。