MQTT协议在树莓派上的安全性和性能测试及其在物联网应用中的应用
论文标题:Testing the Security and Performance of MQTT Protocol on Raspberry Pi for IoT Applications(MQTT协议在树莓派上的安全性和性能测试及其在物联网应用中的应用)
作者信息:
- Mohammed El-Hajj,计算机学院,阿拉伯开放大学,贝鲁特,黎巴嫩,邮箱:mhajj@aou.edu.lb
- Danil Vorotilov,语义、网络安全与服务学院,特温特大学,恩斯赫德,荷兰,邮箱:d.vorotilov@student.utwente.nl
论文出处:2024 IEEE Asia Pacific Conference on Wireless and Mobile (APWiMob), 28-30 November 2024, Bandung, Indonesia
主要内容:
引言部分: 本文探讨了物联网(IoT)环境中的核心需求之一,即机器对机器(M2M)通信协议。MQTT协议因其轻量级设计而广泛用于资源受限的IoT应用中。树莓派因其价格亲民和多功能性,成为此类项目的流行平台。本研究旨在评估MQTT协议在树莓派4 Model B上的安全性、性能和可扩展性。研究将创建不同带宽级别的IoT环境,并进行分析。树莓派将作为服务器,而虚拟化的Linux实例将作为客户端。研究将对这些环境中收集的数据进行性能和安全性分析。
研究问题:
- RQ1:在树莓派4 Model B上实现MQTT在多大程度上确保了安全性?
- RQ2:在MQTT通信中,不同服务质量(QoS)水平对服务器资源利用的影响,特别关注CPU时钟周期和内存消耗。
- RQ3:MQTT的性能与CoAP(受限应用协议)在延迟、吞吐量和可靠性方面的比较。
文献综述: 本节回顾了与MQTT协议实现、安全性分析和性能评估相关的工作。包括对MQTT安全性的研究,特别是针对MQTT的SlowITe低速率拒绝服务(DoS)攻击;利用机器学习进行DoS攻击检测的研究;MQTT和CoAP协议的性能比较;以及使用QUIC传输协议对MQTT消息传递的性能优势研究。
方法论: 实验中选择了基于特定标准的MQTT代理和客户端,包括开源、MQTT版本5.0和Python实现。研究选择了EMQX代理和mqtt-paho Python库作为客户端。硬件和软件设置包括在树莓派4上部署EMQX代理,使用MacBook Pro进行SSH控制和作为客户端,以及使用Kali Linux进行安全性分析。测量指标包括CPU时钟周期、内存利用、电池使用、数据包延迟、吞吐量和可靠性。
安全性分析: 本节首先设定了MQTT协议的安全需求,包括数据保密性、完整性和可用性。然后展示了如何将这些安全需求转化为技术实现,并进行了威胁建模,识别系统可能面临的潜在威胁和漏洞。讨论了MQTT的QoS选项、TLS加密通信以及版本5.0中会话管理的变化。
讨论: 本节讨论了SlowITe攻击对MQTT协议的影响,以及在不同版本的MQTT上重现该攻击的尝试。分析了TLS连接对CPU和内存使用的影响,并与TCP连接进行了比较。回答了所有三个研究问题,包括对MQTT代理进行的压力测试结果,以及MQTT和CoAP在延迟和吞吐量方面的比较。
以下是对论文《Testing the Security and Performance of MQTT Protocol on Raspberry Pi for IoT Applications》中测试结果的详细总结:
-
CPU和内存使用情况:
- 论文中进行了压力测试,以研究不同服务质量(QoS)水平对树莓派4 Model B上MQTT代理的CPU和内存使用的影响。测试结果显示,随着订阅者数量的增加,CPU使用率呈现出线性增长关系。特别是在使用TLS连接时,CPU使用率最高,达到100订阅者时,QoS 0的CPU使用率达到了325.34%,即超过了3.25个CPU核心的使用。
- 内存使用方面,在TCP连接下,随着订阅者数量的增加,内存使用保持稳定。而在QoS 2下,100个订阅者时内存使用达到峰值13%。
-
数据包延迟和吞吐量:
- 论文中还比较了MQTT和CoAP协议在不同数据包丢失率下的性能。结果显示,数据包丢失对MQTT的影响较大,随着数据包丢失率的增加,MQTT的延迟中位数增加,而CoAP的延迟影响较小,表现更为稳定。
- 在吞吐量方面,MQTT在0%数据包丢失时吞吐量为6.07MB/min,而在10%数据包丢失时降至0.35MB/min,显示出94.23%的下降。相比之下,CoAP的吞吐量在不同数据包丢失率下保持相对稳定,即使在8%数据包丢失下仍能保持6.25MB/min的吞吐量。
-
安全性分析:
- 论文中提到了MQTT协议的安全性问题,特别是在数据传输过程中容易受到窃听、篡改和未授权访问的风险。研究探讨了使用TLS来增强MQTT通信的安全性,但同时指出TLS会带来额外的性能开销。
- 论文还提到了MQTT版本5.0在会话管理上的变化,包括Clean Start和Session Expiry Interval两个字段,这些变化可能会影响MQTT代理的内存使用和可用性。
-
性能对比:
- 论文中对MQTT和CoAP的性能进行了对比,特别是在不同数据包丢失率下。结果显示,在不稳定的网络环境中,CoAP相比MQTT具有更好的性能表现,尤其是在高数据包丢失率下。
这些测试结果为MQTT协议在物联网环境中的安全性和性能提供了实证分析,并指出了在资源受限的IoT设备上部署MQTT时需要考虑的安全和性能权衡。
结论: 研究得出MQTT协议为IoT设备提供了轻量级和高效的消息传输,但缺乏内置的安全特性。使用TLS可以显著提高MQTT通信的安全性,但也引入了性能开销。因此,应根据IoT应用的具体需求管理安全性和性能之间的权衡。未来的研究方向可以探索为资源受限设备设计的轻量级安全机制,特别是与MQTT结合使用时。