強いパスワードの作り方:長さ、エントロピー、パスワードマネージャー
「記号を1つ以上含める」といったルールはおなじみですが、パスワードを本当に強くするのはランダムさと長さです。計算してみると、なぜ弱いパスワードがあるのかがはっきり分かります。
パスワードはどう破られるのか
攻撃者が使う主な方法は3つです。他のサイトから流出したユーザー名とパスワードを使い回すクレデンシャルスタッフィング、よく使われるパスワードや単語を試す辞書攻撃、そしてあらゆる組み合わせを試す総当たり攻撃です。
実際の被害の大半は1つ目から生じます。どれほど複雑なパスワードでも、使い回していれば、利用しているサイトの中で最も弱いところからすべてのアカウントが漏れる可能性があります。サイトごとに別のパスワードを使うことは、強さ以上に重要です。
エントロピーで強さを測る
ランダムに生成したパスワードの強さはエントロピーのビット数で表します。計算式は「長さ × log2(使える文字の種類数)」です。1ビット増えるごとに、攻撃者が試すべき回数は2倍になります。
6桁の暗証番号は約20ビットで、わずか100万通りしかなく、コンピューターなら一瞬で試せます。印字可能なASCII記号94種からランダムに選んだ12文字は約79ビット、ランダムな小文字16文字は約75ビットです。
数字6桁 : 6 × log2(10) ≈ 20ビット
ランダムな小文字16文字 : 16 × log2(26) ≈ 75ビット
94種からランダムに12文字 : 12 × log2(94) ≈ 79ビット
ランダムな英数字16文字 : 16 × log2(62) ≈ 95ビット
これらの数値はランダムに選んだ場合にだけ成り立ちます。Password1! や誕生日の組み合わせのように人が作ったパスワードは変化に富んで見えますが、どの攻撃リストでも上位にあり、実質的なエントロピーはほぼゼロです。
複雑さより長さが効く理由
上の表のとおり、文字の種類を増やすより長さを伸ばすほうが、はるかに効率よくエントロピーを高められます。米国国立標準技術研究所(NIST)のデジタルアイデンティティガイドライン(SP 800-63B)も、文字種の組み合わせを強制するより、長いパスワードを許可し、流出済みパスワードのリストと照合することを推奨しています。
覚える必要があるパスワードには、無関係な単語を4〜6個ランダムに並べたパスフレーズが有効です。7,776語のリストからランダムに選んだ6語で約77ビットになり、しかも覚えやすいままです。ただし単語は自分で選ぶのではなく、サイコロや生成ツールでランダムに選ぶ必要があります。
避けるべきパターン
これらはすべて解析ツールのルールに組み込まれており、見た目よりもずっと早く破られます。
- SNSで調べられる名前、誕生日、電話番号、車のナンバー。
- qwerty、1q2w3e4r、asdf のようなキーボードの並び。
- 単語の後ろに数字や ! を付けたもの(例:summer2026!)。
- a→@、o→0 のような置き換え。解析ツールは最初から試します。
- 数字だけを変えて更新する方法(pass01 → pass02)。
現実的な答え:パスワードマネージャーと二要素認証
サイトごとに異なる20文字のランダムなパスワードを覚えられる人はいません。現実的な解決策はパスワードマネージャーです。強力なマスターパスフレーズを1つだけ覚え、残りは生成機能に作らせて保存させます。
さらに、認証アプリ、セキュリティキー、パスキーなどの二要素認証を加えれば、パスワードが漏れただけでは突破されません。まずメールアカウントを守りましょう。他のすべてのアカウントのパスワード再設定に使われる経路だからです。
パスワード生成ツールで確認すべきこと
良い生成ツールは、OSが提供する暗号学的に安全な乱数生成器を使います。Math.random のような汎用関数は予測可能なので、パスワードには向きません。
AIBIZAPのパスワード生成ツールでは長さと文字の種類を選べます。記号が使えないサービスなら、代わりに長さを伸ばしましょう。英数字16文字で約95ビットになります。APIのクライアントIDやシークレットのような機械用の秘密情報には、クライアント認証情報生成ツールを使ってください。