Implementa l'autenticazione sicura senza essere un esperto di crittografia

Aggiornamento: 4 aprile 2023

"La sicurezza digitale è uno degli argomenti più noti in Elettronico progettare oggi. La crittografia è probabilmente la prima parola che viene in mente quando gli ingegneri pensano alla sicurezza e solo pochi ingegneri pensano all'autenticazione. Tuttavia, l'autenticazione è una funzione essenziale di un dispositivo o di una transazione sicuri.

"

L'autenticazione è importante. Grazie alle soluzioni esistenti basate su silicio, possiamo abilitare l'autenticazione senza dover essere esperti nell'implementazione della crittografia.

introdurre

La sicurezza digitale è oggi uno degli argomenti più noti nella progettazione elettronica. La crittografia è probabilmente la prima parola che viene in mente quando gli ingegneri pensano alla sicurezza e solo pochi ingegneri pensano all'autenticazione. Tuttavia, l'autenticazione è una funzione essenziale di un dispositivo o di una transazione sicuri.

Considera la verifica dell'identità in termini di home banking. Ovviamente, vuoi crittografare informazioni riservate come saldi e numeri di conto. Ciò accade quando il browser Internet visualizza un lucchetto verde con https://. Cioè, la prima cosa che il browser Internet controlla quando stabilisce una connessione sicura è che il sito web della banca sia autentico; in altre parole, autentica il sito web della banca. Senza autenticazione, potresti inviare informazioni di accesso e password a siti di impersonificazione, il che può essere davvero molto dannoso, poiché tali credenziali possono essere ulteriormente riutilizzate per eseguire qualsiasi tipo di attività non autorizzata per conto di una transazione ignara del titolare del conto bancario. La navigazione sicura in Internet si ottiene solitamente attraverso il protocollo TLS/SSL, che, oltre alla crittografia, garantisce autenticità e riservatezza.

L'autenticazione è importante anche per le applicazioni Internet of Things (IoT): gli endpoint non attendibili possono mettere a rischio intere infrastrutture. Consideriamo un contatore intelligente collegato a un sistema di distribuzione elettrica. Un modo semplice per gli aggressori di compromettere la rete è caricare virus o malware nei contatori intelligenti. I contatori infetti possono quindi inviare falsi messaggi all'infrastruttura che riflettono un consumo energetico significativamente diverso dal consumo energetico effettivo, il che a sua volta può causare uno squilibrio della rete. Se la rete riporta in eccesso, la potenza apparentemente in eccesso verrà deviata altrove, ma se la rete riporta in difetto, causerà un aumento di potenza; nel peggiore dei casi, l'attacco potrebbe innescare un blackout totale sconvolgendo l'equilibrio della rete. Per evitare ciò, è necessario verificare che l'hardware del misuratore e il suo firmware siano originali. Il processo di verifica del firmware si chiama Secure Boot.

Implementare un metodo di autenticazione valido

Ora che ne comprendiamo l'importanza, discutiamo di come implementare l'autenticazione. Il metodo di autenticazione più semplice consiste nell'utilizzare una password. Nel nostro esempio di contatore intelligente, il dispositivo potrebbe inviare un codice al sistema di controllo della rete. Il server verificherà la password e quindi autorizzerà ulteriori transazioni. Sebbene questo approccio sia facile da capire, non è di gran lunga il migliore. Un utente malintenzionato può facilmente monitorare le comunicazioni, registrare la password e riutilizzarla per autenticare dispositivi non originali. Pertanto, consideriamo debole l'autenticazione basata su password.

Un modo migliore per eseguire l'autenticazione nel mondo digitale è il metodo challenge-response. Diamo un'occhiata a due tipi di metodi challenge-response: uno basato sulla crittografia simmetrica e l'altro basato sulla crittografia asimmetrica.

Autenticazione con password simmetrica

L'autenticazione basata sulla crittografia simmetrica si basa su un segreto condiviso. L'host e il dispositivo da autenticare hanno lo stesso codice chiave. L'host invia un numero casuale, la sfida, al dispositivo. Il dispositivo calcola una firma digitale in funzione della chiave e della sfida e la invia all'host. L'host esegue quindi lo stesso calcolo e confronta i risultati. Se i due calcoli corrispondono, il dispositivo viene autenticato (Figura 1). Per garantire che i risultati non possano essere imitati, è necessario utilizzare funzioni con proprietà matematiche sufficienti. Ad esempio, i segreti non possono essere recuperati senza forzare il calcolo del risultato. Le funzioni hash sicure come SHA-256 supportano questi requisiti. Per il metodo challenge-response, il dispositivo dimostra di conoscere il segreto senza rivelarlo. Anche se un utente malintenzionato intercetta la comunicazione, non può comunque accedere al segreto condiviso.


Figura 1. L'autenticazione basata sulla crittografia simmetrica si basa su numeri di chiave condivisi tra host e dispositivo.

Autenticazione crittografica asimmetrica

L'autenticazione basata sulla crittografia asimmetrica si basa su due chiavi: una chiave privata e una chiave pubblica. La chiave privata è nota solo al dispositivo da autenticare, mentre la chiave pubblica può essere rivelata a qualsiasi entità disposta ad autenticare il dispositivo. Come con il metodo discusso in precedenza, l'host invia una sfida al dispositivo. Il dispositivo calcola una firma basata sulla sfida e sulla chiave privata e la invia all'host (Figura 2). Ma qui, l'host utilizza la chiave pubblica per verificare la firma. È anche importante che la funzione utilizzata per calcolare la firma abbia determinate proprietà matematiche. Le funzioni più comunemente utilizzate per gli schemi asimmetrici sono RSA e ECDSA. Anche qui il dispositivo dimostra di conoscere un segreto, la chiave privata, senza rivelarlo.


Figura 2. L'autenticazione con chiave asimmetrica si basa su chiavi pubbliche e private.

Perché i circuiti integrati sicuri sono utili per l'autenticazione

L'autenticazione challenge-response richiede sempre che l'oggetto sia autenticato per preservare il segreto. Nella crittografia simmetrica, questo è un segreto condiviso tra l'host e il dispositivo. Per la crittografia asimmetrica, questa è la chiave privata. Indipendentemente da ciò, la sicurezza garantita dall'autenticazione challenge-response si interrompe quando i segreti vengono divulgati. È qui che i circuiti integrati di sicurezza possono aiutare. Proprietà essenziale di un titolo IC è quello di fornire una forte protezione di chiavi e segreti.

Massima offre tre famiglie di soluzioni abilitate all'autenticazione:

Circuiti integrati di autenticazione: si tratta di dispositivi configurabili ma a funzione fissa che forniscono il modo più conveniente per implementare l'autenticazione challenge-response, insieme a un set compatto di operazioni crittografiche.

Microcontrollori sicuri: oltre a supportare l'autenticazione challenge-response, questi dispositivi forniscono una suite completa di funzioni crittografiche, inclusa la crittografia.

Microcontrollori a basso consumo: sebbene questi prodotti non siano specificamente mirati alla sicurezza, dispongono di tutti gli elementi costitutivi necessari per abilitare l'autenticazione forte.

IC certificato

Tra i circuiti integrati di autenticazione, i prodotti basati su SHA-256 supportano l'autenticazione tramite un segreto condiviso (figura 3), mentre i circuiti integrati basati su ECDSA utilizzano coppie di chiavi private/pubbliche (figura 4). Oltre al motore di crittografia, questi prodotti dispongono anche di memoria EEPROM integrata. Questa memoria è configurabile e può essere utilizzata per memorizzare i dati utente autenticati, come le informazioni di calibrazione per i sensori.

I prodotti basati su SHA-256 sono la soluzione più conveniente. Sebbene consentano l'autenticazione reciproca, la distribuzione della chiave condivisa richiede alcune precauzioni in modo che la chiave non venga esposta durante la produzione e l'installazione del dispositivo. Questo segreto può essere programmato presso la fabbrica Maxim per aggirare questa lacuna.


Figura 3. L'autenticazione sicura SHA-256 si basa su un segreto condiviso.

I circuiti integrati DS28E15/DS28E22/DS28E25 di Maxim sono basati su SHA-256 la tecnologia e hanno diverse dimensioni di memoria interna. Poiché la stessa chiave è memorizzata sul lato host e sul lato dispositivo, si consiglia di utilizzare un coprocessore come DS2465 sul lato host.

I prodotti basati sulla crittografia asimmetrica (come DS28C36 e DS28E35) forniscono una soluzione più flessibile perché non è necessario proteggere la chiave dalla divulgazione da parte dell'host. Tuttavia, per alleggerire la matematica della chiave pubblica e fornire ulteriori operazioni di sicurezza, è possibile utilizzare un coprocessore lato host come DS2476 (un IC complementare al DS28C36) per semplificare lo sviluppo della soluzione di sistema.


Figura 4. L'autenticazione basata su ECDSA si basa su coppie di chiavi private/pubbliche.

Microcontrollore sicuro che supporta la crittografia simmetrica e asimmetrica

Maxim offre microcontroller sicuri che vanno dai processori di livello applicativo MAX32590 (ARM9 operante a 384 MHz) in grado di eseguire sistemi operativi di alto livello come Linux, ai coprocessori con fattore di forma ridotto come MAX32555 o MAXQ1061.

Questi microcontrollori supportano la crittografia simmetrica e asimmetrica e gli algoritmi crittografici per le firme digitali e l'autenticazione. Sono dotati di acceleratori hardware per SHA, RSA, ECDSA e AES, oltre a una libreria crittografica completa, fornendo un'API chiavi in ​​mano conforme agli standard. Hanno una funzione di avvio sicuro integrata, quindi l'autenticità del firmware è sempre garantita. Possono gestire un'ampia varietà di schemi di autenticazione grazie al loro set completo di funzionalità di crittografia.

MAXQ1061 è un coprocessore che non solo supporta l'autenticazione, ma gestisce anche le fasi più critiche del protocollo di comunicazione sicuro IP standard TLS/SSL. L'elaborazione del protocollo TLS su chip aumenta il livello di sicurezza e alleggerisce il processore principale da attività computazionalmente intensive. Questo è molto utile per i sistemi embedded con risorse limitate.

microcontrollore a bassa potenza

I microcontrollori a bassa potenza come MAX32626 sono destinati a dispositivi indossabili e quindi non sono circuiti integrati "incentrati sulla sicurezza". Tuttavia, il prodotto è stato progettato tenendo conto delle future sfide di sicurezza man mano che gli attacchi diventano più frequenti. Pertanto, MAX32626 dispone di un'unità di protezione dell'affidabilità dell'hardware che supporta l'autenticazione e l'AES hardware per la crittografia e l'avvio protetto integrato.