This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Overview

Short overview about SMOKER and current implementations

The SMOKER protocol describes two independent security processes for MQTT 5.0: Anonymous authentication based on Zero-Knowledge Proofs as well as client-managed authorization. It provides an enhanced authentication scheme based on the Schnorr Non-Interactive Zero-Knowledge Proof over an elliptic curve. Therefore, no sensitive data has to be transmitted, nor stored on the broker. In case the broker gets compromised, no valuable data can be extracted (e.g. password hashes). Furthermore, SMOKER provides a client-managed authorization mechanism usable for authenticated parties. Both authentication and authorization pursue the goal of not having a central authority and delegating the data sovereignty to the clients.

The first proof-of-concept of the SMOKER protocol was elaborated in a bachelor thesis at the Bern University of Applied Sciences. Some parts of the thesis were extracted to a paper that was published to arxiv. Arxiv is a free distribution service and an open-access archive for scholarly articles. More papers, such as one for the authorization part, will follow. SMOKER is now further developed by the microfast GmbH in Switzerland.

MQTT

If you are new to MQTT take a look at the introduction, which describes the basic idea and functionality of the MQTT protocol. For more details, please consult the official documentation from Oasis, which describes the MQTT protocol in full detail. Make sure to consult the MQTT version 5 of the protocol documentation as SMOKER relies on features, such as enhanced authentication, released in this version.

Implementations

Brokers

Broker Description Running instance Source Remarks
HiveMQ As hivemq fully supports MQTT 5 and exposes a rich and good documented extensions API/SDK, SMOKER was developed as an extension that can be easily deployed to any HiveMQ installation. wss://smive.app.microfast.ch/mqtt GitHub
Mosquitto As mosquitto is one of the most used and most powerful brokers, a SMOKER-Plugin is currently under construction. - -
MQTTNet With this broker the proof-of-concept was implemented in the context of the thesis. However this implementation is now deprecated and will not be developed further as this borker is not widely used and does not completely implement all MQTT 5 features yet (early 2021). - - Deprecated

Clients

Client Description Running instance Source Remarks
Smoking MQTT.js SMOKER Demo UI GitHub
MQTTNet With this broker the proof-of-concept was implemented in the context of the thesis. But this implementation is now deprecated and will not be developed further. - - Deprecated

Where should I go next?