「大文字・小文字・数字・記号を混ぜましょう」とよく言われますが、実はパスワードの強さを大きく左右するのは長さとランダムさです。この記事では、なぜ長さが大事なのか、覚えやすさと安全性を両立するにはどうすればいいのかを、具体的な数字で説明します。
パスワードを破る方法の代表が、考えられる組み合わせを片っ端から試す「総当たり」です。つまり、組み合わせの総数が多いほど破られにくいということになります。この強さは「ビット」という単位で表され、1ビット増えるごとに組み合わせは2倍になります。
| パスワードの種類 | 強さの目安 |
|---|---|
| 英小文字だけ・8文字 | 約38ビット |
| 英数字記号(94種)ランダム・8文字 | 約52ビット |
| 英数字記号(94種)ランダム・12文字 | 約79ビット |
| ランダムな英単語4つ(7,776語から) | 約52ビット |
| ランダムな英単語6つ(7,776語から) | 約78ビット |
8文字の複雑なパスワードより、12文字のパスワードのほうが圧倒的に強いことがわかります。また、ランダムに選んだ単語を6つつなげた「パスフレーズ」は、12文字のランダム文字列とほぼ同じ強さになります。
ここでの強さは、文字や単語を本当にランダムに選んだ場合の数字です。「Tanaka1985!」のように名前や誕生日を組み合わせたものは、見た目は複雑でも、攻撃側はよく使われるパターンから試すので、数字ほどの強さはありません。好きな歌詞や有名なフレーズも同じ理由で避けましょう。
パソコンのログインやパスワード管理アプリのマスターパスワードのように、どうしても自分で覚える必要があるものには、ランダムな単語を4〜6個つなげたパスフレーズがおすすめです。「correct-horse-battery-staple」のような形で、文字列よりずっと覚えやすくなります。
人間が「ランダムっぽく」考えた文字列には、どうしても癖が出ます。当サイトの「パスワード生成ツール」は、ブラウザに備わった暗号用の乱数(crypto.getRandomValues)を使ってパスワードを作ります。単語型のパスフレーズも選べて、生成したパスワードは外部に送信されません。
パスワード生成ツール