secbug 发布的文章

ID Card vs IC Card vs CPU Card

ID Card

ID Card(国内通常称为“ID卡”)通常指低频125KHz RFID卡,例如 EM4100 系列。

传统ID卡通常只包含固定UID,仅具备身份识别功能,不具备数据存储与加密能力,因此大多数情况下只读不可写。常用于小区门禁、停车场等场景。

市面上也存在可改写UID的兼容卡(如T5577),可用于模拟部分低频ID卡。

传统125KHz ID卡不属于NFC协议体系,因此通常无法被手机NFC直接读取。


IC Card

IC Card(Integrated Circuit Card)泛指带有集成电路芯片的射频卡,通常工作于13.56MHz频段。

常见IC卡一般具备数据存储能力,并划分多个扇区(Sector)进行数据管理。不同扇区通常使用不同密钥进行访问控制。在已知密钥的情况下,可进行重复读写。

目前市面上的小区门禁卡、部分酒店门卡、公交卡等,多属于此类。

部分IC卡由于使用加密扇区且密钥未知,手机无法直接完成复制。若系统使用默认密钥或弱密钥,则仍可能被读取或克隆。


CPU Card

CPU Card(Central Processing Unit Card)属于更高安全等级的智能卡方案。

此类卡片内部存在微处理器,并搭载卡片操作系统(COS, Chip Operating System),能够执行动态加解密、密钥管理、身份认证等操作。

相比普通存储型IC卡,CPU卡通常支持AES、3DES等更高强度的加密机制,并具备随机数生成、会话认证等能力。

身份证、银行卡、部分高安全等级门禁系统通常采用CPU卡方案。

目前公开环境下,针对CPU卡底层加密算法的通用破解手段较少,但仍可能受到中继攻击、终端实现缺陷、密钥泄漏等问题影响。


NFC 使用场景

NFC(Near Field Communication)是一种短距离射频通信技术,典型交互距离约为5cm,具体距离取决于读写器天线与信号强度。

NFC常用于:

  • 公交卡
  • 门禁卡
  • 手机支付
  • 汽车钥匙
  • 身份认证

根据不同场景,其安全等级与加密强度也存在较大差异。

例如:

  • 普通小区门禁通常采用IC卡
  • 对安全要求较高的系统则可能采用CPU卡
  • 银行、政务、身份认证等场景通常采用更高等级智能卡方案

NFC 面临的安全问题

由于NFC属于射频通信,因此天然面临以下几类安全威胁:

  • 窃听(Eavesdropping)
  • 中继(Relay)
  • 重放(Replay)
  • 中间人攻击(MITM)
  • 干扰(Jamming)

窃听(Eavesdropping)

射频通信天然存在被监听的风险。

攻击者可通过高灵敏度天线接收通信过程中的无线数据。通常通过认证机制、会话加密、动态密钥等方式降低风险。


中继(Relay)

中继攻击本质上是对通信过程的透明转发。

攻击者通常使用两个设备:

  • 一端靠近合法卡片
  • 另一端靠近读卡器

随后通过网络、蓝牙或其他通信方式,将双方通信内容进行实时转发,从而实现“远距离刷卡”。

部分门禁系统会检测响应时间(Timing Constraint)。当中继带来的额外延迟超过系统允许范围时,认证流程可能失败。


重放(Replay)

重放攻击是指记录一次合法通信的数据,并在后续重新发送,以尝试绕过验证机制。

若系统缺乏随机数、会话认证或动态密钥机制,则可能受到重放攻击影响。


中间人攻击(MITM)

中间人攻击与重放不同,其重点在于实时拦截、转发甚至篡改双方通信数据。

此类攻击通常需要对协议、认证流程与加密机制具备较深入理解。


干扰(Jamming)

攻击者通过射频信号干扰通信过程,使读卡器与卡片无法正常完成交互。

通常表现为:

  • 无法识别卡片
  • 通信异常中断
  • 刷卡失败

哪些类型的卡片可以被破解

目前市面上广泛存在的NFC卡,多数基于 NXP 的 MIFARE 系列。

MIFARE 系列的大致演进方向:

MIFARE Classic → MIFARE Plus → MIFARE DESFire


MIFARE Classic

早期的 MIFARE Classic 使用 Crypto-1 加密算法。

由于 Crypto-1 已被公开分析并存在安全缺陷,因此可通过多种方式恢复密钥。


Nested Attack

Nested Attack 至少需要一个已知密钥。

其核心利用点在于:

  • PRNG(伪随机数生成器)过弱
  • 随机数可预测

因此破解速度通常较快。


Hardnested Attack

Hardnested Attack 无需任何已知密钥。

其核心利用点在于认证过程中的时序与比特泄漏特征,通过侧信道分析恢复 Crypto-1 密钥。

相比 Nested Attack,破解时间通常更长。


MIFARE Plus

MIFARE Plus 在兼容 MIFARE Classic 的同时,引入了AES加密机制。

其可根据配置决定使用:

  • Crypto-1
  • AES

若系统仍工作于 Crypto-1 模式,则仍可能受到上述攻击影响。

本质上,MIFARE Plus 仍属于存储型IC卡。


MIFARE DESFire

MIFARE DESFire 属于更高安全等级的智能卡方案。

其内部具备微处理器与卡片操作系统,可支持更复杂的认证与加密机制。

目前通常支持:

  • AES
  • 3DES

等更高强度加密方案。

MIFARE DESFire 常用于:

  • 高安全等级门禁
  • 企业一卡通
  • 交通系统
  • 身份认证系统

NXP 同时提供配套的 MIFARE SAM(Secure Access Module)系列,用于读卡器侧的密钥管理与安全认证。

MIFARE SAM 系列通常向前兼容:

  • MIFARE Classic
  • MIFARE Plus
  • MIFARE DESFire

NFC 常见利用工具

NFCGate

NFCGate 是基于 Android 的 NFC 测试与研究工具。

通常支持:

  • 读取
  • 模拟
  • 中继
  • 重放

若需要实现更复杂的MITM逻辑,通常需要自行修改脚本或协议处理逻辑。


ChameleonUltra

ChameleonUltra 是常见的便携式 RFID/NFC 测试设备。

主要支持:

  • 读取
  • 模拟
  • 克隆

官方实现目前主要聚焦于卡片模拟与测试,并未默认提供完整的中继与MITM功能。


Proxmark3

Proxmark3 是较为成熟的 RFID/NFC 安全研究平台。

通常支持:

  • 读取
  • 模拟
  • 克隆
  • 中继
  • 重放

目前市面上存在大量第三方改版硬件与固件,不同版本之间可能存在兼容性问题。


探讨:为什么不能通过网络远距离转发NFC信号?

理论上,NFC通信内容完全可以通过网络进行远距离转发。

其核心问题并不在于“能否传输”,而在于:

  • 时序(Timing)
  • 延迟(Latency)

NFC协议对响应时间要求较高。

若网络传输、协议转换或设备处理过程引入过高延迟,则读卡器可能直接终止认证流程。

因此,一个真正可用的远距离NFC中继方案,需要同时解决:

  • 卡片侧交互时序
  • 读卡器侧响应时间
  • 网络传输延迟
  • 协议转发效率

部分研究工具(如 NFCGate)已经实现了类似机制,但在实际环境下仍会受到网络质量、读卡器时序限制等因素影响。


总结

虽然NFC存在多种攻击面,但绝大多数攻击仍需:

  • 近距离接触
  • 专用硬件
  • 对协议与加密机制的深入理解

相比互联网远程攻击,其利用门槛与物理条件要求更高。

同时,不同NFC卡片之间的安全性差异也较大:

  • 低频ID卡安全性最低
  • MIFARE Classic 已存在公开漏洞
  • CPU卡与DESFire安全性相对更高

因此,在实际安全分析中,需要结合:

  • 卡片类型
  • 加密方案
  • 密钥管理
  • 读卡器实现

进行综合判断。


本文仅用于安全研究与协议分析讨论,请勿用于非法用途。