仕組み
ランダムに生成したパスワードの強さは「複雑に見えるか」ではなく、生成器が選べた組み合わせの数で決まります。その数はエントロピーのビット数で表し、1 ビット増えるごとに攻撃者の手間は 2 倍になります。小文字・大文字・数字・記号を混ぜた 20 文字のパスワードは 94 文字のアルファベットから作られ、約 131 ビットあります。同じアルファベットでも 8 文字なら 52 ビットに下がり、GPU ファームなら数日で総当たりできます。
パスフレーズは文字の代わりに単語を使います。このツールは 7776 語(6⁵、サイコロ 5 個の組み合わせ)からなる EFF のロングリストを使うため、1 単語ごとに 12.9 ビット増えます。5 単語で 64.6 ビットとなり、完全にランダムな 10 文字と同等ですが、はるかに覚えやすく入力しやすいのが利点です。パスワードマネージャーのマスターパスワードやディスク暗号化で特に重要です。
すべてブラウザー内で、OS の暗号学的乱数生成器である crypto.getRandomValues を使って生成され、棄却サンプリングによって特定の文字が他より出やすくなることはありません。生成したパスワードも、最後のカードで評価するパスワードも端末の外に出ることはなく、評価したパスワードが共有リンクに保存されることもありません。
例
20 · a-z A-Z 0-9 !@#…≈ 131 bits20 × log₂(94)。毎秒 100 億回でも、組み合わせの半分を試すには約 4.6 × 10²¹ 年かかります。5 × EFF≈ 64,6 bits5 × log₂(7776)。高速なハッシュなら GPU で平均約 45 年、サイトが bcrypt で保存していれば 4500 万年以上かかります。8 · a-z A-Z 0-9 !@#…≈ 52 bits高速なハッシュが漏えいした場合、8 文字ではもう足りません。毎秒 100 億回なら、全体の半分を約 85 時間で試し終えます。PIN · 61 000 000 · ≈ 19,9 bitsPIN が安全なのは、端末や銀行が試行回数を制限しているからにすぎません。1 時間に 100 回なら組み合わせの半分を試すのに約 208 日、制限がなければ一瞬です。ユースケース
- アカウントごとに固有のパスワードを作り、パスワードマネージャーに保存する。
- 記憶して入力するもの(マネージャーのマスターパスワード、ディスク暗号化、PC のログイン)にパスフレーズを選ぶ。
- 設定ファイルやシークレットマネージャー用に、サービスの認証情報、API キー、データベースのパスワードを生成する。
- 新規ユーザー向けの初期パスワードを一括作成し、紛らわしい文字を除いて口頭でも紙でも間違えずに伝えられるようにする。
- 引用符やバックスラッシュなど、受け付けない記号を除いて、変わったルールのシステムに合わせる。
- 今使っているパスワードが予測しやすいかどうかを確認し、変更すべきか判断する。
よくある質問
パスワードには何ビット必要?
試行回数が制限された Web アカウントなら 60 ビットで十分すぎます。パスワードマネージャーのマスターパスワードや暗号化ファイルを守る鍵のようにオフライン攻撃を受け得る場合は、80 ビット以上を目指しましょう。128 ビットを超えても実用上の利点はありません。既に想定しうるどんな攻撃者にも届かない水準です。
長いパスワードと記号入りのパスワード、どちらが安全?
長いほうです。使える文字を 62 種から 94 種に増やす、つまり記号を加えても 1 文字あたり 0.6 ビットしか増えませんが、1 文字増やせば 6 ビット以上増えます。そのため NIST はガイドライン SP 800-63B で、サイトは長いパスワードを受け入れ、「記号を 1 つ以上」のような構成ルールを課すのをやめるよう求めています。
パスフレーズが英単語なのはなぜ?
EFF のリストはパスフレーズ用に厳選されているからです。一般的な単語だけを集め、不快な語を含まず、入力しやすく、どの単語も他の単語の接頭辞にならないため、区切りなしでつなげても曖昧になりません。安全性は言語ではなく、リストの大きさと選び方がランダムであることで決まります。攻撃者がリスト全体を知っていても、1 単語あたり 7776 通りを試す必要があります。
評価結果がエントロピーと違うのはなぜ?
測っているものが違うからです。エントロピーは、生成手順が正確にわかっているランダムな秘密に当てはまります。人が考えたパスワードはまずランダムではありません。「Argentina2024!」は 4 種類の文字で 14 文字ありますが、辞書の単語と年号と末尾の記号で、まさにクラッキングツールが最初に試すパターンです。評価機能はこうしたパターンを探し、実際に必要な試行回数を推定します。
Web ページでパスワードを生成しても安全?
計算がブラウザー内で行われ、何も送信されないなら安全です。このツールがまさにそうで、開発者ツールを開けばネットワークタブにデータ送信が記録されないことを確認できます。唯一のダウンロードは、初めてパスフレーズを求めたときの単語リストです。それでも最も重要な認証情報は、保存先のパスワードマネージャー自身に生成させるのが理想で、そうすればパスワードがクリップボードを経由しません。
紛らわしい文字を除くのはなぜ?
多くの書体では 0 と O、1 と l と I がほとんど同じに見え、紙から読み取ったり電話で伝えたりするパスワードは写し間違えやすいからです。除外するとアルファベットと 1 文字あたりのエントロピーがわずかに減りますが、長さを 1〜2 文字増やせば補えます。