密碼破解概論


近些年,「信息時代」、「信息技術」和「信息如何統治世界」等字眼一直充斥著我們的耳朵,因此很多人覺得信息就是一切。但是,這又意味著什麼呢?信息本身 重要麼?我認為不完全是這樣。我們需要信息來幫助我們進行決策,這才是真正重要的問題。因此在任何商業環境下,獲取信息的多少與是否完整都會給我們在競爭 中帶來優勢。

毫無疑問,很多時候我們的注意力都集中在對信息的保護上。當今的軟件和硬件提供了很多限制訪問信息和防止信息洩露的方法:有控制訪問信息和權限的工具,有為了防止攻擊設計的系統、備份程序和防病毒程序等。
但 是,對於所有用戶而言,最簡單易用的方法還是使用密碼對數據進行保護。密碼可以防止非授權的用戶訪問系統、文檔和數據庫。眾所周知,在信息鏈中,人是最薄 弱的環節—使用密碼保護也不例外。人很容易忘記密碼,這是很正常的,這取決於計算機使用者需要記憶的密碼數量。但是,如果由於某些原因忘記了密碼,這就意 味著無法訪問數據。

拒絕訪問…
銷售、現金周轉、客戶數據庫、會計和管理報告、分析報告和預測等數據,所有這些都是成功經營公司和制定戰略決策的重要信息。通常,這類信息都有密碼保護。 這對任何公司而言都是基本的安全策略。但是,如果急需訪問一些數據,卻發現不知道密碼怎麼辦?這類情況並不鮮見。

首先,您可能會忘記密碼。您沒有將密碼寫下,因為您認為可以通過一些簡單的聯想記住密碼。比如:最喜歡的食物和您的出生日期。您不會忘記生日,但是最喜歡 的食物就是另外一回事了。在去克利特島度假之後,您的腦海中所想的可能全是希臘沙拉,但是「希臘沙拉」可不會幫您訪問系統。

曾經某位銷售經理決定實現自己的夢想而到西藏遊覽90天,她離開公司卻沒有將瀏覽文件的密碼告知他人。但此時公司業務遇到了危機:客戶要求公司如果無法立 即付款就要終止合同!但是您所以無法聯繫到遠在西藏的銷售經理,也並不知道合同中所列的價目和細節。這種情況在您的公司中是不是也發生過?

有時,某些僱員會因為一些經濟原因或者為競爭對手工作而被解僱。在這種情況下,他們不會主動告知相關文檔的密碼。如果您迫切需要處理這些文檔,就會出現問題:只有取得了密碼,您才可以獲取信息開始今天的工作任務。

如何解決這些密碼難題?
自從發明加密技術以來,丟失密碼就是一個很大的問題。軟件開發者一直致力於解決這個問題。如今市場上已經有了一些密碼恢復軟件。我們來看看這些軟件破解密碼的方法。對於初學者,我們要先瞭解一下密碼的不同類型以及在搜索密碼時可能有幫助的信息。

通常情況下,一個密碼會包含如下符號:26個小寫字母(a到z),26個大寫字母(A到Z),10個數字(0到9),和33個其它字符(!@#$%^,等)。我們可以使用這95個字符的任意組合作為密碼。

此外,對於人類心理學的瞭解對搜索密碼有很大的幫助。儘管為了加強密碼的可靠性有很多限制(如對密碼的長度限制等),但是很多用戶都無視這些最基本的原則,一再暴露上文提到的「弱點」,即:人的因素。

大多數密碼由使用者的母語字母和符號組成。有些「蠕蟲病毒」所竊取的數據通常與使用者的個人生活有關:出生年月、寵物的名字、電話號碼或者銀行卡號碼等。 一些人可能僅僅將舊的密碼做了一些小的修改形成新的密碼,這也是大多數人修改密碼的方法。人們通常將密碼寫在桌上或者將其儲存在計算機中的一個文件夾內, 這種做法使得密碼保護完全失去了作用。結果是,只要瞭解基本的密碼規則(允許使用的符號和規定的長度),並對使用者有一些瞭解,就可以輕鬆的瞭解到一個未 知的密碼。各種密碼恢復軟件就是使用了這種技術。

我們可以採用的方法……
目前,通過軟件搜索密碼的主要方法有:簡單掃瞄、掩碼掃瞄、字典攻擊、加密密鑰掃瞄(可能比暴力掃瞄所產生的密碼變體要少)和所謂的彩虹表攻擊。在某些情 況下,其它類型的密碼恢復只能打開文件,這種密碼恢復被稱為純文本攻擊(基於已知的內容)。我們來詳細瞭解一下各種方法。

暴力破解
暴力破解方法非常簡單:程序會嘗試所有可能的字符組合來找到正確的密碼。可以限定搜索內容:如密碼字符的數量,定義允許使用的字符類型(字母、數字或其它符號),甚至可以指定密碼的第一個字符。
使用暴力破解方法重新獲取密碼所需的時間取決於密碼的長度、所使用的不同符號、計算機的性能和使用密碼保護的文件的種類。

在不嘗試所有可能的組合的情況下,可能會很快找到密碼。但是,您不能完全依靠這種偶然的情況。如果使用普通電腦,暴力破解方法可能需要幾年的時間。這是最浪費勞動力的方法。因此只有在沒有其它替代方法的情況下我們才會推薦這個方法。

掩碼掃瞄
如果您是創建密碼的人,您可以通過使用掩碼大大縮小搜索參數來重新取得密碼。您可能會記得密碼的位數或者某些特定的字符。任何信息都加速解密都會有所所幫助。

例如:您記得密碼中只使用了數字和小寫字母。這就是說可以在搜索中排除其它特殊字符和大寫字母。如果您知道某些字符在密碼中的位置也會有所幫助。例如:您 知道密碼有10位字符,第一位是字母「a」且後四位字符是2007,那麼您可以輸入「a?????2007」作為搜索模板。未知的字符使用問號表示。

使用掩碼意味著軟件可以減少測試可能的組合,這樣找到正確密碼所需的時間會大大縮短。但是,通常我們幾乎不知道關於密碼的任何信息。因此我們無法使用掩碼掃瞄。另一方面,還有另外一種效果很好的方法可以獲取密碼。

字典攻擊
如 果您知道密碼中可能使用的單詞或者名稱,這時可以使用字典搜索。事實上很多人會在密碼中使用常用的單詞。通常,這些單詞包括:「open,」 「access,」 「password,」等。因為記憶單詞比記憶隨機組合的字母和數字要簡單得多。事實上,忘記這類密碼同樣簡單。這類密碼的獲取相對容易。

但是要到哪裡找到這類字典呢(或者是更為精確的字母列表)?字典可能會包含在軟件中。另外的方法就是通過網絡—FTP服務器通常包含常用字的列表、按主題分類的列表(動物、足球隊…)、縮略語等。另一種可能就是用戶編寫了自己特有的列表。

這種方法的優點很明顯。用戶作為密碼輸入的單詞列表通常很有限而且不會超過100,000個。現在的計算機處理100,000種字符變體不成問題。應該優先使用這種方法。

彩虹表攻擊

我們知道,影響獲取密碼最關鍵的因素就是所需要的時間。我們知道使用暴力破解方法會校驗每種可能的組合,對於複雜的密碼而言,這樣會耗費很長的時間。可能會花費幾個月甚至幾年的時間才能取得密碼,在大多數時候我們都不會考慮這種方法。

因此,我們發明了彩虹表攻擊的方法。這種方法使用預先計算的方法來搜索密碼。人們考慮使用預先計算的查找表進行搜索來替代大量佔用CPU的計算。查找表適用於從內存中提取數據比創建數據要簡單得多的情況。
彩虹表攻擊採用對某一特殊的字符序列預先計算出的變體進行搜索。在使用暴力方法排出一個密碼所需的時間內,我們可以獲得一些查找表,以很高的概率在所檢測的範圍內查找密碼可以節省上千倍的時間。

彩虹表的大小比一般的查找表要小得多—一般的查找表大小為TB級,彩虹表為GB級。所減少的大小取決於最優化程度。不得不說,辨認密碼的可能性減少時,獲 取密碼所需的時間會增加。例如:在使用7位包含字母和數字符號的彩虹表時(需要大約1周時間來創建彩虹表),彩虹攻擊可以在最多20-30秒的時間內獲取 任意由7位字母或數字組成的密碼。直接輸入不同密碼組合的方法可能會需要超過24小時的時間。這種方法的優勢顯而易見。

因為編輯製作彩虹表需要花費大量的時間,因此彩虹表的成本大大增加,造成價格昂貴,目前主要應用於企業和政府部分中。

做出正確的決定
毫無疑問,快速恢復密碼的軟件很有用處,每個執法部門、系統管理員都需要一份這樣的工具軟件。您需要什麼樣的密碼恢復軟件呢?

功能和效果
首先,要看開發者聲稱的密碼恢復功能。這是決定軟件功能最重要的標準。能否成功的獲取密碼取決於受保護的文檔類型和計算機性能。此外,由於對安全性越來越警惕,用戶們會創建更安全的密碼。但是,對於某些類型的密碼和文檔,軟件開發人員會保證99%的成功率。

運行環境和支持版本
其次,要瞭解軟件所支持的操作系統、應用程序版本、文件格式、所支持的語言和代碼。我們無法預測所要破解的Word和Acrobat是什麼版本,更不用說 字符集了(例如:中文或阿拉伯字符)。還要瞭解軟件需要多久的時間可以適應新版本的應用程序。無法支持Office 2007的軟件是沒有用的。

解密速度
我們需要考慮的另一件事是獲取密碼所需的時間。當然,根據計算機性能的不同,所需的時間也會有所不同。但是,軟件製造商一般會給出平均時間數據。我們必須要知道時間單位,是分鐘、天、周還是月。

分佈式運算能力
最 後,我們要瞭解軟件是否支持分佈式密碼獲取。分佈式方法需要利用本地計算機和遠程計算機所組成的整個計算機組進行。這種方法也可以應用在密碼破解上。對於 某些文檔和應用程序,我們可以非常快速地獲取密碼(如:保存在本機上的ICQ或者GoogleTalk的密碼)但對於PGP等構建體系非常完善的密碼,因 此只能使用分佈式方法進行破解。

這些是選擇密碼恢復軟件的幾個主要標準。

分佈式密碼解決方案
在討論恢覆覆雜密碼時我們已經提到分佈式計算方法。Elcom­Soft公司的分佈式密碼恢復軟件可以充分發揮可以聯網計算機的性能。

這個軟件可以解決Microsoft Office、Microsoft Money、Microsoft OneNote、Adobe Acrobat、Intuit Quicken、Lotus Notes創建的任何文檔的密碼、Windows 2000/XP/2003/Vista登陸口令密碼、PGP密鑰(*.skr)和PGP Dishk(*.pgd)破解等。

這個軟件包含三個組件:服務器組件、代理組件和控制台組件。服務器組件安裝在網絡中的一台計算機上,用來控制密碼恢復的進程。代理組件安裝在網絡中的任意 計算機上,用來測試服務器產生的密碼。控制台組件安裝在網絡中的任意計算機上,用來控制服務器和恢復進程或者添加新的任務及查看統計信息。

配合Elcomsoft研發的最新GPU密碼解決方案,配合NVIDIA顯卡,單機解密速度可提升幾十倍。對於企業和政府部門,還可以使用個人超級計算機,每台計算機多大960個核的運算能力,再聯機進行分佈式運算,解密速度將無與倫比。


轉自計算機取證技術

2 意見:

  Sprite

2009年4月14日 晚上10:25

谢谢转载我所写和翻译文章。多交流
Sprite Guo
Founder of China Computer Research Center
sprite@china-forensic.com

  Mr.J

2009年4月15日 晚上9:54

謝啦~還要跟您多學習!!