30个版本
0.13.2 | 2024年5月9日 |
---|---|
0.12.1 | 2023年11月10日 |
0.12.0 | 2023年5月19日 |
0.11.1 | 2022年5月8日 |
0.3.14 | 2021年3月18日 |
#112 在 认证 中
2,822 每月下载次数
205KB
4K SLoC
sshcerts
sshcerts(原名rustica-keys)是一个用于解析、创建和签名OpenSSH证书的库。它最初基于@dnaeon的rust-sshkeys
,但已大幅扩展,提供更丰富的写入API、证书签名验证、颁发新证书、解析加密私钥等功能。
此库还包含用于Yubikey密钥管理的其他可选功能。Yubikey管理模块可用于分配密钥槽,这些密钥永远不会离开设备,并提供由Yubikey支持的SSH签名模块。要启用此功能,请使用功能yubikey-support
。
此库尽量减少依赖项,因此许多功能都受功能控制。例如,可以使用rsa-signing
功能读取和验证RSA证书,但不能创建除非使用该功能。
加密私钥的支持可通过encrypted-keys
功能获得。
最后是x509模块,用于执行一些奇怪的操作,例如从x509证书中获取SSH公钥。当使用Yubikey功能时,它会自动包含,但也可以通过x509-support
单独启用。
构建
API稳定性
此crate的API不应被视为稳定,并期望在版本之间出现破坏性更改。
安全警告
尚未进行审查。我构建它是因为我认为人们可能觉得它有用。在使用此库进行生产之前,请务必进行全面代码审查。
Yubikey基准测试
Yubikey不是快速HSM,因此每秒生成许多证书的基础设施将面临挑战。我针对256位和384位ECDSA密钥进行了多种类型的基准测试。结果如下
ECDSA256 | ECDSA384 | 备注 | |
---|---|---|---|
4C FIPS <4.4.5> | - | - | 签名时需要PIN码 |
Nano 4C <4.3.7> | 9.14 | 6.35 | |
Nano 5C <5.2.4> | 10.58 | 7.10 | |
5 NFC <5.2.7> | 10.93 | 7.20 | |
5Ci <5.2.4> | 10.94 | 7.22 |
这表明5系列比4系列快约15%,但5系列之间主要相当。在多个Yubikey上加载相同的密钥将提供乘法加速(等于密钥数量),但如果您需要每秒那么多的签名,Yubikey可能不是最佳选择。
许可
本软件遵循MIT许可证提供,您可以基本按照自己的意愿使用它,只要所有分发和衍生品(源代码和二进制文件)都包含来自LICENSE
的版权信息。
依赖关系
~7-19MB
~351K SLoC