使用 Apple Wallet NFC Pass 作为 NFC 标签

问题描述

尽管许多主题已经讨论过 iPhone 无法模拟 NFC 标签,但我发现 this document 讨论了基于 PassKit 的卡模拟(第 6 页)。

假设我已经完成了从 Apple 获得 NFC 证书的步骤,并且我有一个能够读取 Apple VAS 通行证的 NFC 阅读器,是否可以创建一个 PassKit,让 iPhone 可以像 NFC 标签一样工作,例如作为 mifare desfire 标签

解决方法

我认为使用 NFC Passkit 不会让您表现得像 Mifare DESfire 标签,这似乎非常限于“奖励卡信息”,它只是向知道如何发送 Apple 增值服务的读卡器提供一些额外信息NFC 协议(并非所有读卡器/POS 终端都可以这样做)

如果您查看 Apple Doc's

https://developer.apple.com/library/archive/documentation/UserExperience/Reference/PassKit_Bundle/Chapters/TopLevel.html#//apple_ref/doc/uid/TP40012026-CH2-DontLinkElementID_3

https://developer.apple.com/library/archive/documentation/UserExperience/Reference/PassKit_Bundle/Chapters/LowerLevel.html#//apple_ref/doc/uid/TP40012026-CH3-SW5

您可以指定

消息,字符串,必需。要传输到 Apple Pay 终端的有效负载。必须为 64 字节或更少。超过 64 字节的消息将被系统截断。

encryptionPublicKey,字符串,可选。增值服务协议使用的公共加密密钥。使用 Base64 编码的 X.509 SubjectPublicKeyInfo 结构,其中包含组 P256 的 ECDH 公钥。

因此非接触式银行卡符合 NFC Forums Type 4 规范,Type 4 规范是低级别的,定义了一种与高级协议交互的方法,从选择 AID(应用程序 ID)开始,您如何交互选择AID后的卡片以各应用规格为准。

所以银行、Visa、万事达卡等和 NDEF 标准都有自己的 AID 号码,所以我猜苹果也有他们的增值服务协议的 AID。

Mifare DESFire 标签也是 NFC 论坛类型 4 标签,可以编程以响应 NDEF AID 和其他自定义 AID,尽管我不确定它是否可以编程为能够响应用于银行的 AID卡或响应 Apple 的增值服务协议。

因此,总的来说,Apple NFC 功能允许您向 Apple Pay 的 Wallet App 提供一些额外信息,以便它向符合 Apple Pay 标准的 NFC 阅读器提供一些额外的自定义信息。它的功能非常有限。

而 Mifare DESFire 标签是较低级别 NFC 标准的更灵活实现。