Secure MQTT Protocol Stack - RTOS or Bare-Metal

SharkMQTT is a reliable and secure implementation of the MQTT standard, designed specifically for use in the Internet of Things. By incorporating SSL encryption, SharkMQTT offers military-grade authentication and encryption to ensure efficient and secure communication with brokers, even on resource-constrained embedded devices. If you are looking for a powerful and secure solution for MQTT communication in your IoT project, SharkMQTT is an excellent choice.

FEATURES:

    • End-to-End IoT Security
    • ANSI C Source Code Library
    • Pre-Integrated with SharkSSL
    • Includes ready to use Amazon AWS IoT example using ALPN
    • x.509 Authentication and/or MQTT Authentication
    • SharkMQTT (including sharkSSL) 22kB ROM, 4kB RAM
    • Bare Metal (Super-Loop) and RTOS Support


About MQTT

MQTT is a popular IoT protocol suitable for constrained devices. MQTT is based on the Pub/Sub messaging principle of publishing messages and subscribing to topics. The MQTT specification recommends TLS as a transport option to secure the otherwise insecure MQTT protocol.

About SharkMQTT

SharkMQTT is an embeddable C source code library designed specifically for using the zero-copy API provided by the SharkSSL TLS stack. The MQTT stack supports all packet types and all Quality of Service (QoS) levels 0-2 and is included as a free and ready-to-use SharkSSL package.

Download SharkMQTT

MQTT Sparkplug Library

Note: We provide two MQTT client stacks: SharkMQTT (C89 compatible C code) and LMQTT (Lua code). Our LMQTT stack is MQTT Sparkplug ready.


Testing SharkMQTT:

The SharkMQTT stack is mainly designed for embedded devices, but it can also be compiled for both Windows and Linux. Below is an example demonstrating how to compile and run the MQTT chat example on Linux and the Windows Subsystem for Linux (WSL).

# Install required tools sudo apt install git gcc # Clone SharkSSL git clone https://github.com/RealTimeLogic/SharkSSL cd SharkSSL/ # Compile SharkSSL, SharkMQTT, the socket lib, and the chat example gcc -o Chat-MQTT -Iinc -Iinc/arch/Posix -Isrc/arch/Posix \ src/SharkSSL.c src/SharkMQTT.c src/selib.c examples/Chat-MQTT.c # Start the MQTT chat example ./Chat-MQTT

Simply copy the above commands and paste them into a console window. To test the chat example, ensure you run a second instance on a different computer.

Download SharkMQTT

SharkMQTT Pricing

Why use SharkMQTT

If RAM/ROM size and/or communication speed are important, then SharkMQTT is a no-brainer. The TLS stack SharkSSL, used by SharkMQTT, is the smallest and fastest TLS stack for embedded use and fits into tiny microcontrollers.

The SharkMQTT source code includes commercial support. Our engineers have extensive experience in security, including how to safeguard an MQTT solution. The problem with MQTT is that the broker is, by default, not secure even when used with TLS. If you are unaware of these security issues and do not know how to mitigate the MQTT issues, you risk compromising the IoT solution, including the broker and all connected devices.

RTOS/HLOS

Out-of-the-box operating system (OS) support includes INTEGRITY, MQX, SMX, Azure RTOS, embOS, VxWorks, QNX, FreeRTOS, MDK-ARM, Microchip, Mediatek, lwIP, Linux, and Windows.

Bare-Metal

Out-of-the-box support for lwIP in event-driven mode.

Other

SharkMQTT is built for maximum portability and is generally very easy to port to new platforms.

See also our SMQ IoT protocol, which includes integrated one-to-one communication, a feature typically required in IoT design.

MQTT Tutorials and Examples

We provide several MQTT examples and tutorials, including online interactive tutorials. See the MQTT Security Tutorials for details or dive into how hackers can penetrate your MQTT solution unless you harden your MQTT solution as outlined in the article, How to Harden Your MQTT Device and Simplify Its Configuration.

MQTT pentest