Proteggere gli investimenti in R&D con l’autenticazione sicura

Le soluzioni di autenticazione sicura offerte da Maxim consentono agli sviluppatori di proteggere i loro sistemi dagli inevitabili tentativi di contraffazione che prendono di mira accessori e sottosistemi. La disponibilità di una memoria utente a prova di manomissione, inoltre, fornisce metodi sicuri per abilitare o disabilitare le funzioni dei sistemi con funzionalità configurabile. In questo articolo della Rubrica Firmware Reload di Elettronica Open Source vedremo come un piccolo ma potente pezzetto di silicio possa fare una grande differenza nel bilancio economico d’impresa.

INTRODUZIONE

Nell’era dei furti di identità e degli identificativi fasulli, è estremamente importante poter contare su identificazioni certe. Questo vale non solo per le persone, ma anche per i prodotti elettronici di ogni tipo o quasi. I fabbricanti, infatti, hanno la necessità di proteggere i loro prodotti dai componenti contraffatti che le aziende produttrici di accessori e ricambi (aftermarket) tentano di introdurre nella loro catena di fornitura OEM. L’autenticazione sicura costituisce un’efficace soluzione di tipo elettronico per affrontare questa minaccia e permette, inoltre, di aggiungere funzioni utili al prodotto finito. Questo articolo illustra il concetto dell’autenticazione e in particolare la soluzione messa a punto da Maxim - con i componenti definiti “autenticatori sicuri” - per soddisfare una gamma di requisiti applicativi comprendente la protezione della proprietà intellettuale, la gestione delle licenze HW/SW embedded, l’impostazione sicura delle soft-feature e dello stato, la conservazione dei dati a prova di manomissione.

COS’È L’AUTENTICAZIONE?

L’autenticazione è un processo finalizzato a fornire la prova dell’identità nella relazione tra due o più entità. Nel caso di autenticazione unidirezionale, una sola entità fornisce prova della propria identità ad un’altra. Nell’autenticazione bidirezionale, la prova dell’identità viene fornita reciprocamente da ciascuna entità all’altra. Il metodo di autenticazione più comunemente utilizzato è la password. La principale limitazione delle password è che al momento dell’uso esse vengono esposte all’osservazione, il ché le rende vulnerabili allo spionaggio.

Dopo aver passato in rassegna la storia della crittografia, nel 1883 il linguista fiammingo Auguste Kerckhoffs pubblicò le proprie teorie in un articolo pionieristico sulla crittografia militare. Kerckhoffs sosteneva che, anziché fare affidamento sulla segretezza (oscurità) del sistema, la sicurezza dovesse basarsi sulla protezione delle chiavi, poiché in caso di violazione sarebbe stato sufficiente sostituire solo queste ultime, non l’intero sistema. Un efficace metodo di autenticazione simmetrica basato su chiavi funziona come illustrato in Figura 1: la chiave segreta e i dati da autenticare (“messaggio”) vengono utilizzati come input per calcolare un codice di autenticazione del messaggio (Message-Authentication-Code, MAC).

Figura 1. Modello di calcolo del MAC.

Figura 1. Modello di calcolo del MAC

Il MAC viene quindi unito al messaggio e trasmesso su richiesta. Il ricevente effettua lo stesso calcolo e confronta la propria versione del MAC con quella che ha ricevuto insieme al messaggio. Se i due MAC coincidono, il messaggio è autentico. Il punto debole di questo modello di base, tuttavia, è che un messaggio ed un MAC statici, intercettati da un aggressore, possono essere successivamente replicati da un mittente non autentico ed essere considerati autentici. Per provare l’autenticità dell’entità che ha dato origine al MAC (ad esempio l’accessorio di un sistema), il ricevente (cioè il sistema host a cui l’accessorio è connesso) genera un numero casuale e lo invia come sfida all’originatore. L’originatore del MAC deve quindi calcolare un nuovo MAC a partire da tre elementi (la chiave segreta, il messaggio, il numero di sfida) e rispedirlo al ricevente. Se l’originatore si dimostra capace di generare un MAC valido per ogni sfida, è certamente a conoscenza della chiave segreta e quindi può essere considerato autentico. La Figura 2 illustra questo flusso di autenticazione sfida-risposta e gli elementi di dati ad esso associati.

Figura 2. Flusso dei dati nell’autenticazione sfida-risposta.

Figura 2. Flusso dei dati nell’autenticazione sfida-risposta

In crittografia, un algoritmo che genera un MAC di lunghezza fissa a partire da un messaggio è detto “funzione di hash unidirezionale”. Il termine “unidirezionale” indica che matematicamente non è fattibile ricavare dal MAC di lunghezza fissa il messaggio iniziale, generalmente più lungo, comprendente la chiave segreta. Due funzioni di hash unidirezionale che sono state oggetto di esame approfondito ed hanno ottenuto certificazioni internazionali sono gli algoritmi SHA-1 e SHA-2 sviluppati dal National Institute of Standards and Technology (NIST), descritti nel documento FIPS 180. Le elaborazioni matematiche su cui si basano queste funzioni sono disponibili pubblicamente nel sito web di NIST. Le caratteristiche distintive dei due algoritmi sono:

  1. irreversibilità - matematicamente non è fattibile determinare l’informazione d’ingresso corrispondente a un dato MAC;
  2. resistenza alle collisioni - è praticamente impossibile trovare più di un messaggio di ingresso che produca il medesimo MAC;
  3. elevato effetto valanga - ogni minimo cambiamento dell’informazione in ingresso produce un cambiamento significativo del MAC risultante.

Per queste ragioni, oltre che per la serietà degli esami a cui sono stati sottoposti internazionalmente, Maxim ha scelto gli algoritmi SHA-1 e SHA-2 per l’autenticazione sfida-risposta dei propri autenticatori sicuri. Nei propri prodotti più recenti, in particolare, l’azienda ha implementato una variante di SHA-2 denominata SHA-256.

AUTENTICAZIONE SICURA A BASSO COSTO: L’IMPLEMENTAZIONE DEL SISTEMA

Grazie all’interfaccia 1-Wire®, qualunque sistema dotato di capacità di elaborazione digitale – es. di un microcontrollore (µC) - può essere facilmente equipaggiato con un autenticatore sicuro, come il DeepCover® Secure Authenticator (DS28E15). Nel caso più semplice, è sufficiente disporre di un pin di porta libero nel microcontrollore ed aggiungere un resistore di pull-up per la linea 1-Wire, come illustrato in Figura 3.

Figura 3. Esempio di applicazione base.

Figura 3. Esempio di applicazione base

Questo approccio può però essere potenzialmente rischioso se si impiega un microcontrollore non sicuro, che può essere studiato da un aggressore per comprendere e compromettere le funzioni di sicurezza. In alternativa, come illustrato in Figura 4, il DS28E15 può essere azionato e controllato tramite un apposito IC, come il coprocessore SHA-256 DeepCover Secure Authenticator (DS2465) con interfaccia master 1-Wire integrata.

Figura 4. Uso di un coprocessore per aumentare la sicurezza.

Figura 4. Uso di un coprocessore per aumentare la sicurezza

Sebbene il DS28E15 possa essere gestito anche con un approccio basato sul solo microcontrollore, l’impiego del DS2465 offre vari vantaggi:

  1. solleva il µC host dal compito dei calcoli SHA-256;
  2. permette di conservare in modo molto sicuro la chiave segreta SHA-256 del sistema;
  3. solleva il µC host dal compito di generare la forma d’onda 1-Wire.

PREVENZIONE DELLE CONTRAFFAZIONI

I sistemi dotati di elementi sostituibili - come sensori, periferiche, moduli o materiali di consumo - sono comunemente presi di mira da aziende ‘aftermarket’ non autorizzate. Le versioni contraffatte degli elementi sostituibili possono causare preoccupazioni per la sicurezza (safety) del sistema, ridurre la qualità dell’applicazione e, in generale, avere un impatto negativo sulla soluzione OEM. Aggiungere alla soluzione una funzione di autenticazione sicura consente al sistema host di testare l’autenticità del sensore o del modulo e, se viene rilevata una contraffazione, di compiere azioni appropriate alla specifica applicazione. Come illustrato in Figura 5, per confermare l’autenticità, viene svolta una sequenza sfida-risposta tra il sistema e la periferica ad esso collegata.

Figura 5. Test di autenticità con una sequenza sfida-risposta.

Figura 5. Test di autenticità con una sequenza sfida-risposta

GESTIONE DELLE LICENZE HW/SW EMBEDDED

I “progetti di riferimento” che vengono concessi in licenza ed eventualmente si traducono in prodotti fabbricati da terze parti, richiedono barriere protettive per impedire l’uso non autorizzato della relativa proprietà intellettuale. Per il calcolo dei compensi occorre inoltre tenere traccia ed accertare il numero degli esemplari prodotti. Un autenticatore SHA-256 pre-programmato (con una chiave segreta, una memoria utente ed impostazioni installate prima della consegna al fabbricante di terza parte), come il DeepCover Secure Authenticator (DS28E25), può facilmente soddisfare questi ed altri requisiti. Il progetto di riferimento effettua un’autoverifica all’accensione (Figura 6) eseguendo una sequenza di autenticazione con il DS28E25. Soltanto un DS28E25 con una chiave segreta valida, nota solo all’azienda licenziante ed all’elettronica del progetto di riferimento, è in grado di fornire in risposta un MAC valido. Se viene rilevato un MAC non valido, il processore del progetto di riferimento può compiere azioni appropriate alla specifica applicazione.

Figura 6. Autenticazione del progetto di riferimento.

Figura 6. Autenticazione del progetto di riferimento

Un vantaggio aggiuntivo di questo approccio è la possibilità di concedere in licenza ed abilitare selettivamente le varie funzioni del progetto di riferimento, tramite le impostazioni conservate nella memoria sicura del DS28E25 (per un approfondimento di questo concetto si veda il paragrafo “Gestione delle soft-feature”). Esistono due modalità sicure per fornire al licenziatario o al fabbricante di terza parte il DS28E25, o un altro autenticatore sicuro, dotato di una chiave segreta valida:

  1. il dispositivo può essere pre-programmato dall’azienda che concede in licenza il progetto di riferimento; oppure
  2. pre-programmato da Maxim secondo i criteri stabiliti dalla società licenziante e quindi fornito al fabbricante di terza parte.

In entrambi i casi, il numero dei dispositivi inviati al licenziatario o al fabbricante è noto e può essere utilizzato per calcolare i compensi dovuti per la licenza.

VERIFICA DELL’AUTENTICITÀ DELL’HARDWARE

Per quanto riguarda la verifica dell’autenticità dell’hardware occorre considerare due casi (Figura 7):

  1. una scheda PCB clonata contenente una copia esatta del firmware del µC o della configurazione dell’FPGA;
  2. un sistema host clonato.

In questo esempio viene usato il DS28E01-100 basato su SHA-1.

Nel primo caso, il firmware o l’FPGA controlla l’autenticità della scheda PCB clonata. Affinché la verifica abbia successo, il produttore del clone deve caricare una chiave segreta in un autenticatore sicuro per scrivere i dati nella EEPROM utente. In questo modo i dati possono apparire corretti, ma tuttavia la chiave segreta non è valida nell’ambito di quel sistema. A causa delle difficoltà legate alle modifiche ed alla necessità di mantenere la compatibilità con l’host, il firmware o la configurazione dell’FPGA deve essere una copia esatta dell’originale. Se durante la fase di accensione la scheda esegue un’autenticazione sfida-risposta con il DS28E01-100, il MAC generato da questo dispositivo sarà diverso dal MAC calcolato dal firmware o dall’FPGA. Questa mancata corrispondenza dimostra chiaramente che la scheda non è autentica. Il sistema può rilevare ciò eseguendo una sequenza sfida-risposta nei confronti della scheda e può quindi compiere azioni appropriate alla specifica applicazione. Nel secondo caso, la scheda PCB controlla l’autenticità del sistema host. La verifica può utilizzare la seguente procedura:

  1. generare un numero di sfida e far calcolare al DS28E01-100 un MAC di autenticazione sfida-risposta;
  2. inviare gli stessi dati utilizzati per il calcolo del MAC (tranne la chiave segreta, ovviamente) all’host della rete, che quindi calcola e restituisce un MAC di autenticazione sfida-risposta basato su quei dati e sulla propria chiave segreta.

Se i due MAC coincidono, l’host può essere ritenuto autentico dalla scheda.

Figura 7. Esempio di autenticazione dell’hardware.

Figura 7. Esempio di autenticazione dell’hardware

GESTIONE DELLE SOFT-FEATURE

In termini di dimensioni, i sistemi elettronici coprono una gamma che va dai prodotti portatili fino ad apparati che occupano diversi rack. Maggiori sono le dimensioni, maggiore è anche il relativo costo di sviluppo. Per tenere i costi sotto controllo, si cerca quindi di costruire i grandi sistemi partendo da una selezione limitata di sottosistemi più piccoli (schede). Spesso non tutte le funzioni di un sottosistema sono necessarie per una specifica applicazione. Anziché eliminare le funzioni superflue, è più conveniente disabilitarle tramite il software di controllo, lasciando la scheda invariata. Questa scelta, tuttavia, crea un nuovo problema: un cliente scaltro che necessiti di diversi sistemi con funzionalità completa potrebbe comprare un unico esemplare con queste caratteristiche e quindi copiarne il software su numerosi esemplari con funzionalità ridotte, di prezzo inferiore.

Questi ultimi assumerebbero così tutte le caratteristiche dell’esemplare più costoso ed il fornitore del sistema riceverebbe un compenso inferiore al dovuto. Installando su ogni scheda/sottosistema un dispositivo SHA-256 di Maxim, come il DeepCover Secure Authenticator (DS28E22), il fornitore del sistema può difendersi da questo tipo di frode. Oltre a servire per l’autenticazione sfida-risposta, lo stesso DS28E22 può conservare le impostazioni di configurazione individuali nella propria EEPROM utente. Come illustrato nel paragrafo “Sicurezza dei dati”, in questo modo le impostazioni sono protette dalle modifiche non autorizzate, ed il fornitore del sistema assume il pieno controllo di questo aspetto. Le impostazioni di configurazione possono essere conservate nella forma che il progettista del sistema ritiene più appropriata, ad esempio come bitmap o come parole di codice.

IL DISPOSITIVO DI AUTENTICAZIONE SICURA

Architettura complessiva

L’engine SHA dei dispositivi SHA-1 e SHA-256 può essere azionato in tre modi diversi a seconda dell’operazione da eseguire. In tutti i casi, l’engine riceve i dati di ingresso e calcola un MAC come risultato. Per ciascun tipo di operazione ci sono specificità nei dati inviati all’engine SHA, legate all’uso previsto del MAC risultante. Il requisito fondamentale dei sistemi sicuri basati su chiave simmetrica è che, per ogni operazione SHA, l’host debba conoscere o essere in grado di calcolare la chiave segreta conservata nel dispositivo slave, al fine di essere autenticato. Nota: date le caratteristiche di sicurezza dei prodotti di autenticazione sicura, i dettagli dei dispositivi sono stati omessi da questo documento. Altre informazioni sono presenti nelle versioni complete dei fogli specifiche dei singoli dispositivi, disponibili previo accordo di non divulgazione (Non-Disclosure-Agreement, NDA).

MAC di autenticazione sfida-risposta

La funzione principale degli autenticatori sicuri SHA-1 e SHA-256 è l’autenticazione sfida-risposta. L’host invia un numero casuale di sfida e incarica il dispositivo slave di calcolare un MAC di risposta, a partire dai diversi elementi che insieme costituiscono il “messaggio” (Figura 8): il numero di sfida, la chiave segreta, la memoria utente e dati aggiuntivi. Al termine del calcolo, il dispositivo slave invia il proprio MAC all’host per la verifica. L’host quindi ripete il calcolo del MAC usando una chiave segreta valida e gli stessi dati di messaggio che sono stati usati dallo slave. La coincidenza con il MAC ricevuto dallo slave dimostra l’autenticità del dispositivo, poiché solo uno slave autentico può rispondere correttamente alla sequenza sfida-risposta. È cruciale che la sfida sia basata su dati casuali. Un numero di sfida che non cambia mai apre la strada ad attacchi ripetitivi (replay) che usano un MAC statico, valido, registrato e replicato, anziché un MAC calcolato all’istante da uno slave autentico.

Figura 8. Flusso dei dati per il MAC di autenticazione sfida-risposta.

Figura 8. Flusso dei dati per il MAC di autenticazione sfida-risposta

Sicurezza dei dati

Oltre a provare l’autenticità, è estremamente desiderabile garantire che i dati conservati nel dispositivo slave siano affidabili. Per questa ragione, l’accesso di scrittura alla EEPROM dell’autenticatore sicuro è soggetto a restrizioni. Prima di copiare i dati dal buffer di ingresso alla EEPROM o ai registri di controllo, il dispositivo slave esige che l’host richiedente dia prova della propria autenticità fornendo un valido MAC di autenticazione per accesso di scrittura. Il dispositivo slave calcola questo MAC a partire dai nuovi dati nella propria memoria buffer di ingresso, dalla propria chiave segreta e da dati aggiuntivi, come illustrato in Figura 9.

Figura 9. Flusso dei dati per un MAC di autenticazione per accesso di scrittura.

Figura 9. Flusso dei dati per un MAC di autenticazione per accesso di scrittura

Un host autentico conosce, o è in grado di calcolare, la chiave segreta e può generare un MAC valido per l’accesso di scrittura. Quando riceve il MAC dall’host durante il comando di copia, lo slave lo confronta con il proprio risultato. I dati vengono trasferiti dal buffer di ingresso alla loro destinazione nella EEPROM solo se i due MAC coincidono. Ovviamente, le pagine di memoria a scrittura protetta non possono essere modificate, nemmeno se il MAC è corretto.

Protezione della chiave segreta

L’architettura degli autenticatori sicuri di Maxim consente di caricare direttamente la chiave segreta nel dispositivo. La chiave segreta è protetta contro la lettura e, se richiesto, anche contro la scrittura; in quest’ultimo caso la chiave non può mai essere cambiata. Questo meccanismo di protezione è efficace a patto che durante l’installazione iniziale, nel sito produttivo dell’apparato, l’accesso alla chiave segreta sia sicuro e controllato.

La protezione della chiave segreta può essere aumentata in vari modi:

  1. assegnando al dispositivo slave il compito di calcolare la propria chiave segreta;
  2. suddividendo questo calcolo in più fasi effettuate in siti diversi;
  3. creando chiavi segrete esclusive legate al singolo dispositivo, includendo nel calcolo il numero che identifica univocamente ogni esemplare;
  4. una combinazione delle modalità 2 e 3.

Se ogni autenticatore sicuro calcola la propria chiave segreta, i relativi “ingredienti” sono resi noti ma la chiave vera e propria non viene mai esposta. Se la chiave segreta viene calcolata in più fasi presso siti diversi, in ciascun sito vengono resi noti solo gli ingredienti usati localmente, il che fornisce un metodo per controllare la divulgazione della chiave segreta finale. Se si creano chiavi segrete esclusive legate a ogni singolo esemplare del dispositivo, l’host deve compiere un calcolo aggiuntivo ma diviene possibile minimizzare il danno potenziale in caso di rivelazione accidentale della chiave segreta.

Il più alto livello possibile di segretezza si ottiene se la chiave segreta è calcolata in più fasi e legata al singolo esemplare di dispositivo. Il setup degli host, così come degli slave, deve però essere effettuato in siti diversi per evitare di compromettere la segretezza del sistema. Se incaricato di calcolare una chiave segreta, l’autenticatore sicuro usa il proprio engine SHA-1 o SHA-2 e calcola un MAC usando elementi di dati specifici di quel particolare dispositivo, come illustrato in Figura 10. Il MAC risultante viene quindi utilizzato per generare la nuova chiave segreta.

Figura 10. Flusso dei dati per il calcolo di una nuova chiave segreta.

Figura 10. Flusso dei dati per il calcolo di una nuova chiave segreta

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend