Passwords

更長的密碼對暴力攻擊真的更安全嗎?

  • March 16, 2020

如果我們取兩個不同長度的密碼字元串並嘗試暴力匹配它們,很明顯,更長的密碼字元串平均破解所需的時間更長。但是,如果我們假設在選擇密碼時給出了最大密碼長度,那麼實際選擇的密碼有多長真的很重要,如果它被填充到最大長度嗎?

例子:

最大長度:10 個字元

密碼 A:“abc”-> 填充到“abc0000000”

密碼 B:“abcdefgh”-> 填充到“abcdefgh00”

現在我們有兩個長度相等的字元串,理論上它們都應該同樣難以破解,儘管輸入的實際密碼更短。這假設填充技術當然是保密的。

這個推理有什麼問題嗎?這真的在實踐中完成了嗎?如果不是,為什麼不呢?

如果我們取兩個不同長度的密碼字元串並嘗試暴力匹配它們,很明顯,更長的密碼字元串平均破解所需的時間更長。

實際上,這對您來說可能很明顯,但事實並非如此。

蠻力搜尋是攻擊者擁有一長串密碼並連續嘗試它們的搜尋。現在,如果攻擊者非常聰明,他們會將可能出現的密碼放在列表的最前面,而不太可能出現的密碼則放在後面。也就是說,密碼的“優點”不是它的長度,而是它猜到的可能性有多大。

特別是,密碼123456789比密碼差得多,2u,7J$n即使後者短兩個字元。

而且,由於密碼的全部強度是不可能被猜到的,因此固定轉換(如您所建議的)不會增加強度。如果攻擊者猜到了真正的密碼abc,他們將通過已知的轉換執行它,產生abc0000000並檢查底層密碼邏輯;如果我們沒有添加0字元,那麼成功的可能性相同。

Ars Technica中有一篇 2013 年的文章駁斥了長密碼必然難以破解的觀點。它詳細介紹了安全研究人員 Kevin Young 和 Josh Dustin 如何將 Wikipedia 和 Project Gutenberg 的文本作為種子,想出越來越長的片語來嘗試在他們的密碼破解器中嘗試,並設法破解了一些令人印象深刻的長密碼片語:

幾乎立即,大量曾經頑固的密碼暴露了自己。其中包括:“我還能再見到你的臉嗎?” (36 個字元)、“起初是這個詞”(29 個字元)、“從創世記到啟示錄”(26 個)、“我什麼都不記得”(24 個)、“thereisnofatebutwhatwemake”(26 個)、“givemelibertyorgivemedath”(26 個) ) 和“日東月西” (25)。

in the beginning was the word長度為 29 個字元,但它也是福音書中的約翰福音 1:1,因此他們基於片語的字典攻擊能夠破解它。

所以長度畢竟不是密碼強度的保證。唯一能可靠保證強度的就是隨機性。密碼破解者大致有以下兩種技術:

  1. 在不太可能的猜測之前嘗試可能的猜測;
  2. 以非常高的速度測試猜測

而對這些技術的最佳防禦是從足夠大的集合中****以相同的可能性隨機挑選密碼。這就是為什麼像Diceware這樣的方法會生成有保證的強密碼的原因——這不是因為密碼片語很長,而是因為生成一個六字密碼片語實際上涉及進行 30 次擲骰子,攻擊者不可能猜到。但生成的 6 字 Diceware 密碼與隨機的 11 個字母數字密碼的強度相當,因此可以在適度短但更亂的密碼中實現相同的強度。

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