Innalzare il livello di sicurezza con Argon2.

Argon2 è la funzione di hashing più sicura per proteggere password e chiavi di crittografia.

2023-08-23
Siamo lieti di comunicarvi che abbiamo aggiornato la funzione di hashing di Tutanota ad Argon2, l'algoritmo più sicuro. Questo è il primo passo sulla strada che ci porterà a diventare un provider di e-mail sicure post-quantum, poiché questa funzione di hashing può generare chiavi di crittografia molto più grandi utilizzate per proteggere le e-mail, i calendari e i contatti di Tutanota.

Come sapete, stiamo progettando di diventare il primo provider di email e cloud sicuro post-quantum, e siamo molto felici di annunciare che abbiamo raggiunto la prima pietra miliare di questo progetto!

Con questo aggiornamento la vostra password - che viene utilizzata per generare le chiavi di crittografia che criptano tutti i vostri dati in Tutanota - non sarà più protetta con bcrypt, ma con Argon2: un nuovo e avanzato algoritmo che porterà a una sicurezza ancora maggiore.

Perché passiamo ad Argon2?

Quando Tutanota è nato, bcrypt era il modo migliore per trasformare una password in una chiave crittografica. Trasforma la password in 192 bit dall'aspetto casuale che possiamo utilizzare per scopi crittografici. Si tratta di un'entropia molto maggiore di quella che avranno mai le password della maggior parte delle persone, quindi sicuramente è sufficiente, giusto?

Per diventare sicuri dal punto di vista quantistico, vogliamo passare tutte le nostre chiavi AES a 256 bit, perché quelle a 128 bit non saranno più sicure quando esisterà un computer quantistico in grado di eseguire l'algoritmo di Grover. Ma, i matematici tra voi noteranno che 256 è maggiore di 192.

** Cosa possiamo fare, allora?

Possiamo allungare quei 192 bit, ad esempio facendo l'hashing con SHA-256, e nella maggior parte dei casi andrebbe bene.

Ma perché farlo se possiamo fare di meglio?

Argon2

Argon2 è stato il vincitore del concorso per l'hashing delle password, e per una buona ragione. Questo algoritmo è attualmente raccomandato dalla maggior parte delle linee guida moderne, compresa la OWASP Foundation.

Argon2 apporta una serie di miglioramenti rispetto a bcrypt, come la resistenza alla memoria e ai canali laterali.

Argon2 può essere utilizzato in tutti i client?

Una volta stabilito l'algoritmo da utilizzare, ci è rimasto il problema di come utilizzarlo effettivamente in tutte le piattaforme supportate: Android, iOS, client desktop e web. Il problema principale è che non esiste un'implementazione JavaScript, o almeno non ne esiste una che si possa considerare di utilizzare. Esistono tuttavia alcuni binding JavaScript per l'implementazione C di riferimento, compilati in WebAssembly.

WebAssembly è una tecnologia che consente di eseguire su un browser web codice scritto in quasi tutti i linguaggi di programmazione.

Anche noi abbiamo deciso di utilizzare questa tecnologia, ma abbiamo scelto di scrivere il nostro glue minimo per ottenere i migliori tempi di caricamento con il codice più pulito.

Perché usiamo WebAssembly?

WebAssembly è supportato da tempo da tutti i principali browser. Per questo motivo abbiamo optato per questa soluzione, che ha portato i migliori risultati per tutti gli utenti di Tutanota in termini di sicurezza e velocità.

Un piccolo inconveniente è che, sebbene WebAssembly sia supportato da tutti i principali browser, in alcune situazioni non è ancora disponibile, ad esempio nella modalità Lockdown di iOS.

Abbiamo pensato di evitare completamente questo requisito compilando il codice C in puro JavaScript (asm.js), ma questo renderebbe l'applicazione troppo lenta per essere pratica.

Per le applicazioni mobili, invece, utilizzeremo implementazioni native, che ci garantiscono prestazioni migliori ed eliminano il requisito di questi client.

Per consentire a tutti di utilizzare la nostra nuova e più sicura protezione delle password con Argon2, stiamo informando gli utenti di tutti gli ambienti che potrebbero avere problemi con WebAssembly che ne avranno bisogno per migliorare il loro livello di sicurezza.

Cosa fanno gli altri provider?

A differenza di provider come Google o Outlook, noi non usiamo la password solo per l'autenticazione, ma anche per generare la chiave che sblocca tutti i dati crittografati, quindi abbiamo bisogno di una Key Derivation Function basata sulla password, piuttosto che di una funzione di hashing della password o di un protocollo di autenticazione basato sulla password.

Per questo requisito, come spiegato sopra, Argon2 è molto più avanti di bcrypt e renderà i vostri dati criptati ancora più sicuri.

Ad oggi, nessuno dei nostri concorrenti utilizza Argon2, quindi con questo passaggio ad Argon2 dimostriamo ancora una volta di essere il provider di e-mail più sicuro.

Cosa bisogna fare?

La maggior parte degli utenti non dovrà fare nulla, ma semplicemente beneficiare della maggiore sicurezza una volta che sarà stata introdotta.

Alcuni utenti che utilizzano sistemi che hanno problemi con WebAssembly potrebbero vedere un avviso.

Se si riceve questo avviso sul browser Tor, si può scegliere tra:

  • passare al livello di sicurezza Standard nel browser Tor, oppure
  • Avviare un altro browser, utilizzando l'istanza Tor in esecuzione come proxy.

Se si è in modalità Lockdown su iOS, si consiglia vivamente di utilizzare l'app Tutanota, non il browser. Se si utilizza il browser in modalità Lockdown su iOS, è necessario aggiungere un'eccezione per il client web Tutanota.

Se si verificano problemi su Android, aggiornare la WebView (che è necessaria solo quando si utilizza il browser su Android).

Assicuratevi di utilizzare uno dei browser supportati o il client desktop di Tutanota.

Siamo felici di poter aumentare il vostro livello di sicurezza passando da bcrypt ad Argon2!