GitHub 引入 SHA-1 加密碰撞偵測及預防

幾週前,一班研究團隊宣佈了首例 SHA-1 碰撞:Shattered。所謂碰撞是指兩個內容不同的對象產生了相同的 SHA-1 Hash 值。近日 GitHub 宣布,將增加 SHA-1 加密碰撞的自動偵測和預防的功能,避免所有代管專案發生檔案 Hash 值重複的情況。

在 Git 版本控制系統中,每個對象都以內容的 SHA-1 Hash 值命名,如果試圖向 Git 庫裡推送與現有對象 SHA-1 Hash 值相同的碰撞對象,接收者可以很容易通過對比源代碼區分真假。Google 對 Git  進行 SHA-1 碰撞攻擊的方法是首先創造出一對 SHA-1 Hash 值相同的對象,然後讓其中一個看似合法的對象獲得合法簽名,然後對外散播包含另一個惡意對象的版本,這個惡意版本的簽名仍然與原始版本相同。

為了阻止此類的碰撞攻擊,GitHub 宣佈引入 SHA-1 加密碰撞偵測,GitHub 表示,日後所有 Github 上任何 SHA-1 運算,都會進行檢測,只要發現會產生碰撞,就會自動中止,來防止攻擊者使用 GitHub 做為碰撞攻擊的平台。目前該加密碰撞偵測已經在Github上開放。

研究團隊提出的預防方法

有份參與測試的 Google 表示任何透過 Gamil 發送和儲存於 Google Drive 的檔案都已自動組過 SHA-1 加密碰撞的偵測。至於Firefox 的反應亦很迅速,在該報告發表後不久,便表示會終止支援 SHA-1 加密,從 Firefox 51 版本開始,逐步取消使用 SHA-1 加密,到 Firefox 52 便會完全消失。因此若讀者有更新 Firefox,並且是在 52 或以後的版本,Firefox 表示必定會影響讀者瀏覽某些尚未更新至 SHA-2 證書的網站。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。