Cercetătorii de la Universitatea din California, San Diego, au dezvoltat o tehnică avansată de atac asupra algoritmului RSA, care permite falsificarea semnăturilor digitale fără a necesita factorizarea numerelor prime care stau la baza RSA și fără a fi necesară recuperarea cheii private. Resursele necesare pentru a desfășura atacul asupra unei chei RSA de 1024 biți sunt estimate la 1380 de ani de calcul pe un singur nucleu de procesor, ceea ce a făcut posibil, pe clusterul universitar, ca în 5 luni să fie determinate parametrii necesari pentru generarea de semnături RSA fictive (în experiment nu au fost folosite acceleratoare AI și GPU, iar utilizarea acestora ar putea reduce semnificativ timpul de calcul). Spre comparație, metoda clasică de factorizare necesită între 500.000 și 1.000.000 de ani de calcul pe un singur nucleu de procesor pentru a recrea cheia privată RSA-1024.
Pentru a desfășura atacul, este necesar să existe posibilitatea de a trimite repetat cereri pentru semnarea datelor generate de atacator, de exemplu, apelând la un serviciu de autorizare sau la un modul HSM. Pentru a determina parametrii RSA-1024, este suficient să se trimită 232 de cereri similare, iar pentru atacul asupra cheilor RSA-2048 utilizate în protocolul Privacy Pass, sunt necesare 243. După obținerea unui set de date semnate, începe un proces îndelungat de calculare a parametrilor (pentru RSA-1024, aproximativ 265 de operații); după obținerea acestora, atacatorul poate crea semnături fictive pentru orice date, consumând pentru fiecare semnătură aproximativ 180 de ore de calcul pe un singur nucleu.
Metoda este aplicabilă doar pentru semnăturile RSA în care nu se utilizează formatarea și umplutura suplimentară înainte de criptare (padding). Atacurile sunt susceptibile implementărilor de semnătură oarbă, inclusiv celor utilizate în protocolul Privacy Pass. Majoritatea implementărilor RSA utilizate uzual, inclusiv PKCS#1v1.5 și RSA-PSS (care sunt utilizate în TLS și SSH), aplică umplutură suplimentară și nu sunt susceptibile atacului.
La baza criptării RSA constă în operația de ridicare la putere modulo unui număr mare. Cheia publică conține modulul și puterea. Modulul este format din două numere prime randomice, cunoscute doar proprietarului cheii private. Metoda propusă se bazează pe un studiu publicat în 2007, care a demonstrat că extragerea rădăcinii la puterea specificată în cheia publică dintr-un mesaj criptat, fără informații despre multiplicatorii secreți, este o operație mai puțin costisitoare decât factorizarea în sine a multiplicatorilor.
Folosind o metodă specială de sită a câmpului numeric (SNFS), cercetătorii au reușit să reducă complexitatea compromiterii cheilor RSA-1024 la 265 de operații, ceea ce permite realizarea de atacuri practice pe clusterele moderne. Pentru cheile RSA de 2048 biți, complexitatea atacului este estimată la 290, ceea ce este teoretic realizabil de către corporații mari sau agenții de informații. Pentru cheile de 4096 biți, complexitatea atacului este de 2119 operații, ceea ce în prezent este imposibil de realizat, dar mai jos de minimul de 2128, recomandat de NSA, Institutul Național de Standarde și Tehnologie și Agenția Europeană pentru Securitate Cibernetică.
Sursa: opennet.ro
