#openpgp #devices #piv #context #card

openpgp-piv-sequoia

一个用于在 OpenPGP 环境中使用 PIV 设备的库

2 个不稳定版本

0.1.0 2023 年 6 月 24 日
0.0.1 2023 年 6 月 15 日

#6#piv


用于 openpgp-piv-tools

LGPL-2.0-or-later

28KB
487

openpgp-piv-sequoia

crates.io openpgp-piv-sequoia docs.rs openpgp-piv-sequoia status-badge Mastodon Matrix: #openpgp-card:matrix.org

一个用于在 OpenPGP 环境中使用 PIV 设备的库。

PIV ("个人身份验证",也称为 FIPS 201) 是美国联邦政府标准加密智能卡。

PIV 设备广泛可用,并且可以使用它们在 OpenPGP 环境中执行加密操作。

支持的算法

PIV 标准指定使用 RSA 2048、NIST P-256 或 NIST P-384。其他非对称算法不是官方标准的一部分。

一些设备实现了额外的加密机制。然而,这些目前是专有扩展。

YubiKey 4/5

广泛可用的 YubiKey 4 和 5 设备支持多个协议,其中包括 PIV。

YubiKey 设备上的 PIV 应用程序独立于设备提供的 OpenPGP 卡应用程序(即,两个应用程序是分开的,可以包含不同的密钥材料)。

YubiKey PIV 应用程序的一个特点是它提供了 20 个额外的“退休”解密密钥插槽。

PIV 与 YubiKey 4/5 的 PKCS #11 的比较

可以通过两种不同的接口访问 YubiKey 4/5 上的 PIV 应用程序

  • 直接使用 PIV 协议,或
  • 通过 PKCS #11 驱动模块(使用 ykcs11 库)。

两种接口允许使用相同的密钥材料。从某种意义上说,这些接口是可以互换的。

软件 PIV 实现

这些实现是

PivApplet

https://github.com/arekinath/PivApplet

Canokey

可以在主机计算机上作为模拟器运行 Canokey 安全密钥

https://github.com/canokeys/canokey-core/

OpenFIPS201

https://github.com/makinako/OpenFIPS201 https://github.com/makinako/OpenFIPS201-jc22

用于 CI 测试的虚拟 PIV 设备

一个 配套项目 提供了容器化的软件 PIV 实现,用于 CI 测试。

PIV 规范

https://csrc.nist.gov/Projects/piv/piv-standards-and-supporting-documentation

依赖关系

~29–40MB
~703K SLoC