gpt4 book ai didi

android - 与机读旅行证件交互时,选择的 Android 设备的不同响应

转载 作者:太空狗 更新时间:2023-10-29 13:48:28 25 4
gpt4 key购买 nike

我目前正在开发一个 Android 应用程序,用于读取电子护照和其他支持 NFC 的文档。

我已经在多个 Android 设备上测试了代码,但发现其中 1 个无法成功读取文档。

以电子护照为例,它正确传达了Select Application调用并返回状态码90 00。我也收到有效的 BAC 质询,但当我调用 EXTERNAL AUTHENTICATE 时,它返回状态代码 69 86(不允许命令(无当前 EF))。我所有其他测试电话都返回状态代码 90 00。

我的问题是为什么单一型号的手机会给我不同的 APDU 响应。我试图阅读 Android 中的 NFC 硬件,但没有找到关于为什么会发生这种情况的答案。我只能假设这可能是一个协议(protocol)问题?

如果有人能阐明这一点,我将不胜感激。

最佳答案

在不分析实际通信的情况下,只能推测那里发生了什么。然而,有两个潜在的原因:

  1. 您遇到的情况,可能是由 Android 标记存在检查机制引起的。默认情况下,如果您发送命令的速度不够快,Android 会将您的通信与其存在检查机制交织在一起。在某些设备上,此存在性检查使用在基本逻辑 channel 上发送的 APDU。因此,它们由护照上的机读旅行证件申请接收和处理,并可能导致状态变化。参见 Android IsoDep command chaining failure .

  2. 机读旅行证件上的加密操作比其他操作需要更多的功能。如果您的护照需要的电量超过该特定测试设备提供的电量(请记住,NFC 手机设计用于读取低功率 NFC 标签,而不是与能量贪婪的非接触式智能卡交互),与护照的通信可能会丢失,或者在最坏的情况,可能会导致智能卡应用程序发生意外状态更改(尽管智能卡芯片通常设计为在这些情况下强制执行重置)。

关于android - 与机读旅行证件交互时,选择的 Android 设备的不同响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50471620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com