智能卡从 CA 证书中检索公钥
Posted
技术标签:
【中文标题】智能卡从 CA 证书中检索公钥【英文标题】:Smart Card Retrieve public key from CA certificate 【发布时间】:2021-03-03 13:27:20 【问题描述】:我正在尝试读取行驶记录仪公司的智能卡。除了识别部分,我可以很好地读取所有数据。这是我真正需要的部分。当我选择该 DF 时,安全环境被重置,我必须重新进行身份验证。该过程在 ECE/TRANS/SC.1/2006/2/Add.1 的子附录 11 中进行了描述。虽然这个文档对我来说有点难以理解。
在这张图片中,您可以看到行驶记录仪公司卡的数据结构。 ID 部分后面的“AUT”告诉您需要进行身份验证。
在 SO 上询问 another question 并对如何使用公钥/私钥进行了大量研究之后,我想我对应该如何进行身份验证有了一些基本的了解。在文档中,还有一个关于如何完成身份验证的非常详细的流程图。不幸的是,放在这里太大了。但我对这部分有一个问题:
现在,我从上往下数。所以左上角的第一个方块是第一步,左下角的最后一个方块是第七步。中间部分的箭头是需要发送到卡的 APDU 命令,而右边的部分是智能卡。 PK 表示公钥。 CA 表示证书颁发机构。
如果您不知道公钥,您会看到需要同时获得卡和 CA 证书。我已经这样做了,我可以从卡上读取它们。我不明白的部分是第 6 步和第 7 步。你看我需要使用欧洲公钥验证卡 CA.C(这是证书的一部分)。我从哪里获得欧洲公钥以及使用什么算法来解密它?
编辑: 这是验证过程吗?如果是这样,它会说用 CA 公钥打开标志,我如何得到这个?
编辑 2: 我从this link 找到了欧洲公钥。卡上 CA 证书的 CAR 部分与公钥的前 8 个字节匹配。这意味着它是正确的公钥。现在如果我理解正确,我需要按照上图中 CSM_019 的第三步打开标志。要打开标志,我需要使用我询问的公钥的正确算法吗?有谁知道用的是什么算法?
【问题讨论】:
【参考方案1】:第 6 步:此处无需解密:您验证签名,也是证书的一部分 (Card.CA.C),如果正确,则可以提取包含的密钥(卡 CA 的公钥)并用于下一步。
第 7 步:您验证卡证书的签名(使用刚刚检索到的 card.ca 密钥制作),如果正确,您现在拥有卡的公钥(可以肯定,它是正确的,否则签名会不匹配)。
该方案使用这种两步法,因此只需要 Eur.PK 公钥,而不需要所有卡 CA 的密钥。
【讨论】:
好,见上图新增。是验证过程吗?据我了解,正如编辑所说,如果是这样,我如何获得公钥.. 这些是欧洲公钥,我是否正确? dtc.jrc.ec.europa.eu/dtc_public_key_certificates_dt.php.html 我不明白第 6 步和第 7 步。我可以“验证”签名,但我完全不知道该怎么做。我有欧洲公钥。怎么办?你知道它是如何工作的吗?我看到它说“使用 CA 公钥打开签名”的部分是的,但是你如何打开它?我将卡中的 CA 证书拆分为 Sign、Cn 和 CAR 字节。我已验证卡 CA 中的 CAR 与我找到的公钥的 CAR 匹配以上是关于智能卡从 CA 证书中检索公钥的主要内容,如果未能解决你的问题,请参考以下文章