ICode9

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

字节自动由Android发送 – NFC到模拟卡

2019-08-25 08:32:48  阅读:279  来源: 互联网

标签:apdu android nfc contactless-smartcard hce


我通过带有日志控制台的计算机在Card Emulation模式下运行SpringCard.

一旦我使用带有NFC的Android手机(API 4.1.2)进行检查(没有app runnig),
我的手机将这些数据发送到模拟卡:

1st set -> 90:60:00:00:00
2nd set -> 00:A4:04:00:07:D2:76:00:00:85:1:1:0

这些命令究竟是什么?它们与我的Android有关,它试图发现什么
科技是否使用仿真卡?

编辑

其实我已经明白了第二套是什么(APDU SELECT).

但似乎第一组是来自Android的专有APDU命令.
这可能与NPP(NDEF推送协议)有关吗?

解决方法:

这些命令是什么?

第一个命令(90 60 00 00 00)是MIFARE DESFire GetVersion命令(包装命令集).这似乎是特定于基于恩智浦的NFC NFC堆栈,并不是典型NFC标签检测程序的一部分.

第二个命令(00 A4 04 00 07 D2 76 00 00 85 01 01 00)是一个SELECT APDU,它试图通过其AID选择NFC论坛类型4标签应用程序(版本2.0).这是基于ISO 14443-4(ISO-DEP)的标签/智能卡的典型标签检测程序的一部分.

为什么在应用程序收到有关标记存在的通知之前发送这些命令,即使没有应用程序处于活动状态?

典型的NFC设备将自动发现包含NDEF消息的NFC标签的存在.通常这样的NDEF消息然后触发设备上的动作(例如,启动app).由于您的标签似乎是符合ISO 14443-4(ISO-DEP)标签/智能卡,因此启动了NFC论坛类型4标签的NDEF发现程序.此过程通常包含以下步骤:

>选择NFC论坛类型4标签应用程序(版本2.0)

00 A4 04 00 07 D2 76 00 00 85 01 01 00

>如果应用程序选择成功,请继续阅读功能容器文件和NDEF数据文件.
>如果应用程序选择失败,请继续选择NFC论坛类型4标签应用程序(版本1.0)

00 A4 04 00 07 D2 76 00 00 85 01 00 00

>如果应用程序选择成功,请继续阅读功能容器文件和NDEF数据文件.
>如果应用程序选择失败,则标记不是NFC论坛类型4标记.
>此时通常会重置与标记的连接,以便在重新激活标记后立即启动应用程序对标记执行的任何通信.

步骤1之前的附加命令表明NXP的NFC堆栈还试图找出Type 4标签是否是NXP产品(NXP的MIFARE DESFire或DESFIRE EV1).它与点对点模式协议无关.

备注Broadcom NFC堆栈:Android 4.4上似乎仍然存在一个已知问题:即使将标签传递给应用程序并且应用程序启动了IsoDep通信,NFC堆栈也会随意发送与应用程序通信交错的READ BINARY命令.由于无效的命令序列,这经常导致协议错误.恩智浦的NFC堆栈不会发生这种情况.

我可以阻止标签的初始处理吗?

是的,但仅限Android 4.4.在该平台上,您可以使用NfcAdapter的enableReaderMode方法将设备置于读取器模式而无需NDEF发现.

标签:apdu,android,nfc,contactless-smartcard,hce
来源: https://codeday.me/bug/20190825/1717434.html

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

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

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

ICode9版权所有