谷歌公告:SHA-1 哈希演算法被攻破
谷歌宣布攻破 SHA-1 技術的研究成果,Git 強依賴 SHA-1 引出 Linus 本人出面回應。作為非戰鬥人員,面對持續的「高能」安全漏洞如何保護自己?
加密學哈希演算法 SHA-1 被譽為密碼學的瑞士軍刀。哈希演算法在我們日常的網路安全、代碼倉庫安全、甚至是確認文件的完整性方面扮演著重要的角色。哈希函數可以為大量數據生成為很小的信息摘要。依照密碼學需滿足大規模使用的要求,演算法設計使得兩個不同內容的消息要得到相同的信息摘要在計算量上難以達成。然而時過境遷,演算法設計當初的需求定義會遭遇基於演算法數學基礎上的攻擊和硬體計算能力提升而產生的風險。
今天,在 SHA-1 首次發布的20年後,Google 宣布了首次可操作的生成衝突的技術。這是 Google 與 CWI Institute 合作 2 年的研究成果。為了證明他們確實掌握了攻擊的方法,他們發布了2個 PDF 文件,兩個文件的內容是不同的,但經過 SHA-1 演算法哈希後卻能得到相同的信息摘要。
上圖是 Google 發布的證據,兩個不同內容(背景藍色和背景紅色)的 PDF 文件,經過 SHA-1 計算後卻得到相同的信息摘要。
什麼是哈希碰撞
密碼學的哈希演算法(Hash),例如 MD5 和 SHA-1,就是可以將任意長度的信息映射成固定長度的信息。一個文件 Doc 1 通過哈希演算法後會得到 42C1..21 這樣的一段信息摘要(digest),只要文件 Doc 1 沒有被修改過,通過相同的哈希演算法總是得到相同的信息摘要。另一個文件 Doc 2 因為內容與 Doc 1 不同,通過哈希演算法後就會得到不同的信息摘要 3E2A..AE。通過這樣的方式,我們就可以用這套演算法來保證數據的完整性,保證文件不會被篡改。
哈希碰撞 指的就是演算法出現問題的情況,通過某種攻擊手段,攻擊者可以創造出一個 Bad doc,讓它通過哈希演算法後卻得到與 Good doc 相同的數字摘要 3713..42。也就是說,有人可以修改信息的內容,而不能被你察覺到。如果攻擊者掌握了這套攻擊手段,所有依賴哈希演算法驗證文件是否被篡改的系統都變得不再可靠了。
哪些系統會受影響?
任何依賴 SHA-1 做數字簽名的應用程序都將受影響。包括:
- 數字證書籤名
- 郵件 PGP/GPG 簽名
- 軟體發布簽名
- 備份系統
- 冗餘熱備份系統
- Git
- …
Git 高度依賴 SHA-1,由於演算法出現漏洞,重要的代碼就有被篡改卻無法被檢查出來的風險。這次演算法漏洞公布迫使 Linus 本人發聲回應,他的部分觀點是:
I doubt the sky is falling for git as a source control management tool. Do we want to migrate to another hash? Yes. Is it 「game over」 for SHA1 like people want to say? Probably not.
翻譯:我不信代碼管理軟體的天就要塌了。Git 要不要遷移到新的哈希演算法呢?要。但 SHA-1 真如人們所說的要完蛋了嗎?未必。
不過,Linus 的回應遭到了猛烈抨擊,說 Linus 已經年老色衰,判斷力不行了。
非技術人員應該怎麼保護自己
作為非戰鬥人員,我們可能平時接觸不到這些演算法,但我們永遠都需要提高安全意識。下面是一些避免自己受傷的幾點建議:
- 不在電腦或手機中安裝未知來源的軟體
- 不隨意下載和打開未知來源的文檔
- 盡量在軟體官網和 App Store 下載軟體,不信任軟體下載站點和網盤
- 在不同網站(或 app)使用不同的密碼
- 重要文件離線保存
- 電腦和手機一定要設定密碼,盡量開啟全磁碟加密
(完)
Stuff I Learned Yesterday 系列文章與你分享科技、設計、娛樂有關的話題。歡迎關注、打賞和轉載。
- 微信公共號 - 「明學的白板」
- 我的個人Blog - 明學的白板
- Twitter - https://twitter.com/wxiluo
- 新浪微博 - Sina Visitor System
原文鏈接:谷歌公告:SHA-1 哈希演算法被攻破
推薦閱讀:
※恐怖襲擊有刺激示範作用嗎?
※網路安全比賽,如何獲取伺服器上的文件?
※為什麼現在提醒注意安全會被很多人撕政治不正確?
※李嘉誠大肆投資英國基礎設施,英國政府是否擔心國家安全?
※喜大奔普,知乎全站 HTTPS