如何在智能卡读卡器中实现被动认证?

Posted

技术标签:

【中文标题】如何在智能卡读卡器中实现被动认证?【英文标题】:How to implement passive authentication in smart card reader? 【发布时间】:2017-07-28 04:47:30 【问题描述】:

我在 ICAO 9303_11 5.1 中发现: 检查系统执行以下步骤:

    检查系统应从非接触式 IC 中读取证件安全对象 (SO D )(必须包含证件签名者证书 (C DS ),另请参见 Doc 9303-10 号文件)。

    李>

    检查系统应建立并验证认证路径 从信任锚到用于签名的文档签名者证书 根据 Doc 9303-12 的文件安全对象 (SO D)。

    检查系统应使用已验证的证件签名者公开 密钥 (KPu DS) 用于验证文档安全性的签名 对象 (SO D)。 检测系统可以从 非接触式 IC。 检验系统应确保数据的内容 通过散列内容和 将结果与相应的哈希值进行比较 文档安全对象 (SO D)。

我被困在第 2 步。什么是证书路径以及如何构建和验证从信任锚到文档签名者证书的证书路径? 谁能帮帮我?

【问题讨论】:

请注意,jmrtd 已经在 android 上运行,所以我不确定您要编程什么,但您可能想加入他们。如果你愿意,请向 Martijn 说“嗨”:) 【参考方案1】:

证书路径或链是一系列公钥,其中每一个用于验证以下内容的正确性。

链中的第一个密钥,国家签名 CA 密钥在生产期间存储在护照中,并且已经可用。

大概的流程是:

选择根目录 按照证书链直到护照本身,即。 e.验证证书的签名,并在肯定的情况下提取包含的公钥用于下一步。

【讨论】:

你去:pkddownloadsg.icao.int/download,一些证书也可以从 jmrtd 获得:jmrtd.org/certificates.shtml CSCA(国家签名 CA)未存储在护照上。它是终端必须提供的信任锚。由 CSCA 签署的证件签名者证书应该是 EF.SOD 的一部分,EF.SOD 是护照芯片上的文件。所以这里的链构建是相反的。我们从芯片中读取 DS 证书,并且必须识别一个信任锚,该信任锚确实在我们的信任锚集中签署了 DS 证书

以上是关于如何在智能卡读卡器中实现被动认证?的主要内容,如果未能解决你的问题,请参考以下文章

如果插入智能卡,则 WPF 捕获事件

如何在智能卡读卡器中检查匹配的证书?

如何在没有卡的情况下向智能卡读卡器(而不是智能卡)发送命令?

Java Web 应用程序可以访问远程工作站上的智能卡读卡器吗?

SCardGetReaderDeviceInstanceId 的实现

如何区分智能卡读卡器错误和智能卡错误