NIST SP 800-63Bと現代のパスワードポリシー
「英大文字・小文字・数字・記号を全部使い、90日ごとに変更してください」という旧来のルールは、米国NISTのDigital Identity Guidelines(SP 800-63B)でとっくに否定されています。改訂の経緯と現在の要件を一次情報ベースで整理します。
1. 改訂の経緯
NIST SP 800-63は米国連邦政府機関の電子認証ガイドラインで、民間にも事実上の標準として参照されます。2017年公開のRevision 3では、それまで常識だった「複雑性要件」「強制定期変更」「ヒント設定」「秘密の質問」が軒並み非推奨になりました。背景は人間の行動研究で、複雑性を強制するほどユーザは「Password1!」「Password2!」のような予測可能な変更をしがちで、結果的にセキュリティが下がることが分かったためです。総務省のサイバーセキュリティサイトも近年は同様の方針に寄せています。
2. 最低8文字、サブスクライバ選択時は64文字以上を許容
SP 800-63B §5.1.1.1は、Memorized Secret(記憶型シークレット=パスワード)の最低長を「サブスクライバ(利用者)が選ぶ場合は8文字以上、CSP(認証情報提供事業者)がランダムに割り当てる場合は6文字以上」と定めています。さらに「Verifier(検証側)は64文字以上を許容しなければならない」とも明記。長いパスフレーズを許可することが安全性の本丸です。本ツールは初期値16文字、最大64文字まで対応しています。
3. 複雑性要件は強制しない
§5.1.1.2は「Verifierは複雑性要件(大文字・小文字・記号の混在強制など)を課すべきではない」と明示しています。理由は前述のとおり、強制するほど予測可能な変形に流れるからです。本ツールは「使う文字種を選ぶ」UIにすることで「ユーザが自分で複雑性を上げる自由」は残しつつ、「強制」はしない設計です。サービス側で複雑性要件が課されている場合だけ、その要件を満たすチェックを入れて使ってください。
4. 強制定期変更は廃止
§5.1.1.2は「漏えいの証拠がない限り、Verifierは定期的なパスワード変更を要求してはならない」とも定めています。90日ごとに強制変更させると、ユーザは「Spring2026!」→「Summer2026!」のような変更を繰り返し、結果的に脆弱になります。漏えい・侵害が判明したら直ちに変更、そうでなければ長く強固なパスワードを維持し続けるのが現代の正解です。多要素認証(MFA)と組み合わせれば、定期変更は不要というのがNISTの立場です。
5. ヒント・秘密の質問は禁止
§5.1.1.2は「Verifierはサブスクライバが選んだヒントを未認証のリクエスタが利用できる形で保存してはならない」「個人情報に基づく秘密の質問(母親の旧姓・初代ペットの名前など)を使ってはならない」と明記しています。SNSや漏えいデータから容易に推測できるためです。本ツールの「シーン別利用例」でも、秘密の質問を再設定する代わりにパスワードマネージャーへの保存を勧めるのは、この一次情報に基づく判断です。
6. ブラックリスト照合と多要素認証
§5.1.1.2は新規パスワード設定時に「漏えい済みリスト・辞書・繰り返し文字・ユーザ名と同一などをブラックリスト照合せよ」と定めています。本ツールはCSPRNG(crypto.getRandomValues)で乱数を生成するため、辞書攻撃に強い文字列が得られますが、最終的な強度は多要素認証(MFA)と組み合わせるかにかかります。パスワードマネージャー入門とパスフレーズvsランダム文字列も合わせてご覧ください。