谷歌宣布攻破 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 - http://ksmx.me
- Twitter - https://twitter.com/wxiluo
- 新浪微博 - http://weibo.com/wxiluo
原文鏈接:谷歌公告:SHA-1 哈希算法被攻破