Una delle critiche più comuni a Sigfox e la crittografia è legata alla sicurezza, in particolar modo al fatto che il payload della comunicazione sia “in chiaro”. In realtà, il payload può essere crittografato, come specificato nei documenti ufficiali di Sigfox (come questo: https://www.sigfox.com/sites/default/files/1701-SIGFOX-White_Paper_Security.pdf)

Piuttosto,  è interessante capire perché la Sigfox e la crittografia non ha un’opzione predefinita. In generale, dato il payload molto limitato e il fatto che le connessioni siano quasi esclusivamente upload, le informazioni inviate da device Sigfox non sono estremamente sensibili. Dati come la temperatura di una stanza o la presenza di acqua non hanno la stesso impatto di informazioni che un dispositivo per il wellness può trasmettere. Si può quindi immaginare un trade-off legato al risparmio di energia, al costo dell’hardware e alla reale necessita di avere I dati criptati.

Inoltre, la crittografia “standard” proposta deve fare i conti con la durata degli oggetti. Se infatti consideriamo degli oggetti che sono operativi per un periodo di tempo che può raggiugnere I 10 anni, senza possibilità di upgrade, si può facilmente immaginare che tecnologie che oggi sono ritenute sufficientemente sicure saranno abbastanza inutili in un futuro a medio termine.

Ha quindi più senso pensare a una architettura di sistema globale che privilegi la sicurezza, per esempio implementando la crittografia a un livello piu elevato, anche perchè in reti come Sigfox uno scambio di chiavi PKI è irrealizzabile data la limitata potenza di calcolo e il downlink praticamente inesistente. La sicurezza dipende quindi da una chiave segreta condivisa, e data l’esigua dimensione della chiave, un attacco brute-force riesce facilmente a “craccare” il messaggio, soprattutto se viene utilizzata sempre la stessa chiave.

In ogni caso, come funziona la crittografia “standard” di Sigfox?

sigfox e la crittografia

sigfox e la crittografia

Innanzitutto la crittografia viene effettuata a livello radio, e viene decodificata prima di essere memorizzata, per cui risulta trasparente al livello applicativo. Proteggendo esclusivamente il transito “radio”,  è quindi necessario implementare un livello di crittografia ulteriore se  è necessario proteggere i dati a livello back-end. 

Per crittografare le comunicazioni, il dispositivo utilizzerà una chiave pre-condivisa. Questo può essere o un hash della chiave privata che ogni dispositivo Sigfox utilizza per HMAC (il tasto NAK) oppure una chiave personalizzata che si trova in un dispositivo “flash”. Una volta stabilita, questa chiave verrà utilizzata con uno specifico valore “contatore”, che verrà crittografato usando lo standard AES 128. Ciò genererà un nuovo valore di 128 bits, che verra usato per crittografare il messaggio tramite una semplice funzione XOR.

Il problema maggiore è dovuto alle implementazioni di questo sistema. Molti Modem Sigfox o non implementano o non specificano come attivare la crittografia. Questo può essere fatto usando direttamente la libreria Sigfox, che richiede richiede un’implementazione AES e utilizza un Secure Element per archiviare le chiavi segrete.

Il vantaggio della crittografia Sigfox è di avere una soluzione senza soluzione di continuità. La sincronizzazione viene gestita autonomamente e in caso di desincronizzazione il frame viene eliminato e non si avrà alcun rischio di ricevere un payload non valido. Lo svantaggio è la mancanza di implementazione in molti modem.

Alessandro BassiPresidente IoTItaly