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

Openssl 卡验证证书创建、签名和导出工具?,openssl,smartcard,Openssl,Smartcard,你好 我在工作中遇到了一个任务,由于缺乏关于这个主题的信息,结果变成了一个相当有趣的噩梦 我的任务如下:为了确保在现场对芯片卡进行不对称管理。身份验证CVC证书必须通过“PSO命令”导入卡内。CVC证书必须由CVC根证书颁发机构签名,并具有为卡管理定义的OID 除CVC证书外,我拥有任务所需的所有加密材料。我对CVC证书的外观以及信息需要如何编码有定义。我的问题是,除了X.509-Certificates和OpenSSL CLI之外,我从未使用过其他任何东西,因为我在这方面缺乏经验,所以出现了以

你好

我在工作中遇到了一个任务,由于缺乏关于这个主题的信息,结果变成了一个相当有趣的噩梦

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

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

如何创建CVC-PKCS#10

如何在OPENSSL和CVC根证书的帮助下进行签名

如何输出CVC证书

这是我在这类董事会中的第一个问题,因此,如果您看到错误或需要更多关于这一问题的信息,请让我知道

提前感谢您的所有输入。

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

原则很简单:必须事先选择根密钥(Manage Security environment,ISO 7816,第4部分)。然后,将BER-TLV编码的字符串作为PSO VCERT命令中的命令数据字段发送。CV证书在顶层分为新的公钥和签名。(我不理解输出问题;它只是相应数据对象与适当长度字段的浓缩。)如果签名匹配,卡将丢弃它并保留新公钥以供后续使用。您还需要您的卡供应商提供大量文档,说明如何选择根密钥


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

标签
cvcs
具有误导性,即使它使用了类似的缩写。嗨,Guidot,感谢您的回答。我了解ISO/IEC 7816-4。有争议的卡是我们自己定制的卡,并且在其文件结构中有我们的根CVC权限的公钥。我应该采取以下步骤来确保卡的非对称管理:1。MSE集合(通过引用的公钥)2。使用PSO Verify命令导入根CVC授权机构签署的身份验证CVC证书(我没有此证书,但可以访问私钥)3。MSE设置(智能卡私钥)4。一般身份验证步骤1和2。这就是我的问题所在,我拥有根私钥,因此我应该能够创建并签署身份验证cvc。我只是缺少工具和更深的理解。我正在研究BouncyCastleAPI和java,我看到api中有一些关于构建CVC的有趣类。我会在接下来的几天里更新。