「パスワードは定期的に変更しましょう」という案内をよく目にしますが、この考え方は現在では推奨されていません。強度の低いパスワードを頻繁に変えるより、強いパスワードを設定して変えないほうが安全だと考えられています。重要なのは「どう変えるか」より「どう作るか」です。

この記事では、パスワードの強度が何で決まるのか、どう作れば安全なのかを、数字を交えて整理します。

パスワードが破られる仕組み

攻撃者がパスワードを突破する方法は、大きく3つあります。

  • 総当り攻撃(ブルートフォース):すべての文字の組み合わせを試す方法です。パスワードが短いほど、使用する文字の種類が少ないほど、試すパターン数が減って突破されやすくなります。
  • 辞書攻撃:よく使われる単語やパスワードのリストを使って試す方法です。「password」「123456」「qwerty」などはリストの上位に並んでいます。「P@ssw0rd」のように文字を記号に置き換えたものも、当然のようにリストに含まれています。
  • リスト型攻撃(クレデンシャルスタッフィング):他のサービスから流出したIDとパスワードの組み合わせを、そのまま別のサービスで試す方法です。パスワードの強度は関係ありません。どれだけ複雑でも、使い回していれば1か所の流出で全部が破られます。

最初の2つには「長さ・文字種・ランダム性」が効きますが、3つ目に効くのは使い回さないことだけです。強度と使い回しは別の問題として考える必要があります。

強度は「エントロピー」で測る

パスワードの強度は、何通りの候補があるかで決まります。これを2を底とした対数(ビット)で表したものがエントロピーです。1ビット増えるごとに候補が2倍になります。

英数字(大小英字+数字=62種類)で作った場合の比較です。

長さ 組み合わせの数 エントロピー
8文字 約 2.2 × 10¹⁴ 通り 47.6 ビット
12文字 約 3.2 × 10²¹ 通り 71.5 ビット
16文字 約 4.8 × 10²⁸ 通り 95.3 ビット

8文字と16文字の差は、単純に2倍ではありません。組み合わせの数では約218兆倍の開きがあります。長さを伸ばすことがいかに効くかが分かると思います。

一方、文字種を増やす効果は意外と限定的です。

構成 エントロピー
英数字62種・8文字 47.6 ビット
記号を含む94種・8文字 52.4 ビット
英数字62種・12文字 71.5 ビット

記号を足して文字種を1.5倍にするより、4文字伸ばすほうが圧倒的に強くなります。「複雑にする」より「長くする」を優先すべき理由がここにあります。

現在推奨されている基準

米国立標準技術研究所(NIST)のガイドライン SP 800-63B では、パスワードの扱いについて次のような方針が示されています。

  • 最低8文字を必須とし、15文字以上を推奨する
  • 「大文字・数字・記号を必ず含める」といった構成ルールを強制しない
  • 定期的な変更を要求しない(漏洩の兆候があった場合を除く)
  • 流出済みパスワードのリストと照合して、該当するものは拒否する

構成ルールと定期変更が推奨されなくなったのは、どちらも利用者を予測しやすい行動に追い込むからです。記号を必須にすると多くの人が末尾に ! を付け、定期変更を強制すると Password1Password2 のように末尾の数字だけを変えます。ルールで縛るほど、パターンが読みやすくなるという逆効果が起きていました。

よくある危険なパターン

  • 単語に数字を付け加えるだけのもの(例:coffee2024
  • 文字を記号に置き換えただけのもの(例:p@ssw0rd
  • キーボードの並びをそのまま使ったもの(例:qwerty123456
  • サービス名や自分の名前を含むもの(例:google_yamada
  • 末尾の数字だけを変えて使い回すもの(例:Secret01Secret02
  • 複数のサービスで同じパスワードを使い回すこと

いずれも「人間が考えたランダム」に共通するクセです。攻撃者はこうしたパターンを織り込んだリストを使うため、見た目の複雑さほどには強くなりません。

パスフレーズという選択肢

覚える必要があるパスワード(パスワードマネージャーのマスターパスワードなど)には、ランダムな単語を並べるパスフレーズという方法があります。

7,776語の単語リストからランダムに選ぶ方式(Diceware)で計算すると、次のようになります。

単語数 エントロピー 目安
4語 51.7 ビット 英数字9文字相当
6語 77.5 ビット 英数字13文字相当

6語なら十分な強度がありつつ、ランダムな13文字より格段に覚えやすくなります。ポイントは単語を自分で選ばないことです。自分で好きな単語を並べると、そこに意味や連想が入り込み、ランダム性が大きく落ちます。

安全なパスワードの作り方

覚える必要のないパスワード——つまり大半のサービス用——は、生成ツールで作ったランダムな文字列が最も安全です。人間が「ランダム」と思って作る文字列には規則性やクセが出やすく、意外と予測されやすいためです。

生成したパスワードは覚える必要はありません。パスワードマネージャー(1Password・Bitwarden など)に保存して管理するのが現代の標準的なアプローチです。マスターパスワード1つだけを強固なパスフレーズにしておき、各サービスには別々のランダムな文字列を使うことで、安全性と利便性を両立できます。

そのうえで、2要素認証(2FA)を有効にできるサービスでは必ず有効にします。パスワードが漏れても、それだけではログインできない状態を作れます。実務上、パスワードを強くすることより効果が大きい対策です。

よくある質問

Q. パスワードを定期的に変更するのは無意味ですか

A. 漏洩の兆候がない状況で機械的に変更することは、現在は推奨されていません。変更を強制すると、末尾の数字を増やすだけといった予測しやすい変え方に流れるためです。ただし、流出した可能性があるとき、共有していた人が離れたときは、ただちに変更します。

Q. 記号を必ず入れたほうが強くなりますか

A. 効果はありますが、長さを伸ばすほうがはるかに効きます。記号を足して文字種を62から94に増やす効果(+4.8ビット)より、4文字伸ばす効果(+23.9ビット)のほうが大きくなります。サービス側で記号が使えない場合は、そのぶん長くすれば補えます。

Q. 自分のパスワードが流出していないか確認できますか

A. 過去の漏洩データベースと照合できるサービスがあります。パスワードマネージャーにも同様の機能が備わっていることが多いので、まずはそちらを確認するのが手軽です。該当した場合は、そのパスワードを使っているすべてのサービスで変更が必要です。

Q. ブラウザのパスワード保存機能を使ってもよいですか

A. 使い回しをやめられるという点で、何も使わないよりは大きく安全になります。ただし端末を共有している場合や、複数のブラウザ・OSをまたいで使う場合は、専用のパスワードマネージャーのほうが管理しやすくなります。

まとめ

パスワードの強度は、複雑さの見た目ではなく組み合わせの数で決まります。

  • 長さが最も効く。英数字なら8文字と16文字で約218兆倍の差
  • 記号を足すより、4文字伸ばすほうが強い
  • 定期変更と構成ルールの強制は、かえって予測しやすくするため推奨されていない
  • 使い回しだけは強度で防げない。リスト型攻撃には別々のパスワードで対抗する
  • 覚える必要のあるものはパスフレーズ、それ以外は生成ツール+パスワードマネージャー
  • 使えるなら2要素認証を必ず有効にする

以下のパスワード生成ツールでは、長さや文字種(記号・数字・大文字)を設定してランダムなパスワードを生成できます。生成はすべてブラウザ内で行われ、作ったパスワードが外部に送信されることはありません。