如何使用Raspberry Pi RFID芯片模拟Apple Pay终端



所以我最近在亚马逊上为我的Raspberry Pi B+购买了Mifare RFID RC522芯片,此后一直在寻找一种方法让我的iPhone 6认为它是一个Apple Pay终端。

有没有人知道让RFID充当Apple Pay终端的方法,这样我的信用卡就会在iPhone靠近NFC阅读器时立即弹出,类似于这个视频?

为了模拟iPhone的非接触式信用卡终端(使用Apple Pay),您需要说EMV协议(从EMVCo获取规格)。

  1. 您将首先发送 SELECT PPSE 命令以读取可用支付卡应用程序的目录:

    00
    A4 0400 0E 325041592E5359532E4444463031 00
  2. 你会得到一个看起来像这样的目录作为响应:

    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
  3. 然后,您可以为付款应用程序发送 SELECT(按 AID/DF 名称)命令:

    00
    A4 0400 07 A0000000031010 00

这通常应该足以触发 Apple Pay 的 UI 组件。

为了将这些APDU命令发送到MFRC522 iPhone,您需要一个库来执行iPhone模拟的非接触式卡的防冲突和激活(最高为ISO/IEC 14443-4层),并处理将APDU包装到ISO/IEC 14443-4传输协议的帧中。

您可以使用简单的NFC读卡器来实现此目的。每次您出示手机时,都会弹出信用卡,您可以向读卡器发送信息。由于其安全特性,每次您向读卡器展示手机时,它都会成为一个新的 UID。

最新更新