◆崔永輝 賈連興 何鳳軍
由于當今網絡技術的快速進步,網絡風險隨之提升,確保網絡安全已是人們重視的方向。從網絡出現的時候開始,網絡加密和網絡破解的爭斗始終在持續。本文根據Orac1e RDBMS,列舉了利用枚舉法設立明文以建立MD5反向查詢數據庫,且根據碰撞攻擊與逆向查詢,歸納針對MD5算法的各類完善方式。
MD5加密其實是散列,a=A(B),B是明文,a是密文,具備容易解算、單向以及抗碰撞的優勢。進行加密階段,把錄入數據以512位實行劃分組別,各組分為十六個三十二位組別,通過添加、記載、初始化和4輪反復計算,得到由4個32位組聯合的128位散列。
(1)添加數據,添加1個1與n個0,確保錄入數據長度針對512位求余為448。其數據長度:
N×512+448(bit)
(2)記載數據長度,添加數據后,把之前數據長度運用64位實行儲存且在后面填充。即長度:
N×512+448+64=(N+1)×512(bit)
(3)初始MD緩沖寄存器,4個32位MD5鏈接變量添加道其余4個中:X到x,Y到y,Z到z,K到k:
X=0×67452301L
Y=0×EFZKXY89L
Z=0×98YXKZFEL
K=0×10325476L
(4)進行4輪重復計算,組別數目“N+1”是重復量,主要重復為四輪,各輪重復幾乎相同。選擇x,y,z,k其中3個進行一次非線性函數計算,得到的結論和余下的變量和一個子組別與一個常量作和。再把取得的結論向左移動一個不定量,與x,y,z,k的一個作和,使用此結論替換四個變量中的一個,最終得到128位散列。
網絡平臺能夠針對構成因素的枚舉法和排序法建立用戶名和密碼的初始明文。其中,Orac1e RDBMS是當前應用最廣的B/S模式構造信息數據庫,應對大量信息的時候,安全穩定性相比sq1 server更優秀,數據庫導入工具sq11oad.exe性能和sq1 server中基本呼叫處理更好,能夠基于要求將文本信息導進數據庫,密碼組成之后,遵循ASCⅡ碼值針對明文排列順序,以便之后按照次序運用MD5。
運用加密MD5,針對排列順序之后設立的數據庫實行加密,六位明文與三十二位MD5之間構成應對聯系,通過排序法基于散列再次排列順序,六位字母和數字組最后產生的數據庫大約有102.4G,針對查詢庫的管理水平設定了更高標準,因 Orac1e RDBMS運用并行網絡服務器,把單個查找分為許多小查找,于不同的中央處理器內進行子查找,工作量通常于系統運作之后持續提升,于大規模平臺的運用階段,把數據庫添加進系統數據庫中,利用操作面,針對明文實行MD5二分查詢,確保針對MD5加密逆向查詢要求。
MD5屬于實行身份認定的算法,安全性不足,能夠利用建立散列確保兩個不一樣的密碼應對相同中文名為消息摘要算法第五版,同樣能建立逆向數據庫,運用MD5查找密碼。因此,MD5算法通常無法應用在安全規定嚴格的Security Socket Layer和電子簽章,目前 SHA-2為應用最廣的散列加密。但因其開放源代碼、不收費和破解問題依然沒能獲得更多運用,對于 MD5算法實行合理的安全完善依然很關鍵。
因消息摘要算法第五版加密法實際是散列a=A(B),如果可以得到B1,得到a=A(B1),那么B與B1屬于碰撞,碰撞攻擊為針對散列的主要攻擊方式,想破解算法第五版即找到碰撞階段,當前,差分法建立MD5碰撞攻擊,體現兩量間各個位不同,若要快速找到碰撞,則需選用更好的差分,明確差分通道,通過非線性函數特征掌控差分通道,通過更改消息與碰撞搜尋實現符合消息搜尋,基于消息差分法去的碰撞數據。通常采取如下兩點方式:
3.1.1 制約差分通道與消息更改
消息摘要算法第五版運算前,針對消息實行預先處置,使初始函數a=A(B),通過預先處置Φ(B)變a1(B=A(Φ(B)),預先處置通常為兩類方法,其一,消息半徑相隔或者存在規律性相隔插進字符,找到消息差分則更難,其二,提升消息堆疊,進行消息劃分組別的結尾填充最終的三十二位消息字符,該方式能夠確保消息差分法字符串相對于同樣長度的零字符串的漢明距離非奇數,損壞消息差分通道與碰撞查找方式。
3.1.2 改變MD5初始數值
MD5.asp內,把4個MD緩沖寄存器初始數值稍微更改,形成新消息摘要算法第五版,哪怕僅更改單個數的任何一位,就會極難破解。
如果逆向數據庫空間足夠,電腦處置快速,則能在時限內直觀找到MD5數值。利用客戶與系統針對消息摘要算法第五版算法進行少量更改或者輔助完善,就可使逆向查詢更難。
(1)客戶自主完善,客戶設定密碼過程中,運用英文字母、阿拉伯數字以及符號實行隨機構成,增加設定密碼的長度,針對其實行定時更改,以降低遭到字典信息匹配的概率,切實降低遭到破解的可能性。
(2)輔助改善,系統通過阿拉伯數字、英文字母以及符號替客戶設定的密碼添加特別的前后綴,增加設定的密碼長度,避免客戶密碼較短或太簡單。且針對該前后綴定時實行更改或隨機形成,縱然遭到破解,僅為增加長度之后的密碼,實際密碼依然沒有危險。通過此類的處置,客戶的密碼遭到破解的概率則可以切實減少。
(3)多次實行加密,實行單次消息摘要算法第五版加密之后,針對產生的密碼所有或者一些再次實行單次或者多次修改,使其更難在字典中快速查找。比如,md5(md5(gh1ksdha1))針對MD5密碼的所有實行多次的加密,md5(1eft(md5(gh1ksdha1),30))是針對MD5密碼的左30位實行再次加密。且事實表明,反復消息摘要算法第五版加密對別的時間功能無影響。
(4)查詢庫添加鹽(sa1t),通過散列具備雪崩效應的特點,客戶設置密碼過程中,產生隨機字符,即鹽(Sa1t),儲存于另外的信息表或者查詢庫內,和客戶口令彼此聯系,之后使用 hash函數針對鹽(Sa1t)實行消息摘要算法第五版加密,進而使消息摘要算法第五版加密結論儲存進查詢庫。此舉可以很大程度使逆向查詢更難,并消除了weak password的情況。
該分析采用枚舉法建立明文庫,很大程度提升了密碼破解難度,體現了Orac1e RDBMS處置大量信息的穩定性與性能優異的特點,確保建立的MD5逆向查詢庫階段符合儲存大空間、運作成效高以及操作簡單的特征,最終以當前運用方面為基礎,歸納了各類改進方案,改進了MD5算法的安全性。