Pentesting RFID

从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)

简介

射频识别(RFID) 是最流行的短距离射频解决方案。通常用于存储和传输标识实体的信息。

RFID 标签可以依赖自己的电源(主动),如嵌入式电池,或从读取天线接收的无线电波中使用的电流**(被动)**。

类别

EPCglobal 将 RFID 标签分为六类。每个类别中的标签具有前一类别中列出的所有功能,使其向后兼容。

  • Class 0 标签是在 UHF 频段中运行的 被动 标签。供应商在生产工厂中预编程它们。因此,您无法更改存储在其内存中的信息。

  • Class 1 标签也可以在 HF 频段中运行。此外,它们在生产后只能写入一次。许多 Class 1 标签还可以处理它们接收到的命令的循环冗余检查(CRC)。CRC 是用于错误检测的命令末尾的几个额外字节。

  • Class 2 标签可以多次写入

  • Class 3 标签可以包含嵌入式传感器,可以记录环境参数,如当前温度或标签的运动。这些标签是半被动的,因为虽然它们嵌入式电源,如集成电池,但它们无法与其他标签或读取器启动无线通信

  • Class 4 标签可以与同一类别的其他标签启动通信,使它们成为主动标签

  • Class 5 标签可以为其他标签提供电源并与所有先前的标签类别通信。Class 5 标签可以充当RFID 读取器

存储在 RFID 标签中的信息

RFID 标签的内存通常存储四种数据:标识数据,用于标识标签所附实体的数据(此数据包括用户定义字段,如银行账户);补充数据,提供有关实体的进一步 详细信息控制数据,用于标签的内部配置;标签的制造商数据,其中包含标签的唯一标识符(UID)和有关标签的生产类型供应商的详细信息。您会在所有商用标签中找到前两种数据;最后两种数据可能根据标签的供应商而有所不同。

ISO 标准指定了应用系列标识符(AFI)值,这是指示标签所属对象类型的代码。另一个同样重要的寄存器,也由 ISO 指定,是数据存储格式标识符(DSFID),它定义了用户数据的逻辑组织

大多数 RFID 安全控制都具有限制对每个用户存储块和包含 AFI 和 DSFID 值的特殊寄存器的读取写入操作的机制。这些锁定 机制使用存储在控制内存中的数据,并具有供应商预配置的默认密码,但允许标签所有者配置自定义密码

低频和高频标签比较

低频 RFID 标签(125kHz)

低频标签通常用于不需要高安全性的系统:建筑物访问、对讲钥匙、健身会员卡等。由于其较高的范围,它们方便用于付费停车场:驾驶员无需将卡靠近读卡器,因为它可以从更远的地方触发。同时,低频标签非常原始,数据传输速率低。因此,无法为保持余额和加密等复杂的双向数据传输实现。低频标签仅传输其简短的 ID,没有任何身份验证手段。

这些设备依赖于被动 RFID 技术,工作在30 kHz 到 300 kHz 的范围内,尽管更常用的是 125 kHz 到 134 kHz:

  • 长距离 — 低频转换为更远的范围。有一些 EM-Marin 和 HID 读卡器,可以在长达一米的距离内工作。这些通常用于停车场。

  • 原始协议 — 由于数据传输速率低,这些标签只能传输其简短的 ID。在大多数情况下,数据未经身份验证,也没有任何保护措施。一旦卡片在读卡器的范围内,它就开始传输其 ID。

  • 低安全性 — 这些卡片可以轻松复制,甚至可以从别人口袋中读取,因为协议的原始性。

常见的 125 kHz 协议:

  • EM-Marin — EM4100、EM4102。CIS 中最流行的协议。由于其简单性和稳定性,可以从大约一米处读取。

  • HID Prox II — HID Global 推出的低频协议。这个协议在西方国家更受欢迎。它更复杂,该协议的卡片和读卡器相对昂贵。

  • Indala — 由 Motorola 推出的非常古老的低频协议,后来被 HID 收购。与前两种协议相比,您不太可能在野外遇到它,因为它正在退出使用。

实际上,还有很多低频协议。但它们都在物理层上使用相同的调制方式,可以在某种程度上被视为上述列出的变体之一。

攻击

您可以使用 Flipper Zero 攻击这些标签

pageFZ - 125kHz RFID

高频 RFID 标签 (13.56 MHz)

高频标签 用于需要加密、大容量双向数据传输、认证等更复杂的读写器-标签交互。 通常用于银行卡、公共交通和其他安全通行证。

高频 13.56 MHz 标签是一组标准和协议。它们通常被称为 NFC,但这并不总是正确的。在物理和逻辑层上使用的基本协议集是 ISO 14443。高级协议以及替代标准 (如 ISO 19092) 都是基于它的。许多人将这项技术称为 近场通信 (NFC),这是一个指操作在 13.56 MHz 频率上的设备的术语。

简单来说,NFC 的架构工作方式如下:传输协议由制作卡片的公司选择,并基于低级 ISO 14443 实现。例如,NXP 发明了自己的高级传输协议称为 Mifare。但在较低级别上,Mifare 卡基于 ISO 14443-A 标准。

Flipper 可以与低级 ISO 14443 协议、以及 Mifare Ultralight 数据传输协议和银行卡中使用的 EMV 进行交互。我们正在努力添加对 Mifare Classic 和 NFC NDEF 的支持。深入了解组成 NFC 的协议和标准值得一篇单独的文章,我们计划稍后发布。

所有基于 ISO 14443-A 标准的高频卡都有一个唯一的芯片 ID。它充当卡片的序列号,类似于网络卡的 MAC 地址。通常,UID 长度为 4 或 7 字节,但很少会达到 10 个字节。UID 不是秘密,很容易读取,有时甚至会打印在卡片上

许多访问控制系统依赖于 UID 进行认证和授权。有时,即使 RFID 标签支持加密,也会发生这种情况。这种误用将它们降至与125 kHz 卡安全性方面相当的水平。虚拟卡 (如 Apple Pay) 使用动态 UID,以便手机所有者不会用他们的支付应用程序打开门。

  • 低范围 — 高频卡专门设计成必须靠近读卡器才能使用。这也有助于保护卡片免受未经授权的交互。我们设法实现的最大读取范围约为 15 厘米,这是通过定制的高范围读卡器实现的。

  • 高级协议 — 高达 424 kbps 的数据传输速度允许具有完整双向数据传输的复杂协议。这反过来允许加密、数据传输等。

  • 高安全性 — 高频非接触式卡片在安全卡方面丝毫不逊色。有些卡支持像 AES 这样的加密强算法,并实现了非对称加密。

攻击

您可以使用 Flipper Zero 攻击这些标签

pageFZ - NFC

或使用 proxmark

pageProxmark 3

参考资料

最后更新于