cv.cm

知識 · 文字、資料與資安

怎樣的密碼才算強?

閱讀約 5 分鐘

簡答

強密碼要夠長、隨機產生,而且只用在一個帳號。長度和隨機性比混用符號更重要:NIST SP 800-63B 現在建議,密碼作為唯一驗證因素時至少 15 個字元,不強制組成規則、不定期強制更換,並比對已外洩密碼清單。從 7,776 個單字的清單中隨機取 4 個單字,約有 51.7 位元的熵;取 6 個則約有 77.5 位元。

開啟密碼產生

強度以「要猜幾次」來衡量

攻擊者不會一個字母一個字母地猜。他們會先試外洩過的密碼,再試字典單字加上常見替換,接著是「首字大寫的單字 + 年份 + !」這類模式。像 P@ssw0rd2024! 這樣的密碼符合大多數複雜度規則,卻還是很早就會被猜中,因為它的每個部分都可預測。

熵值衡量的是一個隨機產生的密碼需要猜多少次。從 N 個符號中均勻隨機選出、長度為 L 的密碼,熵值為 L × log2(N) 位元,每多 1 位元,破解工作量就加倍。這條公式只適用於隨機產生的密碼;對人自己想出來的密碼毫無參考價值。

常見密碼形式的熵值

形式符號集大小每個符號的位元數範例長度總熵值
小寫字母264.7016 個字元≈ 75.2 位元
字母與數字625.9512 個字元≈ 71.5 位元
所有可列印 ASCII946.5512 個字元≈ 78.7 位元
所有可列印 ASCII946.5516 個字元≈ 104.9 位元
Diceware 單字7,77612.924 個單字≈ 51.7 位元
Diceware 單字7,77612.926 個單字≈ 77.5 位元

計算範例:log2(7,776) = 12.925,所以 4 個隨機單字有 4 × 12.925 ≈ 51.7 位元,約 3.7 × 10^15 種可能。攻擊者若以每秒 100 億次的速度猜測外洩的快速雜湊,大約 4 天就能全部試完。6 個單字在同樣速度下則需要約 70 萬年。

線上攻擊慢得多,因為登入表單有速率限制和鎖定機制。這麼大的安全餘裕,是為了資料庫外洩後的離線攻擊,那時猜測速度取決於網站如何儲存雜湊值。

NIST SP 800-63B 現在怎麼說

NIST 特別出版品 800-63B 第 4 版於 2025 年定案,規範美國聯邦系統的密碼規則,也被各地廣泛沿用。對接受密碼的服務,主要要求如下:

  • 密碼是唯一驗證方式時,最短 15 個字元;作為多重要素驗證的一部分時,最短 8 個字元。
  • 允許至少 64 個字元的密碼,並接受空格、所有可列印 ASCII 字元和 Unicode 字元。
  • 不設組成規則,例如強制要有數字、大寫字母和符號。
  • 不強制定期更換。只有在有證據顯示遭入侵時,才要求更換。
  • 把新密碼與封鎖清單比對,包括已外洩、常見或與情境相關的值,例如服務名稱或使用者名稱。
  • 不使用密碼提示或安全提問,並允許貼上,讓密碼管理工具能正常運作。

理由是組成規則和定期更換會讓人傾向使用可預測的模式,例如從 Summer2025! 改成 Autumn2025!,實際增加的熵值微乎其微。

密語與隨機字元比較

隨機字元隨機單字
範例r7#Qm2!vLx9@pT4zorbit-candle-mosaic-thrift-velvet-harbor
熵值≈ 105 位元(94 選 16)≈ 77.5 位元(7,776 選 6)
容易輸入否,在手機上尤其難打是
容易記住否多練習就記得住
最適合存放在密碼管理工具中的帳號少數必須背起來的密碼

單字必須隨機挑選,用骰子或產生器,而不是自己選。取自歌詞、名言或你會寫出的句子,熵值遠低於它的長度給人的印象。

實用守則

  1. 使用密碼管理工具,讓它為每個帳號產生獨一無二、16 個字元以上的隨機密碼。CISA 也給出同樣的建議。
  2. 只背少數幾組密語:密碼管理工具的主密碼和裝置登入密碼。使用五或六個隨機單字。
  3. 絕不重複使用密碼。撞庫攻擊(拿外洩的電子郵件與密碼組合到其他網站嘗試登入)是最常見的帳號盜用手法之一。
  4. 為電子郵件、網路銀行和密碼管理工具開啟多重要素驗證,優先使用通行密鑰或驗證器 App,而不是簡訊。
  5. 在服務通報外洩時才更換密碼,而不是照著行事曆定期換。

常見問題

密碼應該要多長?

依 NIST SP 800-63B 第 4 版,只靠密碼保護的帳號至少要 15 個字元。存放在密碼管理工具中的隨機密碼,16 到 20 個字元是很合適的預設值。

密語比密碼更安全嗎?

如果單字是隨機選出的,就可能更安全。6 個隨機單字勝過一般人自己想的 10 個字元密碼,但 16 個字元的隨機密碼熵值又比 6 個單字更高。

需要定期更換密碼嗎?

不需要。NIST 不建議強制定期更換,因為這會導致可預測的變化。出現遭入侵的跡象時,例如收到外洩通知,再更換即可。

加入特殊字元會讓密碼更強嗎?

只強一點點。可用字元從 62 個增加到 94 個,每個字元只多約 0.6 位元;但多加一個字元,就能增加約 6.5 位元。長度比符號更有幫助。

所有知識文章