论文标题:MQTT-I: Achieving End-to-End Data Flow Integrity in MQTT
中文标题:MQTT-I:在MQTT中实现端到端的数据流完整性
作者信息:
- Francesco Buccafurri,IEEE会员,雷焦卡拉布里亚地中海大学DIIES系,意大利雷焦卡拉布里亚89124,电子邮件:bucca@unirc.it
- Vincenzo De Angelis,卡拉布里亚大学DIMES系,意大利阿卡瓦卡塔87036,电子邮件:vincenzo.deangelis@dimes.unical.it
- Sara Lazzaro,雷焦卡拉布里亚地中海大学DIIES系,意大利雷焦卡拉布里亚89124,电子邮件:sara.lazzaro@unirc.it
论文出处:IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING, VOL. 21, NO. 5, SEPTEMBER/OCTOBER 2024
主要内容:
-
引言(Introduction): 本文介绍了MQTT(Message Queuing Telemetry Transport)协议作为物联网(IoT)中的实际标准,其基于发布/订阅模型,通过中心化的MQTT代理服务器来收集和分发消息。尽管MQTT在多个领域得到广泛应用,但标准MQTT缺乏内置的安全特性。本文提出了一个新的协议MQTT-I(Integrity),旨在实现端到端的数据流完整性,以应对不可信代理的威胁模型。
-
相关工作(Related Work): 本节回顾了与MQTT端到端安全和外包数据完整性相关的主要研究方法。讨论了确保端到端保密性、访问控制和认证的不同解决方案,以及它们在MQTT中的应用。
-
背景知识(Background): 提供了MQTT协议和Merkle Hash Tree数据结构的背景知识。MQTT是一个客户端-服务器的发布/订阅消息传输协议,Merkle Hash Tree是一种用于验证数据完整性的数据结构。
-
威胁模型(Threat Model): 描述了本文的敌手模型和通过解决方案实现的安全属性。考虑了一个场景,其中代理可能主动干扰协议执行,包括修改、注入、删除消息或改变消息顺序。
-
动机(Motivations): 讨论了为什么现有的技术不能直接应用于MQTT领域以实现端到端数据流完整性,并介绍了MQTT-I协议如何满足设计挑战。
-
基线方法(Baseline Approach): 描述了不采用Merkle Hash Tree的基线方法,通过简单的哈希链来确保数据完整性。
-
MQTT-I:提出的解决方案(MQTT-I: The Proposed Approach): 详细介绍了MQTT-I协议,该协议通过在发布者端构建Merkle Hash Tree并在代理端进行适当更改来实现数据流的完整性验证。
- 发布者操作:发布者为每个主题维护一个序列号和一个摘要(digest)。发送消息时,发布者在主题下发布消息,并更新摘要。每轮结束时,发布者构建一个Merkle Hash Tree,并对其根进行签名,然后将签名和根与其他信息一起发布。
- 代理(Broker)变化:代理需要为每个发布者维护一个与发布者相同的摘要数组,并在接收到发布者的签名信息时,计算Merkle Hash Tree的根,并存储从叶子到根的路径信息,以便订阅者可以重新计算根。
- 订阅者操作:订阅者维护与发布者相同的摘要数组,并在接收到消息时更新摘要。每轮结束时,订阅者使用代理提供的信息重新计算Merkle Hash Tree的根,并验证发布者的签名以确保数据的完整性。
-
计算开销(Computational Overhead): 分析了基线方法和MQTT-I与标准MQTT协议相比的计算开销。
-
与现有方法的比较(Comparison With Existing Approaches): 将MQTT-I与流数据外包中的流认证数据结构(SADS)进行了比较,并讨论了MQTT-I在计算复杂性上的优势。
-
实验(Experiments): 通过在物理设备上实现标准MQTT协议、基线方法和MQTT-I来验证提案的性能,包括吞吐量和功耗。
-
安全性分析(Security Analysis): 根据威胁模型,对MQTT-I协议的安全性进行了分析,证明了MQTT-I能够确保数据流的完整性。
-
结论(Conclusion): 总结了MQTT-I的主要贡献,讨论了其在安全性、吞吐量和能耗方面的权衡,并提出了未来的研究方向。