Tre ricercatori dell’Università del Michigan – Andrea Pellegrini, Valeria Bertacco e Todd Austin – hanno pubblicato sul web i risultati di un recente studio condotto sull’algoritmo crittografico RSA. L’indagine mostra come i ricercatori siano riusciti ad accedere alla chiave privata utilizzata in un processore integrato manipolando le tensioni in ingresso.
L’attacco prende di mira il calcolo delle firme RSA utilizzando l’algoritmo FWE impiegato, ad esempio, nella libreria crittografica OpenSSL.
Come si spiega in questo documento, riducendo le tensioni di alimentazione sul processore, i ricercatori hanno potuto indurre errori occasionali nelle operazioni di moltiplicazione richieste per il calcolo delle firme RSA. Si tratta di un attacco hardware che, come precisano gli autori dello studio, non richiede un accesso “fisico” ai componenti interni del sistema preso di mira ma solo di poter operare indisturbati nelle sue dirette vicinanze.
Nelle procedure di autenticazione a chiave pubblica, il client invia un messaggio “m” al server che lo firma utilizzando la propria chiave privata “d”. Una volta ricevuta la firma digitale “s”, il client può verificare l’identità del server ricorrendo alla chiave pubblica “(n, e)”: in questo modo è possibile controllare che “s” produca il messaggio originale “m”. L’attacco “fault-based” del trio Pellegrini-Bertacco-Austin mira ad estrarre la chiave privata usata dal server. Ciò si è reso possibile causando dei malfunzionamenti hardware (variazione delle tensioni in ingresso sulla circuiteria) che hanno prodotto errori computazionali intermittenti durante la fase di autenticazione del messaggio. Grazie all’algoritmo usato dai tre ricercatori è stato possibile risalire alla chiave privata “d” analizzando diversi messaggi unici “m” e la corrispondente firma errata “s'”. “Perturbando” il funzionamento dell’algoritmo usato da RSA per cifrare il messaggio, utilizzato nella popolare libreria OpenSSL, è stato quindi possibile dedurre la chiave privata “d”. Per l’attacco è stata impiegata una versione non modificata (release 0.9.8i) di OpenSSL: in 100 ore di lavoro i ricercatori sono riusciti ad estrarre la chiave privata RSA di dimensioni pari a 1.024 bit.
Secondo diversi osservatori attacchi di questo tipo resterebbero ancora di difficile utilizzo pratico. Nella maggior parte delle situazioni, gli attacchi di tipo “cold boot” (ved., in proposito, questo nostro articolo), ad esempio, risulterebbero più semplici da porre in essere.