1个不稳定版本
0.1.0 | 2022年8月26日 |
---|
18 在 #authenticator 中
8KB
57 行
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产品安全进行的网络安全审计。欢迎其他安全审查!
依赖关系
~15MB
~271K SLoC