Sicurezza hardware per una Internet delle cose sofisticata

Di Redattori europei

Contributo di Editori europei di DigiKey

Anche i più piccoli dispositivi che si affidano a Internet sono potenziali bersagli di hacker che tentano di rubare informazioni, falsificare dati, danneggiare o disattivare il dispositivo stesso. I principi di Trusted Computing sviluppati nell'Internet delle persone stanno alimentando la sicurezza basata su hardware, a bassi costi e bassa potenza, per l'Internet delle cose.

Una Internet di cose hackerabili

Qualsiasi tipo di organizzazione si sta indirizzando a sfruttare l'Internet delle cose (IoT) per razionalizzare attività, tagliare i costi e migliorare la redditività. Le "cose" intelligenti, minuscole, a basso costo e bassa potenza possono essere facilmente connesse a Internet, dischiudendo possibilità che sono semplicemente irresistibili per gli ingegneri costretti a esplorare nuove frontiere tecniche, e anche per i manager aziendali che vi vedono delle opportunità per aumentare le vendite e migliorare le operazioni. Anche i consumatori sono allettati dalla sensazione fantastica che si prova potendo controllare in remoto dispositivi intelligenti tramite un cellulare e dalla possibilità di ridurre le bollette domestiche.

In questa euforia, tuttavia, si potrebbe aver trascurato una questione importante. La sicurezza può essere una priorità in fondo alla scala per gli sviluppatori che rincorrono sempre nuovi prodotti avanzati da presentare ai clienti, ed è quindi probabile che non sia tra le competenze chiave. Per quanto riguarda le applicazioni IoT, può essere difficile identificare che interesse potrebbe avere un hacker a ottenere l'accesso a un dispositivo. È tuttavia facile stabilire una connessione e se il dispositivo non è debitamente protetto un hacker può sottrarre informazioni preziose come le password degli utenti semplicemente osservando i flussi di dati.

I ricercatori di Symantec hanno condotto degli esperimenti intercettando le trasmissioni Bluetooth® tra i fitness tracker e gli smartphone dei passanti in luoghi pubblici. I dati intercettati contenevano password non codificate usate per collegare i dispositivi di chi li indossava. Dato che molte persone usano la stessa password per più login, queste informazioni nelle mani di un hacker possono lasciare esposti a un accesso non autorizzato molte risorse importanti, come i conti finanziari o i dati personali tenuti nel cloud.

Un altro recente esperimento, riferito dalla BBC, ha esposto i punti deboli della sicurezza dei contatori intelligenti usati in Spagna. Le chiavi di crittografia incorporate nel software sono risultate facilmente accessibili. Un hacker che conosca queste chiavi può disturbare con interferenze le trasmissioni dal contatore per inviare dati falsi sul consumo, in pratica l'equivalente di un furto di energia.

Gli sviluppatori dei prodotti possono evitare alcune di queste vulnerabilità operando scelte di sicurezza solide al momento di configurare il software di connettività, ad esempio cambiando le impostazioni predefinite per impedire che l'applicazione renda facilmente accessibili dati sensibili come i numeri di porta. Inoltre, vengono rilasciate di continuo nuove patch di sicurezza per software come server Web, man mano che si scoprono e risolvono i punti deboli.

Anche così, la sicurezza basata su software rimane vulnerabile a certi tipi di attacchi. Se è possibile accedere a un dispositivo, potrebbe essere possibile clonarlo o alterarne il comportamento caricando un malware. Ciò può consentire a utenti non autorizzati di assumere il controllo del dispositivo e di svolgere varie attività come trasmettere informazioni a parti ostili, o disattivare completamente il dispositivo. I replay attack pongono un altro tipo di minaccia, intercettando scambi di password mal protette tra un a client e un host e riutilizzando la password per accedere alla rete.

Radice di attendibilità hardware

È difficile impedire in modo efficiente la clonazione o la contaminazione dei dispositivi con codice maligno usando solo la sicurezza basata su software. Nel mondo dei PC, gli utenti personali, e in particolare le imprese, sono stati vulnerabili a questi tipi di attacchi che sono rivolti a un livello molto basso quindi le misure di sicurezza spesso non sono in grado di rilevarli. Un esempio è dato dal malware bootkit, che danneggia la sequenza di avvio così che il dispositivo carichi ed esegua codice ostile. Non è possibile impedire questo tipo di attacco usando sicurezza basata su software di livello superiore.

Il concetto di Trusted Computing è emerso per far fronte a queste minacce di sicurezza al livello inferiore del software poste ad apparecchiature basate su PC. Il Trusted Computing Group ha sviluppato diverse specifiche mirate a prevenire la clonazione o l'alterazione dei singoli computer in una rete. Una di queste è il Trusted Platform Module (TPM), che è implementato in un microcontroller sicuro standalone o integrabile in dispositivi come le memorie.

Il TPM ha diverse funzioni, tra cui l'autenticazione pre-avvio, che può impedire a un utente non autorizzato di avviare il sistema con un disco avviabile che gli consentirà di hackerarla. Il TPM supporta anche sicurezza basata su software come la crittografia dell'unità disco rigido verificando l'integrità della piattaforma all'avvio e fornendo uno storage sicuro per le chiavi di crittografia.

Fornendo i mezzi per verificare che una piattaforma si comporti come è previsto che faccia, il TPM aiuta a stabilire una radice di attendibilità hardware (hardware root of trust). Per ottenere tale risultato, il TPM esegue le misurazioni sul firmware del sistema, sui dati software e di configurazione prima che inizi l'esecuzione, e le confronta con i valori attesi conservati in modo sicuro sul chip. Il software o il firmware possono venire eseguiti solo se le rispettive serie di valori corrispondono. Se viene rilevata una non corrispondenza, il sistema può rimandare il modulo in questione all'ultimo stato corretto conosciuto.

Protezione tramite hashing

I valori di sistema misurati e altri dati segreti come le chiavi di crittografia sono conservati in modo sicuro nel TPM tramite hashing. Il TPM esegue una funzione hash crittografica sui dati misurati, o sul messaggio, che genera un risultato, noto anche come digest, di lunghezza fissa. Questo digest viene quindi memorizzato e confrontato con il digest corretto e noto già conservato in memoria. Questa natura della funzione hash crittografica rende praticamente impossibile generare un digest di un determinato valore, o modificare un messaggio senza alterarne il digest. Ciò impedisce in modo efficiente manomissioni o sostituzioni non autorizzate del software, anche a livelli molto bassi nello stack, come il BIOS del sistema. Inoltre, il TPM resiste agli attacchi di forza bruta durante l'autenticazione pre-avvio.

Un TPM, come il controller della sicurezza SLB9635 di Infineon per applicazioni per PC, si collega al sottosistema di elaborazione principale tramite un'interfaccia a bassa piedinatura (LPC). Internamente, il TPM è un microcontroller con funzioni come un generatore di numeri casuali (RNG) e un coprocessore crittografico che funzionano assieme alla CPU principale, per consentire al dispositivo di eseguire un algoritmo hash crittografico come SHA-1 ad alta velocità. Il TPM può inoltre generare molto rapidamente firme crittografiche come quelle RSA. Queste firme digitali consentono al sistema di autenticare il mittente di un messaggio ricevuto. La Figura 1 mostra le funzioni interne di AT97SC3204 di Atmel, un TPM simile a SLB9635 di Infineon. Entrambi questi dispositivi implementano la versione 1.2 della specifica TPM del Trusted Computing Group.

Immagine dei blocchi funzionali di un tipico TPM per applicazioni di sicurezza per PC

Figura 1: Blocchi funzionali di un tipico TPM per applicazioni di sicurezza per PC, con indicata l'interfaccia LPC per la connessione al PC.

Trusted Computing per sistemi embedded

I principi di Trusted Computing incorporati in questi TPM sono accessibili anche per sistemi embedded come i dispositivi IoT a bassa potenza, con vincoli di risorse. AT97SC3204T di Atmel è una variante di AT97SC3204 che fornisce una connessine I2C a due fili al sistema di elaborazione host. Rispetto all'interfaccia LPC, I2C è più diffuso nei microcontroller embedded e richiede un minor numero di pin di I/O.

Per dispositivi palmari o altre applicazioni in cui lo spazio riveste un'importanza cruciale, ATSHA204A di Atmel offre funzionalità di sicurezza client e host in un minuscolo contenitore SOT23 a 3 pin con un'interfaccia monofilare con l'host. Questo dispositivo offre la funzionalità di storage di chiavi ed esecuzione di algoritmi hash di un TPM e supporta interazioni standard sfida-risposta con il controller host. Il set di comandi consente diversi usi, tra cui la convalida dell'autenticità del software, del firmware o di componenti di sistema sostituibili come le schede figlie. Altri possibili usi includono la crittografia delle immagini dei codici per impedire alterazioni, lo scambio di chiavi di sessioni, lo storage sicuro di dati e il controllo delle password utente. Nel funzionamento più elementare, l'host invia una sfida e un comando Message Authentication Code (MAC) che richiede all'ATSHA204A di effettuare l'hashing della sfida e rimandare indietro il digest. ATSHA204A integra un generatore di numeri casuali (RNG) a 256 bit di alta qualità e l'algoritmo SHA-256 implementato nell'hardware per eseguire i calcoli. Il dispositivo dispone anche di funzioni di sicurezza fisica, compresa la protezione incorporata del dispositivo, la protezione della memoria interna, la protezione glitch e il rilevamento di manomissione sulla tensione. Il clock logico e le tensioni di alimentazione della logica vengono generati internamente e non sono accessibili direttamente tramite pin esterni.

Il microprocessore sicuro DS5002FP di Maxim offre un approccio alternativo. Questo dispositivo integra la logica di crittografia assieme al processore host usato per eseguire il codice dell'applicazione. Impedisce l'osservazione e l'analisi caricando la memoria del programma tramite la sua porta seriale e crittografando il programma in tempo reale prima di memorizzarlo nella SRAM. Le informazioni non crittografate esistono all'interno del chip del processore solo quando decrittografate. Ciò assicura che il contenuto della RAM e l'esecuzione del software appaiano inintelligibili a un osservatore esterno. Questo dispositivo usa un algoritmo di crittografia proprietario basato su una chiave a 64 bit e offre ulteriori funzioni di sicurezza fra cui un input autodistruttivo che può essere usato con i circuiti esterni di rilevamento manomissioni.

Conclusione

L'IoT sta crescendo rapidamente, portando dispositivi come gli smart meter, le case intelligenti, l'elettronica indossabile e una miriade di altre applicazioni all'attenzione di aziende, governi, consumatori e hacker. In alcuni sistemi sono state individuate falle elementari nella sicurezza che potrebbero comportare gravi rischi per i consumatori e per operatori come le aziende delle utenze pubbliche.

Le soluzioni basate sull'hardware sviluppate per proteggere i computer collegati all'Internet delle persone possono essere usate anche per superare le sfide che si parano di fronte alle applicazioni IoT e si stanno rapidamente adattando per soddisfare le esigenze di sistemi embedded con vincoli di risorse.

DigiKey logo

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

Informazioni su questo autore

Redattori europei

Informazioni su questo editore

Editori europei di DigiKey