38个发布版本

0.5.0 2024年4月28日
0.5.0-dev2023年10月31日
0.4.8 2022年11月11日
0.4.2-beta.42022年7月29日
0.1.4 2019年5月7日

#19 in 身份验证

Download history 2958/week @ 2024-05-04 2959/week @ 2024-05-11 3006/week @ 2024-05-18 2662/week @ 2024-05-25 2797/week @ 2024-06-01 2446/week @ 2024-06-08 2852/week @ 2024-06-15 2509/week @ 2024-06-22 2550/week @ 2024-06-29 3207/week @ 2024-07-06 2881/week @ 2024-07-13 2884/week @ 2024-07-20 3167/week @ 2024-07-27 3030/week @ 2024-08-03 3809/week @ 2024-08-10 2687/week @ 2024-08-17

13,330 每月下载量
用于 6 个Crates (4个直接使用)

MPL-2.0 许可证

590KB
8K SLoC

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

已知支持的密钥/硬件

我们已经对各种密钥和设备进行了广泛测试,不仅限于以下:

  • Yubico 5c / 5ci / FIPS / Bio
  • 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产品安全进行的安全审计。欢迎进行其他安全审查!

依赖关系

~11MB
~230K SLoC