[TOC]
物联网通信协议
接入类协议:一般负责子网内设备间的组网及通信,市场上常见的有zigbee、蓝牙以及wifi协议等;
通信类协议:主要是运行在传统互联网TCP/IP协议之上的设备远程通讯协议,负责设各通过互联网进行数据交换及通信,例如GPRS/3G/4G等。
wlan指的是无线局域网络(Wireless Local Area Networks),它是相当便利的数据传输系统,它利用射频(Radio Frequency;RF)的技术,使用电磁波来取代旧式的双绞铜线(Coaxial) 所构成的局域网络,在空中进行通信连接:该技术的出现绝不是用来取代有线局域网络,而是用来弥补有线局域网络之不足,以达到网络延伸之日的,使得无线局域网络能利用简单的存取架构让用户透过它,实现无网线、无距离限制的通畅网络。
本文有参考其它文献材料,忽略了实操部分的描述,更多的是理论知识的了解。
WiFi协议
Wi-Fi
Wi-Fi在中文里又称作“行动热点”,是Wi-Fi联盟制造商的商标做为产品的品牌认证,是一个创建于IEEE 802.11标准的可以将个人电脑、手持设备(如pad、手机)等终端以无线方式互相连接的技术,事实上它也是一种高频无线电信号。
无线网相较于有线网来说,通信双方因为是通过无线进行通信,所以通信之前需要建立连接;有线网络就直接用线缆连接。
通信双方通信方式是半双工的通信方式;而有线网络可以是全双工。
但通信时在网络层以下出错的概率非常高;而有线网络出错概率非常小。
数据是在无线环境下进行的,所以抓包非常容易,存在安全隐惠。因为收发无线信号,所以功耗较大相对有线网络吞吐量低。
IEEE 802.11协议
Ethenet和Wifi采用的协议都属于IEEE 802协议集。其中,Ethenet以802.3协议做为其网络层以下的协议;而Wifi以802.11做为其网络层以下的协议。
802.11定义了两种类型的设备:
- 无线站(STA)
- 无线接入点(AP)

频谱划分

2.4gWiFi总共有14个信道:

SSID和BSSID
1、基本服务集(BSS):
基本服务集是802.11 LAN的基本组成模块。能互相进行无线通信的STA可以组成一个BSS (Basic Service Set).如果一个站移出BSS的覆盖范围,它将不能再与BSS的其它成员通信。
2、扩展服务集(ESS)
多个BSS可以构成一个扩展网络,称为扩展服务集(ESS)网络,一个ESS网络内部的STA可以互相通信,是采用相同的SSID的多个BSS形成的更大规模的虚拟BSS。连接BSS的组件称为分布式系统(Distribution System, DS)。
无线接入过程的三个阶段
STA启动初始化、开始正式使用AP传送数据帧前,要经过三个阶段才能够接入:
- 扫描阶段(SCAN)
- 认证阶段(Authentication)
- 关联(Association)

认证连接方式
分为有认证和无认证这两种。
有认证:
- SSID-密码认证
- wep
- wpa/wpa2
- WPS
WEP
WEP是有线等效保密(Wired Equivalent Privacy)的简称,一种在链路层加密的方式来防止非法用户窃听或侵入无线网络。


由于安全性底下,且可以通过大量抓包来嗅探出其密钥,所以它早在2003年被WPA所淘汰。
WPA/WPA2
WPA主要采用的是临时密钥完整性协议(TKIP1)加密算法,TKIP旨在改进WEP,且无需依赖全新硬件来运行;WPA2则强制使用AES-CCMP算法来进行加密,比TKIP更强大、更坚固。
WPA和WPA2支持两种身份验证机制:
- 企业:基于EAP的身份验证
- 个人:基于预共享密钥的身份验证(WPA-PSK)
WPA握手流程

PTK所需参数:
- 网络的SSID
- 无线AP随机数A-Nonce(Authenticator Nonce)
- 申请者随机数S-Nonce(Supplicant Nonce)
- 无线AP MAC地址
- 申请者MAC地址
WPS的安全问题
WPS(Wi-Fi Protected Setup)是WiFi保护设置的英文缩写,主要致力于简化无线局域网安装及安全性能的配置工作。在WPS认证中PIN码是网络设备间获得接入的唯一要求,不需要其他身份识别方式,这就让暴力破解变得可行。
WPS PIN码的第8位数是一个校验,因此暴力破解只需算出前7位,而在实施PIN身份识别时,接入点实际上是要找出这个PIN的前4位和后3位是否分别正确。
$$ 10^8 ➔ 10^7 ➔ 10^4 + 10^3 $$AIR无线攻击套件
查看无线网卡名:ifconfig
关掉占用网卡进程:airmon-ng check kill
设置网卡为监听模式:airmon-ng start INTERFACE
扫描附近:wifiairodump-ng INTERFACE
监听制定路由器流量并保存到本地:airodump-ng -c CHANNEL --bssid AP_MAC -w FILENAME INTERFACE
攻击路由器使连接设备断线重新连接:airplay-ng -0 50 -a BSSID INTERFACE
使用字典对抓取到的握手包暴力破解:aircrack-ng -w PASSWORD_FILENAME FILENAME
Zigbee协议
架构
ZigBee是IEEE 802.15.4标准的低功耗局域网协议,是一种短距离、低功耗的无线通信技术主要适合用于自动控制和远程控制领域,可以嵌入各种设备。

ZigBee拓扑有三种功能节点:
- 协调器
- 路由器
- 终端设备

ZigBee架构:

PHY/MAC 管无线电;
NWK 管怎么组网找路;
APS 管上层数据投递;
AF 跑你的业务;
ZDO 管设备本身的网络行为。
ZigBee 整体分层自下而上:PHY → MAC → NWK → APL(应用层),其中 PHY、MAC 遵循 IEEE 802.15.4;NWK、APL 由 ZigBee 联盟定义。
1 PHY 物理层(IEEE802.15.4)
- 最底层,硬件射频层。
- 功能:无线信号调制解调、射频收发、信道选择、信号强度检测。
- 工作频段:2.4GHz、868MHz、915MHz。
2 MAC 介质访问控制层(IEEE802.15.4)
- 管理无线信道接入,使用 CSMA‑CA 避免信号冲突。
- 功能:帧封装解析、数据确认 ACK、设备入网 / 脱离网络、信标同步、帧校验。
3 NWK 网络层(ZigBee 定义)
- 负责组网、路由。
- 功能:建立维护 ZigBee 网络;设备加入 / 离开网络;路由发现与转发;分配网络短地址;支持协调器、路由器、终端节点三种设备角色。
4 APL 应用层(ZigBee 定义,顶层)
由 APS(应用支持子层)、AF(应用框架)、ZDO(ZigBee 设备对象) 三部分组成
(1)APS 应用支持子层
连接网络层和上层应用,起到承上启下。
- 功能:数据的收发转发;绑定功能;设备与服务发现;报文分段重组;安全加密。
(2)AF 应用框架
用户实际应用运行的环境。
- 提供端点(Endpoint)机制,一个设备可以有多个端点,运行不同应用;定义簇(Cluster),实现设备之间命令、数据交互;用户开发的业务应用就跑在 AF 之上。
(3)ZDO ZigBee 设备对象
设备管理核心。
- 功能:定义设备类型(协调器 / 路由器 / 终端);设备网络管理;设备发现、服务发现;绑定管理;网络启动、入网请求;处理设备配置。
APL(应用层)内部又分为 APS、AF、ZDO三部分,和图中结构完全对应。
数据流向:用户应用 (AF) ↔ ZDO ↔ APS ↔ NWK ↔ MAC ↔ PHY ↔空中无线信号。
安全机制
在ZigBee标准中使用三种类型的128位对称密钥:
- 主密钥:用来协商生成 link key;
- 网络密钥:全网 NWK 层加密密钥;
- 链接密钥:信任中心 ↔ 待入网设备之间点对点 APS 加密,用来安全分发网络密钥。
默认信任中心连接密钥Trust‑Center Link Key:它属于 链接密钥(Link Key),是广为人知的默认全局链接密钥(well‑known key),用于集中式安全网络(存在信任中心 Trust Center,一般就是协调器 ZC)。
|
|
⚠️安全缺陷:所有厂商设备默认都带这个密钥,攻击者抓包后可以用这个公开密钥解密,拿到网络密钥,直接入侵整个 ZigBee 网络。ZigBee3.0 推荐不再使用这个默认密钥,改用安装码 Install Code 生成唯一链接密钥做入网。
Zigbee采用了AES-CCM* 和帧计数器的来保证数据的完整性、机密性、真实性。

BlueTooth_BLE协议
蓝牙-BLE协议简介
BlueTooth_BLE协议是一种无线个人局域网技术,用于在较小距离上交换数据。
于1994年发明2.4 GHz至2.485 GHz (ISM)频段蓝牙网络称为微微网,互连微微网的形成散射网:
- 1代:748~810Kbpsemtc跳频抗干扰;
- 2代:1.8~2.1MbpsWW提高2倍待机时间;
- 3代:24Mbps;
- 4代:整合传统,高速和低功耗蓝牙技术最远传输距离扩大到100米;
- 5代:工作距离300米导航,室内定位。

BLE协议
低功耗蓝牙BLE(Bluetooth Low Energy)是蓝牙技术联盟设计和销售的一种个人局域网技术,旨在用于医疗健康、安防娱乐等领域的新兴应用一可与传统蓝牙保持同等通信范围的同时显著降低功耗和成本蓝牙4.0被引入,也被称为Bluetooth Smart。
蓝牙-BLE的比较:
| 传统蓝牙 | BLE | |
|---|---|---|
| 信道 | 79个信道 | 40个信道(37/38/39广播信道) |
| 发现/连接 | 查询 | 广播 |
| 连接延时 | 100ms | 6ms |
| 最大数据率 | 1-3Mbps | 1Mbps |
| 工作距离 | 10米 | 最远100米 |
| 最大输出功率 | 1-00mW | 10mW |
| 主要应用 | 无线播放、控制器 | 智能家居、穿戴设备 |
连接过程
传统蓝牙:跳频链接
BLE:广播连接


大致就这么多,具体实操你可以上Wireshark抓包去看看。
RFID
简介
RFID是射频识别(Radio FrequencyIdentification)的缩写,利用无线射频方式进行非接触双向数据通信,通过对记录媒体(电子标签)进行读写,从而达到识别目标和数据交换的目的。

由于RFID具有读写速度快,无需接触,设备简单等特点,在生活中被广泛使用,常见的应用有物流标签、公交门禁、购物就餐卡等。
组成
RFID系统由控制系统阅读器和电子标签组成:

阅读器将采集到的阅读器通过天线Rfld电子标签接收到阅读器;
标签数据传送到发出射频信号发出的信号之后激活并返回;
计算机系统进行处理信号给阅读器。
阅读器(Reader)通过天线与RFID电子标签进行无线通信,可以实现对标签识别码和内存数据的读出或写入操作。
典型的阅读器包含有高频模块(发送器和接收器)、控制单元以及阅读器天线。

电子标签(Tag)由耦合元件及芯片组成,每个标签具有唯一的电子编码。当电子标签进入由阅读器产生的无线电射频信号区域时获得能量,然后向阅读器发送储存的信息及数据。有时也被称作射频卡。

分类
有无内置电源:
- 无源电子标签
- 有源电子标签
- 半有源电子标签
工作频率:
- 低频段 30kHZ~300kHZ
- 中高频段 3MHz~30MHz
- 超高频段 862MHz~928MHz
- 微波范围 3GHz以上
高频卡
NXP Mifare S5O (M1) 高频13.56MHz 是最常见的射频卡,每张卡独一无二UID号,可存储、修改扇区数据(一卡通,门禁,电梯卡)。
NXP Mifare S7O Mifare S7O可容纳4KB数据,S50的卡类型(ATQA)是0004HS70的卡类型(ATQA)是0002H。
NXP DESFire/JCOP基于微处理器的芯片卡广泛应用如银行与金融,移动通信,公共交通,访客访问和网络接入等领域。文持接触式、非接触式读写,JCOP版本内含操作系统,并提供40-80K字节EEPROM存储器。
低频卡
EM41008
- 工作频率125kHz 卡内只存储卡号日无法修改;
- 成本低广泛用于门禁、身份识别,安防医疗系统。
HID ProxCard II
- 与EM4系列卡片类似只存储卡号名片大小厚度较厚。
T5577卡
-
可写入数据可设置密码的低频卡;
-
可用于复制ID和HID卡;
-
共有8个块,共可存储256b数据。
-
T5577结构
-
共有8个块每个块存32b数据
-
第0块表示调制方式和卡片类型
-
第7块表示加密的密码,无密则表示普通数据
T5577结构:
1 2 3 4 5 6 7 8[0] 0x000148040 [0] 0x000148050 [1] 0xFF992002 [1] 0xFF992002 [2] 0xB6C91B7C [2] 0xB6C91B7C [3] 0x00000000 [3] 0x00000000 [4] 0x00000000 [4] 0x00000000 [5] 0x00000000 [5] 0x00000000 [6] 0x00000000 [6] 0x00000000 [7] 0x00000000 [7] 0x00000000ID HID 无密码 00148040 00107060 加密 00148050 00107070
-
应用场景:
| 项目 | 低频 LF | 高频 HF (13.56MHz) |
|---|---|---|
| 频率 | 125‑134.2kHz | 13.56MHz |
| 读取距离 | ≤10cm | 几厘米~1m |
| 手机 NFC 可读 | ❌不能 | ✅可以(NFC) |
| 抗水 / 潮湿 | 很好 | 一般 |
| 数据速率 | 低 | 高 |
| 典型用途 | 动物耳标、传统门禁、车钥匙 | 公交卡、校园卡、图书、NFC |

UID:卡片身份证号;
KeyA/KeyB:打开这个扇区的两把密码;
Access Bits:门禁权限表,规定密码 A、B 分别能干什么操作;
BCC:检查 UID 有没有读错的校验码。
MQTT
MQTT (Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。

实现过程

设计原则与特性
精简,把传输量降到最低;
发布/订阅(Pub/Sub)模式,提供一对多的消息
发布,解除应用程序耦合;
允许用户动态创建主题;
把低带宽、高延迟、不稳定的网络等因素考虑在内;
提供服务质量管理;
有三种消息发布服务质量(Qos):
- 至多次
- 至少次
- 只有一次
使用遗嘱(Last Will特性通知有关各方客户端异常中断的机制;
消息报文格式
MOTT协议是应用层协议,需要借助TCP/IP协议进行传输,类似HTTP协议。
MQTT协议也有自己的格式:固定头部+可变头部+消息载体。
- 固定头部:通过固定头部区分多种消息类型,如连接,发布,订阅等;
- 可变头部:有些协议类型中存在,在有些协议中不存在;
- 消息载体:消息的主要内容。

固定头包含两部分内容,首字节+剩余消息报文长度。
首字节:首字节用于表示MQTT消息的报文类型以及某些类型的控制标记高4位(bit7~bit4)表示协议类型。
| 报文类型 | 字段值 | 描述 |
|---|---|---|
| 保留 | 0 | 保留 |
| CONNECT | 1 | 客户端连接到服务器 |
| CONNACK | 2 | 连接确认 |
| PUBLISH | 3 | 发布消息 |
| PUBACK | 4 | 发布确认 |
| PUBREC | 5 | 消息已接收 (QoS2 第一阶段) |
| PUBREL | 6 | 消息释放 (QoS2 第二阶段) |
| PUBCOMP | 7 | 发布结束 (QoS2 第三阶段) |
| SUBSCRIBE | 8 | 客户端订阅请求 |
| SUBACK | 9 | 服务端订阅确认 |
| UNSUBACRIBE | 10 | 客户端取消订阅 |
| UNSUBACK | 11 | 服务端取消订阅确认 |
| PINGREQ | 12 | 客户端发送心跳 |
| PINGRESP | 13 | 服务端回复心跳 |
30H=0011 0000
| 报文类型 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
|---|---|---|---|---|
| PUBLISH | DUP | QoS | QoS | 保留 |
Z-Wave协议
Z-Wave简介
Z-Wave是无线传感器网络和家庭自动化领域的热门协议之一,在美国使用908.42M Hz,在欧洲使用868.42M Hz。
Z-Wave攻击准备:
- 使用Z-Wave的设备
- 硬件:HackF
- 软件:EZ-Wave (https://github.com/AFITWiSec/EZ-Wave)
EZ-Wave包含的工具:
Device discovery and enumeration-EZStumbler(设备发现和枚举)
Reconnaissance on identified devices-EZRecon(识别设备的EZ-Recon)
Exploitation-EZFingerprint(利用EZ指纹)
选择重播数据包或修改,然后根据想要实现的日标重播;对Z-Wave的另一类攻击是对Z-Wave设备节点网络攻击、欺骗攻击、干扰和拒绝服务攻击等。