IoT安全入门06

第六章 物联网架构之物联网协议

0x01 wifi协议

1. 物联网组成

物联网核心在人、机、云之间的信息互联,因此智能设备、云端、手机端会通过各种协议进行数据的交换。

image-20230322110650647

2. 物联网通信协议

通信协议分类:接入类协议;通信类协议

接入类协议:一般负责子网内设备间的组网及通信,市场上常见的有Zigbee、蓝牙以及wifi协议。

通信类协议:主要是运作在传统互联网TCP/IP协议之上的设备远程通讯协议,负责设备通过互联网进行数据交换及通信,例如GPRS/3G/4G等。

image-20230322110919655

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,中转协议

image-20230322112256750

频谱划分

2.4gWiFi总共有14个信道

image-20230322112550392

image-20230322112739464

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)。

SSID/BSSID

服务集的标识,在同一SS内的所有STA和AP必须具有相同的SSID,否则无法通信

  • SSID是一个ESS的网络标识(如:TP_Link1412)
  • BSSID是一个BSS的标识(实际上就是AP的MAC地址)

image-20230322114651331

无线接入过程三个阶段

STA启动初始化、开始正式使用AP传送数据帧前,要经过三个阶段才能够接入:

1)扫描阶段(SCAN)主动/被动

2)认证阶段(Authentication)WEP/WPA

3)关联(Association)

image-20230322115929807

认证连接方式

  • 无认证
  • 有认证
    • SSID–密码认证
      • wep
      • wpa/wpa2
    • WPS

WEP

WEP是有线等效保密(Wired Equivalent Privacy)的简称,一种在链路层加密的方式来防止非法用户窃听或侵入无线网络。在2003年被WPA所淘汰。

image-20230322120639552

WPA/WPA2

WPA主要采用的是临时密钥完整性协议(TKIP1)加密算法,TKIP旨在改进WEP,且无需依赖全新硬件来运行;WPA2则强制使用AES-CCMP算法来进行加密,比TKIP更强大、更坚固。

WPA和WPA2支持两种身份验证机制:

  • 企业:基于EAP的身份验证
  • 个人:基于预共享密钥的身份验证(WPA-PSK)

WPA握手流程

image-20230322121045052

WPA WIFI密码暴力破解

1
2
3
4
5
6
7
查看无线网卡名:iwconfig
关掉影响的进程:airmon-ng check kill
设置网卡为监听模式:airmon-ng start INTERFACE
扫描附近的wifi:airodump-ng INTERFACE
选定一个路由器,并监听其流量:airodump-ng -c CHANNEL --bssid AP_MAC -w FILENAME INTERFACE
选定连接的一个客户端,进行攻击:aireplay-ng -0 50 -a AP_MAC [-c STA_AP] INTERFACE
对抓取到的cap包进行暴力破解: aircrack-ng -w PASSWORD.txt FILENAME.cap

VMware虚拟机需要实体无线网卡

具体内容参考对应视频讲解。

WPS的安全问题

WPS(Wi-Fi Protected Setup)是Wi-Fi保护设置的英文缩写,主要致力于简化无线局域网安装及安全性能的配置工作。在WPS认证中PIN码是网络设备间获得接入的唯一要求,不需要其他身份识别方式,这就让暴力破解变得可行。

WPS PIN码的第八位数是一个校验和,因此暴力破解只需要算出前7位

而在实施PIN的身份识别时,接入点实际上是要找出这个PIN的前四位和后三位是否分别正确

image-20230322123332815

0x02 Zigbee协议

1. Zigbee协议简介

image-20230321205130020

1.1 Zigbee简介

Zigbee是IEEE 802.15.4标准的低功耗局域网协议,是一种短距离、低功耗的无线通信技术

主要适用于自动控制和远程控制领域,可以嵌入各种设备

组网快,安全性高,最大速度250kbps,主要用来传输一些控制命令以及传感器采集的一些数据等等,低功耗技术,可拓展性强,最大可达到65535个节点

1.2 节点类型

ZigBee拓扑有三种功能节点:

  • 协调器(Coordinator)
  • 路由器(Router)
  • 终端设备(End Device)

image-20230321205931492

1.3 Zigbee架构

image-20230321210917569

相关博客推荐:

https://blog.csdn.net/aixuexidexiaowan/article/details/126782590

https://blog.csdn.net/aixuexidexiaowan/article/details/127017017

1.4 设备组网流程

组建一个完整的Zigbee网状网络包括两个步骤:网络初始化、节点加入网络。

其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网。

网络初始化:

image-20230321212040804

节点通过协调器加入网络:

image-20230321212950854

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*和帧计数器来保证数据的完整性、机密性、真实性。

image-20230321213321605

参考书《物联网安全漏洞挖掘实战》第五章部分内容

3. Zigbee嗅探

Zigbee数据抓包:

工具:CC2531 usb Dongle

软件:ubiqua

image-20230321213506889

参考书《物联网安全漏洞挖掘实战》第五章部分内容

0x03 Bluetooth/BLE协议

1. 蓝牙简介

一种无线个人局域网技术,用于在较小距离上交换数据,于1994年发明

2.4GHz至2.485GHz(ISM)频段

蓝牙网络称为微微网,互连微微网的形成散射网

image-20230322093312506

2. 蓝牙协议简介

image-20230322093431979

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协议简介

image-20230322095928812

各层参考《物联网安全漏洞挖掘实战》5.3章节部分

6. BLE连接过程

image-20230322100925895

传统蓝牙:跳频连接

BLE:广播连接

四种广播状态:

  • ADV_IND:既允许被连接也允许被扫描
  • ADV_NONCONN_IND:既不允许被连接也不允许被扫描
  • ADV_SCAN_IND:只允许被扫描但不允许被连接
  • ADV_DIRECT_IND:只允许特定设备来连接

image-20230322102759366

7. GATT简介

image-20230322103114104

0x04 RFID协议讲解

1. RFID简介

1.1 什么是RFID?

RFID是射频识别(Radio Frequency Identification) 的缩写,利用无线射频
方式进行非接触双向数据通信,通过对记录媒体(电子标签)进行读写,从而达到识别目标和数据交换的目的。

image-20220830224151830

1.2 RFID常见应用

由于RFID具有读写速度快,无需接触,设备简单等特点,在生活中被广泛使用,常见的应用有物流标签、公交门禁、购物就餐卡等

image-20220830224333667

2. RFID组成

RFID由控制系统阅读器电子标签组成

image-20220830224426312

阅读器(Reader) 通过天线与RFID电子标签进行无线通信,可以实现对标签识别码内存数据的读出或写入操作。典型的阅读器包含有高频模块(发送器和接收器)、控制单元以及阅读器天线。

image-20220830224611195

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

image-20220830224650335

3. RFID分类

image-20220830224720380

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

image-20220830225203258

Mifare 1变种

image-20220830225307361

EM4100

image-20220830225349170

T5577

T5577结构

  • 共有8个块,每个块存32b数据
  • 第0块表示调制方式和卡片类型
  • 第7块表示加密的密码,无密则表示普通数据

image-20220830225536472

0x05 MQTT等协议讲解

MQTT

MQTT (Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe) 模式的”轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。

image-20220910222715883

MQTT实现过程

image-20220910222848417

发布者和订阅者,两者的角色并不是绝对的,可以转换或者同时存在。

设计原则与特性

  • 精简,把传输量降到最低
  • 发布/订阅(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]

image-20220910223326412

消息报文格式

MQTT协议是应用层协议,需要借助TCP/IP协议进行传输,类似HTTP协议。MQTT协议也有自己的格式:

固定头部+可变头部+消息载体

①固定头部:通过固定头部区分多种消息类型,如连接,发布,订阅等

②可变头部:有些协议类型中存在,在有些协议中不存在

③消息载体:消息的主要内容

image-20220910223713813

固定头部格式

固定头部格式包含两部分内容,首字节+剩余消息报文长度

首字节:首字节用于表示MQTT消息的报文类型以及某些类型的控制标记。

高四位(bit7~bit4)表示协议类型

image-20220910223945130

低四位(bit3~bit0)用于表示某些报文类型的控制字段

image-20220910224107433

仅当报文类型为PUBLISH时,该字段才有意义。其中Qos不能为3,否则接收段会认为是一条非法的消息。

Connect可变头部

image-20220910224544640

MQTT报文格式文档:http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html