作为 Let's Encrypt 加密倡议的发起者之一,互联网安全研究小组(简称 ISRG)刚刚宣布 —— 他们将通过把核心组件从 C 逐步迁移至 Rust 来修复安全问题,从而使 Apache HTTP 服务器的 httpd 主程序变得更加稳固。初期工作包括使用 Rustles 库取代 OpenSSL,为 httpd 重写一个新的 TLS 模块(称作 mod-tls)。
ISRG 的 Josh Aas 表示,他希望重写的 mod_tls 能够在有朝一日取代当前被 httpd 默认使用的 mod_ssl 。
目前他们已经收到了谷歌提供的一笔资金,与 httpd 提交者 Stefan Eissing 完成了签约,后续将通过 Rust 来重写新模块。
考虑到每天都有数以亿计的网站在使用 httpd 来满足各项需求,ISRG 希望通过修复和改进安全性,进而对业界产生广泛而重要的影响。
此前影响 httpd 的问题类型,多见于使用 C 语言编程引发的内存安全性问题。然而经历十年的发展,Rust 编程语言已经变得相当成熟,且默认情况下仅允许编译内存安全型的应用程序。
Josh Aas 在评论 C 和 Rust 的优缺点时称,通过使用 Rust 来编写 httpd 组件,可以消除大量的安全漏洞。
尽管当前全世界的网络上已经部署了数百万行的 C 语言代码来处理标准请求,但我们有足够证据表明这种行为是不够安全的。
全行业需要意识到,继续部署这种网络流量处理代码,是危险且不负责任的。人们需要能够满足其需求的内存安全型软件,而这也是 ISRG 新工作的主要推动力。
另一方面,Apache httpd 创始人之一的 Brian Behlendorf 也对此发表了评论:
自 Apache httpd 诞生 26 年以来,其在基础架构中仍扮演着一个至关重要的角色。
作为初始联合开发者之一,我意识到这项重大改进可对许多人提供保护,并且能够让 httpd 在不久的将来继续发光发热。
最后,通过确保更多站点向用户提供更安全的 HTTPS 连接,ISRG 的 Let's Encrypt 项目已经对互联网产生了巨大的影响。