16个版本 (7个破坏性更新)
新 0.41.2 | 2024年8月15日 |
---|---|
0.41.0 | 2024年7月24日 |
0.39.0 | 2024年3月26日 |
0.36.0 | 2023年12月8日 |
0.35.0 | 2023年11月20日 |
#194 in 加密学
每月521次下载
用于 2 crates
1.5MB
36K SLoC
mls-rs ─

IETF消息层安全的端到端加密(E2EE)协议的实现。
什么是MLS?
MLS是一种新的IETF端到端加密标准,旨在为客户端组之间提供与传输无关、异步且高性能的通信。
MLS协议特性
- 通过“提议-提交”机制实现多方E2EE组演变。
- 设计上异步,具有预计算的密钥包,允许在离线状态下将成员添加到组中。
- 可定制的凭证系统,内置对X.509证书的支持。
- 扩展系统,允许通过协议协商特定于应用程序的数据。
- 强大的前向机密性和后泄露安全性。
- 通过支持多个加密套件实现加密灵活性。
- 支持预共享密钥。
- 子组分叉。
- 针对协议升级等破坏性变更的组重新初始化。
特性
- 易于使用的客户端接口,可管理多个MLS身份和组。
- 100%符合RFC 9420,支持所有默认凭证、提案和扩展类型。
- 支持WASM构建。
- 通过特性实现可配置的存储,包括密钥包、秘密和组状态,同时提供“内存中”和SQLite实现。
- 支持自定义用户提案和扩展类型。
- 可以创建具有自定义验证例程的用户定义凭据,这些例程可以与现有的凭据方案兼容。
- 基于OpenSSL和Rust Crypto的加密套件实现。
- 支持用户定义的加密套件,具有加密灵活性。
- 包括针对预计算测试向量的安全和互操作测试在内的全面测试套件。
加密提供者
有关加密套件的描述,请参阅RFC文档此处
名称 | 加密套件 | X509 支持 |
---|---|---|
OpenSSL | 1-7 | 稳定 |
AWS-LC | 1,2,3,5,7 | 稳定 |
Rust Crypto | 1,2,3 | ⚠️ 试验性 |
Web Crypto | ⚠️ 试验性 2,5,7 | 不受支持 |
CryptoKit | 1,2,3,5,7 | 不受支持 |
安全通知
该库已通过RFC 9420规范的验证,但尚未收到第三方全面的安全审计。
许可证
本库采用Apache-2.0或MIT许可证。
依赖项
~2.3–8.5MB
~155K SLoC