MD5和SHA-1被破解

   2004年8月17日在美國加州聖巴巴拉舉行了一次國際密碼學學術年會(Crypto’2004),當晚來自中國山東大學的王小云教授作了關於破譯 MD五、HAVAL-12八、 MD4和RIPEMD算法的報告。當她公佈了破解結果以後,報告被激動的掌聲打斷,引發了全場的轟動。會議結束後,不少專家來到王小云教授身邊向她表示祝 賀,連世界頂尖級的密碼學大師Rivest和Shamir也上前表示他們的欣喜和祝賀,世界信息安全方面的專家們對王小云教授等人的論文給予高度評 價,MD5的設計者和著名的公鑰密碼系統RSA的第一設計者Rivest在郵件中寫道:「這些結果無疑給人很是深入的印象,她應當獲得我最熱烈的祝賀,當 然,我並不但願看到MD5就這樣倒下,但人必須尊崇真理。」爲了公開徵集專門針對MD5的攻擊而設立的MD5破解工程權威網站http://www.md5crk.com/ 隨後關閉。在該次學術年會總結報告這樣寫道:「咱們該怎麼辦?MD5被重創了;它即將從應用中淘汰。SHA-1仍然活着,但也見到了它的末日。如今就得開始更換SHA-1了。」可是,不久,王小云教授又宣佈SHA-1也被破解。
  王小云教授的報告爲何可以引發如此大的反響?由於她的成果做爲密碼學領域的重大發現宣告了一般被認爲是很是安全的MD5算法轟然倒塌,引起了密碼學界的一場地震。
1 MD5和SHA-1算法簡單介紹
MD5和SHA-1算法的核心是哈希函數。密碼學哈希函數(Cryptography Hash Function,簡稱爲哈希函數)又稱雜湊函數,是在信息安全領域有普遍和重要應用的密碼算法,主要做用是數據完整性驗證和消息認證。它有一種相似於指 紋的應用,因此有時候咱們也把它叫作「數字指紋」。由於它具備如下特性:原始信息只要改變一點點,哪怕是幾比特,對應的消息摘要也會改變很大。
哈希函數 把任意有限長的輸入行映射到固定長的行。哈希函數的值域與定義域相比規模要小得多,它是「多對一」的映射,所以可能會發生碰撞。所謂碰撞 (Collision)是指定義域的兩個不一樣元素x一、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 and RIPEMD》。她的發現說明MD五、SHA-1已經不能用身份驗證,更不能用於數字簽名,另外在理論上說明數字摘要算法用於數據的完整性鑑別具備缺陷。 不過她的方法也不是萬能的,因爲方法上的限制,要構造具備特定語義的碰撞幾乎是不可能的,所以並非全部的採用MD5算法的應用都所以被完全的打倒,在實 際中,MD5和SHA-1算法常常與其它算法一塊兒使用,或者進行了不少變形,所以攻破使用MD5或者SHA-1算法的系統並非想象中那麼容易,因此她的 發現要在實際中可以發揮什麼做用還要看之後的實踐了。無論怎麼說,她的發現的確是信息安全學界的一場地震,王小云教授也是咱們國人的驕傲!
[注:最近有很多人還在討論關於散列的話題,這裏我把之前一個雜誌的約稿文章放出來]算法

相關文章
相關標籤/搜索