2024-09-27

NIST 的密碼原則參考 (2024.08.28)

NIST 對密碼原則的建議改版了

NIST Special Publication 800-63B 3.1.1.2 Password Verifiers

The following requirements apply to passwords:
1. Verifiers and CSPs SHALL require passwords to be a minimum of eight characters in length and SHOULD require passwords to be a minimum of 15 characters in length.

2. Verifiers and CSPs SHOULD permit a maximum password length of at least 64 characters.

3. Verifiers and CSPs SHOULD accept all printing ASCII [RFC20] characters and the space character in passwords.

4. Verifiers and CSPs SHOULD accept Unicode [ISO/ISC 10646] characters in passwords. Each Unicode code point SHALL be counted as a single character when evaluating password length.

5. Verifiers and CSPs SHALL NOT impose other composition rules (e.g., requiring mixtures of different character types) for passwords.

6. Verifiers and CSPs SHALL NOT require users to change passwords periodically. However, verifiers SHALL force a change if there is evidence of compromise of the authenticator.

7. Verifiers and CSPs SHALL NOT permit the subscriber to store a hint that is accessible to an unauthenticated claimant.

8. Verifiers and CSPs SHALL NOT prompt subscribers to use knowledge-based authentication (KBA) (e.g., “What was the name of your first pet?”) or security questions when choosing passwords.

9. Verifiers SHALL verify the entire submitted password (i.e., not truncate it).
1. 密碼不得少於 8 個字元, 且應要求密碼最少 15 個字元以上.

這很基本, 沒有什麼問題.

2. 應允許密碼的最大長度至少為 64 個字元.
3. 應接受所有可列印的 ASCII 字元和空格字元作為密碼.
4. 應接受 Unicode 字元作為密碼, 每個 Unicode 字元在計算密碼長度時應視為單一字元.

以上幾條可能影響不小, 舊的認證程式和資料庫欄位都要做相當的修改.

5. 不得對密碼施加其他組合規則(例如, 要求混合使用不同字元類型, 像是大小寫, 數字, 符號).
6. 不得要求使用者定期更改密碼, 但如果有證據顯示身份驗證器被侵犯, 則應強制更改.

這兩條有一些台灣老公司的懶惰 MIS 很愛用, 但是現在 NIST 是強烈的要求不得這樣做, 我想主要也是因為這種老舊的密碼原則太麻煩了, 反而會增加社交工程的風險.
(話說我現在的公司就是這樣, 有夠討厭的)

7. 不得允許訂閱者儲存可被未經身份驗證的申請者訪問的提示.

這點很重要.

8. 不得提示訂閱者使用知識型認證(例如,「你第一隻寵物的名字是什麼?」)或安全問題來選擇密碼.

這也是以前很流行的東西, 不過也是有很高的社交工程風險.

9. 驗證者應驗證整個提交的密碼(即不得截斷它).

這個應該和上面 2~4 條有關係, 如果 MIS 偷攋不想改認證程式和資料庫, 有可能會用這種偷吃步的方法, 造成風險提高.




上面的問題在台灣很多大公司都還看得到, 不過我想大部分公司的懶惰 MIS 應該是不會甩 NIST 的吧.
畢竟在台灣擔任 MIS 的門檻很低, 濫竽充數的太多了, 我甚至還遇過上櫃公司(8xx1)的 MIS 連自己公司的 domain name 都不知道怎麼來的, 然後 domain name 過期公司官網連不到, 打電話給我求救.