2个不稳定版本

0.5.0 2024年4月28日
0.1.0 2023年10月31日

#731 in 密码学

Download history 303/week @ 2024-04-23 838/week @ 2024-04-30 748/week @ 2024-05-07 1738/week @ 2024-05-14 1639/week @ 2024-05-21 1223/week @ 2024-05-28 1741/week @ 2024-06-04 1329/week @ 2024-06-11 1701/week @ 2024-06-18 1613/week @ 2024-06-25 1835/week @ 2024-07-02 2201/week @ 2024-07-09 1914/week @ 2024-07-16 1921/week @ 2024-07-23 1909/week @ 2024-07-30 2326/week @ 2024-08-06

8,480 每月下载量
用于 12 个crate (3个直接)

MPL-2.0 许可证

33KB
668 代码行

Webauthn-rs

Webauthn是一种基于硬件的认证的现代方法,包括用户、认证器设备、与设备交互的浏览器或客户端以及能够生成挑战并验证认证器有效性的服务器。

用户可以通过注册过程将自己的令牌注册到账户中,然后可以使用该令牌进行登录,该令牌执行加密认证。

这个库旨在提供有用的函数和框架,使您能够将webauthn集成到Rust Web服务器中。这意味着库实现了Webauthn/FIDO2工作流程的受信任方组件。我们提供了模板和示例JavaScript和wasm绑定,以展示浏览器交互。

行为准则

查看我们的 行为准则

区块链支持策略

本项目不支持也不将支持任何与区块链相关的用例。我们不会接受来自主要业务为区块链、加密货币、NFT或所谓的“Web 3.0技术”的组织(或其员工)的问题。此声明不影响项目开源许可证下授予的权利和义务。

如果您对此声明的范围以及它是否影响您的进一步问题,请通过电子邮件向webauthn at firstyear.id.au发送。

文档

这个库由多个主要部分组成。

一个安全、以用例驱动的API,定义在 Webauthn-RS

定义在 Webauthn-Core-RS 的低级、协议级交互

定义在 Webauthn-RS-proto 的协议绑定

FIDO MDS(认证器透明度)解析器 FIDO-MDS

我们强烈建议您使用安全API,因为Webauthn有很多锋利的边缘和错误的方法!

演示

您可以通过我们的 演示网站 测试这个库

或者您可以通过以下方式在本地运行演示

cd compat_tester/webauthn-rs-demo
cargo run

对于演示网站的额外配置选项

cargo run -- --help

已知支持的密钥/硬件

我们对各种密钥和设备进行了广泛的测试,不仅限于

  • 尤比科5c / 5ci / FIPS / 生物识别
  • TouchID / FaceID(iPhone,iPad,MacBook Pro)
  • Android
  • Windows Hello(TPM)
  • 软令牌

如果您的密钥/浏览器组合无法正常工作(通常由于缺少加密例程),请进行兼容性测试,然后提交问题,以便我们能够解决问题!

已知损坏的密钥/硬件

  • Pixel 3a / Pixel 4 + Chrome - 不发送正确的证明证书,并忽略请求的算法。尚未解决。
  • 带有旧TPM的Windows Hello - 通常在证明中使用RSA-SHA1签名,这可能导致凭证泄露/伪造。

标准合规性

此库已经精心实现,以遵循w3c标准Webauthn 3+处理,以确保安全且正确的行为。我们支持大多数主要扩展和密钥类型,但我们不声称是标准合规的,因为我们

  • 在库中实施了额外的约束,这超出了标准提供的安全保证。
  • 我们不支持某些晦涩的选项。
  • 我们不支持所有加密原语类型(仅限于安全的那些)。
  • Webauthn中宣传的大量功能在现实世界中无法使用。

此库已经通过SUSE产品安全的审计。欢迎进行其他安全审查!

依赖关系

约2.6-3.5MB
约77K SLoC