38个发布版本
0.5.0 | 2024年4月28日 |
---|---|
0.5.0-dev | 2023年10月31日 |
0.4.8 | 2022年11月11日 |
0.4.2-beta.4 | 2022年7月29日 |
0.1.4 | 2019年5月7日 |
#19 in 身份验证
13,330 每月下载量
用于 6 个Crates (4个直接使用)
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