なんか、「定期的に変更するな」 NISTがパスワードポリシーのガイドラインについて第2版公開草案を発表 みたいな記事だのツイートだのが出回って「パスワード定期変更が禁止」されたのが新しいことみたいな言説が出回っているので言っておくが、2017年6月発行のNIST SP800-63 第3版ですでにそうなってるからね。新しいことではない。パスワードの文字の構成に対する規制も同様。
NIST SP 800-63B-4 2pd のガイドラインによると、パスワードの要件は以下のものを含みます:
- 長さ: パスワードは少なくとも8文字以上で、推奨される最低長は15文字です。パスワードの最大長は少なくとも64文字にする必要があります。
- 文字の受付: ASCII印刷文字、スペース文字、Unicode文字を受け入れるべきです。Unicodeのコードポイントはパスワードの長さを評価する際に1文字としてカウントします。
- 構成ルール: 特定の文字種を混ぜるなどの構成ルールを課すべきではありません。
- 禁止リスト: 一般的に使用される、予想される、または漏洩したパスワードとの比較を行う必要があります。比較はパスワード全体で行い、部分文字列では行いません。
- 保存: ソルトとハッシュを使った適切なパスワードハッシング方式で保存する必要があります。
- 変更と複雑さ: パスワード定期変更を要求してはいけません。しかし、危殆化が検出されたときには変更を要求しなければなりません。
- 利便性: 強力なパスワード選択のためのガイダンスを提供し、パスワードが拒否された場合には理由を通知すべきです7。
これらのガイドラインは、セキュリティとユーザーの利便性のバランスを考慮しています。
また、中程度以上のリスクのシステムにおいては、パスワードのみというのはダメで、AAL2として以下をはじめとする要求事項があります。
認証装置の管理: 請求者が、加入者アカウントに紐づけられた1つ以上の認証装置を管理しているという高い信頼性が求められます。 2つの異なる認証要素の所有と管理の証明が、安全な認証プロトコルを通じて必要となります。
暗号化:承認済みの暗号化技術を使用しなければなりません。AAL2で使用される認証装置は、承認済みの暗号化認証装置でなければなりません。
リプレイ攻撃からの保護:AAL2で使用される認証装置は、少なくとも1つはリプレイ攻撃に耐えるものでなければなりません。
認証済みチャネル:請求者と検証者の間の通信は、1つ以上の認証済み保護チャネルを介して行われなければなりません。
生体認証の使用:生体認証要素が使用される場合、特定の性能要件を満たさなければなりません.
フィッシング耐性: 検証者は、少なくとも1つのフィッシング対策認証オプションを提供しなければなりません。連邦機関は、職員、請負業者、およびパートナーに対し、連邦情報システムへのアクセスにフィッシング対策認証を使用することを義務付けなければなりません。
新しいとして注目すべきはむしろこの「フィッシング耐性」。事実上、パスワードオンリーはもちろん、パスワード+OTPも禁じたと見るのが正しいでしょう。