0.はじめに
みなさん、こんにちは。
先日、間違ってパスワードマネジャーの設定(データ)を消してしまい、いろんなWebサイトのパスワードリセットをやる羽目になった人間です…
(私にパスワードは早すぎた…)
バックアップの重要性を改めて実感した、今日この頃です。
(大事だとはわかっているのに、やらないことってありますよね…)
そんな中、NISTがSP 800-63をUpdateしました(と聞きました!)。
パスワード回りもUpdateされているようです。
パスワードに苦しめられた私にとって、タイムリーな話です。
さっそく内容を見ていきたいと思います。
(なお、下記の1-1~1-9、2-1~2-10という表記は、筆者独自の表現です)
1. パスワード要件
資料は「NIST SP 800-63 Digital Identity Guidelines」の「SP 800-63B-4 Authentication & Authenticator Management」です。
この資料の「3.1.1.2. Password Verifiers」にパスワード要件が記載されています。
連番付きのパスワード要件は全部で9つです。
(なるべくわかりやすい表現で書いてみます)
- 長さは15文字以上、MFA利用時は8文字以上
- 最大長は64文字以上
- 印刷可能なASCII文字とスペースをパスワードして利用できること
- Unicodeをパスワードとして利用できるようにすべき
- 異なる文字の混在等のルールは要求しないこと
- 定期的なパスワード変更を要求しないこと、パスワード漏洩等による侵害がある場合はパスワード変更を強制すること
- パスワードのヒント、パスワード作成時のヒントを保存させないこと
- パスワード選択時に「秘密の質問」を使わせないこと
- パスワードはすべて入力させること、入力したパスワード全体が一致するか確認すること
さて、解説していきましょう。
1-1. 長さは15文字以上、MFA利用時は8文字以上
MFAを利用していない場合は15文字以上にするルールとなりました。
割と厳しめのルールで、15文字もあると覚えるのが大変ですね。
パスワードマネジャーを使用するか、MFAを併用した方がいいですね。
1-2. 最大長は64文字以上
あくまで64文字のパスワードを(システムとして)設定できるようにしておけ、という話なので、
パスワードの長さを64文字(以上)にしろ、という話ではないです。
1-3. 印刷可能なASCII文字とスペースをパスワードして利用できること
パスワードで利用可能な文字列に対する要求ですね。
パスワードマネジャーがパスワード生成するときに、使えない記号があると困ってしまいますよね。
1-4. Unicodeをパスワードとして利用できるようにすべき
パスワードで利用可能な文字列に対する要求ですね。
これが一般的になると、俳句とか短歌とかをパスワードに使えるようになるのかしら?
1-5. 異なる文字の混在等のルールは要求しないこと
今回は「SHALL NOT」になったため、旧版よりも「やっちゃダメ」感が強まりました。
複雑で短いパスワードよりは、長いパスワードを推奨している感じですね。
1-6. 定期的なパスワード変更を要求しないこと、パスワード漏洩等による侵害がある場合はパスワード変更を強制すること
今回は「SHALL NOT」になったため、旧版よりも「やっちゃダメ」感が強まりました。
1-7. パスワード作成時のヒントを保存させないこと
これがあると、パスワードを推測できてしますのでNGということですね。
1-8. パスワード選択時に「秘密の質問」を使わせないこと
これがあるとパスワードがわからなくても、パスワードが推測できてしまうので、危険ですよね。
例えば「母親の旧姓は?」という質問は、仲の良い友達だったら知ってる可能性がありますよね。
1-9. パスワードはすべて入力させること、入力したパスワード全体が一致するか確認すること
元々は「入力したパスワード全体が一致するか確認すること」だけでしたが、今回は「パスワードはすべて入力させること」が追加されました。
すこし解説すると「パスワードはすべて入力させること」というのは、パスワードの部分入力を禁止するということです。例えば、パスワードとして6桁の数字があったとして、その「3番目だけ」を入力させてパスワードとして正しいか判断することを禁止、という感じです。
もう一つの「入力したパスワード全体が一致するか確認すること」というのは、パスワードの一部だけで判断することを禁止するということです。例えば、パスワードが10桁だとして、先頭8文字だけチェックしてパスワードとして正しいか判断することを禁止、という感じです。
な… 何を言ってるのか わからねーと思うが
昔はそういうシステムが実際にあったんですよ
2. パスワード要件(連番なし)
それでは次に、連番になっていないパスワード要件も見ていきましょう。
(なぜか連番になっておらず、文章で書かれています)
2-1. Unicode正規化
新版では、正規化の方式を「NFC」に統一しています。
Unicodeは見た目が同じでもバイト数が異なることがあるため、それによる混乱を防ぐ処置ですかね。
(このあたり、深堀すると面白いのですが、今回は省略で)
2-2. ブロックリスト
ブロックリストは、使ってはいけないパスワードのリストのことです。
脆弱なパスワード(passwordなど)や、漏洩したパスワード等を一覧化し、パスワードとしての利用を禁止するものです。
2-3. パスワード作成時のガイダンス
今回は「SHALL」になったため、旧版よりも強制力が高まりました。
パスワードポリシーに反するパスワードや、ブロックリストに登録済みのパスワードを入力した場合、パスワード生成が拒否されます。その際に、なぜそのパスワードは使えないのかについて説明を促すことを求めています。
これは、なぜ入力したパスワードがNGか理解できるので、ありがたい機能ですね。
2-4. レート制限
パスワード入力の試行回数を制限するというものです。
ただし、少なすぎるとパスワードリセット要求が頻発するので、適切な入力試行回数を決めるのは、なかなか難しいんですよね…。
(以前、3回でロックしてしまうシステムを使っていた時は苦労しました…)
2-5. パスワードマネジャー、自動入力機能、貼り付け
貼り付けは旧版にもありましたが、それ以外は新規要件です。
パスワードマネジャーの利用や自動入力機能に関する記述が追加されています。
パスワードマネジャーにパスワード生成機能がついていると、ランダムな長めのパスワードを自動で作ってくれるので、助かりますよね!
(まあ、私はパスワードマネジャーに依存して失敗したタイプの人間ですが…)
パスワードのコピペは旧版に引き続き許可されています。
パスワードのコピペが禁止されていると、簡単なパスワードの利用につながってしまうことを危惧してのことでしょう。
2-6. パスワード表示
入力したパスワードを表示したり、入力中のパスワード(最後の一文字)だけを表示したりする機能に関する記述が追加されています。
通常、入力したパスワードは*(アスタリスク)等で表示されると思いますが、特定の方法(目のアイコンのようなものをクリックした場合など)で入力したパスワードが見えるようにすることを認めています。
これはパスワードの入力ミスを減らすためです。
自宅の個室などの誰もいない場所の場合は、とても有益な機能です。
(まちがっても人が多いカフェ等では使わないでくださいね)
2-7. 誤入力の許容
(スマートフォン等の入力で)先頭文字が大文字になってしまったり、不要なスペースが入ってしまったりした場合を考慮した要件となっています。
ただし、パスワード強度が維持できる場合に限る、という制約付きです。
ありがたい機能ですが、設計/実装が大変そうですね…
2-8. 通信の保護
通信経路の安全確保は、セキュリティの基本ですね。
2-9. パスワードの保存方法
パスワード保存時のソルトやハッシュについての記載です。
いまどき、平文でパスワード保存している人はいないと思いますが、単純にハッシュだけでも危険ですよ、ということですね。
ソルトを組み合わせることで、より安全にパスワードを保存できるようになりますね。
2-10. 追加の対策
パスワード(ソルト&ハッシュ)に対し、追加の対策を実施することを推奨しています。
具体的には、パスワード(ソルト&ハッシュ)に対し、さらに鍵付きハッシュ(あるいは暗号化)を追加で実施することを求めています。
さらに、この鍵はHSMやTPM等で保管するように、とも書かれています。
(パスワードを保存しているデータベースと同じサーバに保管しちゃダメ、ってことです)
パスワード(ソルト&ハッシュ)だけで十分対策できているのでは、と思うかもしれません。
しかし、パスワード(ソルト&ハッシュ)が格納されたデータベース(サーバ)が侵害され、パスワード(ソルト&ハッシュ)と、ソルトそのものが盗まれてしまった場合、パスワードが推測できてしまう可能性があります。
そこまで侵害されたら諦める、というのも一つの考えですが、
2-10の対策を実施していれば、防げるインシデントもある、ということです。
9. おわりに
いかがでしたでしょうか?
パスワードを取り扱う際の様々な要素が記載されていて、参考になるのではないでしょうか。
インパクトがあるのは「15文字以上」ですね。
MFAを利用していない場合、15文字以上を覚えるのは厳しいので、パスワードマネジャー必須になりますね。
なお、NISTのルールは、国内でも参考にしている場合があるので、覚えておいて損はないです。
例えば、総務省の「安全なパスワードの設定・管理」には「定期的な変更は不要」と書かれていますが、これはNISTのルールがベースになっています。
同様にNISC(国家サイバー統括室)の「インターネットの安全・安心ハンドブック」にも「パスワードの定期変更は基本は必要なし」と書かれています。
今後、NISTのルールに基づいて、「パスワードは15文字以上」というのがデファクトスタンダードになるかもしれませんね。
覚えきれないので、MFAの実装が増えるかも?
(いやいや、これからはパスキーでしょ?)
ちなみにNISTは「How Do I Create a Good Password?」という記事も出してします。
多要素認証、パスキー、パスワードマネジャーを推奨していますね。
こちらも、参考までに。
97.参考文献
98.更新履歴
- 2025.11.04 初版