MD5加密算法在加密和解密技術(shù)上的應(yīng)用

關(guān)于加密算法,我們了解的最多的就是MD5了,它的加密驗(yàn)證的安全性一直都是很高的,很多論壇和軟件都將用戶名對(duì)應(yīng)密碼通過(guò)MD5加密后保存,和以往僅僅明文保存相比,MD5加密后的保存信息更加安全,畢竟MD5加密后的信息安全性更高,MD5加密方式也是單向的并不存在任何逆向破解。然而你是否知道MD5也并不是真正安全的,入侵者在獲得了MD5加密后的字符串后依然可以通過(guò)多種方法破解成明文密碼。

一,MD5加密簡(jiǎn)介:

MD5是一種不可逆的加密算法,md5的全稱是message-digest algorithm 5.在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest開(kāi)發(fā)出來(lái),經(jīng)md2、md3和md4發(fā)展而來(lái)。它的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密匙前被"壓縮"成一種保密的格式(就是把一個(gè)任意長(zhǎng)度的字節(jié)串變換成一定長(zhǎng)的大整數(shù))。

1991年,rivest開(kāi)發(fā)出技術(shù)上更為趨近成熟的md5算法。它在md4的基礎(chǔ)上增加了"安全-帶子"(safety-belts)的概念。雖然md5比md4稍微慢一些,但卻更為安全。這個(gè)算法很明顯的由四個(gè)和md4設(shè)計(jì)有少許不同的步驟組成。md5的典型應(yīng)用是對(duì)一段信息(message)產(chǎn)生信息摘要(message-digest),以防止被篡改。比如,在unix下有很多軟件在下載的時(shí)候都有一個(gè)文件名相同,文件擴(kuò)展名為。md5的文件,在這個(gè)文件中通常只有一行文本,大致結(jié)構(gòu)如: md5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461

這就是tanajiya.tar.gz文件的數(shù)字簽名。md5將整個(gè)文件當(dāng)作一個(gè)大文本信息,通過(guò)其不可逆的字符串變換算法,產(chǎn)生了這個(gè)唯一的md5信息摘要。如果在以后傳播這個(gè)文件的過(guò)程中,無(wú)論文件的內(nèi)容發(fā)生了任何形式的改變(包括人為修改或者下 載過(guò)程中線路不穩(wěn)定引起的傳輸錯(cuò)誤等),只要你對(duì)這個(gè)文件重新計(jì)算md5時(shí)就會(huì)發(fā)現(xiàn)信息摘要不相同,由此可以確定你得到的只是一個(gè)不正確的文件。如果再有一個(gè)第三方的認(rèn)證機(jī)構(gòu),用md5還可以防止文件作者的"抵賴",這就是所謂的數(shù)字簽名應(yīng)用。md5還廣泛用于加密和解密技術(shù)上。比如在unix系統(tǒng)中用戶的密碼就是以md5(或其它類似的算法)經(jīng)加密后存儲(chǔ)在文件系統(tǒng)中。當(dāng)用戶登錄的時(shí)候,系統(tǒng)把用戶輸入的密碼計(jì)算成md5值,然后再去和保存在文件系統(tǒng)中的md5值進(jìn)行比較,進(jìn)而確定輸入的密碼是否正確。通過(guò)這樣的步驟,系統(tǒng)在并不知道用戶密碼的明碼的情況下就可以確定用戶登錄系統(tǒng)的合法性。這不但可以避免用戶的密碼被具有系統(tǒng)管理員權(quán)限的用戶知道,而且還在一定程度上增加了密碼被破解的難度。

二,從實(shí)戰(zhàn)討論MD5的加密安全性:

那么MD5就真的沒(méi)有任何安全問(wèn)題嗎?即使黑客或入侵者獲得了MD5加密后的代碼就真的無(wú)法破解出真實(shí)明文密碼信息嗎?答案是否定的,在很多時(shí)候我們可以通過(guò)暴力破解的方法將MD5輕松破解。下面就請(qǐng)各位跟隨筆者從實(shí)戰(zhàn)了解MD5的加密安全性。

(1)獲取MD5密碼:

筆者目標(biāo)網(wǎng)站是使用了青創(chuàng)文章管理系統(tǒng)XP測(cè)試版的一個(gè)文章發(fā)布平臺(tái),經(jīng)過(guò)掃描找到了他的后臺(tái)登錄地址http://xxx/admin_index.asp.

第一步:使用工具對(duì)目的網(wǎng)站進(jìn)行掃描,查找其密碼和管理員用戶名稱。

第二步:經(jīng)過(guò)掃描找到目的網(wǎng)站存在表名article_admin,并成功猜測(cè)出帳號(hào)字段名——username,帳號(hào)長(zhǎng)度為五位,密碼字段名是password,猜測(cè)出密碼長(zhǎng)度為16位。

第三步:繼續(xù)掃描破解得出帳戶長(zhǎng)度五位用戶名是admin,密碼長(zhǎng)度16位是6f9466a1dae2a6a6,根據(jù)經(jīng)驗(yàn)這個(gè)16位的密碼應(yīng)該是經(jīng)過(guò)MD5加密過(guò)的,我們直接輸入該信息作為密碼是無(wú)法順利登錄后臺(tái)的。

小提示:

MD5加密過(guò)的代碼字段都是16位的,所以根據(jù)經(jīng)驗(yàn)我們可以輕松判斷掃描出的信息是明文還是已經(jīng)經(jīng)過(guò)MD5加密過(guò)的。

(2)通過(guò)站點(diǎn)破解MD5密碼:

正如上文所說(shuō)MD5是不可逆的算法我們只能夠通過(guò)暴力的方式來(lái)破解,當(dāng)然網(wǎng)上有一些站點(diǎn)為我們提供了MD5速查的功能,該站點(diǎn)保存了大量的MD5密文與明文的對(duì)應(yīng)數(shù)據(jù),在這些網(wǎng)站查詢頁(yè)面輸入MD5加密過(guò)的16位代碼后將自動(dòng)查詢其數(shù)據(jù)庫(kù)將找到的明文顯示給用戶。

在眾多MD5查詢網(wǎng)站里筆者覺(jué)得www.cmd5.com存儲(chǔ)量最大,該站點(diǎn)4T硬盤(pán)已經(jīng)上線,目前有MD5記錄457354352282條,已經(jīng)包含了12位及12位以下數(shù)字,8位字母,全部7位及以下字母加數(shù)字等組合。我們?cè)L問(wèn)后在代碼框中輸入要查詢的16位MD5加密代碼后點(diǎn)“MD5加密或解密”按鈕,在查詢結(jié)果處我們將看到該MD5代碼對(duì)應(yīng)的明文信息了。從而實(shí)現(xiàn)了MD5密碼的順利破解。(如圖5)

(3)通過(guò)工具自定義規(guī)則暴力破解MD5密碼:

當(dāng)然如果通過(guò)上面的網(wǎng)站無(wú)法查詢出MD5密碼的話,又或者我們已經(jīng)知道明文的規(guī)則和種種蛛絲馬跡,那么我們還可以通過(guò)工具自定義規(guī)則來(lái)暴力破解獲得的MD5加密密文。這里筆者為各位介紹一個(gè)工具——MD5專業(yè)解密器加強(qiáng)版。

第一步:打開(kāi)該軟件在MD5密文設(shè)置處輸入你獲得的MD5密文信息。該軟件可以破解單個(gè)密文也可以同時(shí)破解多個(gè)密文。

第二步:在密碼字符設(shè)置處我們可以根據(jù)是需要選擇使用的字符集,例如只數(shù)字,只字母等等規(guī)則。當(dāng)然我們還可以自己設(shè)置字典文件,讓該工具加載字典進(jìn)行暴力破解。另外該工具還提供了一些諸如生日字典的模板,通過(guò)該模板破解生日密碼解析的MD5值效果更好。

第三步:在主界面右邊我們可以設(shè)置密碼的長(zhǎng)度和同時(shí)破解的線程數(shù)量,當(dāng)然該工具提供了斷點(diǎn)續(xù)破功能,我們可以保存進(jìn)度并隨時(shí)讀取進(jìn)度。

第四步:這種通過(guò)工具針對(duì)MD5密文進(jìn)行破解是需要花費(fèi)一定時(shí)間的,具體時(shí)間長(zhǎng)短隨著密碼復(fù)雜程度而不同,當(dāng)軟件計(jì)算出密碼后會(huì)給出“發(fā)現(xiàn)一個(gè)密碼,用時(shí)XX小時(shí)XX分鐘”的提示。之后我們就可以利用這個(gè)解析出來(lái)的密碼和之前測(cè)試過(guò)的用戶名登錄目的站點(diǎn)的管理后臺(tái)了,從而成功入侵目的站點(diǎn)的文章管理系統(tǒng)。

三,總結(jié):

從本文來(lái)看MD5也并不是完全安全的,以往我們都認(rèn)為將密碼通過(guò)MD5加密后再保存即使被非法入侵者獲取也不可能計(jì)算出明文密碼來(lái),然而通過(guò)本文實(shí)際例子我們可以看出這種想法是錯(cuò)誤的,入侵者可以通過(guò)網(wǎng)站查詢與字典暴力破解等多個(gè)方法獲取MD5密文對(duì)應(yīng)的密碼明文,從而輕松入侵系統(tǒng)。因此我們?cè)诰S護(hù)服務(wù)器和防護(hù)網(wǎng)站時(shí)一定不能夠大意,應(yīng)該彌補(bǔ)服務(wù)器站點(diǎn)上的每個(gè)漏洞,不給黑客任何機(jī)會(huì)來(lái)下載MD5加密密文,只有這樣才能夠?qū)⑵髽I(yè)服務(wù)器與網(wǎng)站打造得更加安全。