代码之家  ›  专栏  ›  技术社区  ›  S.Pols

选择NFC操作模式

  •  2
  • S.Pols  · 技术社区  · 11 年前

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

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

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

    使用方面

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

    安全方面

    安全性是指窃听、数据破坏、数据修改和中间人攻击等滥用行为的脆弱性。

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

    谢谢

    1 回复  |  直到 11 年前
        1
  •  1
  •   Michael Roland    11 年前

    为什么有不同的操作模式?

    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支付系统中使用它们)。

    推荐文章
    S.Pols  ·  选择NFC操作模式
    11 年前
    SleepNot  ·  NFC发送图像/jpeg
    13 年前