1个不稳定版本
0.5.0-20230418 | 2023年10月31日 |
---|
#24 在 #目录
57KB
1K SLoC
Webauthn-rs
Webauthn是一种基于硬件的认证的现代方法,包括一个用户、一个认证器设备、一个与设备交互的浏览器或客户端,以及一个能够生成挑战并验证认证器有效性的服务器。
用户可以通过注册过程将令牌注册到自己的账户,然后可以使用作为加密认证执行的令牌进行登录。
这个库旨在提供有用的函数和框架,允许您将webauthn集成到Rust网络服务器中。这意味着库实现了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 - 不发送正确的声明证书,并忽略请求的算法。尚未解决。
- Windows Hello 与较旧 TPM - 通常使用 RSA-SHA1 签名进行声明,这可能会允许凭证泄露/伪造。
标准合规性
这个库被精心实现,以遵循 w3c 标准 webauthn 3+ 处理,以确保安全和正确的行为。我们支持大多数主要扩展和密钥类型,但我们不声称是标准兼容的,因为
- 我们在库中强制执行了超出标准提供的安全保证的额外约束。
- 我们不支持某些偏门选项。
- 我们不支持所有加密原语类型(仅限于安全的类型)。
- webauthn 中宣传的许多功能在现实世界中不起作用。
此库已通过 SUSE 产品安全进行的审核。欢迎进行其他安全审查!
依赖项
~2.9–4MB
~87K SLoC