1 个不稳定版本

0.1.0 2024年1月22日

#1422 in 加密学

GPL-3.0 许可证

17KB
166 代码行

Secure Layer

用于保护服务器和客户端通信的机制

这个库是一个简单的机制,供网络服务器开发者使用,以保护客户端和服务器之间的通信。它的主要思想是有一个“滚动共享密钥”,这意味着一个以不可预测的方式不断变化,但又在服务器和客户端之间安全共享的密钥。为了实现这一点,客户端和服务器首先共享一次密钥,这在代码中被称为“init_key_hash”,由start_session函数生成。之后,客户端使用这个密钥加密自己的消息,并将密文发送到服务器,然后修改自己的密钥,通过将明文附加到原始密钥上并对结果进行哈希处理。服务器接收到密文,并使用原始密钥进行解密,然后以相同的方式修改自己的密钥,使用解密后的明文。结果是,客户端和服务器都拥有了相同的新密钥,而无需通过网络以任何方式交换密钥。请注意,服务器必须成功解密密文才能获取新密钥,而且随着时间的推移,第三方复制这个过程变得更加困难,这意味着要生成相同的密钥,就必须遵循初始密钥以及客户端和服务器之间交换的所有后续明文。

如何使用

请参阅lib.rs底部的测试函数

依赖项

~24MB
~451K SLoC