Google的研究人員剛剛創造了電腦加密學在2017年的第一個里程碑:他們攻破了SHA-1安全加密演算法。
實驗的關鍵研究者是來自荷蘭CWI研究機構的馬克·史帝文斯 (Marc Stevens),他在哈希演算法方面發布過大量優秀的研究成果。從2013年開始在學界展現出攻克SHA-1演算法的決心,之後陸續發布了一系列新成果和改進方法。透過和Google進行合作,他獲得了實現本次攻破的關鍵資源:強大的運算能力。
這件事相當重要,令人激動。原因還要從SHA-1到底是個什麼東西說起。
SHA-1(全稱Secure Hash Algorithm-1)是一種安全加密演算法,最主要的用途是數位簽名。
舉個例子:你肯定在電腦上下載過軟體吧?是否記得,文件的上傳者曾提醒過你,在下載後要校驗文件?有沒有見過類似下圖中的文字?
這是因為,使用SHA-1、MD5這樣的哈希演算法,對文本文檔、表格、音樂mp3、PDF、可執行文件或其他任何文件等進行運算,都會得出像上圖中這樣的字段(哈希值)。在過去只要文件不同,對應的哈希值都絕對不一樣,就像是給每個文件都加上了數位的簽名。
而SHA-1哈希值應該是40個英/數字:比如上面這張圖片對應的SHA-1值是:
1E2FF30C5FD327C438F76C3ACBE97AAFB9AEDF7E
對於下載者來說,原文件的哈希值很重要:當你下載了一個軟體,用文件校驗工具查看它的SHA-1/MD5值,如果和原文件的不一樣,你就得小心了,因為文件顯然被修改過了,而裡面可能包含了病毒或其他惡意程式碼。
SHA-1和MD5是世界上最為常用的文件校驗加密演算法,過去一直被認為是比較安全和可靠的演算法——直到今天。
Google和CWI一起研究出了一種方法,能夠讓兩個不同的文件採用SHA-1演算之後,呈現出完全一致的哈希值。
這次攻破被命名為SHAttered attack。研究者提供了兩張內容截然不同,在顏色上存在明顯差異,但SHA-1哈希值卻完全相同的PDF文件作為證明:
在部落格中,研究者寫道:
哈希碰撞(hash collision,即兩個不同文件哈希值一致,也有譯作哈希衝突)本來不應該發生。但實際上,當哈希演算法存在漏洞時,一個有足夠實力的攻擊者能夠製造出碰撞。進而,攻擊者可以用去攻擊那些依靠哈希值來校驗文件的系統,植入錯誤的文件造成惡果。舉個例子,兩份條款完全不同的保單。
本次Google對其進行攻破花費了巨量的算力:總計 9,223,372,036,854,775,808——超過9 兆(億億)次演算。
破解分為兩個階段,分別需要一個CPU進行6,500年,和一個GPU進行110年的運算才可以完成。這是因為研究者採用了自行研發的Shattered破解方法,其效率遠勝於使用暴力破解。而且Google雲端平台提供的大規模運算技術,顯著減輕了負擔。
這也是為什麼必須「有足夠實力的攻擊者」才能攻破……
需要恐慌嗎?
2012年安全技術專家布魯斯·施奈爾曾經估計,完成一次SHA-1碰撞在2012年需要耗費277萬美元,到2015年則降到70萬美元,2021年只需要4.3萬美元。他還暗示,到2018年就會有犯罪集團具備偽造SHA-1簽名證書的能力。
但至少目前,人們並不需要恐慌。首先就事件本身而言,普通網友不需要擔心有人會用它做壞事,因為Google漏洞披露政策規定,本次SHAttered attack的研究者需要等待90天才能發布原始程式碼。就算掌握了程式碼,至少也得有Google這種水平的大規模運算能力……
另外,研究者上線了一個網站shattered.io,網友可以上去了解更多技術細節,還可以上傳自己的文件,測試自己的文件是否安全。
作為一種老舊的哈希演算法,SHA-1正在被其後來者,比如SHA-2和SHA-3新演算法以及它們的各種變體所取代。三大瀏覽器Chrome、微軟Edge/IE和火狐瀏覽器都決定棄用SHA-1。
Google早在2014年就未雨綢繆,宣布了逐漸放棄SHA-1的決定。去年開始,Google的Chrome瀏覽器已經不再支援SHA-1證書,會將其標記為不安全。當證書過期之後,瀏覽器將無法訪問這些網站。Google方面也推薦IT人士採用SHA-256等更安全的演算法。所以今天的實驗結果宣布,也算是給SHA-1補上遲來的一刀了⋯⋯
微軟Edge瀏覽器團隊此前在其部落格中表示,將於2017年中開始棄用SHA-1。但據《富比士》網路版報導,另一位安全專家凱文·貝爾蒙特則在Twitter上指出,棄用SHA-1的Windows安全更新本應該在2月早些時候推送,但仍處於延期發布的狀態。
Fun fact - SHA-1 deprecation patches for Windows were due earlier this month, but held back for quality reasons.
— Kevin Beaumont (@GossiTheDog) 2017年2月23日
去年10月,火狐瀏覽器的開發商Mozilla也宣布了同樣的決定。
最後再送上:一張圖看懂SHAttered attack(Google官方製作)
本文授權轉載自:PingWest