发送 APDU 命令以读取被动标签?
Posted
技术标签:
【中文标题】发送 APDU 命令以读取被动标签?【英文标题】:Sending APDU command for reading a passive tag? 【发布时间】:2018-10-15 09:40:04 【问题描述】:我在我的 Beaglebone 上使用 libnfc 和 apdu_examle.c 和 PN532。 我有一个 android 示例,用于在我的手机上模拟 Miffare 经典 1k 卡 HCE(主机卡仿真),并且一切正常。如果我点击手机,我可以阅读手机发送的信息。
是否可以发送 apdu 命令从 Miffare 经典 1k 卡(无源标签)读取数据?不是电话。 该卡符合 ISO/IEC 14443A 标准。 卡上必须有特定的格式或数据结构吗?
以下是有关该卡的更多信息:
ISO/IEC 14443A (106 kbps) 目标: ATQA (SENS_RES): 00 04
UID 大小:单个 支持位帧防冲突 UID (NFCID1): db 6c 10 2b SAK (SEL_RES): 08 不符合 ISO/IEC 14443-4 不符合 ISO/IEC 18092基于MIFARE类型识别程序的指纹识别:
MIFARE 经典 1K MIFARE Plus(4 字节 UID 或 4 字节 RID)2K,安全级别 1 带有 MIFARE 1K 仿真的 SmartMX【问题讨论】:
【参考方案1】:MIFARE Classic 不适用于 APDU(ISO 7816 第 4 层),而是在第 3 层 + 专有扩展上运行。据我所知,除非手机具有 NXP 的 NFC 芯片组,否则无法使用 HCE 与其通信。
但如果您的卡是带有模拟 MIFARE 的 SmartMX,这意味着您可以将 APDU 发送到 JavaCard 操作系统。您是否尝试过发送一个简单的命令,例如一个空的 SELECT 00A4040000
?
【讨论】:
我尝试发送 00A4040000,但收到“应用程序级别错误”错误。我想我明白我正在使用 libnfc 中的“nfc_initiator_transceive_bytes”函数来发送 apdu 命令,但标签不理解这一点。所以我需要发送本机命令,libnfc 中是否有函数可以在 libnfc 中发送本机命令?谢谢 我对 libnfc 不熟悉,所以我无法真正帮助您,抱歉。也许你的卡有这个命令以某种方式受到限制。以上是关于发送 APDU 命令以读取被动标签?的主要内容,如果未能解决你的问题,请参考以下文章