#tls #pure #course #scratch #security #protocols

anothertls

又一种TLS实现,但完全从头开始(包括加密)用纯Rust编写 - 当然

3个版本

0.1.3 2023年4月28日
0.1.2 2023年4月21日
0.1.0 2023年4月20日

1665密码学

每月下载量 29

自定义许可证

250KB
6K SLoC

AnotherTLS

又一种TLS实现,但完全从头开始(包括加密)用纯Rust编写 - 当然。此实现的重点是简单性和不使用任何依赖项。我开始这个项目是为了深入了解Rust、密码学和网络协议。

如果您对黑客TLS感兴趣,请查看我的VulnTLS项目。

AnotherTLS的独特之处是什么?

它只依赖于标准库和ibigcrate。因此,您将发现整个TLSv1.3堆栈在一个仓库中,可以随意使用,就像我在VulnTLS实现中所做的那样。此外,所有内容都是pub,因此您可以使用AnotherTLS轻松模拟TLS的部分,例如编写漏洞利用。

使用当前版本,可以通过curl或浏览器连接到AnotherTLS服务器。AnotherTLS也可以用作客户端。由于证书解析仍然是WIP,因此目前无法(安全地)连接到已知的网站(或证书尚未验证)。

握手和应用程序数据

$ cargo run --bin server_https
# other window
$ curl -iv --insecure https://127.0.0.1:4000/

客户端证书

$ cargo run --bin server_client_auth
# other window
$ cd ./examples/src/bin/config/client_cert/
$ curl --cert client.signed.cert --key client.key -iv --insecure https://127.0.0.1:4000/

有关使用AnotherTLS的更多信息,请参阅./examples文件夹。

相关标准

TLSv1.3堆栈由以下标准组成,这些标准也在此存储库中实现。

已实现

公开

安全

目前,此实现的重点是符合RFC8446的TLS规范,但所有要求都实现后,我将转向安全部分,因为这是我开始此项目的主要原因之一。

待办事项

依赖项

~430KB
~10K SLoC