4个版本 (2个重大更新)
0.2.0 | 2023年6月22日 |
---|---|
0.1.0 | 2023年6月19日 |
0.0.2 | 2023年6月18日 |
0.0.1 | 2023年6月15日 |
#2355 in 密码学
每月30次下载
用于 openpgp-pkcs11-tools
46KB
771 行
openpgp-pkcs11-sequoia
一个库,用于在OpenPGP环境中使用PKCS #11设备。
PKCS #11 是一个用于创建和操作加密令牌的编程接口。
(请参阅基于此库的命令行工具 openpgp-pkcs11-tools)
PKCS #11规范
PKCS #11密码令牌接口基本规范版本2.40,OASIS标准,2015年4月14日
PKCS #11 v2.20:密码令牌接口标准,RSA实验室,2004年6月28日
PKCS #11访问库
访问PKCS #11设备需要一个(通常是供应商特定的)PKCS #11动态库实现(“模块”)。例如,要访问Yubikey 5上的Yubikey PIV应用,可以使用 /usr/lib64/libykcs11.so
。
此存储库中的代码使用 cryptoki,一个“高级、Rust风格包装器crate”作为这些模块的包装器
graph TD
A[openpgp-pkcs11-sequoia] --> B(cryptoki Rust crate)
B -->|uses| C[vendor-specific PKCS#11 library]
click B "https://crates.io/crates/cryptoki"
设备和软件实现
YubiKey 4/5 (ykcs11)
密钥上传限制
YubiKey PKCS #11驱动程序 (ykcs11
) 似乎没有实现所需的功能来上传密钥材料(不支持上传 CKO_PUBLIC_KEY
对象,但这是必需的)。
因此,密钥目前只能通过PIV接口上传到这些卡。
Nitrokey HSM 2 / SmartCard-HSM-4K
https://www.smartcard-hsm.com/opensource.html
"SmartCard-HSM被OpenSC支持,这是一个适用于各种操作系统的PKCS#11和CSP Minidriver中间件。"
(https://support.nitrokey.com/t/differences-between-nitrokey-hsm2-smartcard-hsm-4k-usb-token/1985)
YubiHSM 2
https://developers.yubico.com/YubiHSM2/Usage_Guides/YubiHSM_quick_start_tutorial.html
Nitrokey NetHSM
作为容器镜像提供(无安全功能,仅用于测试目的!)
https://hub.docker.com/r/nitrokey/nethsm
PKCS #11驱动程序:https://github.com/Nitrokey/nethsm-pkcs11
"此驱动程序仍是一个早期概念验证实现,仅实现了操作TLS服务器所需的功能。"
Utimaco SecurityServer模拟器
https://utimaco.com/downloads/simulators-and-sdks/securityserver-simulator
(可能是在非免费许可证下;因此,可能无法在CI中公开使用(?))
SoftHSM2
PKCS #11的软件实现。
依赖项
~29-40MB
~722K SLoC