OpenPGP Versione 6 (RFC 9580)
Dopo quasi nove anni di lavoro (la prima bozza è del novembre 2015) è stata finalmente formalizzata la nuova versione dello standard OpenPGP: RFC 9580, detta anche OpenPGP versione 6.
Le novità sono tante: quasi 200 pagine di specifiche contro le 90 di RFC4880, alle quali bisognerà aggiungere le specifiche sull’uso degli algoritmi post-quantum (che si è scelto di definire in una RFC a parte) più una serie di standard “transitori” in via di definizione pensati per facilitare la migrazione. La transizione sarà quindi presumibilmente un processo piuttosto lungo, anche perché le due implementazioni più diffuse (GnuPG e la libreria rnp utilizzata dal client di posta Thunderbird) sembrano intenzionate a non riconoscere il nuovo standard IETF ma a definirne uno alternativo, chiamato LibrePGP, in buona parte incompatibile.
Tra le implementazioni che intendono recepire le nuove specifiche trovo molto interessante Sequoia, scritta in Rust e che contiene tra le altre cose un componente chiamato Chameleon, ancora in fase iniziale di sviluppo, che punta ad essere un drop-in replacement per GnuPG. In questo modo potremo usare le nuove funzionalità usando le righe di comando, gli script e i frontend a cui siamo abituati.
Principali novità:
- La più evidente per l’utente finale: fingerprint chiavi più lunga, 64 cifre esadecimali
- Nuovo formato (“versione 6”) per chiavi, firme e messaggi
- Nuovi algoritmi:
- Firma e Cifratura asimmetrica: Ed25519 e X25519 (MUST); Ed448 e X448 (SHOULD)
- Cifratura simmetrica AEAD: OCB (MUST); EAX e GCM (MAY)
- Memory-hard S2K: Argon2 (RECOMMENDED)
- Hashing: SHA3 (MAY)
- Key derivation: HKDF
- Firme non deterministiche
- Misure contro l’analisi del traffico (Padding packet)
- Deprecazione algoritmi obsoleti (RSA<3072, DSA, ElGamal, MD5, SHA1, RIPEMD, IDEA, 3DES)
- Molto altro (vedi RFC 9580 Appendice B).
Link utili
- RFC 9580
- LibrePGP, A Critique on the OpenPGP Updates
- Andrew Gallagher, A Critique on “A Critique on the OpenPGP Updates”
- Per approfondire gli internals:
- Presentazioni
- Daniel Huigens, Modernizing email encryption: the crypto refresh of OpenPGP - FOSDEM 2024
- Justus Winter, Sequoia PGP, sq, gpg-from-sq, v6 OpenPGP, and Debian - DebConf 2024
- Holger Levsen. Chameleon - the easy way to try out Sequoia - OpenPGP written in Rust - DebConf 2024
- Fabrizio Tarizzo. (Open|Libre)PGP - Novità, controversie e sviluppi futuri - HackЯocchio 2024
- Stato di avanzamento dell’implementazione delle nuove funzionalità: OpenPGP interoperability test suite
- Implementazioni
- GOpenPGP (Go)
- OpenPGP.js (Javascript)
- PGPainless (Java)
- PGPy (Python)
- Sequoia (Rust)
- Bouncy Castle (C#) - la mia Pull Request in corso di revisione
- - boost:
- - preferiti:
- - risposte: