密钥槽

PIV 标准定义了 25 个密钥槽。早期固件仅支持其中 5 个;固件 2.0.0 新增两个 Retired 槽位;固件 3.1.1 起支持全部 25 个槽位,外加一个非标准的设备证明(attestation)槽位。下表按编号和名称列出各个槽位,以及首次支持该槽位的固件版本。

每个槽位都有名称和编号。编号为十六进制值,通常不带 “0x” 前缀,例如槽位 9A。某些应用程序会用名称来指代槽位:槽位 9A 即 “PIV Authentication” 槽,因此你可能会看到「使用 Authentication 槽中的密钥」之类的表述。

槽位编号 名称 首次支持的固件版本 说明
80 PIN 2.0.0 非标准槽位,仅用于 Get Metadata 指令
81 PUK 2.0.0 非标准槽位,仅用于 Get Metadata 指令
9B Management 所有版本 Triple-DES 密钥,固件 3.1.1 起为 AES-192;无证书
9A PIV Authentication 所有版本 非对称密钥和证书;用于认证用户,通常用于系统登录
9C Digital Signature 所有版本 非对称密钥和证书;用于签名邮件、文件、可执行程序等
9D Key Management 所有版本 非对称密钥和证书;用于加密以保证机密性,例如解密邮件
9E Card Authentication 所有版本 非对称密钥和证书;用于认证卡片,通常用于门禁
F9 Attestation 3.1.1 非标准槽位;P-256 密钥和证书;用于证明设备上生成的其他 PIV 密钥
82 Retired 1 2.0.0 非对称密钥和证书;通常存放证书已过期的密钥,用于解密旧的加密内容
83 Retired 2 2.0.0 同上
84–94 3.1.1
95 Retired 20 3.1.1 同上

注意,槽位 9B 存放的是对称密钥,其余槽位均存放非对称密钥。Retired 槽位及其证书对象仅在使用时创建,并占用设备的可用存储空间。

设备证明密钥(Attestation Key)

F9 槽位的设备证明密钥用于生成设备证明(一份 X.509 证书),证明 9A、9C、9D、9E 或 Retired 槽位(82–95)中的密钥是在设备上生成的。导入的密钥无法进行设备证明。

设备证明密钥是 F9 槽位中的一把 P-256 密钥,其证书存放在数据对象 5FFF01 中。重置 PIV 应用不会删除这两项数据。详见设备证明

生成与导入非对称密钥

槽位 9A、9C、9D、9E 和 82–95 出厂时为空。如需使用,可在设备上生成新的密钥对,或导入已有密钥,参见常用操作

签名

槽位 9C 名为 “Digital Signature”,通常用于签名邮件、Git 提交等。9A、9D、9E 以及 82–95 槽位中的密钥同样可以用于签名。槽位 9B 存放对称密钥,不能签名;槽位 F9 仅用于签署设备证明。