3 minute read
Message Queuing Telemetry Transport, or MQTT, is a simple lightweight protocol for transmitting data between machines. Originally developed to monitor an oil pipeline via a satellite link, it has since become one of the most important protocols in the IoT.
It is a possible implementation of an event-driven architecture.
The main takeaway from this video should be the terms “broker”, “pub/sub”, “quality of service” and “topics”
There are two aspects of MQTT security:
Both have a similar name, but actually mean something different.
At first, a devices needs to authenticate themselves at the MQTT broker. This means that the MQTT broker checks, whether the device is the device it says it is. This could be either username/password or certificates. To understand how certificates work and how you can use them, you can take a look at our blog article: An introduction into certificates and secure communication in IoT for normal people
After the authentication step, there is the authorization step. Is the device allowed to do the action it wants to do? For this we typically use an Access Control List (ACL), where you can specify rules about which device can read/write into which topic.
There are two challenges with using plain MQTT:
Sparkplug B is a specification on top of MQTT that is addressing these issues.
The United Manufacturing Hub is not using Sparkplug B as we see two major problems:
But make your own mind on this topic: you can find the standard on the Eclipse page
To understand how to properly use MQTT for data processing or when and where not to use it, please take a look at the following blog article: Tools & Techniques for scalable data processing in Industrial IoT
For a practical guide on MQTT, you can take a look at Steve’s Internet Guide - a practical guide to MQTT and mosquitto