基于 Rust 的 Rustls 性能优于 OpenSSL 和 BoringSSL

在互联网通信中,保证数据的安全传输至关重要。这就是Transport Layer Security (TLS) 协议的作用,它为网络通信提供了加密和身份验证的能力。传统的 OpenSSL 及其衍生版本虽然在互联网上广泛使用,但是接连不断的爆出的各种安全漏洞让使用者很"头疼",而 Rustls 正是为解决此问题而生,它的目标是提供一个轻量级的、易于使用且高度安全的 TLS 解决方案。

RustLS 是用 Rust 编写的现代 TLS (传输层安全协议)库,通过严格遵循 Rust 的所有权模型和生命周期概念,确保了代码的可靠性和安全性,支持多种加密算法和协议版本,包括支持TLS 1.21.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一个机会------你的代码(和你的用户)会感谢你的选择。

相关推荐
数字新视界5 小时前
如何通过数字化管理提升IT资产管理系统的效率与准确性?
物联网·数据中心·dcim·动环监控·新人首发
BenSmith6 小时前
从零上手嵌入式 RTOS:以 Raspberry Pi Pico 2 WH 为例的烧录、定制构建与多系统对比指南
安全
汇智信科7 小时前
训练安全管理系统:赋能军消装备训练,实现全流程智能化管控
安全·训练安全管理·装备训练智能化·军事训练保障·消防训练管理
其实防守也摸鱼10 小时前
CTF密码学综合教学指南--第三章
开发语言·网络·python·安全·网络安全·密码学
其实防守也摸鱼10 小时前
CTF密码学综合教学指南--第四章
网络·笔记·安全·网络安全·密码学·ctf
DevilSeagull10 小时前
电脑上安装的服务会自动消失? 推荐项目: localhostSCmanager. 更好管理你的服务!
测试工具·安全·react·vite·localhost·hono·trpc
@insist12311 小时前
信息安全-防火墙技术演进全景:从代理NAT 到下一代及专项防火墙
网络·安全·web安全·软考·信息安全工程师·软件水平考试
不会编程的懒洋洋12 小时前
C# P/Invoke 基础
开发语言·c++·笔记·安全·机器学习·c#·p/invoke
时空系13 小时前
认识Rust——我的第一个程序 Rust中文编程
开发语言·后端·rust