Werner Koch, sviluppatore principale e creatore del progetto GnuPG (GNU Privacy Guard), ha fondato il progetto LibrePGP, focalizzato sullo sviluppo di una specifica aggiornata, alternativa allo standard OpenPGP. Il fork è stato creato in risposta alle modifiche previste dal gruppo di lavoro IETF per il successivo aggiornamento della specifica OpenPGP (RFC-4880), che Koch ha percepito come problematiche in termini di mantenimento della compatibilità e sicurezza. Gli sviluppatori di supporto dei progetti GnuPG, RNP (implementazione di OpenPGP di Thunderbird) e Gpg4win temono che le modifiche previste possano essere dannose per le attuali implementazioni delle applicazioni basate su OpenPGP, i cui utenti si aspettano stabilità della specifica nel lungo periodo e non sono disposti a tollerare modifiche che compromettano la compatibilità.
LibrePGP include miglioramenti utili, sviluppati negli ultimi anni per la futura variante della specifica OpenPGP, ma esclude modifiche che potrebbero influire negativamente sulla compatibilità. Ad esempio, rispetto allo standard attuale RFC-4880, in LibrePGP sono state adottate funzionalità come:
- Supporto per l'algoritmo di crittografia Camellia (RFC-5581),
- Estensioni ECC (Elliptic Curve Cryptography) per OpenPGP (RFC-6637).
- Supporto obbligatorio per gli hash SHA2-256 (SHA-1 e MD5 sono considerati non raccomandati, e la possibilità di decifrare i dati senza verifica dell'integrità è completamente obsoleta).
- Aumento della dimensione dell'impronta a 256 bit.
- Supporto per lo schema di firma digitale EdDSA e curve ellittiche BrainpoolP256r1, BrainpoolP384r1, BrainpoolP512r1, Ed25519, Curve25519, Ed488 e X448.
- Supporto per l'algoritmo CRYSTALS-Kyber, protetto contro attacchi su computer quantistici.
- Supporto per le modalità di crittografia autenticata OCB (Offset codebook mode).
- Implementazione della quinta versione del formato di firma digitale con protezione dei metadati.
- Supporto per sotto-pacchetti estesi con firme digitali.
Principali elementi di critica della nuova specifica OpenPGP:
- Il gruppo di lavoro IETF ha cercato di reinventare lo standard e apportare modifiche significative che compromettono la compatibilità anziché aggiornare gradualmente la specifica.
- L'implementazione del supporto per la modalità di crittografia simmetrica GCM (Galois/Counter Mode), che è difficile da realizzare correttamente, escludendo la modalità OCB (Offset Codebook Mode), il cui brevetto è scaduto diversi anni fa.
- Aggiunta di pacchetti opzionali con riempimento casuale aggiuntivo per proteggere contro l'analisi del traffico. Secondo gli sviluppatori di LibrePGP, tali pacchetti con riempimento iniziale casuale non verificabile creano una minaccia di utilizzo per la creazione di canali nascosti di trasmissione dati e per eludere i sistemi di prevenzione delle perdite di dati. In passato, l'idea di includere il riempimento aggiuntivo era stata rifiutata, essendo considerata un aspetto a livello di applicazione piuttosto che di crittografia.
- Utilizzo di uno schema di crittografia ECDH modificato (variazione del formato OID), invece di utilizzare la variante già descritta nel RFC-6637 e implementata in PGP e GnuPG.
- Rimozione di alcune funzionalità utilizzate nella pratica, come il metodo classico di revoca delle chiavi, il flag "m" per contrassegnare i dati MIME e il flag "t" per separare i dati testuali da quelli binari (al posto del flag "t" è stato introdotto il flag "u" per il testo in codifica UTF-8).
- Rifiuto di includere nel nuovo formato delle firme la protezione dei metadati del file firmato (ad esempio, è possibile cambiare il nome del file senza violare la firma).
- Possibilità discutibile di aggiungere 'sale' alle firme (Salted signature) per rinforzare la protezione contro attacchi di collisione con un prefisso specificato. Un valore con sale può essere utilizzato come canale nascosto permanente per trasmettere 32 byte di dati nella firma.
- Spostamento dello standard verso l'uso principale per la comunicazione online, ignorando le esigenze di archiviazione a lungo termine dei dati.
I sostenitori di OpenPGP hanno già pubblicato critiche alla critica. Di conseguenza, se non si trova un compromesso, la divisione può portare a un aumento delle incompatibilità nelle implementazioni di OpenPGP/LibrePGP. Parzialmente, per risolvere questo problema, i programmatori di OpenPGP hanno fissato la quinta versione del formato delle firme in modo compatibile con LibrePGP e hanno iniziato a lavorare sulla sesta versione.
Fonte: opennet.ru
