左側通過SHA-1後不同文件產生不同的Hash,破解後相同的Hash可用在惡意文件上。

圖片來源: 

Google

Google安全團隊與荷蘭的數學暨電腦科學研究機構CWI Amsterdam本周共同宣布已成功破解了SHA1加密雜湊函數,實際操作了碰撞攻擊,首度把這個原本只屬於理論的攻擊行動付諸實現,並打算在60天後釋出概念性驗證程式。

SHA1為美國國家安全局(National Security Agency,NSA)所設計,並於1995年發表的加密雜湊函數,隨後亦成為美國聯邦資料處理標準。它可產生160位元的雜湊值長度(訊息摘要),用以加密及驗證檔案身分,理論上每個以SHA1加密的檔案都會有專屬的雜湊值。

然而,密碼學家們在2005年就發現SHA1含有理論上的漏洞,可造成碰撞攻擊(Collision attack),允許駭客打造擁有同樣訊息摘要的文件,以方便偽裝及取代合法文件。另有來自各大學的研究人員在2015年發表了相關的研究報告《The SHAppening》,指出只要利用AWS的EC2服務,大約花上7.5~12萬美元,就能攻陷SHA1。

Google解釋,所謂的碰撞是讓不同的文件產生同樣的摘要,這事通常不會發生,除非該雜湊演算法含有安全漏洞,像是SHA1。Google與CWI花費了兩年的時間進行研究,終於發現在SHA1上產生碰撞的第一個可行技術,成功地執行了碰撞攻擊。為了證明此事,Google釋出了兩個含有不同內容、卻擁有同樣訊息摘要的PDF檔案。

可能受到碰撞攻擊影響的系統(如下)包括文件簽章、HTTPS憑證、軟體業者簽章、版本控制或備份系統等。

雖然已經證明了SHA1的碰撞攻擊是得以實踐的,但不幸中的大幸是,要執行該攻擊必須使用非常大量的運算資源,依照Google的說法,這是他們所完成的最大規模的運算之一,總計執行了9百京(quintillion,10的18次方)次的SHA1運算,若以一年為期,要用6500個CPU來完成第一階段的計算,再用110個GPU進行第二階段計算。相較之下,另一訊息摘要演算法MD5只要利用一台智慧型手機及30秒的時間就能被攻陷。

Google與CWI的研究人員採用了名為「SHAttered」的攻擊手法來創造重複的SHA1訊息摘要,若是透過暴力破解,則需要使用1200萬個GPU才能完成,因代價太高,實務上並不可行。

要減輕SHA1所帶來的碰撞攻擊威脅最直接的辦法就是升級到更新的SHA256或SHA3。Google準備在30天後釋出概念性驗證程式,並提供免費偵測系統,以供使用者辨識文件是否已遭碰撞攻擊。

Google建議可行的防範之道:

熱門新聞

Advertisement