【轉】淺談MD5和SHA-1被破解和應用改進策略

這個月的技術交流聽了王子講的密碼學,對於密碼學又有了深刻的瞭解!但是當年王小云的報告會引起那麼大的轟動,正好在網絡上看到這篇文章,就轉載過來。希望大家一起學習,瞭解事情的具體內容。---誠信網安--葉子 ------------------------------ 作者:fleshwound([email protected]) 出處:[url]http://www.smatrix.org[/url] 2004年8月17日在美國加州聖巴巴拉舉行了一次國際密碼學學術年會(Crypto’2004),當晚來自中國山東大學的王小云教授做了關於破譯MD5、HAVAL-128、MD4和RIPEMD算法的報告。當她公佈了破解結果之後,報告被激動的掌聲打斷,引起了全場的轟動。會議結束後,很多專家來到王小云教授身邊向她表示祝賀,連世界頂尖級的密碼學大師Rivest和Shamir也上前表示他們的欣喜和祝賀,世界信息安全方面的專家們對王小云教授等人的論文給予高度評價,MD5的設計者和著名的公鑰密碼系統RSA的第一設計者Rivest在郵件中寫道:“這些結果無疑給人非常深刻的印象,她應當得到我最熱烈的祝賀,當然,我並不希望看到MD5就這樣倒下,但人必須尊崇真理。”爲了公開徵集專門針對MD5的攻擊而設立的MD5破解工程權威網站[url]http://www.md5crk.com/[/url] 隨後關閉。在該次學術年會總結報告這樣寫道:“我們該怎麼辦?MD5被重創了;它即將從應用中淘汰。SHA-1仍然活着,但也見到了它的末日。現在就得開始更換SHA-1了。”但是,不久,王小云教授又宣佈SHA-1也被破解。 王小云教授的報告爲什麼能夠引起如此大的反響?因爲她的成果作爲密碼學領域的重大發現宣告了通常被認爲是非常安全的MD5算法轟然倒塌,引發了密碼學界的一場地震。 1 MD5和SHA-1算法簡單介紹 MD5和SHA-1算法的核心是哈希函數。密碼學哈希函數(Cryptography HashFunction,簡稱爲哈希函數)又稱雜湊函數,是在信息安全領域有廣泛和重要應用的密碼算法,主要作用是數據完整性驗證和消息認證。它有一種類似於指紋的應用,所以有時候我們也把它叫做“數字指紋”。因爲它具有以下特性:原始信息只要改變一點點,哪怕是幾比特,對應的消息摘要也會改變很大。 哈希函數把任意有限長的輸入行映射到固定長的行。哈希函數的值域與定義域相比規模要小得多,它是“多對一”的映射,因此可能會發生碰撞。所謂碰撞(Collision)是指定義域的兩個不同元素x1、x2映射到同一個消息摘要,即h(x1)=h(x2),也就是存在不同的消息具有相同的消息摘要。從信息論的觀點看,哈希函數存在碰撞是必然的,這一點在數學上可以嚴格的證明。因此安全的雜湊函數在設計時必須滿足兩個要求:其一是尋找兩個輸入得到相同的輸出值在計算上是不可行的,這就是我們通常所說的抗碰撞的;其二是找一個輸入,能得到給定的輸出在計算上是不可行的,即不可從結果推導出它的初始狀態。現在使用的重要計算機安全協議,如SSL,PGP都用雜湊函數來進行簽名,一旦找到兩個文件可以產生相同的壓縮值,就可以僞造簽名,給網絡安全領域帶來巨大隱患。哈希算法的安全性從理論上來說與消息摘要的長度是成正比的,對於具有128位消息摘要的MD5,要在短時間內尋找到一組碰撞在計算上是比較困難的,而國際標準安全哈希算法( Secure Hash Algorithm,簡稱SHA)是具有160位消息摘要,如果要找到一組碰撞在計算上更困難。 MD5它曾一度被認爲是非常安全的,各國著名密碼學家、數學家和頂級黑客們對它進行了多年的密碼學分析和攻擊,曾提出的著名的“生日攻擊”和“袋鼠攻擊”等一系列攻擊方法,但是在實質上沒有突破性的進展,因此MD5經受住了多年的考驗,同時又由於因爲它易於實現,算法理解相對也比較簡單,所以在國內外有着非常廣泛的應用。但是王小云教授發現的這種方法,可以很快的找到MD5的“碰撞”,使得兩個文件可以產生相同的“指紋”。這意味着什麼?意味噹噹你在網絡上使用電子簽名簽署一份合同後,還可能找到另外一份具有相同簽名但內容迥異的合同,這樣兩份合同的真僞性便無從辨別,你很有可能要揹負黑鍋了。她的這項研究成果證實了利用MD5算法的碰撞可以嚴重威脅信息系統安全,這一發現使目前電子簽名的法律效力和技術體系受到挑戰,下面我們將具體談談這次發現對社會各方面的影響。 對網絡系統安全的影響 學習黑客技術的人都知道,黑客攻擊網絡系統的最高目標是獲得超級用戶權限,因爲獲得超級用戶權限那你就可以爲所欲爲。典型的爲了獲得系統權限的攻擊方法主要有以下幾大類: (1) 緩衝區溢出,這是目前我覺得最有研究深度和價值的一種黑客技術; (2) 木馬技術與社交工程,這兩種技術相信朋友們都很清楚是怎麼回事,相信有不少朋友通過這種手段知道了MM的QQ和郵箱密碼; (3) 端口監聽和網絡截獲,難度很高,成功的可能性也不太大,但成功後威脅性很大; (4) 病毒與蠕蟲; (5) 暴力破解,攻擊的最後的希望了! 由於一些網絡系統的口令驗證是這樣設計的:系統保留的是用戶密碼經過加密算法MD5得到的消息摘要,而不保留用戶密碼本身,驗證用戶身份時,只需要將用戶輸入的密碼再次用MD5生成消息摘要,與記錄的MD5消息摘要作一個比較即可驗證其密碼的合法性。例如採用這種口令驗證技術的系統有Linux和某些UNIX,另外一些網絡應用系統也是採用的這種方法。從理論上來說,如果我們要攻擊Linux系統,只要得到用戶密碼文件(其中記錄了密碼的MD5),然後隨便生成一個碰撞的密碼(不一定要跟原密碼相同),就可以用這個密碼登錄了,超級用戶密碼也不例外。以前做到這一點是非常困難的,而現在王小云教授的成果已經完全使Linux用的那種基於MD5的身份驗證技術失效了,而且攻擊成功後可以嫁禍於人,這使得Linux的安全神話再次打破。攻擊基本思路如下:首先獲得一個普通用戶權限,再通過普通用戶權限對存在緩衝區漏洞的某些程序進行緩衝區溢出,進行權限提升,最終獲得超級用戶權限,尋找到/etc/passwd和/etc/shadow文件,開始破解吧!按照王小云教授的方法你將獲得包括ROOT口令在內的所有口令,當然這些口令不一定與原口令相同,但是可以用合法的原用戶名和這種口令大搖大擺登陸系統。這樣,你無需擔心在系統中添加新用戶被系統管理員發覺,而且你做了什麼不光彩的事情會有人幫你背黑鍋!另外一個例子就是論壇系統,很多網上論壇採用的就是這種技術。基於ASP、PHP、JSP的各種論壇的漏洞很多,攻擊手法更是層出不窮,比如很多人常用的SQL注入技術,因此獲得含有用戶名與密碼消息摘要的數據表信息並不是件非常艱難的事情!如果有一天,在論壇上的有很高聲望和名聲的你,不幸被人家“借用”了身份,發了一些非常不堪入目或者無理攻擊他人的帖子,那你就應該知道怎麼回事了。目前關於利用她的研究成果進行攻擊的報道還沒有出現,以上可能攻擊的方法是我根據自己研究經驗進行的推測,如果出現類似手法,與本人無關。 2 對電子商務安全的影響 MD5在電子商務系統中有着非常重要的應用。很多系統中把MD5算法用於使用者的身份鑑別和數字簽名。現在我舉個簡單的例子,來說明MD5被破解後會給我們帶來什麼。假設本地一個銷售公司建立了一個電子產品網絡購物中心,提供面向本地的網上訂購、當天送貨上門的服務。我知道這個公司信譽不錯,而且打算購買一個MP3,首先是要在他們的網站上註冊,輸入我的登陸身份信息和真實的具體個人信息,包括:姓名、送貨地址、聯繫電話、身份證號碼等,完成註冊。接着我挑選產品,將我喜歡的MP3放進電子購物籃,訂購完成,公司會打電話來確認所填信息是否正確,確認信息正確後以後就會送貨上門了,我收到送來的MP3再付錢,交易成功!在系統後臺,爲了保護客戶隱私並防止網絡攻擊,該系統將做了以下處理:對用戶提交的身份信息進行一系列格式化、加密和數字簽名等操作,並用MD5算法計算消息摘要來防止篡改,形成一個電子證書(如果比較正規的是採用CCITT X.509國際標準),用戶身份通過爲用戶頒發的電子證書進行識別。用戶的電子證書可以導入到客戶端瀏覽器中,當客戶端向服務器提出登錄請求時,系統自動從電子證書中獲取用戶身份信息,並計算消息摘要來判斷證書是否被篡改過。每次交易時候,系統只要驗證數字證書就行了,一般不需要輸入用戶名和密碼,多年來這種方法一直被認爲是安全的。但是不幸的事情發生了,利用王小云教授的發現,用戶證書完全是可以被僞造!(據說最近國際密碼專家Lenstra利用王小云教授的方法,甚至僞造了符合X.509標準的數字證書。)一個對我非常不友好的人僞造了我的用戶證書,進入系統後成功修改了用於確認的聯繫信息,並不辭辛苦的爲我定購了許多大宗電子商品,最後當公司把這些商品堆在我面前時候並叫我簽單時,我驚呆了!這一切,似乎聽起來不可思議,但是對於許多真正的網上電子商務系統而言,網絡在線支付和信用卡支付是很普遍的,可信部門(目前包括我國在內有許多數字證書認證中心)的數字證書就是用戶的網絡身份證,代表了用戶的信譽,MD5和SHA-1算法被用來保證這些證書的完整性和不可篡改性。而MD5和SHA-1算法被破解將導致這些數字證書可以僞造,由此造成的信譽和經濟損失將是難以估量的。不過要僞造一份真正有意義的數字證書也是非常困難的,從目前來看,這種僞造技術還不實用,但是根據最近的跡象表明,國外的某些黑客組織由於受該研究成果的影響與刺激,對銀行信用卡系統又開始表現出濃厚的興趣了。 3 對電子政務安全影響 電子政務是政府機構運用現代計算機和網絡技術,將其管理和服務職能轉移到網絡上去完成,同時實現政府組織結構和工作流程的重組優化,超越時間、空間和部門分隔的制約,向全社會提供優質高效、規範透明和全方位的管理與服務。一般應具有公務郵件、收發文管理、公文審批、部門簡報等主要功能,以及日程安排、個人事務管理、檔案管理、紅頭文件簽章、筆跡籤批保留的輔助功能。政府的電子文件代表着權威,具有法律和行政效率,如果文件在網上傳遞過程中被修改,例如:把審批的公文中的不同意去掉“不”字,那後果是不堪設想的。目前在電子政務系統中爲了防止被篡改,傳送和保存這些電子公文的時候往往會利用MD5或者SHA-1算法生成這些電子公文的數字摘要,一旦電子公文被惡意篡改,啓用這些電子公文時候重新生成數字摘要檢查時候就會被發現,從而篡改後的公文將失去效力。王小云教授從理論上說明這種保證電子公文的原始完整性的方法有缺陷,但是在實際中,要僞造有特定含義的電子公文與原始公文具有相同的數字摘要的可能性非常非常小,可以說是幾乎不太可能的(這點是由她的破解算法決定的)。因此MD5或者SHA-1來保證類似與電子公文這種的具有一定意義的電子文件不被篡改還是有應用價值的。 4 應用改進策略   尋找一個MD5的碰撞已經解決了,那一組呢?就不那麼容易了,那麼我們在找不到更合適的替代算法之前,不妨使用以下方案: 散列向量組。具體的辦法是依次取要求散列的內容的一半,或者特定交叉部分,形成一個散列向量組來替代原來的散列值。 5 結語 王小云教授的成果具有非常重要的理論意義,對密碼學本身的發展具有一定的推動作用,爲哈希函數的密碼分析學提供了一條道路,有興趣的朋友可以看一下她的論文,論文題目是《Collisions for Hash Functions MD4, MD5, HAVAL-128 andRIPEMD》。她的發現說明MD5、SHA-1已經不能用身份驗證,更不能用於數字簽名,另外在理論上說明數字摘要算法用於數據的完整性鑑別具有缺陷。不過她的方法也不是萬能的,由於方法上的限制,要構造具有特定語義的碰撞幾乎是不可能的,因此並不是所有的採用MD5算法的應用都因此被徹底的打倒,在實際中,MD5和SHA-1算法經常與其它算法一起使用,或者進行了很多變形,因此攻破使用MD5或者SHA-1算法的系統並不是想象中那麼容易,所以她的發現要在實際中能夠發揮什麼作用還要看以後的實踐了。不管怎麼說,她的發現的確是信息安全學界的一場地震,王小云教授也是我們國人的驕傲! [注:最近有不少人還在討論關於散列的話題,這裏我把以前一個雜誌的約稿文章放出來]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章