Google 的安全團隊剛剛創(chuàng)造了計算機加密學(xué)在 2107 年的第一個里程碑:他們攻破了 SHA-1 安全加密算法。
這是一件相當令人感到激動的事件,原因還要從 SHA-1 到底是個什么東西說起。
SHA-1 是什么?
SHA-1(全稱 Secure Hash Algorithm-1)是一種安全加密算法,最主要的用途是數(shù)字簽名。
舉個例子:你肯定在電腦上下載過軟件吧?是否記得,文件的上傳者曾提醒過你,在下載后要校驗文件?有沒有見過類似于下圖中這樣的文字?
這是因為,使用類似于 SHA-1、MD5 這樣的哈希算法,對任何文件,無論文本文檔、表格、音樂mp3、PDF、可執(zhí)行文件等進行計算后,都會得出像上圖中這樣的字段(哈希值)。在過去只要文件不同,對應(yīng)的哈希值都絕對不一樣,就像是給每個文件都加上了數(shù)字的簽名。
就 SHA-1 來說,每個文件出來的哈希值應(yīng)該是 40 個英/數(shù)字:比如上面這張圖片的 SHA-1 值是:
1E2FF30C5FD327C438F76C3ACBE97AAFB9AEDF7E
對于下載者來說,原文件的哈希值很重要:當你下載了一個軟件,用文件校驗工具查看它的 SHA-1/MD5 值,如果和原文件的不一樣,你就得小心了,因為文件顯然被修改過了,而里面可能包含了病毒或其他惡意代碼。
文件哈希值校驗實例
SHA-1 和 MD5 是目前世界上最為常用的文件校驗加密算法。其中,SHA-1 已經(jīng)誕生 10 年之久,在過去一直被認為是比較安全和可靠的算法——直到今天。
但是!Google 和 CWI 一起研究出了一種方法,能夠讓兩個不同的文件,采用 SHA-1 演算之后,呈現(xiàn)出完全一致的哈希值。
怎樣攻破的?
這次攻破被命名為 SHAttered attack。研究者提供了兩張內(nèi)容截然不同,在顏色上存在明顯差異,但 SHA-1 哈希值卻完全相同的 PDF 文件作為證明:
上方為兩張截然不同的 PDF,下方是它們各自的 SHA-1 和 SHA-256 哈希值
在博客中,研究者寫道:
哈希碰撞(hash collision,即兩個不同文件哈希值一致,也有譯作哈希沖突)本來不應(yīng)該發(fā)生。但實際上,當哈希算法存在漏洞時,一個有足夠?qū)嵙?/strong>的攻擊者能夠制造出碰撞。進而,攻擊者可以用去攻擊那些依靠哈希值來校驗文件的系統(tǒng),植入錯誤的文件造成惡果。舉個例子,兩份條款完全不同的保單。
本次 Google 對其進行攻破花費了巨量的算力:總計 9,223,372,036,854,775,808——超過 9 兆(億億)次演算。
研究者們介紹,破解分為兩個階段,分別需要一個 CPU 進行 6500 年,和一個 GPU 進行 110 年的計算才可以完成。這是因為他們采用了自行研發(fā)的 Shattered 破解方法,其效率遠勝于使用暴力破解。而且 Google 云平臺提供的大規(guī)模計算技術(shù),顯著減輕了負擔。
這也是為什么必須“有足夠?qū)嵙Φ墓粽?rdquo;才能攻破……
需要恐慌嗎……
著急殺死 SHA-1,也是 Google 未雨綢繆的決定。2012 年安全技術(shù)專家布魯斯·施奈爾曾經(jīng)估計,完成一次 SHA-1 碰撞在 2012 年需要耗費 277 萬美元,到 2015 年則降到 70 萬美元,2021 年只需要 4.3 萬美元。他還暗示,到 2018 年就會有犯罪集團具備偽造 SHA-1 簽名證書的能力。
但至少目前,人們并不需要恐慌。首先就事件本身而言,普通網(wǎng)友不需要擔心有人會用它做壞事,因為 Google 漏洞披露政策規(guī)定,本次 SHAttered attack 的研究者需要等待 90 天才能發(fā)布原始代碼。就算掌握了代碼,至少也得有 Google 這種水平的大規(guī)模計算能力……
另外,研究者上線了一個網(wǎng)站 shattered.io,網(wǎng)友可以上去了解更多技術(shù)細節(jié),還可以上傳自己的文件,測試自己的文件是否安全。
作為一種老舊的哈希算法,SHA-1 正在被其后來者,比如 SHA-2 和 SHA-3 新算法以及它們的各種變體所取代。三大瀏覽器 Chrome、微軟 Edge/IE 和火狐瀏覽器都決定棄用 SHA-1。
早在 2014 年,Google 就宣布了逐漸放棄 SHA-1 的決定。去年開始,Google 的 Chrome 瀏覽器已經(jīng)不再支持 SHA-1 證書,會將其標記為不安全。當證書過期之后,瀏覽器將無法訪問這些網(wǎng)站。Google 方面也推薦 IT 人士采用 SHA-256 等更安全的算法。
微軟 Edge 瀏覽器團隊此前在其博客中表示,將于 2017 年中開始棄用 SHA-1。但據(jù)《福布斯》網(wǎng)絡(luò)版報道,另一位安全專家凱文·貝爾蒙特則在 Twitter 上指出,棄用 SHA-1 的 Windows 安全更新本應(yīng)該在 2 月早些時候推送,但仍處于延期發(fā)布的狀態(tài)。
去年 10 月,火狐瀏覽器的開發(fā)商 Mozilla 也宣布了同樣的決定。
最后再送上:一張圖看懂 SHAttered attack(Google 官方制作)