我是否必须知道使用Android HCE进行卡仿真的卡的AID是什么?
作者:互联网
我只是想使用HCE模拟带有Android应用程序的公交卡.我对卡的AID感到困惑.我必须知道卡的AID是什么吗?
根据基于主机的卡仿真文档:
If you are emulating cards for an existing NFC reader infrastructure,
the AIDs that those readers are looking for are typically well-known
and publicly registered (for example, the AIDs of payment networks
such as Visa and MasterCard).
那么,有什么意义呢?
附:我不认为我的卡的AID是众所周知的.即使是这样,我怎么知道它是什么?
解决方法:
我是否必须知道使用Android HCE进行卡仿真的卡的AID是什么?
当然是! AID是您的应用程序的名称.如果卡片包含具有特定名称的应用程序,并且只与包含阅读器支持的应用程序的卡片通信,则读者将询问(模拟或不模拟)卡片.
如何在某张卡上找到应用程序的AID(或AID)?
最明显的方式:询问系统所有者或制造商.如果他们没有告诉你,你很可能不应该在模仿卡片的情况下摆弄.
当然,还有其他方法可以了解卡的工作原理.许多卡片遵循一些标准.例如,支付卡通常实施EMV协议.对于运输卡,还有几个标准,例如VDV-KA,ITSO等.您可以尝试通过一些指纹来查明该卡是否使用某些标准/众所周知的应用程序(例如,分析卡片以找出卡片类型,芯片类型,芯片制造商等.)并通过执行暴力扫描(例如尝试选择众所周知的应用程序AID,尝试枚举卡上的文件等).您应该能够找到一些可以帮助您解决这个问题的免费工具.
知道AID足以模拟(例如使用HCE)某张卡
不,当然不是.
首先,您还需要了解并实现读者与应用程序对话的协议.虽然许多智能卡应用程序使用通用命令/响应结构(参见ISO / IEC 7816-4行业间命令),但每个应用程序通常以稍微自己的方式使用它们.如果应用程序遵循某些标准,则可以简单地实现该标准.如果应用程序使用某些专有协议,那么您将重新询问系统所有者/制造商或重复试错.
其次,即使AID和协议通常也不足以复制和模拟特定的卡.智能卡通常设计用于存储一些秘密,以便巧妙地识别和验证卡.通常无法从卡中提取这些秘密.因此,您不能简单地将该秘密数据传输到您的HCE应用程序中.
标签:apdu,android,nfc,contactless-smartcard,hce 来源: https://codeday.me/bug/20191002/1841692.html