Google 的研究人員剛剛創造了電腦加密學在 2017 年的第一個里程碑:攻破了 SHA-1 安全加密演算法。
實驗的關鍵研究者是來自荷蘭 CWI 研究機構的馬克·史蒂文斯(Marc Stevens),他在安全雜湊演算法發布過大量優秀的研究成果。他從 2013 年起展現出攻克 SHA-1 的決心,之后陸續發布了一系列新成果和改進方法。透過和 Google 合作,他獲得了本次攻破的關鍵資源:強大的計算能力。
這件事相當重要,令人激動。原因還要從 SHA-1 到底是什么說起。
SHA-1 是什么?
SHA-1(全稱 Secure Hash Algorithm-1,安全雜湊演算法 )是一種安全加密演算法,最主要的用途是數碼簽名。
舉個例子:你肯定在電腦上下載過軟件吧?是否記得,檔案的上傳者會提醒你,下載后要校驗檔案?有沒有見過類似下圖的文字?
這是因為,使用 SHA-1、MD5 這樣的安全雜湊演算法,對文字檔案、表格、音樂 mp3、PDF、執行檔或其他任何檔案等進行計算,城市得出像上圖這樣的欄位(SHA-1 值)。過去只要檔案不同,對應的 SHA-1 值都不一樣,就像給每個檔案都加上數碼簽名。
而 SHA-1 值應該是 40 個英/數字:比如上圖對應的 SHA-1 值是:
1E2FF30C5FD327C438F76C3ACBE97AAFB9AEDF7E
對下載者來說,原檔案的 SHA-1 值很重要:當你下載一個軟件,用檔案校驗工具檢視它的 SHA-1 / MD5 值,如果和原檔案不一樣,你就得小心了,因為檔案顯然修改過了,里面可能有病毒或其他惡意程序碼。
▲ 檔案 SHA-1 值校驗實例。
SHA-1 和 MD5 是世界上最常用的檔案校驗加密演算法,過去一直認為是比較安全可靠的演算法──直到今天。
Google 和 CWI 一起研究出一種方法,能讓兩個不同的檔案用 SHA-1 演算后,得出完全一致的 SHA-1 值。
怎樣攻破的?
這次攻破被命名為 SHAttered attack。研究者提供兩張內容截然不同、色彩明顯差異,但 SHA-1 值卻完全相同的 PDF 檔案為證明:
在博客中,研究者寫道:
哈希碰撞(hash collision,即兩個不同檔案 SHA-1 值一致,也有譯做哈希沖突)本來不應該發生。但實際上,當 SHA-1 演算法存在漏洞時,一個有足夠實力的攻擊者能制造出碰撞,進而攻擊者可用來攻擊那些依靠 SHA-1 值校驗檔案的系統,植入錯誤的檔案造成惡果。舉個例子,兩份條款完全不同的保單。
本次 Google 對其進行攻破花費巨額的演算法:總計 9,223,372,036,854,775,808──超過9×10^18 次演算。
破解分為兩階段,分別需要一個 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 月早些時候推送,但仍處于延期狀態。
去年 10 月,火狐瀏覽器的開發商 Mozilla 也宣布了同樣的決定。
一張圖看懂 SHAttered attack(Google 官方制作)