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 槽位及其证书对象仅在使用时创建,并占用设备的可用存储空间。
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 仅用于签署设备证明。