#webauthn #cable #fido #hybrid #web-server

app cable-tunnel-server-frontend

webauthn-rs caBLE隧道服务器前端

1个不稳定版本

0.1.0 2023年6月7日

#1021 in 身份验证

MPL-2.0许可协议

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