Google震驚密碼界:攻破SHA-1加密技術

在美國的2月23日,Google在密碼學領域幹了件大事,它提交了第一次成功的SHA-1碰撞攻擊。谷歌宣佈找到SHA-1碰撞的算法,須要耗費110塊GPU一年的運算量,並將在90天后公佈源碼。
 
 
一、首先說說,什麼是SHA-1?
SHA-1,被稱做哈希(Hash)算法,一個很是流行的加密散列函數。在許多安全協議中廣爲使用,一般被用作密碼加密,文件校驗等,曾被視爲MD5的後繼者,且存在不可逆性。
 
簡單來說:
 
好比,我有一個網站,用戶在註冊的時候會輸入用戶名和密碼。你們都知道若是密碼是明文的方式存儲在數據庫裏的話,那麼這個數據一旦泄漏或者內部人員做惡的話,會形成信息安全問題。
 
因此通用的作法是,把用戶輸入的用戶名密碼作MD5或SHA-1的運算,這時會生成一個哈希值字串。
 
舉例:把「卡拉是條狗」保存爲一個TXT文件,計算出這個文本文件的哈希值爲b32200d4f3b0c50c5ce7e9801aecbcdce6adcbcc。
由於這個算法的「不可逆」性,僅憑b32200d4f3b0c50c5ce7e9801aecbcdce6adcbcc這串哈希值沒法反計算出明文是什麼。
 
 
二、再來講說,SHA-1碰撞是怎麼一回事?
當散列函數有漏洞,兩個文件產生相同的哈希值時,就產生了碰撞。
 
做爲證實,Google在公佈的結果中,顯示了兩個不一樣的PDF文件,通過SHA-1處理後,產生了相同的哈希值。
 
三、SHA-1碰撞會產生什麼危害?
這裏,爲了可以簡單易懂,咱們先將SHA-1碰撞比喻成軍事領域上的情報傳遞。
 
首先,傳遞的情報必定都是加密的,不會明文。

經過校驗密文,咱們能夠保證接收到情報的正確性(加密的結果是惟一的,能夠保證信息不被篡改),可是此次的問題在於,經過某種方式,咱們造出了能獲得相同密文的情報C。
 
那麼這時候,接受到密文a的人就懵逼了,到底是該執行進攻,仍是執行待命呢?
 
而SHA-1碰撞就好似接收情報,由於它與合法文件有同樣的哈希值,因此會讓攻擊者濫用惡意文件。

 

 
此外,Google 在發表 SHA-1 衝突新聞的Shattered.it 網站上表示:
 
咱們已經經過這個實例演示瞭如何攻破 SHA-1 加密。
 
這項被業內普遍用於數字簽名、文件完整性驗證、以及保護普遍的數字資產(包括信用卡交易、電子文檔、開源軟件資源庫與軟件更新等)的加密標準,現已被實際證實可精心製做出兩份衝突的 PDF 文件。
 
它們包含了不一樣的內容,卻擁有相同的 SHA-1 數字簽名,意味着一個有效簽名可被另外一份 PDF 文件所濫用。
 
舉例來講,別有用心的人能夠利用這種方法制做兩分內容不一致的租賃協議,而後用低價‘副本’欺騙他人‘簽下’價格更高的那份合約。
 
固然,想要達成 Google 這樣的「成就」並不是易事,因之實際上共執行了9,223,372,036,854,775,808 次 SHA-1 計算(9×10^18);破解分爲兩階段,分別須要一個CPU 進行 6,500 年,和一個GPU 進行 110 年的計算纔可完成。



四、做爲普通用戶,咱們須要恐慌嗎?
    顯然,Google找到新的破解算法,能夠利用110塊GPU,一年內完成破解。這裏咱們不妨猜測:若是是地下黑產,面對一個高價值的目標,會不會動用掌握的數百萬臺肉雞電腦的計算能力,在更短的時間內完成碰撞攻擊呢?
 
    作爲一種老舊的加密演算法,SHA-1 漸漸被後來者如 SHA-2 和 SHA-3 新演算法,以及各類變體取代。三大瀏覽器 Chrome、微軟 Edge / IE 和火狐瀏覽器都決定棄用 SHA-1。 截至今年的1月1日,當你訪問一個經由SHA-1加密的網站時,每個主流的瀏覽器都會向你發出警告(通常狀況是全屏紅色),當證書過時後,瀏覽器將沒法存取這些網站。 Google 方面也建議 IT 人士採用 SHA-256 等更安全的算法,因此沒必要過於擔憂。
 
    隨着硬件能力高速發展,GPU已取代CPU來處理數據,致使原有的加密技術面臨走下神壇的危機。而任何的安全都是當下的安全,相信時間會改變這一切!
相關文章
相關標籤/搜索