L’IoT e le sue esigenze di connettività
L’Internet of Things pone requisiti di rete radicalmente diversi rispetto alla connettività tradizionale. Un sensore di temperatura in un campo agricolo, un contatore dell’acqua in una città, un tracker GPS su un container — questi dispositivi non devono trasmettere video in streaming né scaricare aggiornamenti software ogni ora. Devono fare una cosa sola: inviare piccoli pacchetti di dati con grande affidabilità, a lungo raggio, consumando pochissima energia.
Né il Wi-Fi (troppo energivoro e corto raggio) né il 4G/5G (costoso e ad alto consumo) rispondono a questi requisiti. La categoria tecnologica progettata per questo scenario è la LPWAN — Low Power Wide Area Network.
LoRaWAN
LoRaWAN è lo standard LPWAN più diffuso a livello mondiale. Si basa su due livelli distinti: LoRa (Long Range) è la tecnologia radio fisica — una modulazione a spettro espanso chiamata Chirp Spread Spectrum (CSS) sviluppata da Semtech. LoRaWAN è il protocollo MAC e di rete che definisce come i dispositivi accedono al canale, come vengono autenticati e come sono organizzati.
Il segnale LoRa usa chirp — segnali la cui frequenza aumenta o diminuisce nel tempo. Questa modulazione è altamente robusta al rumore e alle interferenze: il segnale rimane decodificabile anche quando è 20 dB sotto il livello del rumore ambientale. Questo permette di raggiungere distanze di 10-15 km in campo aperto con una potenza di trasmissione di pochi milliwatt.
Architettura LoRaWAN — quattro livelli
A differenza di un router Wi-Fi o di uno switch, il gateway LoRaWAN non prende decisioni. Riceve tutti i frame radio nell’aria, li impacchetta in UDP/IP e li inoltra al Network Server. Un pacchetto trasmesso da un sensore può essere ricevuto da più gateway contemporaneamente — il Network Server si occupa della deduplicazione. Questo rende la rete molto robusta e scalabile.
Le tre classi di dispositivi LoRaWAN
Sicurezza LoRaWAN — doppio livello di cifratura
Il modello di sicurezza LoRaWAN è progettato per separare le responsabilità tra operatore di rete e fornitore dell’applicazione. Usa due chiavi AES-128 distinte che proteggono livelli diversi dello stack:
Condivisa tra il dispositivo e il Network Server. Protegge l’integrità e l’autenticità dei messaggi a livello di rete — verifica che il pacchetto provenga da un dispositivo legittimo e non sia stato alterato.
Condivisa tra il dispositivo e l’Application Server. Cifra il payload applicativo — i dati reali del sensore (temperatura, pressione, posizione GPS).
Il dispositivo si unisce alla rete tramite una procedura di join che genera chiavi di sessione uniche ad ogni attivazione. Ogni nuova sessione ha NwkSKey e AppSKey diverse. Più sicuro perché le chiavi non sono statiche.
Le chiavi di sessione sono hardcoded nel firmware del dispositivo — non cambia mai. Più semplice da configurare ma meno sicuro: se un dispositivo viene fisicamente compromesso, le chiavi sono recuperabili.
MQTT — Message Queuing Telemetry Transport
Se LoRaWAN risolve il problema del trasporto radio dei dati IoT, MQTT risolve il problema del trasporto applicativo: come consegnare i messaggi dai sensori alle applicazioni che devono elaborarli, in modo efficiente e scalabile.
MQTT è un protocollo di messaggistica leggero basato sul modello publish/subscribe, progettato da IBM nel 1999 per la telemetria su collegamenti satellitari a bassa banda. Oggi è diventato lo standard de facto per la comunicazione IoT a livello applicativo, adottato da piattaforme come AWS IoT, Azure IoT Hub, Google Cloud IoT e centinaia di sistemi industriali.
MQTT è un protocollo di livello applicativo (livello 7) che opera su TCP/IP (porta 1883 per MQTT non cifrato, porta 8883 per MQTT over TLS). Non è legato a nessuna tecnologia radio specifica: può funzionare sopra Wi-Fi, Ethernet, 4G o anche sopra LoRaWAN (tramite il Network Server come gateway). È il “linguaggio” che parlano i dispositivi IoT con le piattaforme cloud.
Il modello Publish/Subscribe
MQTT non usa il modello client/server tradizionale in cui un client si connette direttamente a un server. Usa invece il modello publish/subscribe, con un intermediario centrale chiamato broker.
casa/salotto/temperatura
casa/salotto/luce
casa/salotto/#
casa/+/temperatura
Topic — il sistema di indirizzamento
In MQTT i messaggi non vengono inviati a destinatari specifici ma pubblicati su topic — stringhe gerarchiche separate da / che identificano il tipo di dato:
Quality of Service — tre livelli di affidabilità
MQTT definisce tre livelli di QoS che determinano la garanzia di consegna del messaggio. La scelta del livello è un compromesso tra affidabilità e overhead di rete:
Retain e Last Will Testament
Un messaggio pubblicato con il flag retain=true viene conservato dal broker. Quando un nuovo subscriber si iscrive a quel topic, riceve subito l’ultimo messaggio trattenuto — senza dover aspettare il prossimo aggiornamento.
Quando un client si connette al broker, può specificare un messaggio “testamento” — topic + payload — da pubblicare automaticamente se la connessione cade in modo inaspettato (crash, perdita di rete).
sensori/42/stato — il sistema sa subito che il dispositivo è irraggiungibileSicurezza MQTT — TLS, autenticazione e autorizzazione
Il protocollo MQTT base non include meccanismi di sicurezza — la connessione sulla porta 1883 è in chiaro. In produzione è indispensabile aggiungere:
Confronto tecnologie LPWAN
LoRaWAN non è l’unica tecnologia LPWAN. Le tre principali si differenziano per architettura, frequenze e modello di deployment:
- LoRaWAN: architettura star-of-stars con gateway passivi (relay), Network Server e Application Server. Classi A/B/C: A = massima autonomia; C = massima reattività. Sicurezza doppia con NwkSKey (rete) e AppSKey (applicazione) — operatore e cliente hanno chiavi separate
- MQTT è un protocollo applicativo publish/subscribe basato su broker. I client pubblicano su topic gerarchici (
edificio/piano/stanza/sensore), i subscriber ricevono automaticamente i messaggi di interesse. Il broker disaccoppia completamente produttori e consumatori - QoS 0 (fire-and-forget), QoS 1 (almeno una volta, possibili duplicati), QoS 2 (esattamente una volta, handshake 4 fasi). Retain: il broker memorizza l’ultimo messaggio per i nuovi subscriber. LWT: messaggio automatico quando la connessione cade
- MQTT di base è in chiaro (porta 1883) — in produzione si usa sempre MQTT over TLS (porta 8883) con autenticazione e ACL sui topic
- Confronto LPWAN: LoRaWAN (flessibile, rete privata possibile), Sigfox (semplice, limitato a 140 messaggi/giorno UL), NB-IoT (integra la rete 4G, roaming internazionale)