第六章 物联网架构之物联网协议
0x01 wifi协议
1. 物联网组成
物联网核心在人、机、云之间的信息互联,因此智能设备、云端、手机端会通过各种协议进行数据的交换。
2. 物联网通信协议
通信协议分类:接入类协议;通信类协议
接入类协议:一般负责子网内设备间的组网及通信,市场上常见的有Zigbee、蓝牙以及wifi协议。
通信类协议:主要是运作在传统互联网TCP/IP协议之上的设备远程通讯协议,负责设备通过互联网进行数据交换及通信,例如GPRS/3G/4G等。
3. WLAN
wlan指的是无线局域网络(Wireless Local Area Networks)。它是相当便利的数据传输系统,它利用射频(Radio Frequency;RF)的技术,使用电磁波来取代旧式的双绞铜线(Coaxial)所构成的局域网络,在空中进行通信连接;该技术的出现绝不是用来取代有线局域网络,而是用来弥补有线局域网络的不足,以达到网络延伸的目的,使得无线局域网络能利用简单的存取架构让用户透过它,实现无网线、无距离限制的通畅网络。
4. WIFI
Wi-Fi在中文中又称作”行动热点”,是Wi-Fi联盟制造商的商标做为产品的品牌认证,是一个创建于IEEE 802.11标准的可以将个人电脑、手持设备(如pad、手机)等终端以无线方式互相连接的技术,事实上它也是一种高频无线电信号。
5. 无线网 VS 有线网
- 通信双方都是通过无线进行通信,所以通信之前需要建立连接;有线网络就直接用线缆连接。
- 通信双方通信方式是半双工的通信方式;有线网络可以是全双工
- 通信时在网络层一下出错的概率非常高;有线网络出错概率非常小
- 数据是在无线环境下进行的,所以抓包非常容易,存在安全隐患
- 收发无线信号,功耗较大
- 相对有线网络吞吐量低
6. IEEE 802.11协议
Ethenet和Wifi采用的协议都属于IEEE 802协议集。其中,Ethenet以802.3协议做为其网络层以下的协议;而Wifi以802.11做为其网络层以下的协议。网络层之上的部分二者一致。
802.11 工作方式
802.11定义了两种类型的设备
- 无线站(STA)eg:笔记本
- 无线接入点(AP)eg:路由器F1,中转协议
频谱划分
2.4gWiFi总共有14个信道
SSID和BSSID
基本服务集(BSS)
基本服务集是802.11 LAN的基本组成模块。能互相进行无线通信的STA可以组成一个BSS(Basic Service Set)。如果一个站移出BSS的覆盖范围,它将不能再与BSS的其他成员通信。
拓展服务集(ESS)
多个BSS可以构成一个拓展网络,称为拓展服务集(ESS)网络,一个ESS网络内部的STA可以互相通信,是采用相同的SSID的多个BSS形成的更大规模的虚拟BSS。连接BSS的组件称为分布式系统(Distribution System,DS)。
SSID/BSSID
服务集的标识,在同一SS内的所有STA和AP必须具有相同的SSID,否则无法通信
- SSID是一个ESS的网络标识(如:TP_Link1412)
- BSSID是一个BSS的标识(实际上就是AP的MAC地址)
无线接入过程三个阶段
STA启动初始化、开始正式使用AP传送数据帧前,要经过三个阶段才能够接入:
1)扫描阶段(SCAN)主动/被动
2)认证阶段(Authentication)WEP/WPA
3)关联(Association)
认证连接方式
- 无认证
- 有认证
- SSID–密码认证
- wep
- wpa/wpa2
- WPS
- SSID–密码认证
WEP
WEP是有线等效保密(Wired Equivalent Privacy)的简称,一种在链路层加密的方式来防止非法用户窃听或侵入无线网络。在2003年被WPA所淘汰。
WPA/WPA2
WPA主要采用的是临时密钥完整性协议(TKIP1)加密算法,TKIP旨在改进WEP,且无需依赖全新硬件来运行;WPA2则强制使用AES-CCMP算法来进行加密,比TKIP更强大、更坚固。
WPA和WPA2支持两种身份验证机制:
- 企业:基于EAP的身份验证
- 个人:基于预共享密钥的身份验证(WPA-PSK)
WPA握手流程
WPA WIFI密码暴力破解
1 | 查看无线网卡名:iwconfig |
VMware虚拟机需要实体无线网卡
具体内容参考对应视频讲解。
WPS的安全问题
WPS(Wi-Fi Protected Setup)是Wi-Fi保护设置的英文缩写,主要致力于简化无线局域网安装及安全性能的配置工作。在WPS认证中PIN码是网络设备间获得接入的唯一要求,不需要其他身份识别方式,这就让暴力破解变得可行。
WPS PIN码的第八位数是一个校验和,因此暴力破解只需要算出前7位
而在实施PIN的身份识别时,接入点实际上是要找出这个PIN的前四位和后三位是否分别正确
0x02 Zigbee协议
1. Zigbee协议简介
1.1 Zigbee简介
Zigbee是IEEE 802.15.4标准的低功耗局域网协议,是一种短距离、低功耗的无线通信技术
主要适用于自动控制和远程控制领域,可以嵌入各种设备
组网快,安全性高,最大速度250kbps,主要用来传输一些控制命令以及传感器采集的一些数据等等,低功耗技术,可拓展性强,最大可达到65535个节点
1.2 节点类型
ZigBee拓扑有三种功能节点:
- 协调器(Coordinator)
- 路由器(Router)
- 终端设备(End Device)
1.3 Zigbee架构
相关博客推荐:
https://blog.csdn.net/aixuexidexiaowan/article/details/126782590
https://blog.csdn.net/aixuexidexiaowan/article/details/127017017
1.4 设备组网流程
组建一个完整的Zigbee网状网络包括两个步骤:网络初始化、节点加入网络。
其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网。
网络初始化:
节点通过协调器加入网络:
2. Zigbee安全性
在Zigbee标准中使用三种类型的128位对称密钥
- 主密钥
- 网络密钥
- 链接密钥
默认信任中心连接密钥
0x5A 0x69 0x67 0x42 0x65 0x65 0x 41 0x6c 0x6c 0x69 0x61 0xe 0x63 0x65 0x 30 0x39
Zigbee采用AES-CCM*和帧计数器来保证数据的完整性、机密性、真实性。
参考书《物联网安全漏洞挖掘实战》第五章部分内容
3. Zigbee嗅探
Zigbee数据抓包:
工具:CC2531 usb Dongle
软件:ubiqua
参考书《物联网安全漏洞挖掘实战》第五章部分内容
0x03 Bluetooth/BLE协议
1. 蓝牙简介
一种无线个人局域网技术,用于在较小距离上交换数据,于1994年发明
2.4GHz至2.485GHz(ISM)频段
蓝牙网络称为微微网,互连微微网的形成散射网
2. 蓝牙协议简介
Radio:射频层,主要作用是信号调制
Baseband:基带层,负责各个蓝牙设备之间的连接,连接组成一个微微网
Link Manage:链路管理层,负责蓝牙设备间建立连接,Mgmt APP就是上层管理的一些APP
SDP:服务发现协议,可以查询到一些其他设备的详细信息
Mgmt APP:通过链路对蓝牙设备之间进行管理,比如蓝牙配对,连接管理之类
L2CAP层:将上层数据进行封装,打包传输给下层
Audio/Audio APP:音乐等音频信号直接通过基带传递给APP
RF COMM:串口仿真层,将设备的蓝牙模拟为一个串口来传输一些无线数据,承载了一些其他协议和指令的集合
OBEX:传递一些文件数据,通讯录等
PPP/BNEP:点对点/蓝牙封装,将上层的TCP/IP协议封装成蓝牙通过串口发送出去
AT modem commends:电话指令集和,提供语音通话功能。
3. BLE简介
低功耗蓝牙BLE(Bluetooth Low Energy)是蓝牙技术联盟设计和销售的一种个人局域网技术,旨在用于医疗健康、安防娱乐等领域的新兴应用
可与传统蓝牙保持同等通信范围的同时显著降低功耗和成本
蓝牙4.0时被引入,也被称为Bluetooth Smart
4. 蓝牙 BLE的比较
传统蓝牙 | BLE | |
---|---|---|
信道 | 79个信道 | 40个信道(37/38/39广播信道) |
发现/连接 | 查询 | 广播 |
连接延迟 | 100ms | 6ms |
最大数据率 | 1-3Mbps | 1Mbps |
工作距离 | 10米 | 最远100米 |
最大输出功率 | 100mW | 10mW |
主要应用 | 无线播放、控制器 | 智能家居、穿戴设备 |
5. BLE协议简介
各层参考《物联网安全漏洞挖掘实战》5.3章节部分
6. BLE连接过程
传统蓝牙:跳频连接
BLE:广播连接
四种广播状态:
- ADV_IND:既允许被连接也允许被扫描
- ADV_NONCONN_IND:既不允许被连接也不允许被扫描
- ADV_SCAN_IND:只允许被扫描但不允许被连接
- ADV_DIRECT_IND:只允许特定设备来连接
7. GATT简介
0x04 RFID协议讲解
1. RFID简介
1.1 什么是RFID?
RFID是射频识别(Radio Frequency Identification) 的缩写,利用无线射频
方式进行非接触双向数据通信,通过对记录媒体(电子标签)进行读写,从而达到识别目标和数据交换的目的。
1.2 RFID常见应用
由于RFID具有读写速度快,无需接触,设备简单等特点,在生活中被广泛使用,常见的应用有物流标签、公交门禁、购物就餐卡等
2. RFID组成
RFID由控制系统、阅读器和电子标签组成
阅读器(Reader) 通过天线与RFID电子标签进行无线通信,可以实现对标签识别码和内存数据的读出或写入操作。典型的阅读器包含有高频模块(发送器和接收器)、控制单元以及阅读器天线。
电子标签(Tag)由耦合元件及芯片组成,每个标签具有唯一的电子编码。当电子标签进入由阅读器产生的无线电射频信号区域时获得能量,然后向阅读器发送储存的信息及数据。有时也被称作射频卡。
3. RFID分类
3.1 常见标签
高频卡
NXP Mifare S50 (M1 )高 频13.56MHz是最常见的射频卡。每张卡独一无二UID号,可存储、修改扇区数据(一卡通,门禁,电梯卡)。
NXP Mifare S70 Mi fare S70可容纳4KB数据,S50的卡类型(ATQA)是0004H
S70的卡类型(ATQA)是0002H。
NXP DESFire/JCOP基于微处理器的芯片卡广 泛应用如银行与金融,移动通信,公共交通,访客访问和网络接入等领域。支持接触式、非接触式读写,JCOP版本内含操作系统,并提供40-80K字节EEPROM存储器。
低频卡
EM4100
- 工作频率125kHz卡内只存储卡号且无法修改
- 成本低广泛用于门禁、身份识别,安防医疗系统
HID ProxCard II
- 与EM4 系列卡片类似只存储卡号名片大小厚度较厚
T5577卡
- 可写入数据可设置密码的低频卡
- 可用于复制ID和HID卡
- 共有8个块,共可存储256b数据
3.2 示例
Mifare 1
Mifare 1变种
EM4100
T5577
T5577结构
- 共有8个块,每个块存32b数据
- 第0块表示调制方式和卡片类型
- 第7块表示加密的密码,无密则表示普通数据
0x05 MQTT等协议讲解
MQTT
MQTT (Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe) 模式的”轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。
MQTT实现过程
发布者和订阅者,两者的角色并不是绝对的,可以转换或者同时存在。
设计原则与特性
- 精简,把传输量降到最低
- 发布/订阅(Pub/Sub)模式,提供一对多的消息发布,解除应用程序耦合
- 允许用户动态创建主题
- 把低带宽、高延迟、不稳定的网络因素考虑在内
- 提供服务质量管理
- 有三种消息发布质量(Qos)
- 至多一次
- 至少一次
- 只有一次
- 使用遗嘱(last will)特性通知有关各方客户端异常中断的机制
MQTT服务本地测试
使用工具:mosquito
服务端开启代理服务mosquito [-p port]
客户端订阅主题mosquito_sub -t topic [-p port -h host]
客户端发布消息mosquito_pub -t topic -m message [-p port -h host]
消息报文格式
MQTT协议是应用层协议,需要借助TCP/IP协议进行传输,类似HTTP协议。MQTT协议也有自己的格式:
①固定头部:通过固定头部区分多种消息类型,如连接,发布,订阅等
②可变头部:有些协议类型中存在,在有些协议中不存在
③消息载体:消息的主要内容
固定头部格式
固定头部格式包含两部分内容,首字节+剩余消息报文长度
首字节:首字节用于表示MQTT消息的报文类型以及某些类型的控制标记。
高四位(bit7~bit4)表示协议类型
低四位(bit3~bit0)用于表示某些报文类型的控制字段
仅当报文类型为PUBLISH时,该字段才有意义。其中Qos不能为3,否则接收段会认为是一条非法的消息。
Connect可变头部
MQTT报文格式文档:http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html