Challenging RSA cryptosystem implementations
Matúš Nemec · ARCA (Università Ca' Foscari Venezia) · 2020
In questo lavoro di tesi abbiamo studiato le proprietà di sicurezza delle implementazioni del cifrario RSA. Nella prima parte, analizziamo i metodi per la generazioni di chiavi RSA di diverse librerie crittografiche. Mostriamo, in particolare, un'applicazione pratica basata su ‘bias’ nelle chiavi RSA che permette di misurare la popolarità delle varie librerie crittografiche e sviluppiamo un metodo di fattorizzazione che rompe un algoritmo proprietario di generazione di chiavi. Nella seconda parte, esaminiamo diversi problemi implementativi del protocollo TLS, come ad esempio i 'padding oracle' di RSA, nel contesto, più ampio, dell'ecosistema Web. Il nostro lavoro mostra come RSA, nonostante la sua apparente semplicità, richieda grande cautela per essere implementato correttamente. Diversamente da RSA, la crittografia basata su curve ellittiche (ECC) utilizza sequenze casuali come chiavi e non richiede padding, risultando, tra le altre cose, più resistente a errori di configurazione. La nostra raccomandazione, quindi, è che gli sviluppatori seguano l’esempio di TLS versione 1.3, in cui è cessato l’utilizzo di RSA in favore di ECC.