理論觀點
讓我們在這裡進行數學運算。共有26個字母,10個數字,並假設有10個特殊字符。首先,我們假設密碼是完全隨機的(並且使用一個組中的字符的可能性比另一組中的字符的可能性小)。
然後,可能的密碼數量為編寫為 C = s ^ n
,其中 s
是字母的大小,而 n
是字符的數量。密碼的熵定義為:
log2(C)= log2(s ^ n)= log2(s)* n
讓插件問題中的數字:
sn熵(位)A 52 6 34.2B 52 10 57.0C 72 7 43.2D 26 10 47.0E 26 5 23.5
因此,在這種情況下,C只是僅次於B和D的第三好的選擇。
實用的觀點
但這都是在隨機性假設下進行的。對於人們如何生成密碼,這不是一個合理的假設。人類只是不會那樣做。因此,我們將不得不選擇其他一些假設,以了解密碼的生成方式以及攻擊者在其字典中嘗試使用密碼的順序。
一個不合理的猜測是,許多字典都是以單詞開頭的,只有後來才這樣。繼續進行替換並添加特殊字符。在這種情況下,短密碼中的單個特殊字符要比真正長的普通單詞更好。但另一方面,如果攻擊者知道總是使用特殊字符,則她將首先嘗試使用這些密碼。第三方面,字典可能是圍繞完全不同的原理(例如在洩漏的數據庫中出現)集中。
我可以永遠推測。
為什麼是問題,而不是答案,那是錯誤的
問題在於,如何生成密碼有很多原則可供選擇,我可以任意選擇一個,以便幾乎所有答案都是正確的。因此,整個問題毫無意義,只會掩蓋世界上沒有任何密碼策略可以強制執行的重要觀點:密碼包含的強大字符不是什麼-密碼的生成方式。 em em>
例如, Password1!
包含大寫,小寫,數字和特殊字符。但這不是很隨機。另一方面, ewdvjjbok
僅包含小寫字母,但更好,因為它是隨機生成的。
他們應該做的
如果您只是不再依賴容易出錯且有限的人類記憶,那麼字符集和長度就不再是您必須相互權衡的限制因素。可以同時擁有兩個。
一種方法是使用密碼管理器。正如 Dan Lowe在評論中指出的那樣,這可能不是醫院的可行選擇。第二種選擇是使用某種雙因素身份驗證(例如,硬件令牌或鑰匙卡),這會使第一因素(密碼)的安全性變得不那麼重要。
這是系統的責任經理而不是最終用戶來實施。他們必須提供允許最終用戶以實用和安全的方式執行其工作的工具。沒有多少用戶培訓可以改變這一點。