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

authenticator-ctap2-2021

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

1 个不稳定版本

0.3.2-dev.12022年8月26日

#299操作系统

Download history 443/week @ 2024-03-13 488/week @ 2024-03-20 323/week @ 2024-03-27 336/week @ 2024-04-03 439/week @ 2024-04-10 433/week @ 2024-04-17 655/week @ 2024-04-24 829/week @ 2024-05-01 598/week @ 2024-05-08 729/week @ 2024-05-15 792/week @ 2024-05-22 459/week @ 2024-05-29 895/week @ 2024-06-05 347/week @ 2024-06-12 536/week @ 2024-06-19 548/week @ 2024-06-26

2,466 每月下载量
4 个crates(2 个直接)中使用

MPL-2.0 许可证

700KB
16K SLoC

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

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

模糊测试

有USB协议读取器的模糊器,基本上是模糊HID层的输入。尚无(尚无)用于调用者(如Gecko)使用的C API的模糊器。

要进行模糊测试,您需要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

依赖项

~3–20MB
~259K SLoC