国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

MD5算法在口令認(rèn)證中的安全性改進(jìn)

2012-04-29 00:44:03王志中
電腦知識(shí)與技術(shù) 2012年2期
關(guān)鍵詞:安全性

王志中

摘要:該文介紹了MD5算法在口令認(rèn)證中的加密技術(shù)及存在的安全隱患,重點(diǎn)介紹了提高M(jìn)D5加密算法應(yīng)用安全性應(yīng)采取的具體措施和方法。

關(guān)鍵詞:MD5;口令認(rèn)證;安全性

中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)02-0296-02

MD5的全稱是Message Digest 5(信息摘要算法版本5),20世紀(jì)90年代初由MIT Laboratory for ComputerScience和RSA Data Secu? rity Inc的Ronald L.Rivest開發(fā)出來[1]。它是將一段任意長(zhǎng)度報(bào)文,即數(shù)據(jù)文件,文本文件或者二進(jìn)制文件,通過一系列算法壓縮成一段128位的信息摘要。MD5算法的本質(zhì)是一種哈希函數(shù),并且具有不可逆的特性,即無法通過信息摘要來恢復(fù)原始的文件,利用MD5技術(shù)來存儲(chǔ)賬號(hào)的安全信息而不是直接存儲(chǔ)可以保證即便黑客入侵系統(tǒng)得到高權(quán)限賬號(hào)信息也無法破解密碼[2]。2004年王小云教授提出了破解MD5的方法。2008年12月31日,美國(guó)和歐洲的聯(lián)合研究團(tuán)隊(duì)在柏林召開的25C3安全大會(huì)上公布,他們利用200臺(tái)索尼PlayStation 3組成的超級(jí)計(jì)算網(wǎng)絡(luò)破解了用于安全網(wǎng)頁數(shù)字簽名的MD5加密算法。這些研究成果進(jìn)一步證明,使用MD5進(jìn)行數(shù)字簽名、口令認(rèn)證可能不再安全,近年來,云計(jì)算技術(shù)的迅猛發(fā)展,對(duì)MD5加密算法的安全性也提出了更高的要求。提高M(jìn)D5應(yīng)用的安全性迫在眉睫,本文就如何提高M(jìn)D5在口令認(rèn)證中的安全性提出了一些可行措施和方法。

1 MD5算法在口令認(rèn)證中的驗(yàn)證機(jī)制

MD5算法的具體描述可參見文獻(xiàn)[1]。MD5在數(shù)據(jù)的機(jī)密性方面的應(yīng)用是利用它的單向加密性,即不可逆性[3]?,F(xiàn)如今,BBS,電子郵箱,博客等服務(wù)都需要保存用戶信息,這些信息對(duì)于服務(wù)提供者和用戶來說都是極為重要的,特別是高權(quán)限的用戶信息。一般情況下是在數(shù)據(jù)庫(kù)中建立一個(gè)用于存放用戶信息的表,這個(gè)表中至少有賬號(hào)、密碼及權(quán)限級(jí)別三個(gè)字段,當(dāng)用戶登錄時(shí),系統(tǒng)把用戶輸入的密碼進(jìn)行MD5 Hash運(yùn)算,然后與保存在文件系統(tǒng)中的MD5值進(jìn)行比較,來驗(yàn)證輸入的密碼是否正確。通過這樣的步驟,系統(tǒng)可以在不需要知道用戶密碼明碼的情況下就能驗(yàn)證用戶登錄系統(tǒng)的合法性,使用戶密碼具有較高的安全性。

下面是系統(tǒng)登錄認(rèn)證ASP.NET簡(jiǎn)要函數(shù)及實(shí)現(xiàn):

1)打開命名空間:

using System.Web.Security;

2)在用戶注冊(cè)界面,簡(jiǎn)要代碼:

Regist(UserID.Text,FormsAuthentication.HashPasswordForStoringInConfigFile(Password.Text,"MD5"));

其中UserID.Text表示用戶ID,即注冊(cè)登錄帳號(hào),Password.Text表示注冊(cè)密碼,Regist實(shí)現(xiàn)將賬號(hào)和加密后的密碼字符串存儲(chǔ)到數(shù)據(jù)庫(kù)中。

3)在登錄界面,簡(jiǎn)要代碼:

Check(UserID.Text,FormsAuthentication.HashPasswordForStoringInConfigFile(Password.Text,"MD5"));

其中UserID.Text表示注冊(cè)成功用戶ID,即已經(jīng)存在的登錄帳號(hào),Password.Text表示登錄用戶的密碼,Check實(shí)現(xiàn)用戶輸入的賬號(hào)和加密后的密碼與數(shù)據(jù)庫(kù)中的帳號(hào)密碼是否匹配。

2 MD5算法在數(shù)據(jù)安全應(yīng)用中的隱患

對(duì)上述驗(yàn)證方法常用的攻擊方法是入侵賬號(hào)服務(wù)器,得到數(shù)據(jù)庫(kù)中的資料之后就可以用任意權(quán)限賬號(hào)訪問該網(wǎng)站。

對(duì)于普通強(qiáng)度的口令加密,可以通過以下四種方式進(jìn)行破解:

1)在線查詢密碼。一些在線的MD5值查詢網(wǎng)站提供MD5密碼值的查詢,輸入MD5密碼值后,如果在數(shù)據(jù)庫(kù)中存在,那么可以很快獲取其密碼值。如管理員密碼是“admin888”,其MD5值是“7fef6171469e80d32c0559f88b377245”,放到cmd5.com上,不到1秒鐘即可得到原文。

2)使用MD5破解工具。網(wǎng)絡(luò)上有許多針對(duì)MD5破解的專用軟件,通過設(shè)置字典來進(jìn)行破解。

3)通過社會(huì)工程學(xué)來獲取或者重新設(shè)置用戶的口令。

4)隨著云計(jì)算技術(shù)的迅猛發(fā)展,MD5算法被暴力破解的代價(jià)和成本大幅下降,在2010年亞馬遜EC2推出集群GPU運(yùn)算服務(wù),每一個(gè)GPU提供了甚至超過每秒100萬兆次的雙精度浮點(diǎn)計(jì)算的超高的性能。通過GPU實(shí)例的數(shù)百個(gè)內(nèi)核并行處理能力,工作負(fù)載可以被大大加速[4]。在暴力破解MD5算法方面,GPU的速度比四核CPU快數(shù)百倍。

因此簡(jiǎn)單的MD5加密是沒有辦法達(dá)到絕對(duì)的安全的,因?yàn)槠胀ǖ腗D5加密有多種暴力破解方式,因此如果想要保證信息系統(tǒng)安全,必須提高M(jìn)D5在口令認(rèn)證等方面的安全性。

3提高M(jìn)D5口令認(rèn)證安全性的措施和方法

提高M(jìn)D5在口令認(rèn)證等方面的安全性可以采用對(duì)MD5加密過程進(jìn)行變換,或使用增加自定義算法、增強(qiáng)加密信息進(jìn)行干涉等方法,使MD5密文數(shù)據(jù)庫(kù)中信息不再是單純的MD5加密信息。

3.1改變MD5加密次數(shù)

這種變換方法的具體做法是對(duì)—個(gè)需要加密的數(shù)據(jù)進(jìn)行N次MD5運(yùn)算,具體運(yùn)算多少次可由管理員確定。如前面所說的密碼“admin888”我們把它再M(fèi)D5加密一次,即md5(md5(admin888)),得到的值再拿到cmd5.com上去破解,過了數(shù)個(gè)小時(shí),仍沒有破解成功。此外,多次的MD5并不會(huì)過分影響腳本性能與速度。將密碼admin888用md5加密了1000次,結(jié)果為“79cbb81f5a6eb616b6897f61e7c76380”,其執(zhí)行時(shí)間0.00805997848511秒,測(cè)試結(jié)果顯示,基本上屬于正常范圍。

3.2密文分割

此類方法是將用戶密碼進(jìn)行一次MD5加密得到M,將密文M分為左右兩個(gè)64 bit的分組,并分別進(jìn)行MD5加密,得到相應(yīng)的密文,以M1和M2表示,再將M1和M2為先后連接成一個(gè)字符串,并對(duì)行MD5加密,最后得到密文。

3.3增加自定義加密算法

此類方法首先使用自定義加密算法對(duì)用戶密碼進(jìn)行加密得到密文,然后再對(duì)密文進(jìn)行MD5加密得到MD5密文。

自定義算法千變?nèi)f化,下面假定用戶密碼為“password”為例進(jìn)行說明。假設(shè),密鑰為“1”。將“password”中每個(gè)字符與“1”分別異或就得到新的密文“q`rrvse”。

3.4增強(qiáng)加密信息

在加密過程的—個(gè)步驟中,附加—個(gè)字符串,干涉被加密的數(shù)據(jù)。例如假定密碼為“admin”,處理時(shí)在尾部添加密碼的逆序變?yōu)椤癮dminnimda”,然后進(jìn)行MD5加密,經(jīng)過這樣的處理之后可以有效降低密碼被破解的可能性。

3.5修改MD5算法

MD5中的4個(gè)常數(shù),A、B、C、D四個(gè)緩沖區(qū)寄存器,它們的初始值是:

a = 0x67452301

b = 0xEFCDAB89

c = 0x98BADCFE

d = 0x10325476

MD5的算法過程主要是一些異、或、求模等的運(yùn)算。實(shí)際上,只要把初始值進(jìn)行稍微改變,比如只改變其中一位,不必改動(dòng)算法的其它部分,就產(chǎn)生自己的新MD5散列算法[5]?,F(xiàn)在我們將a = 0x67452301改為a = 0x67452302,這樣我們就得到了一個(gè)全新的MD5算法,即使數(shù)據(jù)庫(kù)被下載,仍可以放心地使用。

即使用戶密碼數(shù)據(jù)暴露,那么上述討論的MD5變換算法就可以極大地增加破解用戶密碼的難度,從而提高M(jìn)D5算法應(yīng)用的安全性。

4結(jié)束語

雖然王小云教授公布了破解MD5算法的報(bào)告,宣告該算法不再安全,但MD5算法在信息安全領(lǐng)域仍占有重要地位。通過一些有效的安全措施和方法,如通過MD5多次加密和算法變形等,能夠顯著提升密碼保護(hù)及口令認(rèn)證的安全性。我們?cè)趯?shí)際運(yùn)用中需要結(jié)合自身實(shí)際,掌握一些適合自己的方法。

參考文獻(xiàn):

[1] Rivest R.The MD5 Message-Digest Algorithm[S].RFC 1321,April 1992.

[2] WANG XIAO-YUN,YUHONG-BO.How to breakMD5 and other hash functions[C].Advances in Cryptology-EURO-CRYFr2005,LNCS 3494.Heidelberg:Springer-Verlag,2005:19-35.

[3]陳世偉,金晨輝.MD5碰撞攻擊中的充要條件集[J].軟件學(xué)報(bào),2009,20(6):1617-1624.

[4]亞馬遜.EC2推出集群GUP運(yùn)算服務(wù)[EB/OL].http://cloud.csdn.net/a/20101117/282076.html

[5]張?jiān)?陳躍,劉林飛.改進(jìn)MD5碼增強(qiáng)網(wǎng)站密碼安全性[J].當(dāng)代醫(yī)學(xué),2009(2)

猜你喜歡
安全性
兩款輸液泵的輸血安全性評(píng)估
新染料可提高電動(dòng)汽車安全性
既有建筑工程質(zhì)量安全性的思考
某既有隔震建筑檢測(cè)與安全性鑒定
基于安全性需求的高升力控制系統(tǒng)架構(gòu)設(shè)計(jì)
加強(qiáng)廣播電視信息安全性的思考
科技傳播(2019年22期)2020-01-14 03:05:32
網(wǎng)約車安全性提高研究
活力(2019年17期)2019-11-26 00:42:18
注意藥酒服用的安全性
基于ASP網(wǎng)站的安全性研究與實(shí)現(xiàn)
電子制作(2018年10期)2018-08-04 03:24:40
田間施用滅幼脲在桃中的殘留安全性評(píng)估
茂名市| 柳江县| 榕江县| 渝北区| 城口县| 霍邱县| 富宁县| 包头市| 义马市| 精河县| 泸溪县| 观塘区| 青冈县| 安阳县| 蒲江县| 小金县| 迁安市| 凤翔县| 四川省| 伊川县| 尚志市| 滦南县| 若尔盖县| 青神县| 临泉县| 睢宁县| 德昌县| 额济纳旗| 海南省| 达拉特旗| 南丹县| 沈阳市| 宜昌市| 贵德县| 徐州市| 宣恩县| 察隅县| 丰台区| 乐都县| 祥云县| 泌阳县|