hacktricks/radio-hacking/pentesting-rfid.md
2023-08-03 19:12:22 +00:00

11 KiB
Raw Blame History

RFID渗透测试

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥

简介

**射频识别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 - EM4100EM4102。CIS地区最流行的协议。由于其简单性和稳定性可以从大约一米的距离读取。
  • HID Prox II - HID Global推出的低频协议。该协议在西方国家更受欢迎。它更复杂该协议的卡片和读卡器相对较昂贵。
  • Indala - 由Motorola引入的非常古老的低频协议后来被HID收购。与前两种协议相比您不太可能在野外遇到它因为它正在退出使用。

实际上,还有很多低频协议。但它们都在物理层上使用相同的调制方式,并且可以在某种程度上被认为

攻击

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

{% content-ref url="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %} fz-125khz-rfid.md {% endcontent-ref %}

高频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攻击这些标签

{% content-ref url="../todo/radio-hacking/flipper-zero/fz-nfc.md" %} fz-nfc.md {% endcontent-ref %}

或者使用proxmark

{% content-ref url="../todo/radio-hacking/proxmark-3.md" %} proxmark-3.md {% endcontent-ref %}

参考资料

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥