Passwords

對常用算法的密碼片語進行字典攻擊?

  • December 13, 2017

我還不完全理解暴力破解和字典攻擊之間的區別,因為這區分了一個攻擊密鑰和另一個攻擊密碼:顯然攻擊密碼可能需要更長的時間,對吧?

但這並不一定是正確的,這取決於使用者的不知情程度,這就是字典的亮點。

因此,正如最近的 XKCD 所展示的那樣,密碼片語更加安全不是因為它們的位熵,而是因為它們的位長,即使密碼片語是用字典中的常用詞完成的,對如果密碼至少是 3 或 4 個單詞,它仍然是“不可行的”,這使得它仍然很容易記住。

那麼強制使用者在字典中選擇至少 3 個單詞以獲得足夠長的密碼(例如具有一些自動完成功能)是否是一個好的設計選擇?你怎麼看?

PS:我不是在需要設計工作的昂貴資訊的背景下問這個問題,考慮到攻擊者可以訪問密文(這在網路上不一定正確),我更多地考慮為公共使用提供良好的隱私.

“蠻力”是一個定義鬆散的傳統表達方式,表示一種低數學智能的攻擊,即嘗試對某個未知數的所有可能值。例如,在使用 AES 的對稱加密的上下文中,使用 128 位密鑰,“暴力破解”將嘗試所有可能的 128 位序列作為可能的密鑰,直到一個匹配(並且這樣的序列太多,平均攻擊成本將是天文數字,因此完全不切實際)。

字典是一組“可能的密碼”,字典攻擊是嘗試從字典中嘗試所有可能的密碼。因此,字典攻擊可以稱為“蠻力”。然而,“蠻力”這個表達方式在某種程度上暗示了不精確,並且在字典的定義中可能存在相當多的心理技巧。正如我所說,“蠻力”在數學上沒有明確的含義。

在“強制使用者至少選擇字典中的 3 個詞”中,最差的詞是“強制”。對使用者強制執行密碼規則往往會適得其反。使用者應該合作,如果你對抗他們,那麼他們會以極大的創造力積極尋求對策。您真的不希望使用者將密碼作為負擔。請記住,幾乎沒有一個使用者會有數學上正確的密碼熵概念;大多數人不會在意,大多數在意的人會以與電影中使用密碼相同的方式考慮密碼:對某些事件或對象的詼諧暗示,應該通過一些“聰明”來擊敗攻擊者。

你提案中第二個最糟糕的詞是“選擇”。為了擊敗字典攻擊,字典(作為“潛在密碼集”)應該很大。一組潛在的密碼是使用者將有效選擇的,而不是你給他們的名單的長度。如果你給他們一個包含 1000 個單詞的列表並告訴他們隨機“選擇”其中一個,許多人會在前 10 個單詞中選擇一個。人類根本不擅長以統一的隨機性做事。密碼選擇過程應該涉及一個物理設備(例如骰子或硬幣),而且——這是重要的一點——使用者必須堅持使用隨機選擇的單詞。如果使用者可以自由選擇他們認為合適的內容,那麼大多數人會認為合適的選擇具有含義的單詞(例如,“說某事”的單詞序列),因為那是他們最能記住的內容。

引用自:https://crypto.stackexchange.com/questions/484