ProtonBlog(new window)

OpenPGP, lo standard che definisce come crittografare e firmare i messaggi utilizzando PGP, il formato di crittografia email più diffuso, ha ricevuto un importante aggiornamento, introducendo vari miglioramenti di sicurezza e algoritmi crittografici più moderni.

PGP è utilizzato per proteggere i messaggi email fin dagli anni ’90. Negli ultimi 25 anni, lo standard è stato aggiornato più volte. Tuttavia, i progressi nella crittografia hanno continuato a spingere avanti i confini della privacy e della sicurezza. Dal 2016, quando abbiamo iniziato a mantenere OpenPGP.js(new window), una delle librerie di crittografia email open-source più utilizzate al mondo, abbiamo lavorato per modernizzare PGP preservando uno dei suoi principali vantaggi: l’interoperabilità. Ciò ci permette di portare il meglio della crittografia moderna in Proton Mail, assicurandoci che Proton Mail non sia un giardino chiuso.

La standardizzazione garantisce l’interoperabilità futura e Proton è stata anche attivamente coinvolta nel processo di standardizzazione con il gruppo di lavoro OpenPGP presso l’Internet Engineering Task Force (IETF). Il risultato di ciò è il “crypto refresh(new window)” dello standard OpenPGP, come è stato soprannominato, che ha introdotto crittografia autenticata moderna, curve più sicure, hashing di password resistente alla memoria e altro ancora.

Standardizzando questi miglioramenti anziché utilizzare protocolli proprietari, stiamo spianando la strada affinché l’intero ecosistema email diventi più sicuro e garantendo che l’email crittografata rimanga interoperabile.

Miglioramenti della sicurezza

Ecco una panoramica dei più importanti miglioramenti della sicurezza nel crypto refresh di PGP.

Crittografia autenticata moderna (AEAD)

Una crittografia moderna dovrebbe essere resistente a manomissioni segrete. Un attaccante senza accesso alla tua chiave segreta non dovrebbe essere in grado di modificare il tuo messaggio senza essere rilevato. Una crittografia con questa proprietà si chiama “crittografia autenticata”.

OpenPGP ha avuto la crittografia autenticata per molto tempo, utilizzando un meccanismo chiamato “Codice di Rilevamento Modifiche” (MDC). Sebbene questo sia efficace, gli schemi di crittografia autenticata moderni raggiungono segretezza e autenticazione in un algoritmo integrato. Tali modalità di crittografia, denominate algoritmi AEAD, offrono prestazioni migliorate allo stesso livello di sicurezza.

Il nuovo standard include GCM, un algoritmo AEAD disponibile nell’API di crittografia Web, che fornisce implementazioni native dei primitivi crittografici alle applicazioni web e offre prestazioni e sicurezza migliorate. Per questo motivo, inizieremo presto a utilizzare questa modalità in tutti i prodotti Proton.

Curve più sicure

Novità nella specifica del crypto refresh è un insieme di algoritmi a chiave pubblica che utilizzano Curve25519 e Curve448 per la crittografia e la decrittografia (X25519 e X448) e per la firma e la verifica (Ed25519 e Ed448). I membri della comunità Proton sapranno che utilizziamo Curve25519 da anni. Tuttavia, questa sarà la prima volta che viene formalmente specificata.

Abbiamo anche proposto di aggiungere Curve25519 e Curve448 all’API di crittografia Web(new window). Alcuni browser, come Chrome e Safari, hanno iniziato ad implementare Curve25519. Pianifichiamo di utilizzare questo in OpenPGP.js per migliorare ulteriormente le prestazioni e la sicurezza delle nostre applicazioni web non appena sarà disponibile.

Funzione di hashing di password resistente alla memoria

OpenPGP include funzioni di hashing della password integrate, note come “algoritmi string-to-key (S2K)”. Tuttavia, fino all’aggiornamento crittografico, tutti erano piuttosto deboli. L’algoritmo più forte, “iterated and salted S2K”, aggiunge un sale alla password e poi esegue l’hashing del sale e della password ripetutamente usando una funzione di hash crittografica come SHA-2 per un numero configurabile di iterazioni, ma con un limite massimo di 62 MiB sui dati sottoposti a hashing. Poiché l’hashing SHA-2 è diventato molto veloce ed economico, questo non è più sufficiente per eseguire l’hashing di una password in modo sicuro. Per questo motivo, Proton ha da tempo adottato una funzione di hashing della password aggiuntiva, bcrypt, per eseguire l’hashing delle password prima di utilizzarle per criptare messaggi o chiavi OpenPGP.

OpenPGP passerà a Argon2(new window), il vincitore della Password Hashing Competition. Questa funzione è “memory-hard(new window)”, il che significa che richiede una quantità significativa di memoria per eseguire l’hashing di una password. Ciò la rende più difficile da ottimizzare per un attaccante che intenda indovinare la password usando hardware dedicato, come i circuiti integrati specifici per applicazioni(new window), poiché la velocità di hashing rimarrà vincolata dalla velocità della memoria. Con lo standard OpenPGP aggiornato, passeremo anche a Argon2 in Proton.

Deprecazione degli algoritmi legacy

L’aggiornamento crittografico depreca vecchie primitive e algoritmi crittografici, inclusi gli algoritmi di hash MD5, SHA1 e RipeMD, gli algoritmi simmetrici IDEA, 3DES e CAST5, e gli algoritmi a chiave pubblica ElGamal, DSA e chiavi RSA di meno di 3072 bit (il livello di sicurezza paragonabile a Curve25519). Tutti questi sono considerati meno sicuri delle loro alternative moderne e, di conseguenza, non sono adatti per l’uso in nuovi dati o persino per il consumo di dati esistenti in alcuni casi. Il default di Proton è da tempo Curve25519, che è più sicuro.

Prevenzione degli attacchi di sovrascrittura delle chiavi

Uno degli ambiti di ricerca del team di crittografia di Proton sono stati gli attacchi di sovrascrittura delle chiavi e nel 2022 abbiamo pubblicato un articolo di ricerca(new window) su questo argomento insieme al Professor Kenneth Paterson dell’ETH Zurigo. Questa ricerca è stata anche presentata alla Conferenza ACM sulla Sicurezza Informatica e delle Comunicazioni a Los Angeles nel novembre 2022. Mentre abbiamo aggiunto patch di sicurezza a OpenPGP.js e GopenPGP(new window) non appena abbiamo scoperto questi problemi, la più recente specifica OpenPGP affronta le vulnerabilità in modo più efficiente.

Robustezza contro future vulnerabilità

Sebbene la maggior parte dei cambiamenti nell’aggiornamento crittografico miri a risolvere vulnerabilità note o modernizzare le primitive crittografiche utilizzate, alcuni sono intesi a prevenire potenziali vulnerabilità nelle primitive crittografiche che potrebbero essere scoperte in futuro, evitando che influenzino OpenPGP.

In particolare, ora le firme sono “salted”, in altre parole, viene eseguito l’hashing di un valore casuale prima del messaggio o documento che viene firmato. Ciò rende più difficile eseguire un attacco di collisione, dove un attaccante sostituisce una firma di un dato documento con la firma di un documento diverso che condivide lo stesso prefisso, in quanto quella firma potrebbe essere stata eseguita con un sale diverso, significando che il prefisso non corrisponderebbe.

Questo significa che se un attacco come SHAttered(new window) (che ha dimostrato una collisione in SHA1) fosse mai trovato contro gli attuali algoritmi di hashing (come SHA2), OpenPGP non sarebbe impattato altrettanto.

Miglioramenti in arrivo

Dopo il rilascio dell’aggiornamento crittografico dello standard OpenPGP, prevediamo di continuare a lavorare con il Gruppo di Lavoro OpenPGP per portare una crittografia ancora più avanzata e funzionalità aggiuntive a PGP, come:

Miglioramenti della sicurezza

  • Crittografia post-quantistica (un argomento su cui abbiamo già lavorato. Pubblicheremo un post sul blog a parte a breve.)
  • Segretezza in avanti (proteggere i messaggi inviati oggi anche se una chiave viene compromessa domani)
  • Separazione dei domini per la firma e/o la crittografia

Facilitazione di nuova funzionalità

  • Inoltro automatico tramite re-criptazione proxy
  • Chiavi simmetriche persistenti per la conservazione a lungo termine del materiale delle chiavi simmetriche, messaggi criptati simmetricamente e attestazioni simmetriche
  • Revocatore designato per sostituire il meccanismo di Revocation Key deprecato
  • Firme di attestazione per facilitare le certificazioni di terze parti attestate dalla prima parte (1PA3PC).
  • Chiavi superate per facilitare la transizione a nuove chiavi
  • Interfaccia OpenPGP senza stato (SOP)
  • Estensioni al RFC 3156(new window) (PGP/MIME)

Specifiche e miglioramenti ai meccanismi di scoperta delle chiavi basati sulla rete

  • Protocollo Keyserver HTTP (HKP)
  • Directory Chiavi Web (WKD)

Puoi trovare ulteriori dettagli sui temi proposti qui(new window).

Specificazione e implementazioni

L’aggiornamento “crypto refresh” allo standard OpenPGP è attualmente in fase di revisione dal Security Area Director dell’IETF. Una volta che il documento supererà questa revisione, sarà pubblicato come un nuovo standard.

La specifica è stata co-autorata da Daniel Huigens di Proton, Justus Winter di Sequoia-PGP e Niibe Yutaka della Free Software Initiative of Japan (FSIJ). È stata curata da Paul Wouters di Aiven. I presidenti del Working Group, Daniel Kahn Gillmor dell’American Civil Liberties Union (ACLU) e Stephen Farell del Trinity College Dublin, hanno guidato il processo. Vorremmo ringraziarli e tutti gli altri che hanno contribuito al crypto refresh per aver aiutato a rendere internet più sicuro!

Abbiamo già implementato il crypto refresh in OpenPGP.js e GopenPGP, le due librerie OpenPGP open-source mantenute da Proton. A breve rilasceremo nuove versioni con questi miglioramenti affinché qualsiasi applicazione che utilizza queste librerie, inclusi Proton Mail, Proton Drive, Proton Pass e molte altre, possano beneficiare dei miglioramenti di sicurezza e prestazione del crypto refresh.

Desideriamo anche ringraziare il Sovereign Tech Fund(new window), un’iniziativa finanziata dal Ministero Federale Tedesco per gli Affari Economici e l’Azione per il Clima che supporta i progetti open-source contribuendo all’infrastruttura digitale che serve l’interesse pubblico, per aver finanziato l’implementazione del crypto refresh in OpenPGP.js e GopenPGP(new window).

Puoi controllare i progressi dell’implementazione di varie librerie OpenPGP, inclusi OpenPGP.js e GopenPGP, nei risultati della Suite di Test di Interoperabilità OpenPGP per il crypto refresh(new window). Sequoia-PGP ha sviluppato questa suite di test, che verifica le implementazioni OpenPGP per l’interoperabilità per assicurare che i messaggi di posta elettronica possano essere inviati tra qualsiasi due utenti, indipendentemente dall’applicazione o dall’implementazione OpenPGP che utilizzano.

Impatto

PGP è utilizzato per proteggere numerosi servizi Proton come Proton Mail, Proton Drive e Proton Pass, ma sono ben lontani dall’essere gli unici. Thunderbird, il popolare client di posta elettronica desktop, ha supporto integrato per OpenPGP. Mailvelope e Flowcrypt, entrambe estensioni del browser che utilizzano OpenPGP.js, consentono a chiunque di criptare end-to-end le proprie email utilizzando OpenPGP anche se il proprio provider di posta elettronica non supporta la crittografia end-to-end. Quest’ultimo offre anche app mobili per Android e iOS. Tutte queste applicazioni, e molte altre, fanno parte dell’ecosistema OpenPGP, consentendo agli utenti di inviare messaggi criptati in modo interoperabile senza essere vincolati a un singolo fornitore o applicazione. Lo standard aperto favorisce l’innovazione e previene il lock-in, beneficiando infine gli utenti finali.

Grazie al crypto refresh, i milioni di persone che utilizzano queste applicazioni beneficeranno di tutti i miglioramenti di sicurezza e prestazione menzionati in precedenza. I tuoi messaggi saranno criptati con maggiore sicurezza, sia che tu stia comunicando con un altro utente Proton o con un utente di qualsiasi altra applicazione che supporta OpenPGP.

Con il tuo sostegno, non vediamo l’ora di continuare a sviluppare crittografia interoperabile, open-source e basata su standard aperti per promuovere la missione di Proton e l’intero ecosistema della privacy open-source.

Questo lavoro è stato condotto da Daniel Huigens, Lara Bruseghini e Lukas Burkhalter del team di Crittografia Proton.

Proteggi la tua privacy con Proton
Crea un account gratuito

Articoli correlati

Una comunicazione sicura e fluida è il fondamento di ogni azienda. Con sempre più organizzazioni che proteggono i loro dati con Proton, abbiamo notevolmente ampliato il nostro ecosistema con nuovi prodotti e servizi, dal nostro gestore di password al
what is a brute force attack
Nel contesto della cybersecurity, un termine che spesso si incontra è attacco brute force. Un attacco brute force è qualsiasi attacco che non si basa sulla raffinatezza, ma utilizza la pura potenza di calcolo per violare la sicurezza o addirittura la
La Sezione 702 del Foreign Intelligence Surveillance Act è diventata famigerata come giustificazione legale che consente ad agenzie federali come la NSA, la CIA e l’FBI di effettuare intercettazioni senza mandato, raccogliendo i dati di centinaia di
In risposta al crescente numero di violazioni dei dati, Proton Mail offre una funzionalità agli abbonati a pagamento chiamata Monitoraggio del Dark Web. Il nostro sistema verifica se le tue credenziali o altri dati sono stati diffusi su mercati illeg
Il tuo indirizzo email è la tua identità online, e lo condividi ogni volta che crei un nuovo account per un servizio online. Sebbene ciò offra comodità, lascia anche la tua identità esposta se gli hacker riescono a violare i servizi che utilizzi. Le
proton pass f-droid
La nostra missione in Proton è contribuire a creare un internet che protegga la tua privacy di default, assicuri i tuoi dati e ti dia la libertà di scelta. Oggi facciamo un altro passo in questa direzione con il lancio del nostro gestore di password