Autenticazione sempre più sicura

IC SICUREZZA –

Grazie all’impiego di numeri a 256 bit per le chiavi segrete, le sfide e i Mac, l’algoritmo SHA-256 rappresenta un miglioramento significativo rispetto alla precedente autenticazione SHA-1.

L'autenticazione SHA-1 è stata utilizzata per oltre un decennio per proteggere efficacemente la proprietà intellettuale dalla contraffazione e dalle duplicazioni illegali. Oggi, tuttavia, i progressi delle tecnologie di elaborazione dell'informazione inducono i clienti a richiedere un livello di sicurezza ancora maggiore. Due nuovi dispositivi destinati a operare in coppia, un “autenticatore sicuro” e un “coprocessore sicuro”, consentono oggi di implementare l'autenticazione SHA-256. Questa nuova tecnologia garantisce l'avanzata sicurezza fisica necessaria per ottenere, a basso costo, un'insuperabile protezione della IP, la prevenzione delle clonazioni e l'autenticazione delle periferiche.

Un sistema di autenticazione sicuro

L'implementazione di un sistema di autenticazione sicuro presuppone un host e un modulo sensore/periferica tra loro collegati. Consideriamo un sistema comprendente un autenticatore sicuro SHA-256 e un coprocessore sicuro SHA-256. Il controllore del sistema comunica con questi due blocchi tramite il bus standard I²C. L'autenticatore sicuro SHA-256 compreso in questo sistema consente di utilizzare un numero di sfida a 256 bit e usa una chiave segreta a 256 bit. Il dispositivo - che rispetto al bus I²C ha la funzione di slave - è dotato di un identificativo univoco a 64 bit scritto in una Rom, che costituisce un elemento fondamentale nei calcoli di autenticazione. Il progettista di sistema può ripartire i 3 Kb della Eeprom utente in aree ad accesso libero, in cui il dispositivo master può scrivere solo dopo essersi autenticato, e aree in cui gli accessi per le operazioni di lettura e scrittura coinvolgono il criptaggio dei dati. Per aumentare ulteriormente la sicurezza, il criptaggio può essere combinato con l'autenticazione.

Il coprocessore sicuro SHA-256

Il coprocessore sicuro SHA-256 solleva il processore dell'host dall'esecuzione dell'algoritmo SHA-256 e inoltre - cosa ancor più importante - integra una memoria protetta per conservare in modo sicuro la chiave segreta master. Altra memoria è riservata per conservare e proteggere gli altri dati utilizzati nel calcolo delle chiavi segrete degli slave. Dal punto di vista dell'host, il coprocessore sicuro SHA-256 appare come una memoria di lettura/scrittura a 256 byte con alcune aree assegnate a scopi speciali.

Il calcolo della chiave segreta

I sistemi di sicurezza SHA impiegano codici di autenticazione dei messaggi o Mac (Message authentication codes) calcolati a partire da un dato pubblico e da una chiave segreta. Per verificare l'autenticità, entrambi i lati - l'host o coprocessore da una parte, l'autenticatore dall'altra - devono conoscere la chiave segreta, che non deve mai essere rivelata. Per una maggiore sicurezza, inoltre, la chiave segreta di ogni autenticatore deve essere unica e diversa da tutte le altre. In questo modo la sicurezza dell'intero sistema non viene messa a rischio nel caso in cui la chiave segreta di un singolo autenticatore risulti compromessa. A prima vista può apparire impossibile soddisfare questi requisiti. Esiste però una soluzione semplice: calcolare la chiave segreta a partire da “ingredienti” noti e installarla nell'autenticatore sicuro in un ambiente produttivo fidato e controllato. Gli ingredienti di una chiave segreta esclusiva sono i seguenti: una chiave segreta master; i dati di binding; una chiave parzialmente segreta; l'identificativo Rom dell'autenticatore sicuro; e informazioni accessorie/di formattazione. Sebbene i singoli ingredienti possano a volte essere resi accessibili all'interno di un ambiente produttivo fidato, la chiave segreta così calcolata non viene mai rivelata e rimane sempre nascosta. Per motivi di sicurezza e di spazio, le chiavi segrete delle memorie sicure presenti nel sistema non possono essere conservate nel coprocessore sicuro né nell'host. Il coprocessore conserva solo la chiave segreta master e i dati di binding, in un'area di memoria protetta. La chiave parzialmente segreta è una costante di sistema che può essere codificata nel firmware del processore host e comunicata in chiaro. Dopo aver letto l'identificativo Rom dell'autenticatore, il coprocessore è in grado di calcolare una chiave segreta esclusiva. Ora che l'autenticatore e il coprocessore condividono la chiave segreta esclusiva, il sistema è pronto per operare.

Autenticazione sfida-risposta

Lo scopo primario dell'autenticatore sicuro è fornire la prova dell'autenticità dell'oggetto a cui esso è collegato. L'autenticazione simmetrica basata su chiave calcola un Mac a partire da una chiave segreta e dal dato (messaggio) che deve essere autenticato. L'host esegue lo stesso calcolo usando la chiave segreta prevista e lo stesso messaggio; quindi confronta la sua versione del Mac con quella ricevuta dall'autenticatore sicuro. Se le due versioni del Mac sono identiche, l'autenticatore sicuro è parte del sistema.
In questo sistema di autenticazione SHA-256, il messaggio è una combinazione tra sfide dell'host e dati conservati nell'autenticatore sicuro. È cruciale che la sfida sia basata su dati casuali. Un numero di sfida che non cambia mai apre la strada ad attacchi ripetitivi che usano un Mac statico, valido, registrato e replicato, anziché un Mac calcolato all'istante.
L'autenticatore sicuro calcola il Mac a partire dai seguenti elementi: il numero di sfida; la propria chiave segreta; i dati in memoria; dati aggiuntivi. Se l'autenticatore sicuro è in grado di generare un Mac valido per ogni sfida, si può dedurre con certezza che esso conosce la chiave segreta e quindi può essere considerato autentico.

Sicurezza dei dati: scrittura autenticata

Oltre a verificare l'autenticità, è estremamente desiderabile sapere che i dati conservati nell'autenticatore sicuro siano affidabili. A questo scopo, parte o tutta la Eeprom dell'autenticatore sicuro può essere protetta tramite autenticazione. Con l'attivazione di questa funzione, l'accesso alla memoria per operazioni di scrittura richiede che l'host presenti prova della propria autenticità, fornendo all'autenticatore sicuro un Mac di autenticazione. Il Mac di autenticazione dell'host è calcolato a partire dai seguenti elementi: nuovi dati da scrivere in memoria; dati preesistenti in memoria; chiave segreta esclusiva dell'autenticatore sicuro e relativo identificativo Rom; altri dati. L'autenticatore sicuro calcola un altro Mac nello stesso modo. Un host autentico è stato in grado di ricreare la chiave segreta dell'autenticatore sicuro e può generare un Mac valido per l'accesso di scrittura. Quando riceve il Mac dall'host, l'autenticatore sicuro lo confronta con il proprio risultato. I nuovi dati vengono scritti nella Eeprom solo se i due Mac sono identici. Le aree di memoria utente a scrittura protetta non possono essere modificate, nemmeno se il Mac è corretto.

Sicurezza dei dati: lettura e scrittura criptate

Grazie a una funzionalità che supera le prestazioni dei generici autenticatori SHA-256 (nei quali la chiave segreta non viene mai rivelata), l'autenticatore sicuro DS28C22 può essere configurato in modo da non rivelare nemmeno i dati contenuti nella propria memoria, in occasione degli accessi per operazioni di lettura e scrittura. Questa ulteriore protezione è ottenuta trasportando dati preventivamente criptati. All'interno del chip i dati sono conservati in chiaro, come necessario ai fini dell'autenticazione.
Il criptaggio negli accessi di scrittura usa un Otp (One-time-pad) che viene calcolato a partire dai seguenti elementi: un seme crittografico fornito dall'host; la chiave segreta dell'autenticatore sicuro; una parte dell'identificativo Rom dell'autenticatore; altri dati (dati accessori, di formattazione, dati connessi agli indirizzi). Questi elementi formano un messaggio che viene elaborato secondo l'algoritmo SHA-256. Ne risulta un codice di autenticazione del messaggio che costituisce l'Otp. L'host effettua lo Xor dei nuovi dati di memoria con i dati corrispondenti dell'Otp, prima di inviarli all'autenticatore. Quest'ultimo esegue nuovamente lo Xor, ripristinando i dati originali che vengono quindi programmati nella Eeprom utente. L'host fornisce il seme crittografico, che deve essere un numero casuale. In questo modo, anche se l'host scrive gli stessi dati più volte, a un osservatore che intercetti il bus I²C i dati criptati appariranno sempre diversi. Il criptaggio dell'accesso di lettura avviene in modo molto simile a quello dell'accesso di scrittura. Sebbene gli elementi del messaggio siano sostanzialmente gli stessi, le differenze negli “altri dati” (“other data”) fanno sì che l'Otp dell'accesso di lettura sia diverso dall'Otp dell'accesso di scrittura, anche se gli altri ingredienti sono identici. L'autenticatore sicuro prende i dati dalla memoria utente, ne effettua lo Xor con l'Otp e li rende accessibili all'host. L'host quindi effettua lo Xor usando la propria versione dell'Otp. Se l'host è in grado di calcolare la chiave segreta dell'autenticatore sicuro e l'Otp usato per il criptaggio, la fase di Xorconsente di decifrare con successo i dati. Anche in questo caso l'host fornisce il seme crittografico, che deve essere un numero casuale. In questo modo anche se l'host legge ripetutamente gli stessi dati, a un osservatore che intercetti il bus I²C i dati appariranno sempre diversi.

Sicurezza dei dati: scrittura criptata e autenticata

L'uso della scrittura criptata non impedisce le operazioni di scrittura in memoria da parte di un processore host che non conosca la chiave segreta dell'autenticatore sicuro. I dati così scritti non avrebbero alcuna utilità, ma un malintenzionato potrebbe in questo modo usurare la memoria e compromettere l'autenticatore. Per impedire che ciò avvenga, le aree di memoria predisposte per il criptaggio devono essere protette dalle operazioni di scrittura (dopo la prima scrittura), oppure protette con autenticazione se si vogliono consentire modifiche. Dopodiché solo un host autentico potrà modificare i dati in memoria. L'accesso di scrittura criptato e autenticato si compone di due fasi. Nella prima fase l'host cripta i nuovi dati e quindi li invia all'autenticatore sicuro. Nella seconda fase l'host calcola un Mac di autenticazione della scrittura e quindi lo invia all'autenticatore sicuro. A differenza di quanto avviene nel caso della scrittura autenticata senza criptaggio, il Mac viene ora calcolato a partire sia dai dati in chiaro presenti in memoria, sia dai nuovi dati criptati.

Protezione della chiave segreta

La chiave segreta dell'autenticatore sicuro e la chiave segreta master del coprocessore sicuro sono protette contro la lettura tramite accorgimenti hardware. Se lo si desidera, la chiave segreta può essere protetta anche contro le operazioni di scrittura, per impedire che l'autenticatore venga manomesso tramite la sostituzione della chiave segreta con una chiave nota. Dopo l'installazione i dati di binding, solitamente conservati nella memoria del coprocessore, devono essere protetti contro la lettura. Questo meccanismo di protezione è efficace a patto che il coprocessore e l'autenticatore vengano preparati per l'applicazione in un sito produttivo fidato.

La sicurezza totale di DeepCover

L'impiego delle tecnologie DeepCover di Maxim Integrated assicura la protezione più forte e conveniente contro ogni attacco a livello del die finalizzato a scoprire la chiave segreta. Le tecnologie DeepCover comprendono numerosi circuiti per monitorare attivamente gli eventi di manomissione a livello del die, tecniche avanzate di sbroglio e layout del die, e ulteriori metodi esclusivi per contrastare le sofisticate capacità degli aggressori.

Autenticazione bidirezionale

L'autenticatore sicuro del sistema qui illustrato consente sia l'autenticazione sfida-risposta sia le operazioni di scrittura autenticate (autenticazione dell'host). L'intera memoria utente può essere usata per l'autenticazione sfida-risposta. L'autenticazione bidirezionale riguarda le aree di memoria configurate per la conservazione sicura dei dati (scrittura autenticata). Il criptaggio dei dati non impedisce l'autenticazione sfida-risposta. Il Mac di autenticazione viene sempre calcolato a partire dai dati non criptati presenti nella Eeprom utente.

Pubblica i tuoi commenti