Cos’è e come funziona la crittografia RSA?

RSA è l’acronimo dei nomi di chi ha creato questo comune tipo di crittografia nel lontano 1977: Ron Rivest, Adi Shamir e Leonard Adleman.

La crittografia RSA è una tra le prime a chiave pubblica, cioè che utilizza due chiavi: una pubblica e una privata. La chiave pubblica è resa disponibile a tutti, e viene utilizzata per criptare il messaggio.

Quella privata, invece, come dice il nome stesso, è personale per ciascun utente. Viene utilizzata per decriptare il messaggio, cioè renderlo leggibile. Il messaggio può essere decriptato solo con la chiave privata del destinatario, così nessun altro potrà leggerlo.

Dalla chiave pubblica non è possibile risalire alla chiave privata dell’utente, per garantire la massima sicurezza.

Per ottenere un livello adeguato di sicurezza, oggi è consigliabile usare chiavi binarie dai 2018 bit in su. Le chiavi da 1024 bit sono ancora comunemente utilizzate, ma non sono più considerate sicure.

Questo tipo di crittografia può essere utilizzato con diverse librerie crittografiche, tra cui OpenSSL e wolfCrypt. 

Crittografia RSA e crittografia simmetrica: le differenze

ipad

La crittografia RSA differisce dalla crittografia simmetrica, la quale utilizza la stessa chiave per criptare e decriptare il messaggio. Per questo motivo, la crittografia simmetrica è utilizzata solo per criptare messaggi per uso personale, o che viaggiano all’interno di un network sicuro, per esempio una rete di computer domestici o all’interno del luogo di lavoro.

Gli algoritmi RSA, in grado di creare la chiave pubblica e quella privata, sono però poco efficienti per criptare interi messaggi o files. Per questo motivo, molte applicazioni online criptano l’intero messaggio con la crittografia simmetrica, e poi criptano la chiave con il metodo RSA, per offrire una maggiore sicurezza.

Chi utilizza la crittografia RSA sul Web?

La crittografia RSA ha migliaia di applicazioni su Internet. Questo sistema di sicurezza viene utilizzato da molti browser, client email, applicazioni di messaggistica e servizi chat. Spesso, viene anche utilizzato per le VPN, per creare una connessione sicura tra il client ed il server.

La tecnologia RSA viene utilizzata anche nei token, delle vere e proprie chiavette, simili a quelle USB utilizzate per conservare i files. La chiavetta fornisce un codice numerico da utilizzare per accedere a un sito Internet, fornendo un ulteriore livello di sicurezza.

Questi token RSA sono spesso forniti dalle banche ai titolari di un conto corrente, per permettere loro di accedere in maniera sicura ai servizi di home banking. Sono anche utilizzare per fare login su diversi servizi di intrattenimento a pagamento, come i casinò online.

Come funzionano le chiavette RSA? Vale la pena di averne una?

monitor

Una chiavetta RSA genera un codice diverso e casuale ogni 60 secondi. Il codice viene poi utilizzato per l’autenticazione a due fattori, che funziona in questo modo: l’utente immette prima username e password, e poi il codice generato dalla chiavetta.

Quando si compra (o si riceve dalla banca o dal datore di lavoro) una chiavetta RSA, solitamente bisogna registrarla fornendo il numero di serie della stessa. In questo modo, è anche possibile creare un PIN di 4 cifre da utilizzare insieme al codice creato dalla chiavetta stessa.

La chiavetta, una volta registrata, si collega al servizio di home banking o VPN. Il servizio online è così in grado di riconoscere il codice generato dalla chiavetta.

Dal momento che solo l’utente ha accesso alla sua individuale chiavetta RSA, questo sistema è altamente efficace per proteggere l’account dai malintenzionati. Tuttavia, sempre più banche stanno sostituendo la chiavetta fisica con sistemi digitali che inviano il codice di accesso all’utente tramite una app per smartphone o SMS.

Ci sono anche app come Google Authenticator, disponibile gratuitamente sul Google Play Store e sull’App Store di Apple, che forniscono un servizio simile a quello delle chiavette RSA. Queste app creano un codice diverso ogni tot secondi, da utilizzare per l’accesso a diversi servizi online come ad esempio PayPal.

L’algoritmo più comunemente utilizzato dalle app di autenticazione come Google Authenticator è OATH TOTP, acronimo di “Time-based One Time Password”.