Android 如何在智能卡读卡器中实现被动身份验证?

Android 如何在智能卡读卡器中实现被动身份验证?,android,authentication,smartcard,smartcard-reader,contactless-smartcard,Android,Authentication,Smartcard,Smartcard Reader,Contactless Smartcard,我在ICAO 9303_11 5.1上发现: 检查系统执行以下步骤: 检查系统应从非接触式IC读取文件安全对象(SO D)(必须包含文件签署人证书(C DS),另见文件9303-10) 检验系统应建立并验证认证路径 从信任锚点到用于签名的文档签名者证书 文档安全对象(SO D)符合文档9303-12的要求 检查系统应使用经验证的文件签署人 验证文档安全性签名的密钥(KPu DS) 对象(sod) 检查系统可从中读取相关数据组 非接触式集成电路 检查系统应确保数据的内容 组是真实的,通过散列内容和

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

  • 检查系统应从非接触式IC读取文件安全对象(SO D)(必须包含文件签署人证书(C DS),另见文件9303-10)

  • 检验系统应建立并验证认证路径 从信任锚点到用于签名的文档签名者证书 文档安全对象(SO D)符合文档9303-12的要求

  • 检查系统应使用经验证的文件签署人 验证文档安全性签名的密钥(KPu DS) 对象(sod)
  • 检查系统可从中读取相关数据组 非接触式集成电路
  • 检查系统应确保数据的内容 组是真实的,通过散列内容和 将结果与中相应的哈希值进行比较 文档安全对象(sod)
  • 我被困在第二步。什么是证书路径?如何构建和验证从信任锚点到文档签名者证书的证书路径?

    有人能帮我吗?

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

    链中的第一个密钥,即国家/地区签名CA密钥在生产过程中存储在passport中,并且已经可用

    大致上,流程是:

    • 选择根
    • 沿着证书链一直到护照本身,即。E验证证书的签名,在肯定的情况下,提取包含的公钥以进行下一步
    好了:jmrtd也提供了一些证书:。护照上没有存储CSCA(国家/地区签名CA)。它是终端必须提供的信任锚。由CSCA签署的文件签署人证书应是EF.SOD的一部分,EF.SOD是护照芯片上的文件。所以链的构建在这里是反向的。我们从芯片上读取DS证书,必须识别一个信任锚,该信任锚在我们的信任锚集合中签署了DS证书。注意,该信任锚集合已经在Android上运行,因此我不确定您要编写什么程序,但您可能想加入他们。如果你这样做了,请向Martijn问好:)