所以我最近在亚马逊上为我的Raspberry Pi B+购买了Mifare RFID RC522芯片,此后一直在寻找一种方法让我的iPhone 6认为它是一个Apple Pay终端。
有没有人知道让RFID充当Apple Pay终端的方法,这样我的信用卡就会在iPhone靠近NFC阅读器时立即弹出,类似于这个视频?
为了模拟iPhone的非接触式信用卡终端(使用Apple Pay),您需要说EMV协议(从EMVCo获取规格)。
-
您将首先发送 SELECT PPSE 命令以读取可用支付卡应用程序的目录:
00A4 0400 0E 325041592E5359532E4444463031 00
-
你会得到一个看起来像这样的目录作为响应:
6F23840E325041592E5359532E4444463031A511BF0C0E610C4F07A0000000031010870101 9000
使用 BER-TLV 解析器,您可以将其解码为:
6F [35]: 文件控制信息 (FCI) 模板 84 [14]: 专用文件 (DF) 名称 325041592E5359532E4444463031 A5 [17]: 以BER-TLV编码的专有信息 BF0C [14]:文件控制信息 (FCI) 发行人自由裁量数据 61 [12]: 应用程序模板 4F [7]:应用程序标识符(AID/DF 名称) A0000000031010 87 [1]: 应用程序优先级指示器 01
有趣的部分是应用程序模板(标记 0x61)。这包含支付应用程序的 AID(在标签 0x47 内):
A0000000031010
-
然后,您可以为付款应用程序发送 SELECT(按 AID/DF 名称)命令:
00A4 0400 07 A0000000031010 00
这通常应该足以触发 Apple Pay 的 UI 组件。
为了将这些APDU命令发送到MFRC522 iPhone,您需要一个库来执行iPhone模拟的非接触式卡的防冲突和激活(最高为ISO/IEC 14443-4层),并处理将APDU包装到ISO/IEC 14443-4传输协议的帧中。
您可以使用简单的NFC读卡器来实现此目的。每次您出示手机时,都会弹出信用卡,您可以向读卡器发送信息。由于其安全特性,每次您向读卡器展示手机时,它都会成为一个新的 UID。