#security-key #usb-hid #fido #ctap2 #u2f #webauthn

authenticator

用于与Web身份验证中的CTAP1/2安全密钥交互的库。由Firefox使用。

37个版本

0.4.0 2024年7月25日
0.4.0-alpha.242023年11月29日
0.4.0-alpha.232023年10月5日
0.4.0-alpha.182023年6月20日
0.2.6 2019年5月22日

#65 in 密码学

Download history 1518/week @ 2024-04-26 1002/week @ 2024-05-03 2261/week @ 2024-05-10 3145/week @ 2024-05-17 3324/week @ 2024-05-24 2458/week @ 2024-05-31 661/week @ 2024-06-07 957/week @ 2024-06-14 638/week @ 2024-06-21 1123/week @ 2024-06-28 924/week @ 2024-07-05 1396/week @ 2024-07-12 764/week @ 2024-07-19 2284/week @ 2024-07-26 2912/week @ 2024-08-02 3062/week @ 2024-08-09

9,170 个月下载
4 crates 中使用

MPL-2.0 许可证

1MB
20K SLoC

用于与CTAP1/CTAP2安全密钥交互的Rust库

Build Status Maturity Level

这是一个通过Rust与安全密钥类型设备交互的跨平台库。

  • 支持的平台:Windows、Linux、FreeBSD、NetBSD、OpenBSD和macOS。
  • 支持的数据传输:USB HID。
  • 支持协议:通过USB的FIDO U2F。CTAP2支持即将推出,目前正在 不稳定ctap2 分支 上进行工作。

该库目前专注于USB安全密钥,但预计将扩展以支持更多的数据传输。

使用方法

目前只有一个简单的示例函数,尝试注册和签名。它使用 env_logger 进行日志记录,您可以通过 RUST_LOG 环境变量进行配置

cargo build --example main
RUST_LOG=debug cargo run --example main

正确的使用方法应该是在其他东西中调用此库,例如Firefox。为此,已公开一些 C头文件

测试

有一些跨平台运行循环逻辑和协议解码器的测试

cargo test

Fuzzing

有USB协议读取器的fuzzers,基本上是模糊HID层的输入。目前(尚未)为调用者(如Gecko)使用的C API提供fuzzers。

要进行fuzzing,您将需要cargo-fuzz(来自GitHub的最新版本)以及Rust Nightly。

rustup install nightly
cargo install cargo-fuzz

cargo +nightly fuzz run u2f_read -- -max_len=512
cargo +nightly fuzz run u2f_read_write -- -max_len=512

依赖关系

~2–4.5MB
~86K SLoC