Understanding MQTT Topics

MQTT topics are a form of addressing that allows MQTT clients to share information. MQTT Topics are structured in a hierarchy similar to folders and files in a file system using the forward slash ( / )as a delimiter. Using this system you can create a user friendly and self descriptive naming structures of you own choosing. Topic names are: Case sensitive use UTF-8 strings. Must consist of at least one character to be valid.

Continue reading

Mosquitto MQTT Broker SSL Configuration Using Own Certificates

In this tutorial we will configure the mosquitto MQTT broker to use TLS security. We will be using openssl to create our own Certificate authority (CA), Server keys and certificates. We will also test the broker by using the Paho Python client to connect to the broker using a SSL connection. You should have a basic understanding of PKI, certificates and keys before proceeding. See SSL and SSL Certificates Explained

Continue reading

Paho Python MQTT Client Subscribe With Examples

To receive messages on a topic you will need to subscribe to the topic or topics. To subscribe to a topic you use the subscribe method of the Paho MQTT Class object. In this tutorial we will look at some examples of using the subscribe method. The diagram below illustrates the subscribe message flow.

Continue reading

SSL and SSL Certificates Explained For Beginners

Secure Sockets Layer (SSL) and Transport Layer security (TLS ) are protocols that provide secure communications over a computer network or link. They are commonly used in web browsing and email. In this tutorial we will look: TLS and SSL Public and Private keys Why we need certificates and what they do How to get a digital certificate and understand the different common certificate types. What is TLS TLS is based on SSL and was developed as a replacement in response to known vulnerabilities in SSLv3.

Continue reading

Mosquitto ACL -Configuring and Testing MQTT Topic Restrictions

Not only can you restrict access to the Mosquitto MQTT broker using a username and password you can also restrict access to topics using an ACL (Access control list). Unless you are running an open broker you will want to restrict access to topics so that only authorized users/clients can publish or subscribe to them.

Continue reading

Mosquitto Username and Password Authentication -Configuration and Testing

The Mosquitto MQTT broker can be configured to require client authentication using a valid username and password before a connection is permitted. The username and password combination is transmitted in clear text, and is not secure without some form of transport encryption.(SSL) However using username and password authentication does provide an easy way of restricting access to a broker.

Continue reading

Introduction to MQTT Security Mechanisms

In this tutorial we look at how you can restrict access to a broker, and how you can protect your data using various security mechanisms. It is important to note that these security mechanisms are initiated by the broker, and it s up to the client to comply with the mechanisms in place.

Continue reading

TCP vs UDP -What’s The Difference?

If you are just starting with TCP/IP then you are probably wondering why there are two transport layer protocols- ( TCP and UDP ). Why don’t we just have one? After all TCP seems to be the best option anyway. The aim of this short introductory tutorial is to explain the basic differences between the two and why each protocol is needed, and when they are used.

Continue reading

Paho Python MQTT Client Objects

The main component of the Paho Python MQTT client library is the client class. The class provides all the necessary functions to connect to an MQTT broker, publish messages, subscribe to topics and receive messages. To use you will need to create a new client object from the client class. The client constructor takes 4 optional parameters. The default values are shown below:

Continue reading