當我們檢視 Let’s Encrypt 的整體安全態勢時,最讓我們擔憂的事情之一就是有多少作業系統和網路基礎設施是用 C 和 C++ 等不安全的語言編寫的。憑證授權機構軟體本身是以記憶體安全的 Golang 編寫的,但是從我們的伺服器作業系統到我們的網路設備,缺乏記憶體安全經常導致需要修補的漏洞。

部分為了 Let’s Encrypt 的緣故,部分為了更廣泛的網際網路,我們在 2020 年啟動了一個名為 Prossimo 的新專案。Prossimo 的目標是使網際網路一些最關鍵的軟體基礎設施具有記憶體安全性。從那時起,我們投資了一系列軟體組件,包括 Rustls TLS 函式庫Hickory DNSRiver 反向代理sudo-rsLinux 核心的 Rust 支援,以及 ntpd-rs

Let’s Encrypt 現在已經邁出了一步,這一步已經醞釀了很長時間:我們已經部署了 ntpd-rs,這是 Prossimo 第一個進入 Let’s Encrypt 基礎設施的記憶體安全軟體。

大多數作業系統使用網路時間協定 (NTP) 來準確判斷現在的時間。追蹤時間是作業系統的關鍵任務,由於它涉及與網際網路互動,因此務必確保 NTP 實作是安全的。

在 2022 年 4 月,Prossimo 開始開發一個記憶體安全且整體上更安全的 NTP 實作,名為 ntpd-rs。從那時起,該實作已經成熟,現在由 Project Pendulum 維護。在 2024 年 4 月,ntpd-rs 被部署到 Let’s Encrypt 的暫存環境,而現在它已經在生產環境中。

在接下來的幾年中,我們計劃繼續在 Let’s Encrypt 基礎設施中用記憶體安全的替代方案替換 C 或 C++ 軟體:用 Rustls 取代 OpenSSL 及其衍生產品,用 Hickory 取代我們的 DNS 軟體,用 River 取代 Nginx,以及用 sudo-rs 取代 sudo。記憶體安全只是整體安全方程式的一部分,但 它是重要的一部分,我們很高興能夠做出這些改進。

我們依靠我們的用戶和支持者社群的貢獻來提供我們的服務。如果貴公司或組織想 贊助 Let’s Encrypt,請發送電子郵件至 sponsor@letsencrypt.org。我們要求您在能力範圍內做出 個人捐款