Securing nRF24l01 based networks: RF24Gateway & RF24Ethernet with TLS + MQTT
Taking steps towards IoT security
With recent developments regarding RF24Gateway and RF24Ethernet, I've been able to put together an example that demonstrates two main things:
1. How to utilize any generic wrapper that normally interacts with standard Arduino Ethernet hardware, with RF24Ethernet
2. How to use an ESP32 and the SSLClient library to encrypt MQTT connections with TLS
This opens things up quite dramatically, when all is taken into account. It means that simple, inexpensive, low power nRF24 radios can be used to create secure IoT networks, making use of the full capabilities of the RF24 Communication Stack, including the Mesh features.
The RF24Gateway library and Linux devices require no changes, except maybe allowing the 8883 port used by MQTT for TLS connections in your firewall.
The RF24Ethernet library requires the installation of the Govorox SSL client if installing via Arduino Library Manager, else digitaldragon/SSLClient on PlatformIO.
It also requires the MQTT server to be set up with certificates and a suitable configuration to support authentication and encryption. This is setup as-is standard for any MQTT server using TLS.
Overall I am very pleased with the recent changes and testing results. I've got full radio (layer 2) encryption working with nRF52 & nRF54 devices over RF24Gateway, and now higher layer security (TLS) working over RF24Gateway as well via nRF24l01 radios.
No comments:
Post a Comment