要約:複雑さよりも長さが重要だ——現行のNISTパスワードガイドライン(SP 800-63B)は、強制的な記号・数字の組み合わせよりも長いパスフレーズを明確に支持しており、スケジュールに従ってパスワードを失効させるのではなく、既知の漏洩パスワードリストと照合することを推奨している。このガイドはCharacter Counter、Text Encryption、Duplicate Finder、AI Hidden Charactersと組み合わせて使ってください。
パスワードの強度は基本的にエントロピーに関するものだ——攻撃者が平均して何回の試行を必要とするか——そして長さはエントロピーを指数関数的に増加させるが、必須の記号を追加することは線形にしか増加させない。

複雑さのルールより長さが優れている理由
パスワードの探索空間は、文字セットのサイズをその長さの累乗にしたものとして成長する:小文字のみの8文字パスワードには約26⁸(〜2×10¹¹)通りの可能な組み合わせがあるが、小文字のみの16文字パスフレーズには26¹⁶通りある——より小さくシンプルな文字セットを使用しているにもかかわらず、桁違いに大きい。これが、NIST SP 800-63Bが短く複雑な文字列よりも長いパスフレーズを推奨する主な理由だ:4つの無関係なランダムな単語は、"P@ssw0rd1!"よりも覚えやすく、かつ総当たり攻撃に対してより強い。
NISTが実際に推奨をやめたこと
長年の"ベストプラクティス"のうち2つが、現行のNISTガイドラインでは明確に推奨されなくなっている:強制的な定期的パスワード失効(頻繁に変更を強いられると、より弱く予測しやすいパスワードを人々に選ばせる傾向がある——末尾の数字を増やしていく、というのがよくあるパターンだ)、そして特定の文字クラスを要求する強制的な複雑さのルール(これは、攻撃者の辞書がすでに考慮している予測可能な置き換え——aの代わりに@、oの代わりに0——へと人々を押しやる)。現行の推奨は代わりに:長いパスワード(64文字以上)を許可し、恣意的な複雑さを強制せず、新しいパスワードを既知の漏洩した認証情報リストと照合することだ。
漏洩リストとの照合が強度メーターより重要な理由
パスワードは高い理論的エントロピーを持つことがある——長く、ランダムに見え、大文字小文字が混在している——それでも既知のデータ漏洩に現れる場合は危険だ。攻撃者は総当たり攻撃ではなく、これらの漏洩リストを最初の試行として使うからだ。だからこそ、Have I Been PwnedのパスワードAPIのようなサービスが存在する:新しいパスワードを既知の漏洩リストと照合することで、理論的なランダム性だけを測る一般的な強度推定では見えない実際のリスクを捉えることができる。
実践的なアプローチ
- 短く複雑なパスワードの代わりに、4つ以上の無関係な単語からなるパスフレーズ、あるいは16文字以上のランダムな文字列を使う。
- 複数のサイトでパスワードを再利用しないこと——一つのサービスでの漏洩は、同じパスワードを使うすべてのアカウントへの攻撃になる。
- 視覚的な"強度"メーターだけを信用するのではなく、新しいパスワードを既知の漏洩リストと照合する。
- サイトごとに固有のパスワードを生成・保存するためにパスワードマネージャーを使う——自分で覚えなくなった瞬間、長さと固有性は記憶の負担ではなくなる。
- 具体的な理由(疑わしい漏洩)がある場合にのみパスワードを変更し、恣意的なスケジュールでは行わない。
避けるべきよくある間違い
- 単純な長さよりも記号・数字の複雑さを優先すること——追加された文字あたりで、長さの方がはるかに多くのエントロピーを寄与する。
- 強力なパスワードを複数のアカウントで再利用すること——これは、一つのサイトが侵害された瞬間に目的を無効にする。
- 既知の漏洩に現れているかを確認せずに、"ランダムに見える"という理由だけでパスワードを信用すること。
- 習慣で固定のスケジュールでパスワードをローテーションすること——現行のNISTガイドラインはこの慣行を明確に推奨していない。
今日の強力なパスワードとは、長く固有のものだ——既知の漏洩と照合され、覚えにくくするだけで推測しにくくはならない恣意的な複雑さのルールを通じて無理やり作られた文字列ではない。