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.
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.
|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|
|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?
- Concepts: Understanding the main concepts of SMOKER
- Specification: Checkout the detailed specification