1个不稳定版本
0.1.0 | 2023年6月7日 |
---|
#1021 in 身份验证
46KB
891 行
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 / 生物识别
- 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产品安全进行的审核。欢迎进行其他安全审查!
依赖关系
~11–25MB
~370K SLoC