在互联网通信中,保证数据的安全传输至关重要。这就是Transport Layer Security (TLS) 协议的作用,它为网络通信提供了加密和身份验证的能力。传统的 OpenSSL 及其衍生版本虽然在互联网上广泛使用,但是接连不断的爆出的各种安全漏洞让使用者很"头疼",而 Rustls 正是为解决此问题而生,它的目标是提供一个轻量级的、易于使用且高度安全的 TLS 解决方案。
RustLS 是用 Rust 编写的现代 TLS (传输层安全协议)库,通过严格遵循 Rust 的所有权模型和生命周期概念,确保了代码的可靠性和安全性,支持多种加密算法和协议版本,包括支持TLS 1.2和1.3协议,适用于客户端和服务器端。
项目采用了模块化设计,允许通过不同的加密提供商来定制其内部的加解密实现,包括默认的aws-lc-rs以及可选的ring等。RustLS 旨在生产环境中使用,并在多个组织和项目中得到实际部署,保持API的合理稳定,同时持续优化性能。
项目地址: github.com/rustls/rust...

Rustls 性能优于 OpenSSL 和 BoringSSL
MemorySafety.org 发布的一篇文章指出,在 Intel Xeon 服务器上的测试中,Rustls 的表现要优于 OpenSSL 和 BoringSSL。
测试结果表明,在握手性能和吞吐量性能方面,Rustls 都要领先于 BoringSSL 和 OpenSSL。
握手性能(Handshake Performance)
握手性能指标:在相同硬件和相同资源约束下,每秒可以完成的握手次数。


在每一个测试场景中,Rustls 都处于领先地位。
吞吐量性能(Throughput Performance)
吞吐量性能指标:具有相同资源限制的相同硬件上的吞吐量,以每秒兆字节数为单位:

在吞吐量方面,Rustls 也全面领先。
Rustls 不仅在性能方面领先,而且提供了 C 和 Rust API、FIPS 支持、量子密钥交换、加密客户端(ECH)、操作系统信任程序验证等功能。
文章地址: www.memorysafety.org/blog/rustls...
实际应用场景
在实际应用中,RustLS 被广泛应用于需要安全通信的场景,如Web服务器、客户端应用、物联网设备等场景。
1、Web服务器
Rustls 已经成熟且可以商用,在构建安全的 HTTPS 服务器时,完全替代传统的 OpenSSL 方案。事实上,Rustls 现在可以通过 OpenSSL 兼容层在 Nginx 中使用,这意味着你可以在世界上最广泛的 Web 服务器中无缝替换 OpenSSL。
2、客户端应用
对于需要安全连接远程服务器的应用(如文件同步工具、邮件客户端等),Rustls 是实现 TLS 连接的理想选择。
3、物联网设备
在资源有限的物联网环境中,Rustls 的小型体积和低内存需求使其成为最理想的选择。
总结
Rustls 代表了TLS实现的未来方向:安全、高效、易用。它消除了传统安全库的复杂性,同时不牺牲性能或安全性。无论你是正在构建下一代Web服务,还是需要为嵌入式设备添加安全通信,Rustls都值得你认真考虑。
在网络安全日益重要的今天,选择一个像Rustls这样从一开始就为安全而设计的库,不仅能保护你的用户,也能让你晚上睡得更安稳。
所以,下次当你需要TLS功能时,不妨给Rustls一个机会------你的代码(和你的用户)会感谢你的选择。