#opaque #passwords #authentication #cryptography

无 std opaque-ke

OPAQUE 密码认证密钥交换协议的实现

20 个版本 (5 个稳定版)

3.0.0-pre.42023年7月25日
3.0.0-pre.22023年3月15日
2.0.0 2022年9月22日
2.0.0-pre.32022年7月11日
0.1.0 2020年6月5日

#15 in 无标准库

Download history 2386/week @ 2024-04-23 1692/week @ 2024-04-30 1841/week @ 2024-05-07 2269/week @ 2024-05-14 1984/week @ 2024-05-21 1788/week @ 2024-05-28 2322/week @ 2024-06-04 1623/week @ 2024-06-11 1910/week @ 2024-06-18 1595/week @ 2024-06-25 1813/week @ 2024-07-02 1556/week @ 2024-07-09 2530/week @ 2024-07-16 2132/week @ 2024-07-23 1902/week @ 2024-07-30 1426/week @ 2024-08-06

8,346 每月下载量
用于 7 个 Crates (6 个直接使用)

Apache-2.0 OR MIT

470KB
8K SLoC

OPAQUE 密钥交换协议 构建状态

OPAQUE 是一种非对称密码认证密钥交换协议。它允许客户端使用密码认证服务器,而不需要向服务器暴露明文密码。

本实现基于 OPAQUE 互联网草案

背景

非对称密码认证密钥交换 (aPAKE) 协议旨在提供密码认证和相互认证的密钥交换,而不依赖于 PKI(除用户/密码注册期间外)且不需要向服务器或其他实体(除客户端机器外)披露密码。

OPAQUE 是一种无需 PKI 的 aPAKE,可抵御预计算攻击并能够使用密钥盐。

文档

API 可以在此处找到,以及使用示例。更多示例可以在 示例目录 中找到。

安装

将以下行添加到您的 Cargo.toml 依赖项中

opaque-ke = "3.0.0-pre.4"

最低支持的 Rust 版本

Rust 1.65 或更高版本。

审计

该库于2021年6月由 NCC Group 进行审计。审计由 WhatsApp 赞助,用于 启用端到端加密备份

审计发现了 v0.5.0 版本中的问题,并且修复已随后合并到 v1.2.0 版本中。请参阅 完整的审计报告

资源

贡献者

此代码的作者为Kevin Lewi (@kevinlewi)和François Garillot (@huitseeker)。要了解更多关于为此项目做出贡献的信息,请参阅此文档

致谢

特别感谢Hugo Krawczyk和Chris Wood帮助澄清差异并为此实现提供建议。此外,还要感谢@daxpedda添加了no_std支持、p256支持以及对库的其他一般改进。

许可证

本项目可在MIT许可证或Apache License,版本2.0下使用。您可以选择上述许可证中的一种。

依赖项

~3–5MB
~99K SLoC