Let's Encrypt启动用内存安全Rust替代C语言计划


在接下来的几年里,我们计划继续在 Let's Encrypt 基础架构中用内存安全的替代方案替换 C 或 C++ 软件:


我们在 2020 年启动了一个名为Prossimo的新项目。Prossimo 的目标是确保互联网内存安全,这是互联网内存安全的关键部分软件基础设施。

从那时起,我们投资了一系列软件组件,包括Rustls TLS 库Hickory DNSRiver 反向代理sudo-rs对 Linux 内核的 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 暂存环境,目前已投入生产。

systemd-timesyncd 和 ntpd-rs 之间有很大区别:
systemd-timesyncd 是一个 SNTP 客户端,它只是偶尔发送一个 NTP 请求,并根据该单个响应调整时钟。

而 ntpd-rs 是一个完整的 NTP 实现,既是一个完整的 NTP 服务器,又是一个客户端。它实现了一个完整的同步算法,允许它同时同步到多个源。

我们还允许操作员更多地自定义行为。这对那些希望充当 NTP 服务器的人很有用,也对那些希望获得更准确的时间信息或需要更多安全性的人很有用。

Let's Encrypt是一个免费的、自动化的、开放的证书颁发机构(Certificate Authority,CA),由Internet Security Research Group (ISRG)提供。它的目标是使互联网更加安全,通过提供免费的SSL/TLS证书,让网站可以轻松地启用HTTPS。