物联网安全之MQTT协议安全
大家好,我是银基Tiger Team的BaCde,今天来说说MQTT协议的安全。
MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅方式的消息协议,由 IBM 发布。由于其轻量、简单、开放和易于实现的特点非常适合需要低功耗和网络带宽有限的IoT场景。比如遥感数据、汽车、智能家居、智慧城市、医疗医护等。
MQTT协议为大量计算能力有限,低带宽、不可靠网络等环境而设计,其应用非常广泛。目前支持的服务端程序也较丰富,其PHP,JAVA,Python,C,C#等系统语言也都可以向MQTT发送相关消息。 目前最新的版本为5.0版本,可以在https://github.com/mqtt/mqtt.github.io/wiki/servers 这个连接中看到支持MQTT的服务端软件。 其中hivemq中提到针对汽车厂商的合作与应用,在研究过程中会发现有汽车行业应用了MQTT协议。
物联网安全之MQTT协议安全
以下列举我们关心的几项:
MQTT协议中有三种角色和一个主要概念,三种角色分别是发布者(PUBLISHER)、订阅者(SUBCRIBER)、代理(BROKER),还有一个主要的概念为主题(TOPIC)。
消息的发送方被称为发布者,消息的接收方被称为订阅者,发送者和订阅者发布或订阅消息均会连接BROKER,BROKER一般为服务端,BROKER存放消息的容器就是主题。发布者将消息发送到主题中,订阅者在接收消息之前需要先“订阅主题”。每份订阅中,订阅者都可以接收到主题的所有消息。