GitHub:未加密的 Git 協議即將成為歷史
日前 GitHub 發布博客,表示正在采取措施提高其托管的代碼倉庫的安全性。之后推送和拉取 Git 數據時必須使用加密的 Git 協議。這些變化將影響 SSH 中支持的一些密鑰,根據 Git 系統團隊的說法,未加密的 Git 協議自此將成為過去式。
具體而言,GitHub 不再支持 DSA 密鑰(Digital Signature Algorithm),一些傳統的 SSH 算法,如 HMAC-SHA-1 和 CBC 也不再適用。尤其是后者,如今 CBC 已經成為攻擊者頻繁攻擊且容易攻擊的一個目標了。GitHub 將為 SSH 增加了兩個新的主機密鑰 —— ECDSA 和 Ed25519,它們都是基于橢圓曲線加密為基礎的新標準。還會新增對 RSA 密鑰的要求(Rivest-Shamir-Adleman),今后將通過 SHA-2 簽名來滿足額外的安全要求。
變化并不影響所有 GitHub 用戶
不過根據系統團隊的說法,大多數用戶都不會受到此次政策變化的影響。根據公告,只有那些通過 SSH 或 git:// 連接到倉庫的用戶才會受到影響,如果你自己的 Git 是以 https:// 開頭的,也同樣不會受到影響。前段時間,GitHub 還放棄了對 Git Actions 的密碼認證,雖然此次 Git 協議的加密要求與之沒有技術上的聯系,但這兩項改變都是 GitHub 為了保護用戶數據安全所做出的努力。
移除舊的密鑰類型
GitHub 團隊表示,之所以要放棄舊的密鑰類型和一些用于簽名的算法,是由于越來越多的攻擊和新的攻擊方法在原本的技術下容易引起更多的安全問題。幾十年前被認定為安全的東西,放到如今已經不一定適用了。DSA 密鑰只有 80 位的安全級別,而現在的標準則是 128 位。雖然使用 GitHub 用戶對此應該多多少少有所了解,但根據 GitHub 的內部統計,目前仍然有 0.3% 的 GitHub 請求在使用 DSA。
移除不安全的簽名算法
如今不少 SSH 客戶端包括 OpenSSH 7.2 (rsa-sha2-256 和 rsa-sha2-512)以及更新的版本都已支持 SHA-2 與 RSA 的結合。雖然 RSA 密鑰被認為更安全(ssh-rsa),但在舊的 Git 客戶端中,它們經常與過時的簽名算法(基于 SHA-1)結合使用。由于 SHA-1 簽名算法十分脆弱,因此 GitHub 如今將強制新的 RSA 客戶端使用 SHA-2 簽名。盡管如此,用戶目前還可以繼續使用 SHA-1 簽名,但從 2021 年 11 月 2 日開始所有密鑰都需要使用 SHA-2 簽名。
這些變化何時生效?
Git 團隊已經分享了即將到來的變化的時間表,新的主機密鑰 ECDSA 和 Ed25519,最早將在 2021 年 9 月 14 日通過 UpdateHostKeys-Extension 提供。11 月 2 日起,用 SHA-1 算法設置 RSA 密鑰的選項將不再適用,屆時將強制使用 SHA-2。兩個新的主機密鑰 ECDSA 和 Ed25519 將從 11 月 16 日開始全面運行,與此同時,之前的 DSA 主機密鑰也將退出支持。
本文轉自OSCHINA
本文標題:GitHub:未加密的 Git 協議即將成為歷史
本文地址:https://www.oschina.net/news/158632/improving-git-protocol-security-github