Google在2017年,與荷蘭的數學暨電腦科學研究機構CWI Amsterdam合作,成功破解SHA1雜湊演算法,實現SHA1碰撞,這證明SHA1在當前電腦強大的運算能力面前已經不再可靠,現在已有許多供應商開始提供更安全的加密選項。
而版本控制系統Git所使用的加密雜湊函式,也是企業與開發者關注的重點,最近的Git 2.42更新,已經將SHA-256支援的實驗性標籤移除,而GitLab也緊接著宣布其Git遠端程序呼叫元件Gitaly開始完全支援SHA-256。
SHA1在Git系統扮演重要角色,每個提交到Git的內容,都會透過SHA1演算法生成一個40字元長度的16進位雜湊值,這個值可作為唯一標示,而Git也會用這個唯一數值,作為資料儲存位置的參考,當兩個檔案和資料夾的內容完全相同,則會有相同的SHA1雜湊值,Git可以用這個特性高效率地儲存重複的內容。
在2017年Google生成雜湊碰撞後,證明SHA1不再絕對安全,雖然Git專案因為其儲存物件的方式,目前未受此類攻擊,但是GitLab提到,針對SHA-1的攻擊也會影響Git,而這只是時間上的問題。當SHA1發生碰撞時,代表著不同資料會對應到相同的雜湊值,對Git系統產生多項安全性衝擊,當不同的兩個資料具有相同的雜湊值,遭惡意攻擊者竄改的資料便可佯裝成合法檔案資料,使變更看起來與正常資料無異。
雖然實際發生有意義的SHA-1碰撞機會非常少,而有意義的SHA-1碰撞機會是指,在Git中創建兩個有意義且不同的提交,卻具有相同雜湊值的情況。這需要相對高的運算資源和特定條件,因此目前大多數Git使用者所面對的實際風險仍然偏低,但考量運算能力日益提升,而且美國聯邦單位諸如NIST和CISA的指導方針,也都明確設定了2030年SHA-1退場時間,因此各單位也都開始規畫將SHA-1轉移至更安全的SHA-256等演算法,而Git目前則已經完成這項工作。
SHA-256同樣是一種雜湊演算法,會對給定的資料生成固定長度64位元的16進位雜湊值,Git同樣可使用SHA-256演算法生成提交和Git物件的ID。SHA-256在2020年推出的Git 2.29,以實驗性功能加入,但是在最近剛發布的Git 2.42版本,官方決定拿掉實驗性標籤。
而隨即GitLab宣布其處理Git儲存庫的元件Gitaly,開始完全支援SHA-256,官方提到,雖然在正式提供SHA-256儲存庫之前,還需要對GitLab應用程式進行調整,但這是一個重要的里程碑。從可用性角度來看,SHA-256和SHA-1沒有顯著差異,GitLab認為個人專案可以使用SHA-1就好,但考量安全理由,公司與組織可以改用SHA-256儲存庫。
事實上,過去GitLab官方認為,支援SHA-256並非他們需要優先提供給用戶的功能,但隨著距離聯邦機構禁用SHA-1的期限將至,GitLab官方才提到要盡快支援SHA-256。不過值得注意的是,SHA-256儲存庫目前並沒有辦法與SHA1儲存庫互通,而Git預設值仍是使用SHA1。
GitHub對此則沒有明確的動作,GitHub在2021年的時候將SHA-256支援列進發展路線中,但是目前對SHA-256支援沒有給出官方的回應。
熱門新聞
2024-11-25
2024-11-15
2024-11-15
2024-11-25
2024-11-28
2024-11-14