Cyronclad
Obiettivo : sicurezza delle infrastrutture IoT
Cyronclad nasce con l’obiettivo di rendere più sicure le infrastrutture IoT.
Attualmente esistono due sole possibilità per gestire una flotta di device connessi: o ci si affida a una piattaforma cloud based gestita da un service provider, oppure si attiva in proprio una piattaforma con analoghe funzionalità.
La prima opzione è intrinsecamente insicura. Infatti, nonostante si adottino accorgimenti per proteggere le informazioni critiche che permetterebbero di violare la sicurezza dei dati e dei device, il gestore della piattaforma ha totale visibilità e controllo. Ad esempio può sospendere il servizio in qualsiasi momento.
La seconda opzione appare quindi, più adatta a supportare applicazioni mission critical o in generale dovrebbe garantire maggiore visibilità dello stato operativo di tutte le componenti, quindi fornire maggiore sicurezza.
Putroppo non è così perché una maggiore possibilità di controllo comporta maggiori oneri operativi che inevitabilmente introducono rischi di commettere errori, maggiori costi e quindi è impossibile ottenere la garanzia che tutti i componenti del sistema sia in perfetta efficienza, quindi inviolabili.
Cyronclad introduce sul mercato, per la prima volta, una terza opzione che innalza il livello di affidabilità generale dell’infrastruttura IoT con un impatto economico ed organizzativo marginale.
Dalla decentralizzazione le soluzioni per aumentare la sicurezza
I sistemi decentralizzati sono immuni da attacchi volti a modificare dati e bloccare i device (nodi) che li supportano.
Cyronclad utilizza lo stesso approccio e per utilizza le seguenti componenti tecnologiche:
- In Cyronclad la comunicazione tra soggetti è diretta (peer-to-peer), ovvero senza che vi sia necessità di alcun tipo di intermediazione esplicita da parte di terzi.
- In Cyronclad tre esistono due categorie di soggetti:
- Device
- Utenti (sia umani, sia logici)
- Sistemi (sia fisici, sia logici)
- Ogni soggetto è dotato di una identità criptografica (ovvero basata su chiavi asimmetriche)
- Ogni soggetto può ricevere e inviare messaggi che possono contenere dati, informazioni di servizio o comandi
- Ogni messaggio ha sempre un mittente, la firma verificabile mediante l’identità del mittente e un destinatario.
- Se necessario i messaggi possono essere criptati affinché solo il destinatario possa decifrarli.
Trasporto affidabile e persistente
La rete Internet si basa sul protocollo TCP/IP che, analogamente a quanto appena descritto, permette di inviare messaggi diretti tra due indirizzi della rete.
Tuttavia i nodi della rete Internet non conservano i messaggi (pacchetti) che ricevono e trasmettono, quindi se lungo il percorso un messaggio viene perso, il destinatario deve richiederne la ritrasmissione.
Ciò implica che la comunicazione tra end point della rete Internet può avvenire solo se sono simultaneamente connessi e in grado di gestire il traffico complessivo.
Questa condizione è abbastanza complessa da ottenere e garantire e per questo motivo sono stati progettati protocolli di livello superiore, come il Message Queue Telemetry Transport (MQTT), che implementano un sistema di comunicazione intermediato. Ciò permette al ricevitore di messaggi da molteplici sorgenti, di limitare il traffico in ingresso decidendo di ricevere messaggi di pochi trasmettitori per volta.
Questo sistema è molto efficiente ma è ovviamente basato su un modello di comunicazione intermediato non presente al livello inferiore (TCP/IP). Quindi, se da una parte si semplifica il ruolo (e si riduce il costo) del ricevitore di messaggi della comunicazione, dall’altra si introduce un punto critico.
Per ottenere lo stesso risultato prodotto dal protocollo MQTT e similari, Cyronclad usa la rete distribuita IOTA come “Secure Transport Layer”.
Un Secure Trasport Layer svolge le stesse funzioni del protocollo TCP/IP ma con alcune proprietà aggiuntive:
- I messaggi sono replicati su tutti i nodi della rete
- I messaggi sono persistenti (almeno per un certo periodo di tempo) su tutti i nodi della rete
- I messaggi immutabili perché protetti dalla struttura criptografica del registro
Queste proprietà aggiuntive permettono al trasmettitore di messaggi di non doversi sintonizzare né con il ricevitore, né con un broker-intermediario. Qualsiasi nodo della rete è un punto di ingresso alternativo ed equivalente. Lo stesso vale per il ricevitore dei dati che li potrà ricevere in qualsiasi momento collegandosi a uno qualsiasi dei nodi della rete.
Gli effetti positivi di questo approccio sono molteplici:
- Totale asincronicità del processo di comunicazione tra trasmettitore e ricevitore
- Assoluta garanzia che il messaggio sarà reso disponibile
- Assoluta garanzia che il messaggio sarà inalterato
Questi risultati sono ottenuti grazie alle caratteristiche uniche della rete IOTA che garantisce l’invio di dati in modo pressoché istantaneo grazie all’assenza di “mining”. Esattamente come per il protocollo TCP/IP, non si paga il traffico e quindi l’uso della rete IOTA per inviare dati è completamente gratuito.
Sicurezza oltre le VPN
Rispetto al TCP/IP, l’uso di IOTA permette di rendere ancora più sicuri i soggetti che interagiscono mediante Cyronclad perché non è possibile risalire dal singolo messaggio (ottenibile da qualsiasi nodo della rete IOTA) all’indirizzo IP del trasmittente.
Ciò rende un’infrastruttura Cyronclad virtualmente immune da attacchi via Intenet e pertanto è del tutto superfluo insolare trasmettitori e ricevitori mediante VPN, reti MPLS o analoghe soluzioni tencologiche.
La sicurezza del sistema si estende fino a proteggere i ricevitori. In un sistema basato su piattaforma cloud based, infatti, inevitabilmente l’accesso al dato avviene mediate un collegamento diretto tra la piattaforma stessa e il sistema che deve ricevere i dati. Sebbene il collegamento è sicuramente protetto da protocolli di cifratura (TLS), la piattaforma cloud ottiene inevitabilmente informazioni sul ricevente, informazioni che possono essere usate per scopi malevoli.
Grazie all’uso della rete IOTA il ricevente può essere totalmente isolato e “invisibile”. Infatti è sufficiente attivare un nodo IOTA su una DMZ della rete del ricevente. Questo nodo, del tutto indistinguibile da migliaia di altri, riceverà tutto il traffico della rete IOTA e permetterà al ricevente di ottenere i dati di suo interesse con una connessione sicura sulla propria rete DMZ, ovvero senza dover accedere a Internet.
Distributed storage on demand
L’uso della rete IOTA risolve ogni problema di sicurezza e semplifica l’architettura complessiva di qualsiasi infrastruttura IoT. Tuttavia IOTA non può contenere infiniti dati. Ciò significa che ogni messaggio immesso nella rete, prima o poi verrà eliminato da tutti i nodi.
Chiaramente il ricevitore può archiviare i dati ricevuti su un qualsiasi storage, ma… saranno al sicuro?
Non ha infatti molto senso rendere super resiliente la ricezione di dati per poi conservarli sena curarsi del loro destino.
Per alcuni casi d’uso questo aspetto è altamente critico. Ad esempio i dati raccolti potrebbero essere utilizzati per scopi forensi, oppure hanno un valore intrinseco che ne richiede una protezione assoluta sia dal rischio di perderli, sia dal rischio che vengano copiati, sia dal rischio siano manomessi.
Cyronclad fornisce un servizio di conservazione sicuro perché basato su una architettura di storage replicata, basata su un comitato di nodi dOra.
Affinché il dato possa essere conservato in modo affidabile è possibile scegliere tra due opzioni:
- il trasmettitore invia una copia identica del messaggio sia al destinatario, sia al comitato
- il ricevitore indica al comitato l’indirizzo di un messaggio sulla rete IOTA che deve essere conservato
In entrambi i casi i nodi del comitato, in modo indipendente, acquisiranno il messaggio e lo conserveranno nel proprio object storage. La quantità di repliche coincide con il numero di nodi comitato.
Quando un soggetto avente le corrette credenziali vuole riottenere i propri dati, invia un comando dal comitato. I nodi si coordineranno per pubblicare il dato su rete IOTA (o altre destinazioni) con l’aggiunta di due proprietà aggiuntive:
- prova di inclusione del messaggio originale nel DLT IOTA.
- Prova di conservazione da parte del comitato dOra
La prova di inclusione è una firma prodotta dal un nodo IOTA, basata sulla struttura del DLT nel momento in cui è stato inserito il messaggio originale. Qualsiasi nodo IOTA può confermare la validità della firma e quindi confermare che il messaggio è identico a quello inserito nella rete IOTA
La prova di conservazione è una firma prodotta dai nodi dOra nel momento in cui il messaggio viene ripubblicato. Solo se almeno la maggioranza dei nodi ha conservato lo stesso dato è possibile produrre una firma valida. La validità della firma è verificabile con l’identità del comitato.
Root of trust
Quanto descritto fino ad ora evidenzia lo straordinario avanzamento dell’infrastruttura Cyronclad in termini di sicurezza e resilienza agli attacchi apportati via Internet su piattaforme e ricevitori di dati. Tuttavia esiste ancora il rischio che il singolo device sia compromesso.
A fine di creare un ombrello di sicurezza totale, Cyronclad mette a disposizione due componenti aggiuntive:
- Un device di sviluppo con il quale è possibile progettare una barriera fisica tra i propri dispositivi IoT e internet (o eventualmente sostituirli)
- Un sistema distribuito di supervisione dei device IoT
Il device è basato su un SoC STM32 U5, una particolare versione del noto microcontrollore che ha la capacità di gestire dati e processi in un’area protetta della propria architettura interna.
Dotato di elevati livelli di certificazione di sicurezza, questo chip permette al device di creare e gestire autonomamente una propria identità criptografica, inviolabile.
Ciò permette di creare la “root of trust” per i dati prodotti dal device o ricevuti da altri e inviati da lui sulla rete IOTA. E’ sostanzialmente impossibile violare il device e costringerlo a pubblicare dati non corretti.
Il secondo componente è un servizio erogato da un comitato dOra. Questo servizio consiste nella validazione di alcune informazioni pubblicate dai device, ad esempio l’hash della propria configurazione.
Confrontando le informazioni ricevute con quelle fornite dal proprietario del device, un comitato di nodi dOra verifica che il device stia operando in modo conforme a quanto previsto. Se la verifica ha esito positivo allora il comitato pubblica un messaggio contenente un dato che permette a qualsiasi ricevitore di sapere che il dato è valido.
Il servizio è fornito sia per i device basati su STM32 U5, sia su generici device di cui però non sarà possibile garantire l’inviolabilità fisica.