注意:只是在找單詞錶?
- 點擊此處查看EFF的長單詞清單(用於五個骰子)[.txt],
- 點擊此處查看EFF的通用短詞清單(用於四個骰子)[.txt],以及
- 按一下此處查看EFF的簡短單詞清單(包含具有唯一三個字元首碼的單詞)[.txt]。
隨機生成的密碼短語比用戶選擇的密碼提供了重要的安全陞級。估計猜測或破解人工選擇的密碼的難度是非常困難的。這是我自己博士論文的主要主題,也是一個活躍的研究領域。(當人們自己選擇密碼時,其中一個困難是人們不太擅長做出隨機的、不可預知的選擇。)
量測隨機生成的密碼短語的安全性很容易。隨機生成密碼短語(由XKCD永久化)的最常見方法是從單詞清單中隨機選擇幾個單詞。你選擇的單詞越多,或者清單越長,就越難破解。從數學上看,對於從長度n的清單中選擇的k個單詞,存在這種類型的nk個可能的密碼短語。要破解這個密碼短語,對手平均需要大約nk/2個猜測。不過,這留下了一個大問題:我們從哪裡獲得適合密碼短語的單詞清單,以及如何選擇該清單的長度?
為了不同的目的,已經發佈了幾個單詞清單;到目前為止,對它們的可用性幾乎沒有科學的評估。最受歡迎的是阿諾德·雷因霍爾德(Arnold Reinhold)於1995年首次公佈的骰子清單。這個清單包含7776個單詞,相當於五個六面骰子(7776=65)的可能順序卷數,囙此適合使用標準骰子作為隨機性的來源。雖然Diceware清單已經使用了20多年,但我們相信有幾個途徑可以提高可用性,並且正在引入三個新清單,用於一組5個骰子(作為夏季安全重啓活動的一部分,EFF正在向捐贈者提供一個骰子集)。
骰子軟件清單上的增强功能
Diceware清單可以提供强大的安全性,但對可用性提出了一些挑戰。特別是,清單中的一些單詞可能很難記住,很難拼寫,或者很容易與另一個單詞混淆。
- 它包含許多罕見的詞,如滴定管,諾沃,真空
- 它包含不尋常的專有名稱,如della、ervin、eaton、moran
- 它包含一些奇怪的字母序列,如aaaa,ll,nbis
- 它包含一些帶有標點符號的單詞,例如“不是”,不是,他會
- 它包含單個字母和非單詞雙字,如tl、wq、zf
- 它包含數位和變體,如46、99和99
- 裡面有很多粗俗的詞
- Diceware密碼需要空格才能正確解碼,例如in和put都在清單和輸入中。
請注意,對於使用軟鍵盤或其他依賴於單詞識別的打字系統的用戶來說,這些問題中的一些更加嚴重。只使用有效的字典單詞使此設定更容易。
我們新的“長”名單
我們的第一個新清單在大小(7776個單詞(65))上與原始的骰子軟件清單匹配,為您選擇的每個單詞提供同等的安全性。但是,我們已經修復了上述問題,結果得到了一個清單,希望它很容易鍵入和記住。
我們是根據根特大學閱讀研究中心收集的數據編制的。根特小組長期以來一直在研究單詞識別;你可以參加他們的線上測試來量測你的英語詞彙。這個清單給了我們一個很好的主意,哪些單詞是最可能熟悉的英語發言者,並消除了原來的骰子軟件清單中的大多數不尋常的單詞。這些數據還包括每個詞的“具體”等級,從非常具體的詞(如螺絲刀)到非常抽象的詞(如愛)。
我們從清單中選取了3到9個字元之間的所有單詞,對識別度最高的單詞和最具體的單詞進行優先排序。我們手動檢查並嘗試删除盡可能多的褻瀆、侮辱、敏感或情緒化的單詞,還根據一些低俗英語單詞的公開清單(例如,Luis von Ahn發佈的這個清單)進行篩選。我們進一步删除了難以拼寫的單詞和同音詞(在回憶過程中可能會混淆)。我們還確保沒有任何單詞是任何其他單詞的確切首碼。
結果是我們自己的7776個單詞的清單[.txt]適合用於骰子生成的密碼短語。我們清單中的單詞平均比Reinhold的Diceware清單(4.3個字元)長(7.0個字元)。這是由於禁止3個字元以下的單詞,以及將熟悉的單詞優先於簡短但不尋常的單詞。
請注意,使用兩個清單生成的密碼短語的安全性是相同的;區別在於可用性,包括可記憶性,而不是安全性。對於大多數用途,我們建議使用此清單生成一個六字密碼短語,其熵强度為77比特。(“比特熵”是衡量密碼或密碼短語强度的常用名額。新增一比特熵會使所需的猜測次數新增一倍,這使得使用暴力的難度增加一倍。)每新增一個單詞,密碼短語就會增强12.9比特。
我們新的“短名單”
我們還引入了新的清單,其中只包含1296個單詞(64個),適合與四個六面骰子一起使用。通過减少清單中的單詞數,我們可以使用最多5個字元的單詞。如果輸入N個短單詞所需的字元比輸入N-1個長單詞所需的字元少,則這可以提高輸入相同安全性的效率。
使用較短清單生成的密碼短語在每個字的基礎上(10.3比特/字)將比長清單弱。換句話說,這意味著您需要從短清單中選擇更多的單詞,以獲得與長清單相當的安全性例如,使用短清單中的八個單詞將提供大約82比特的强度,略强於長清單中的六個單詞。
第一個短清單[.txt]旨在包含1296個最難忘和最獨特的單詞。我們希望這種方法可以為更長的密碼短語提供可用性改進。進一步的研究需要確定哪個清單將產生更容易記住的密碼短語。
最後,我們還發佈了一個簡短的清單[.txt],其中包含一些使單詞易於鍵入的附加功能:
- 每個單詞都有一個唯一的三個字元首碼。這意味著未來的軟件可以在用戶鍵入前三個字元後自動完成密碼短語中的單詞
- 所有文字之間的編輯距離至少為3。這意味著未來的軟件可以更正使用者密碼中的任何一個拼寫錯誤(在許多情况下,可能不止一個)。
我們添加了這些功能,希望它們將來可以被專門設計用來利用它們的軟體使用,但今天不會帶來顯著的好處,所以這個清單主要是為單個用戶提供概念證明。軟體發展人員也許能找到這個清單的有趣用途。
摘要
在不同的情况下,不同的清單可能會更好,這是非常好的。例如,當您確定容易記住的優先順序時,或者當您知道不需要最高級別的密碼强度時,可以考慮使用其中一個短清單。這可能包括提供額外保護的網站登錄,如雙因素身份驗證,並且該速率限制猜測以防止暴力。
如果您經常鍵入密碼短語(而不是使用密碼短語資料庫),則可以優先减少單詞的長度。我們的長清單平均每個字有7.0個字元,每個字有12.9比特熵,每個字元有1.8比特熵。我們的短清單平均每個字4.5個字元,每個字10.3比特熵,每個字元產生2.3比特熵。我們的防錯清單效率低得多,每個字元只有1.4比特熵。但是,使用將來的自動完成軟體功能,每個字只需要鍵入三個字元,在這種情況下,這將是最有效的清單,每個鍵入的字元使用3.1比特熵。
你可能會發現原來的骰子遊戲清單中的平均長度越短越好。考慮到我們提到的使用這個清單的困難,這也非常好。注意,原始的Diceware清單為每個字元提供了3.0比特的熵,囙此輸入更少。如上所述,我們覺得這個清單中大量的短單詞(包括單字母和雙字)很難記住,囙此在减少鍵入時間方面是一個不好的折衷。
由於密碼短語是單獨選擇的,所以可以存在多個清單。事實上,這甚至可能新增安全性,因為這意味著攻擊者對使用哪個清單生成密碼短語有一定的不確定性。
我們認為我們的清單對於使用EFF的骰子(或其他管道)生成密碼短語的人很有用,儘管它們肯定不是這件事的最後一個詞。在記憶性和優化清單的方法方面還有很大的研究和實驗空間,我們希望人們繼續探索這一領域。
在夏季安全重啓期間支持EFF的工作!