卡可验证证书创建、签名和导出工具?

Card Verifiable Certificates Creation, Signing and Exporting Tools?

美好的一天,

我在工作中接到了一个任务,由于缺乏关于该主题的信息,结果证明这是一个相当有趣的噩梦。

我的任务如下:为了确保现场芯片卡的不对称管理。必须通过“PSO 命令”将认证 CVC 证书导入卡内。 CVC 证书必须由 CVC 根证书颁发机构签署,并拥有为卡管理定义的 OID。

除 CVC 证书外,我拥有任务所需的所有密码 material。我已经定义了 CVC 证书的外观以及信息需要如何编码。我的问题是,除了 X.509-Certificates 和 OpenSSL CLI 之外,我从未使用过任何其他东西,因此我在这方面缺乏经验,因此出现了以下问题...

如何创建 CVC-PKCS#10?

如何借助 OPENSSL 和 CVC 根证书对其进行签名?

如何输出 CVC 证书?

这是我在此类论坛中的第一个问题,所以如果您发现错误或需要有关此事的更多信息,请告诉我。

提前感谢您的所有意见。

ISO 7816 第 8 部分描述了模式验证证书(简称 VCERT)中的 PSO(即执行安全操作)。据我所知,互联网上没有容易下载的副本。

原理很简单:必须预先选择根密钥(管理安全环境,ISO 7816,第 4 部分)。然后您发送 BER-TLV 编码字符串作为 PSO VCERT 命令中的命令数据字段。 CV 证书在顶层分为新的 public 密钥和签名。 (我不明白 output 问题;它只是各个数据对象与适当长度字段的连接。)如果签名匹配,卡片将丢弃它并保留新的 public键供后续使用。您还需要您的卡供应商提供大量文件,说明如何选择根密钥。

恐怕 OpenSSL 和 PKCS#10 都没有多大用处。签名(假设为 RSA)只不过是对正确填充的字节字符串的 RSA 操作。在任何情况下,您都可能需要直接在 APDU 级别与卡通信,首先是为了验证证书,然后是应用相应的密钥。