使NFC电子护照APDU认证工作的步​​骤?

时间:2014-12-02 12:59:26

标签: python nfc apdu

我正在开展一个项目,移动应用程序必须通过NCF与ePassport进行通信。我们必须提取有关用户的基本数据,如姓名,DOB,照片等。阅读相似的帖子后,阅读icao.int上的规范和图书馆代码pyPassport,我和#39; m仍然不确定应该将哪个APDU命令发送到ePassport。怎么开始?

根据我所阅读的内容,它看起来应该是get challenge 00 84 00 00 08 {某处B4而不是84),但不幸的是我总是得到63 00回复(没有给出任何信息)。

我知道在获取数据之前,我需要做BAC。我在上面的规范中看到了示例,我想我可以编写BAC代码,但是如何实现呢?有没有人知道如何开始的流程/步骤以及需要进行哪些认证(被动/主动)?感谢。

1 个答案:

答案 0 :(得分:1)

我不确定你为什么得到6300响应,但我认为这是因为尚未选择epassport应用程序。我可能错了。

BAC是GET CHALLENGE(00 84 00 00 08)和EXTERNAL AUTHENTICATE命令的组合。您只需要BAC身份验证即可阅读基本护照持有人信息。

以下是您需要发送以从护照中读取数据的命令序列:

  1. 选择 - 选择epassport应用程序
  2. 获得挑战
  3. 外部认证
  4. 读取二进制文件(受安全消息传递保护) - 读取包含基本护照持有者信息的DG1文件
  5. 读取二进制文件(受安全消息传递保护) - 阅读包含护照持有者信息照片的DG2文件
  6. 如果需要,我可以提供更多详细信息。但与此同时,您也可以参考 ICAO Doc 9303,机读旅行证件第3部分第2卷 了解BAC规范。