# RFID渗透测试
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥
* 你在一家**网络安全公司**工作吗?想要在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 发现我们的独家[NFT收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
## 简介
**射频识别(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攻击这些标签:
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %}
[fz-125khz-rfid.md](../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md)
{% endcontent-ref %}
## 高频RFID标签(13.56 MHz)
**高频标签**用于更复杂的读写器-标签交互,当您需要加密、大容量双向数据传输、身份验证等功能时。\
它通常用于银行卡、公共交通和其他安全通行证。
**高频13.56 MHz标签是一组标准和协议**。它们通常被称为[NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/),但这并不总是正确的。在物理和逻辑层上使用的基本协议集是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](../todo/radio-hacking/flipper-zero/fz-nfc.md)
{% endcontent-ref %}
或者使用**proxmark**:
{% content-ref url="../todo/radio-hacking/proxmark-3.md" %}
[proxmark-3.md](../todo/radio-hacking/proxmark-3.md)
{% endcontent-ref %}
## 参考资料
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 发现我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**