In questo articolo Indice dei contenuti 2 sezioni
Per quasi cinquant’anni la sicurezza di RSA è stata legata a un’idea precisa: per violarlo bisogna scomporre un numero enorme nei due fattori primi che lo compongono. Un nuovo lavoro firmato da ricercatori della University of California San Diego e di INRIA dimostra però che, in condizioni molto particolari, è possibile falsificare una firma RSA senza passare dalla fattorizzazione del modulo pubblico. E il risparmio in termini di calcolo è enorme.
L’algoritmo nasce nel 1977 dal lavoro di Ron Rivest, Adi Shamir e Leonard Adleman e ha reso possibile l’uso di una coppia di chiavi distinte, una pubblica e una privata, per proteggere le comunicazioni, verificare le identità e soprattutto creare firme digitali difficili da contraffare. Il meccanismo di base è semplice da raccontare. Si prendono due grandi numeri primi e li si moltiplica. Il prodotto finisce nella chiave pubblica mentre i due numeri di partenza servono a costruire quella privata. Moltiplicare è facile per un computer, fare il percorso inverso invece diventa proibitivo quando le cifre raggiungono le dimensioni usate in crittografia. Ecco perché la lunghezza del modulo, che sia 1024, 2048, 3072 o 4096 bit, viene letta come una stima della fatica richiesta a chi vuole attaccarlo.
Come funziona l’attacco che aggira la fattorizzazione
Quando si genera una firma digitale con RSA, il software calcola prima una sorta di impronta del messaggio, il cosiddetto hash, e la elabora secondo lo schema adottato. La chiave privata applica poi una trasformazione matematica a quel valore e produce la firma. Chi riceve il documento la controlla con la chiave pubblica e, se tutto torna, sa che il contenuto non è stato alterato. Per decenni violare RSA ha significato quasi sempre ricavare i due numeri primi nascosti nella chiave pubblica, ricostruire quella privata e solo allora generare firme a piacimento.
Il nuovo metodo segue un’altra via. Non indovina la chiave e non la estrae dal sistema, ma sfrutta un servizio che esegue operazioni RSA per conto dell’utente e accetta valori scelti dall’attaccante. In gergo si chiama oracle: gli si forniscono degli input e si osservano le risposte. Basta pensare a un dispositivo che custodisce una chiave privata e permette di inviare valori da elaborare. Il segreto resta invisibile, eppure sottoponendo un gran numero di richieste costruite con cura e combinando i risultati con una tecnica matematica specifica si ottengono informazioni sufficienti per produrre in seguito altre firme valide.
Il test su RSA a 1024 bit e i limiti della scoperta
I ricercatori hanno messo in pratica l’attacco contro RSA a 1024 bit, una dimensione ormai considerata superata ma utilissima per misurare i costi reali. Secondo le stime riportate, fattorizzare direttamente un modulo di questo tipo con le tecniche migliori oggi disponibili richiederebbe tra circa 500.000 e un milione di core year, dove un core year corrisponde in modo semplificato al lavoro di un singolo core del processore acceso per un anno intero. La falsificazione ottenuta dal gruppo si è fermata invece a circa 1.380 core year, distribuiti su un’infrastruttura di calcolo parallelo, con un esperimento durato circa 5 mesi. Non si parla di un miglioramento di qualche punto percentuale ma di diversi ordini di grandezza. C’è però un prezzo da pagare, perché il servizio vulnerabile va interrogato moltissime volte e nel test sono servite oltre quattro miliardi di richieste.
Tutto questo non significa che RSA sia improvvisamente da buttare. La tecnica funziona solo quando l’attaccante può inviare valori scelti liberamente a un sistema che li trasforma con la chiave privata. Le firme più diffuse usano schemi come PKCS#1 v1.5 oppure RSA PSS, che preparano il messaggio secondo regole precise prima dell’operazione matematica e impediscono di controllare il valore sottoposto alla chiave. Nella grande maggioranza dei casi, quindi, l’attacco non si applica direttamente e nessuno ha violato RSA a 2048 bit.
La scoperta indica comunque qualcosa di sottile e rilevante: in determinate situazioni la sicurezza di RSA non dipende più soltanto dal costo della fattorizzazione. A essere esposte sono soprattutto alcune costruzioni particolari, nelle quali il protocollo consente di proposito a un utente di presentare valori trasformati a un server che li firma senza conoscerne il contenuto originale.
Fonte: TecnoAndroid








