根据 ZDNet 的报道,谷歌资助了用 Rust 重写 Apache HTTP 服务器 (“httpd”) 关键组件的项目。此项目由互联网安全研究小组(Internet Security Research Group, 简称 ISRG)牵头,谷歌提供资金支持。
被重写的关键组件是 mod_ssl 模块,用于在 Apache 服务器上建立 HTTPS 连接时进行加密,此模块依赖于 OpenSSL 提供加密引擎,OpenSSL 是 C 语言开发的加密库。
ISRG 表示,他们的计划是开发名为 mod_tls 的新模块,mod_tls 将会使用 Rust 替代 C 实现与 mod_ssl 同样的功能。此模块基于 Rustls,这是一个可作为 OpenSSL 替代方案的 Rust 开源库。ISRG 还希望他们完成工作后,httpd 能够默认使用 mod_tls,以取代目前老旧且不安全的 mod_ssl 组件。
为了推进这项工作,ISRG 管理层与身为软件咨询公司 Greenbytes 创始人以及 httpd 代码提交者之一的 Stefan Eissing 签订了合同,后者将负责领导 mod_tls 项目的开发工作。
Rust 目前由 Mozilla 主导开发和提供资金支持,其设计准则为“安全、并发、实用”,特别适用于关注内存安全的场景。为了内存安全,Rust 被设计为不允许空指针和悬空指针。
内存安全漏洞在安全领域一直都是严重的问题, httpd 也爆发过不少因使用 C 语言而引发的内存安全性问题。因此不难理解 ISRG 希望通过使用 Rust 重写 httpd 关键组件来提升安全性。
Rust 此前已经得到了微软、苹果、AWS、Mozilla、Linux 内核社区等组织机构的青睐,现在 Apache 软件基金会也成为了其中一员。
httpd 联合创始人 Brian Behlendorf 认为 httpd 在诞生26年后,仍然是一个至关重要的基础设施。他还说道:“作为最初的联合开发者,我觉得像这样认真的改造可以为更多人提供保护,并让 httpd 在未来很长一段时间内都能发挥价值。”