出於安全原因,OpenSSH 決定棄用 SHA-1 驗證演算法
最受歡迎的連接和管理遠程伺服器的實用工具 OpenSSH 今天宣布,計劃放棄對其 SHA-1 驗證方案的支持。在這個宣布當中,OpenSSH 團隊列舉了 SHA-1 散列演算法的安全問題,該演算法目前被認為是不安全的。
SHA-1 演算法在 2017 年 2 月的一次實際的、真實世界的攻擊中被破解,當時谷歌密碼學家披露的 SHAttered 技術可以使兩個不同的文件擁有相同的 SHA-1 文件簽名(這稱之為「碰撞」)。
在當時,創建一個 SHA-1 碰撞被認為需要非常昂貴的計算成本,谷歌的專家認為 SHA-1 在實際應用中至少還能用上五年,直到成本下降。
然而,隨後在 2019 年 5 月和 2020 年 1 月發布的研究報告中,詳細介紹了一種更新的方法,將 SHA-1 選擇-前綴碰撞攻擊chosen-prefix collision attack的成本分別降低到 11 萬美元和 5 萬美元以下。
對於高級威脅攻擊者,例如國家黑客和高端網路犯罪集團,如果他們能夠生成一個 SSH 認證密鑰,使他們能夠遠程不被發現地訪問關鍵伺服器,那麼 5 萬美元是一個很小的代價。
OpenSSH 關閉 ssh-rsa 模式
「由於這個原因,我們將在不久的未來版本中默認禁用 ssh-rsa 公鑰簽名演算法。」OpenSSH 開發者今天表示。
OpenSSH 應用程序使用 ssh-rsa 模式來生成 SSH 驗證密鑰。這些密鑰中的一個存儲在用戶要登錄的伺服器上,另一個存儲在用戶的本地 OpenSSH 客戶端中,這樣用戶就可以在每次登錄時不需要輸入密碼就可以訪問伺服器,而是以本地認證密鑰來代替。
在默認情況下,OpenSSH ssh-rsa 模式通過使用 SHA-1 哈希函數生成這些密鑰,這意味著這些密鑰容易受到 SHAterred 攻擊,使攻擊者能夠生成重複的密鑰。
「遺憾的是,儘管有更好的替代方案存在,但這種演算法仍然被廣泛使用,它是原始的 SSH RFC 規定的唯一剩下的公鑰簽名演算法」,OpenSSH 的開發人員今天表示。
OpenSSH 團隊現在要求伺服器所有者檢查他們的密鑰是否已經使用默認的 ssh-rsa 模式生成,並使用不同的模式生成新的密鑰。
OpenSSH 團隊表示,推薦的模式是 rsa-sha2-256/512(從 OpenSSH 7.2 開始支持)、ssh-ed25519(從 OpenSSH 6.5 開始支持)或 ecdsa-sha2-nistp256/384/521(從 OpenSSH 5.7 開始支持)。
這裡是最近公告中的最好的消息。讓我們為所有的嵌入式系統和設備永遠不會看到 OpenSSH 中廢棄的 ssh-rsa SHA-1 密鑰的升級而默哀一分鐘。
- Julio (@juliocesarfort) 2020 年 5 月 27 日
OpenSSH 項目將在未來(目前還未確定)的版本中默認禁用 ssh-rsa 模式,但是在此之前,他們還計劃默認啟用 UpdateHostKeys 功能,讓伺服器所有者可以輕鬆自動地從舊的 ssh-rsa 模式遷移到更好的驗證演算法。
依賴 OpenSSH 管理遠程系統的伺服器管理員可以在 OpenSSH 8.3 的變更日誌中找到更多關於如何測試他們的伺服器是否有基於弱 SHA-1 的密鑰的詳細信息。
在之前的一個版本中,在 8.2 版本中,OpenSSH 團隊還增加了對基於 FIDO/U2F 的硬體安全密鑰的支持,這也可以用來更安全地登錄遠程伺服器。
via: https://www.zdnet.com/article/openssh-to-deprecate-sha-1-logins-due-to-security-risk/
作者:Catalin Cimpanu 選題:wxy 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive