Soluzioni per comunicazioni Internet of Things sicure

Al crescere della diffusione delle applicazioni Internet of Things, le problematiche legate alla sicurezza rivestono un’importanza sempre più critica. La standardizzazione delle modalità di connessione e dei protocolli connessa all’adozione delle tecnologie IoT contribuisce ad aumentare il rischio di minacce contro i dispositivi e di riflesso, contro le reti che erogano i servizi a cui accedono tali dispositivi. Un certo numero di minacce è già noto, come ad esempio l’accesso (ovviamente illegale) agli autoveicoli attraverso i sistemi di infotainment connessi a Internet, oltre a una pluralità di attacchi condotti contro dispositivi usati in ambito industriale e domestico, e persino contro giocattoli. In molti casi gli accessi non autorizzati sono condotti con tecniche elementari a causa della sostanziale inadeguatezza delle misure di protezione messe in atto dai produttori. I dispositivi, infatti, spesso vengono consegnati corredati da un password standard e quindi deducibile con una certa semplicità. Le app utilizzate per la programmazione dei dispositivi IoT spesso contengono informazioni relative alle loro strutture interne dei dati, mettendo in tal modo a disposizioni utili informazioni ai potenziali aggressori. Focalizzando la loro attenzione sui dispositivi e sugli endpoint IoT, i potenziali aggressori possono condurre attacchi di diverso tipo, dalla semplice osservazione, finalizzata all’acquisizione di informazioni utili per un attacco su ampia scala contro l’infrastruttura, alla manipolazione diretta dei dispositivi o della rete stessa. Da qui la necessità di un’architettura per i dispositivi IoT realizzata a partire da una “root of trust”, ovvero una radice da cui inizializzare la catena di fiducia.

Root of trust per comunicazioni sicure

Una “root of trust” permette di impostare comunicazioni sicure solamente con utenti e applicazioni certificate, riducendo le possibilità per gli aggressori di inviare messaggi a un dispositivo che potrebbero comprometterne la sicurezza. La RoT mette anche a disposizione una metodologia che consente alla rete di autenticare i dispositivi al fine di impedire agli aggressori di utilizzare le loro risorse hardware per penetrare nei sistemi “imitando” dispositivi approvati. Le chiavi e i certificati utilizzati dai protocolli sicuri devono essere immagazzinate in memoria. Ciò richiede la disponibilità di un’area di memoria separata da quella utilizzata per i dati dell’applicazione. Per essere fidate (trusted) queste chiavi e certificati devono non solo essere valide ma anche protette contro tentativi di ispezione per mezzo di circuiti sicuri presenti nell’hardware che impediscano il recupero di informazioni da parte di utenti non autorizzati. I processori crittografici completano l’implementazione fornendo il supporto diretto per i protocolli richiesti per autenticare e comunicare in modo sicuro con il dispositivo senza correre il rischio di svelare certificati e chiavi segrete a un altro software che gira sul dispositivo. Sebbene lo scarso livello di sicurezza dei primi dispositivi IoT sia stato oggetto di numerose critiche, le infrastrutture basate sul concetto di “root-of-trust” esistono da tempo e sono diffuse su larga scala. Un esempio è la rete di telefonia mobile digitale, progettata per supportare il Gsm e i successivi standard 3Gpp che prevede l’integrazione di robuste funzioni di sicurezza come parte fondamentale della sua struttura. Per poter accedere alla rete cellulare wireless, ogni telefono deve includere un modulo Sim (Subscriber identity module) grazie al quale gli operatori possono autenticare e comunicare con l’handset o il dispositivo. Una struttura hardware del tutto simile è rappresentata dal modulo Tpm (Trusted processor module), sviluppato in origine per i personal computer e ora utilizzato in un gran numero di prodotti embedded come ad esempio i terminali Point of Sale.

L’architettura Pki

Il nucleo centrale di questi moduli è rappresentato dall’architettura Pki (Public key infrastructure). Si tratta di un’architettura che mette a disposizione un certo numero di funzionalità atte a supportare le varie esigenze di sicurezza dei dispositivi IoT che ha iniziato a diffondersi non solo in dispositivi sviluppati per telefoni cellulari e Pc, ma anche in altre tipologie di sistemi embedded di dimensioni ridotte. L’architettura Pki ruota attorno al concetto di crittografia asimmetrica, nella quale documenti e altri oggetti software sono firmati e verificati utilizzando una combinazione di chiavi pubbliche e private. I concetti matematici alla base dell’architettura Pki tendono a far sì che risulti molto difficile ricavare una chiave privata da una chiave pubblica associata. La chiave pubblica può essere divulgata liberamente, mentre la chiave privata deve essere protetta. All’interno di un dispositivo embedded, l’elemento base ideale è rappresentato da un processore crittografico con memoria protetta. Un esempio è rappresentato da PIC24FJ128GB204, membro della famiglia di microcontrollori PIC 24F GB2 di Microchip dotato di 128 kB di Ram on-chip e supporto per la crittografia hardware. Una funzionalità chiave di un processore di un modulo hardware fidato è assicurare che in fase di avvio il dispositivo faccia girare solo codice autorizzato e che intrusi sconosciuti non siano stati in grado di comprometterlo. Questa procedura va sotto il nome di avvio sicuro. Nel momento in cui il dispositivo si avvia e legge il codice dalla Rom presente a bordo, verifica che ciascuna delle principali sezione del software sia stata firmata da un fornitore autorizzato. Il fornitore utilizza una chiave privata per firmare il blocco di codice. Questo processo di firma genera una funzione di hash unidirezionale del codice stesso abbinata alla chiave privata. Il componente hardware fidato esamina la funzione hash per verificarne l’autenticità. Ogni variazione al codice sorgente dell’applicazione deve essere firmata utilizzando una chiave appropriata che il modulo fidato verifica prima di proseguire nell’operazione di installazione o aggiornamento. Se il dispositivo incontra un blocco di codice firmato in maniera non corretta, solitamente arresterà il caricamento del software interessato e potrà trasferirsi in uno stato di ripristino cercando di ottenere codice autorizzato dal fornitore originale - eventualmente ritornando al codice installato in fabbrica memorizzato nella Rom - e inviando un alert, se abilitato, a un server. Sebbene sia possibile implementare alcune forme di boot sicuro senza ricorre a un modulo hardware fidato, risulta difficile garantire l’arresto corretto del processo di boot nel caso in cui un eventuale intrusore sia riuscito a penetrare a una certa profondità nel firmware. Il processore presente nel modulo fidato può “imporre” la sicurezza eseguendo la decrittazione delle componenti principali del firmware per conto del processore host solamente se la funzione di hash è corretta e rifiutando il servizio di decrittazione a qualsiasi componente software che non abbia una funzione di hash o una chiave corrette. Grazie alla possibilità di proteggere le chiavi presenti a bordo del chip e di impedirne la modifica o l’estrazione di informazioni da parte di un potenziale intrusore, la gamma di Fpga basate su flash di Microsemi come ad esempio i dispositivi della serie SmartFusion 2, possono essere usate per supportare sia un avvio sicuro sia altre funzioni di sicurezza. Una volta avviato in modo sicuro il dispositivo, quest’ultimo può autenticarsi sulla rete utilizzando I meccanismi previsti dall’architettura Pki. Solitamente il dispositivo imposterà comunicazioni sicure utilizzando un protocollo come Tls (Transport layer security), un’aggiunta al diffusi protocollo Http (Hyper text transfer protocol). I certificati con firma digitale memorizzati all’interno del modulo hardware fidato forniscono ai server la garanzia che stanno comunicando con una risorsa conosciuta. Il certificato effettivo è memorizzato all’interno del modulo fidato per cui solamente i dati accessibili pubblicamente sono disponibili sulla rete e sul bus interno del dispositivo al fine di impedire agli aggressori di sfruttare tecniche di intercettazione. In assenza di un modulo hardware fidato, un potenziale aggressore potrebbe utilizzare un analizzatore logico o strumenti similari per effettuare il sondaggio della memoria del dispositivo e ottenere i certificati e le chiavi segrete che possono essere utilizzate per effettuare lo spoofing (ovvero inserirsi nel dialogo utilizzando una falsa identità) nei confronti dei server di rete. Per contro, un dispositivo IoT deve essere sicuro che sta ricevendo comandi solamente da altri dispositivi o server di cui possa fidarsi. Poiché il modulo hardware fidato ha proceduto alla verifica dei certificati di questi altri dispositivi in base alle chiavi contenute nella memoria protetta, il dispositivo può essere sicuro che sta comunicando solamente con sistemi autorizzati. Nel momento in cui cambiano i profili del servizio, l’utilizzo degli scambi basati sull’architettura Pki consente l’aggiunta o l’eliminazione di certificati. Ciò non solo consente di migliorare i servizi nel tempo, ma permette anche di eliminare dall’elenco delle risorse fidate sistemi che non fanno più parte della rete o la cui compromissione è nota.

Pubblica i tuoi commenti