搜索
您的当前位置:首页正文

物联网安全实验三基于MQTT协议消息捕捉与设备控制实验

来源:知库网
物联网安全实验三基于MQTT协议的消息捕捉与设备控制实验

浙江大学电气学院系统系

2019.12.02

实验原理-MQTT协议

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种构建于TCP/IP协议上,采用发布/订阅(publish/subscribe)模式的轻量级通信协议。MQTT协议支持一对一、一对多、多对一等方式的消息发布与即时通信。MQTT协议由三部分组成:发布者(publisher)、代理

(broker)以及订阅者(subscriber)。理论上,MQTT协议支持TLS加密传输,然而在默认情况下,MQTT协议还是采用明文传输消息。

发布代理订阅重放攻击

重放攻击(Replay Attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的设备已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。重放攻击可以由发起者,也可以由拦截并重发该数据的攻击者进行。攻击者利用网络监听或者其他方式盗取认证凭据,之后再把它重新发给认证服务器。重放攻击在任何网络通过程中都可能发生,是物联网通信中常见的攻击方式之一。

实验设备

硬件:树莓派、LED模块、笔记本电脑或者台式机

软件:

Wireshark:下载地址(http://www.wireshark.org/download.html)Mosquitto

移动端MQTT调试助手:

安卓端:MQTT Clients(http://www.mdpda.com/app/apk7623192.html)IOS端:MQTTool(手机APP store上下载)

实验步骤

一、在树莓派中安装所需的MQTT库、mosquitto库;

1.2.3.

安装依赖库:

sudoapt-get install libssl-dev libc-ares-dev uuid-dev g++安装MQTT:

pip3 install paho-mqtt

安装mosquitto及其指令:

sudoapt-get install mosquitto mosquitto-clients

实验步骤

二、测试MQTT功能;

通过以下一个简单的测试例子使学习者更加深入了解MQTT协议的订阅/发布模式。该案例中以搭载LED模块的树莓派模拟智能灯泡,然后用台式机或笔记本模拟服务器。智能灯泡通过订阅“Light”主题以接收来自服务器的控制指令。“id”为灯泡编号,“value”代表灯泡状态,其中value值“0”为关灯,“1”为开灯。1.2.

在台式机或笔记本上启动mosquitto服务:mosquitto-v

树莓派作为客户端通过mosquitto_sub指令订阅“开关灯”主题。server_ip指的是客户端(树莓派)IP地址。-h的含义是指定MQTT代理服务器主机。mosquitto_sub-t Light-hserver_ip

台式机或笔记本通过mosquitto_pub指令发布“开关灯”主题中“开灯”的消息mosquitto_pub-t Light-h server_ip-m \"{\\\"value\\\":0 }“树莓派接收指令并显示

3.4.

实验步骤

三、基于MQTT协议实现树莓派引脚控制;

下面我们通过结合MQTT协议与Python-gpio的拓展库,实现基于MQTT协议的树莓派端口控制。1.

如步骤二中所述,在台式机或笔记本上启动mosquitto服务

2.3.4.

然在树莓派上运行python脚本gpio.py

最后通过在pc机中发布\"{\\\"pin\\\":num,\\\"value\\\":0/1}\"以控制灯泡开关,其中num表示想要控制的GPIO号,0/1控制GPIO输出低/高电平。

将杜邦线连接树莓派相应使用的GPIO口和地,在pc上发出指令后可以观察到LED模块的亮灭,同时树莓派上显示接受到的信息。

实验步骤

三、基于MQTT协议实现树莓派引脚控制;

通过MQTT控制LED亮灭

树莓派接收到信息

实验步骤

四、利用Wireshark网络抓取与分析MQTT数据包;

本实验将使用Wireshark数据包嗅探器(http://www.wireshark.org/)对局域网中传输的MQTT协议内容进行捕捉与分析。1.

安装Wireshark:可以前往http://www.wireshark.org/download.html上下载软件。

注:比较新的Wireshark不需要插件,自带MQTT协议,只需要在编辑-首选项-protools里设置mqtt的端口为1883(这里一般也是设置好了的)

运行Wireshark:在过滤器输入mqtt,就可以看到MQTT版本协议的流量内容。

2.

实验步骤

四、利用Wireshark网络抓取与分析MQTT数据包;

实验步骤

五、利用便携式MQTT软件实现对设备的定向控制;

这个步骤利用现有Android或IOS系统可下载的便携式MQTT调试工具,实现对树莓派设备的定向控制,包括重放与哄骗攻击等。IOS系统采用:

1.2.3.4.

安装MQTT调试工具:MQTTool;手机接入局域网;

伪装服务器:打开MQTTool,修改Host IP为(4)中窃听的真实服务器IP。设置完后点击链接;

伪造虚假控制指令:点击下方Publish,输入窃听来的Topic和控制指令实现对树莓派设备的重放攻击。

实验步骤

五、利用便携式MQTT软件实现对设备的重放攻击

这个步骤利用现有Android或IOS系统可下载的便携式MQTT调试工具,实现对树莓派设备的定向控制,包括重放与哄骗攻击等。Android系统采用:

1.2.3.4.

安卓请采用MQTT Clients,可在http://www.mdpda.com/app/apk7623192.html 下载手机接入局域网

伪装服务器:打开软件,点击右上角的三点后点Settings,将URL改为(4)中窃取到客户端(树莓派)ip地址并加上:8080,port填写1883

伪造虚假指令:点击右下方紫色按钮,输入窃听来的Topic和控制指令实现对树莓派设备的重放攻击。(注意这里的指令只用写{\"pin\":17,\"value\":0 },而非

\"{\\\"pin\\\":17,\\\"value\\\":0 }\")

实验步骤

五、利用便携式MQTT软件实现对设备的重放攻击

MQTTool界面MQTT Client界面

因篇幅问题不能全部显示,请点此查看更多更全内容

Top