2009-10-10 72 views
5

當我們說字典攻擊時,我們並不是真的意味着真正的字典,是嗎?我的猜測是我們的意思是一個黑客詞典,即rainbow tables,對吧?什麼是字典式的攻擊?

我的觀點是我們不是在談論某人將不同的密碼輸入到登錄框中,我們正在談論的是一個對數據庫有完全訪問權限的人(它有散列的密碼,而不是簡單的密碼),並且這個人正在倒轉哈希,對不對?

+9

如果你看到有人跑向你,揮舞着牛津英語詞典的大副本...... – 2009-10-10 10:37:50

+1

+1爲幽默,並間接回答我的問題;) – Chris 2009-10-10 10:39:40

+1

米奇:你讓我早上好。謝謝。現在我在我的鍵盤上喝茶。 – Joey 2009-10-10 10:39:56

回答

9

由於密碼經常是密碼學中最容易被攻擊的部分,它實際上是一種真正的字典。假設是人們懶惰,並選擇適當的詞作爲密碼或構建密碼。雖然字典可以包含其他內容,例如常用的非字或字母/數字組合。基本上,所有可能是是一個糟糕的選擇密碼。

這裏有一些程序需要整個硬盤驅動器,並且假設用戶的密碼在某個時間點以明文形式存入內存(然後進入內存頁面文件),或者它只是在語料庫中存在,如果存儲在硬盤上的文字:

即使如此,沒有這實際上可能無關緊要。 AccessData銷售另一個程序Forensic Toolkit,除此之外,它還會爲每個可打印的字符串掃描硬盤驅動器。它在文檔中,註冊表中,電子郵件中,交換文件中,硬盤驅動器上的已刪除空間中...無處不在。它從中創建一個字典,並將其提供給PRTK。

而PRTK僅打破本字典中超過50%的密碼。

實際上,即使包含有關人們通常如何構建密碼的知識,也可以使字典更加有效。施奈爾談到這個長長:

  • 常用字字典:5000項
  • 名稱詞典:10000個條目
  • 綜合大辭典:100,000項
  • 語音圖案辭典:1/10000詳盡的字符搜索

語音模式字典很有趣。這不是一本真正的字典;這是一個馬爾可夫鏈例程,可生成給定長度的可發音的英文字符串。例如,PRTK可以生成和測試非常易讀的六字符字符串或幾乎不可發音的七字符字符串的字典。他們正在研究其他語言的生成例程。

PRTK還運行四字符串窮舉搜索。它以小寫字母(最常見),大寫字母(第二大字母),全部大寫字母和最後一個大寫字母運行字典。它運行帶有通用替換的字典:「$」表示「s」,「@」表示「a」,「1」表示「l」等等。這裏包含任何「leet speak」的內容,如「e」中的「3」。「

的附屬物字典包括了諸如:

  • 所有兩位數組合
  • 從1900年的所有日期至2006年
  • 所有三位數組合
  • 所有單個符號
  • 所有單一的數字,再加上單個符號
  • 所有兩個符號的組合

布魯斯:選擇安全密碼。 In:Schneier on Security。 (URL

2

字典攻擊是其中attakers嘗試從一個相當正常的字典中的字,因爲很多人會用它可以在字典中找到簡單的密碼攻擊。

百科:Dictionary attack

3

A「字典攻擊」通常是指試圖猜出使用「字典」密碼;也就是通常使用的一長串密碼,通常與人們可能懶洋洋地設置密碼的單詞或單詞組合相對應。如果不是通過指定實際的明文密碼來猜測密碼,而是使用密碼散列,並且想要猜測密碼,則將使用彩虹表。您需要指定常用密碼的哈希值,並嘗試將它們與您擁有的密碼哈希值進行匹配,以便嘗試獲得匹配以確定密碼是什麼。

3

好吧,如果我把一本字典你,這會傷害他嗎?

但是,是的,一個dictionary attack使用單詞的列表。它們可能來源於字典或常用短語或密碼列表(例如'123456')。

rainbow table與字典不同 - 它是給定散列函數的反向查找,所以如果你知道一個散列,你可以識別一個可以產生散列的字符串。例如,如果我知道您的密碼具有e10adc3949ba59abbe56e057f20f883e的無損MD5散列值,則可以使用rainbow table來確定123456散列值爲該值。