Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/rustls/rustls
网络安全密码学实用工具与框架身份验证
GitHubrustls/rustls

rustls

基于 Rust 的内存安全 TLS 库,实现 TLS 1.2 和 1.3,配备可插拔加密提供程序,支持客户端/服务器模式和基于证书的身份验证。

查看仓库
7.6k8772天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Rustls 是一个用 Rust 编写的现代 TLS 库。

状态

Rustls 已被许多组织和项目在生产环境中使用。我们力求保持合理的 API 表面稳定性,但随着我们为支持新功能或性能改进而做出变更,API 仍可能持续演进。

我们在路线图中列出了未来计划。我们还提供基准测试,以防止性能回退,并让你在目标硬件上评估 rustls。

如果你愿意提供帮助,请参阅 CONTRIBUTING.md。

Build Status Coverage Status (codecov.io) Documentation Chat OpenSSF Best Practices

维护者将 "rustls" 读作 rustles(而非 rust-TLS),但我们对此并无强烈意见。

更新日志

每个版本中详细的变更列表可在 https://github.com/rustls/rustls/releases 查看。

文档

https://docs.rs/rustls/

方法

Rustls 是一个 TLS 库,旨在提供良好的密码学安全水平,无需任何配置即可实现该安全性,并且默认不提供任何不安全的功能或过时的密码学算法。

Rustls 同时为客户端和服务器实现 TLS1.2 与 TLS1.3。请参阅完整的功能特性列表。

平台支持

虽然 Rustls 本身是平台无关的,但它需要使用密码学原语来实现 TLS 中所用的密码学算法。在 Rustls 中,crypto::CryptoProvider 表示一组密码学原语实现的集合。

通过提供自定义的 crypto::CryptoProvider 结构体实例,你可以替换 rustls 的全部密码学依赖。这是让 rustls 可移植到更广泛的架构与环境,或满足合规要求的途径。更多详情请参阅 crypto::CryptoProvider 文档。

密码学提供方

自 Rustls 0.22 起,用户可以选择 Rustls 所使用的密码学原语提供方。如果你有特定的平台、合规或功能要求,这可能会很有吸引力。

从 0.24 开始,用户在构造 ClientConfig 或 ServerConfig 实例时必须显式地提供密码学提供方。更多详情请参阅 crypto::CryptoProvider 文档。

第一方提供方

Rustls 项目目前维护两个密码学提供方:

  • rustls-aws-lc-rs - 使用 aws-lc-rs crate 进行密码学运算的提供方。虽然该提供方在某些平台上构建起来可能更困难,但它提供了卓越的性能和完整的功能集(包括后量子算法)。
  • rustls-ring - 使用 ring crate 进行密码学运算的提供方。该提供方在各种平台上更容易构建,但功能集较为有限(例如,它不支持后量子算法)。

Rustls 团队建议使用 rustls-aws-lc-rs crate,因为它功能完整且性能出色。有关 aws-lc-rs 在平台/架构支持方面的更多限制详情,请参阅 aws-lc-rs 常见问题。

有关提供方如何被选择的详情,请参阅 crypto::CryptoProvider 文档。

(对于 0.24 之前的 rustls 版本,这两个提供方都随 rustls crate 一起发布,并通过 Cargo 特性来选择首选提供方。aws-lc-rs 特性在默认情况下是启用的。)

第三方提供方

社区也已开始为 Rustls 开发第三方提供方:

  • boring-rustls-provider - 一个使用 boringssl 进行密码学运算的进行中(work-in-progress)提供方。
  • rustls-ccm - 使用 RustCrypto 添加 AES-CCM 密码套件(TLS 1.2 和 1.3),面向 IoT/受限设备协议(IEEE 2030.5、Matter、RFC 7925)。
  • rustls-graviola - 一个使用 graviola 进行密码学运算的提供方。
  • rustls-mbedtls-provider - 一个使用 mbedtls 进行密码学运算的提供方。
  • rustls-openssl - 一个使用 OpenSSL 进行密码学运算的提供方。
  • - 一个使用 密码学原语的实验性提供方。

有关此主题的更多信息,请参阅文档中的 Making a custom CryptoProvider 部分。

示例代码

我们的 examples 目录包含演示如何使用 stream::Stream 辅助工具处理 I/O 的示例,以及使用 mio 的更复杂的异步 I/O 示例。如果你已经在使用 Tokio 作为异步运行时,你可能会更倾向于使用 tokio-rustls 而不是直接与 rustls 交互。

基于 mio 的示例最为完整,下文将予以讨论。Rustls 的新用户可能更倾向于先查看简单的客户端/服务器示例,然后再深入更复杂的 MIO 示例。

客户端示例程序

MIO 客户端示例程序名为 tlsclient-mio。

一些示例运行:

root@kitploit:~
$ cargo run --bin tlsclient-mio -- --http jbp.io
HTTP/1.1 200 OK
Date: Tue, 23 Jun 2026 16:13:40 GMT
Content-Type: text/html; charset=utf-8
Connection: close
(...)

运行 cargo run --bin tlsclient-mio -- --help 以获取更多选项。

服务器示例程序

MIO 服务器示例程序名为 tlsserver-mio。

以下是一个示例运行;我们启动一个 TLS 回显服务器,然后使用 openssl 和 tlsclient-mio 连接它:

root@kitploit:~
$ cargo run --bin tlsserver-mio -- --certs test-ca/rsa-2048/end.fullchain --key test-ca/rsa-2048/end.key -p 8443 echo &
$ echo hello world | openssl s_client -ign_eof -quiet -connect localhost:8443
depth=2 CN = ponytown RSA CA
verify error:num=19:self signed certificate in certificate chain
hello world
^C
$ echo hello world | cargo run --bin tlsclient-mio -- --cafile test-ca/rsa-2048/ca.cert --port 8443 localhost
hello world
^C

运行 cargo run --bin tlsserver-mio -- --help 以获取更多选项。

许可证

Rustls 在以下三种许可证下分发:

  • Apache License 2.0 版。
  • MIT 许可证。
  • ISC 许可证。

这些分别包含在 LICENSE-APACHE、LICENSE-MIT 和 LICENSE-ISC 中。你可以根据自己的选择,在任一许可证的条款下使用本软件。

项目成员

  • Joe Birr-Pixton (@ctz, 项目创始人 - 由 Prossimo 全职资助)
  • Dirkjan Ochtman (@djc, 共同维护者)
  • Daniel McCarney (@cpu, 共同维护者)
  • Josh Aas (@bdaehlie, 项目管理)

行为准则

本项目采用 Rust 行为准则。如要举报任何不当行为,或对行为准则有任何意见或疑问,请发送电子邮件至 [email protected]。

下载工具
rustls-rustcrypto
RustCrypto
  • rustls-symcrypt - 一个使用 Microsoft SymCrypt 库的提供方。
  • rustls-wolfcrypt-provider - 一个使用 wolfCrypt 进行密码学运算的进行中(work-in-progress)提供方。