在NFC操作模式之间进行选择



您可以在不同模式下对NFC进行编程。任务是发送双向信息。在NFC中,您可以使用多种组合操作模式来实现这一点:

  • 选项1
    • 手机>读写器模式
    • 读卡器>卡模拟模式
    • 此选项使用ISO-DEP(ISO/IEC 7816-4)协议
  • 选项2
    • 手机>对等
    • 读卡器>对等
    • 此选项可以使用多种P2P协议,例如SNEP
  • 选项3
    • 手机>卡模拟
    • 读卡器>读写器模式
    • 此选项使用ISO-DEP(ISO/IEC 7816-4)协议

我有两个不同方面的问题:

使用方面

有了这三个选项,你就可以双向通信,基本上可以发送任何你想要的东西。你为什么不在其他选项之上使用一个选项呢?

安全方面

安全性是指窃听、数据破坏、数据修改和中间人攻击等滥用漏洞。

我读到选项3(HCE)也用于例如移动支付。当您使用数据加密等附加措施时,这是安全的选项,还是选项1也是安全的?

谢谢!

为什么有不同的操作模式

NFC背后的最初想法是将现有标准(特别是ISO/IEC 14443非接触式智能卡技术和FeliCa/JIS X 6319-4)结合到一个系统中,该系统既可以与现有的转发器/智能卡/标签进行通信,也可以与现有读取器基础设施进行通信,并且可以用于轻松地与专用NFC设备进行通信。

因此,最初的NFC标准(ISO/IEC 18092)定义了基于那些现有协议的对等通信模式。除了向后兼容外,NFC标准还允许两个NFC设备(自动)握手两个NFC设备之间的连接。这在读卡器+卡片设置中是不可能的:两个读卡器和两张卡片都不能相互通信,因此必须在读卡机/卡片场景中预定义角色。

因此,最初,读写器模式仅用于访问NFC标签(无源数据存储设备)和可能的非接触式智能卡。卡模拟模式(基于HCE或SE)旨在与现有ISO/IEC 14443(或FeliCa)基础设施(例如,在向NFC发展之前已经到位的读取器)进行交互。并专门针对NFC设备之间的通信引入了对等模式。

为什么现在所有模式都可以用于几乎任何场景

猜测这项开发的驱动因素之一是Android上的对等模式缺乏API支持。在Android上,对等模式只能通过Android Beam访问,因此不能真正用于双向通信。另一个因素可能是对等模式协议栈比读写器模式更复杂(NFC-DEP+LLCP(+SNEP)+应用协议与ISO-DEP+应用协议)。

因此主要使用选项1,因为它是(在Android 4.4之前)通过NFC实现双向通信的唯一选项。由于Android 4.4也选项3可以用于构建类似的场景。

选项3是否比其他选项更安全

不,一点也不。在这三种场景中,安全性都必须由应用程序层来处理。底层通信协议不采用任何加密/完整性保护等。机制。

选项3更适合移动支付的原因只是向后兼容性方面:使用HCE,您可以实现与现有非接触式智能卡读卡器交互的应用程序(例如,在EMV支付系统中使用)。

最新更新