ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

我是否必须知道使用Android HCE进行卡仿真的卡的AID是什么?

2019-10-02 07:28:32  阅读:444  来源: 互联网

标签:apdu android nfc contactless-smartcard hce


我只是想使用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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有