Versioni di formato PGP e ID chiave
Le versioni precedenti del formato chiave PGP presentano diversi problemi che potrebbero danneggiare la sicurezza. RFC 4880 spiega ulteriormente questi, riassunti molto brevemente:
- maggiori possibilità di collisione ID della chiave
- solo impronta digitale chiave di hash, non dimensione e algoritmo (di nuovo, maggiore possibilità di collisione di ID)
- uso di MD5, considerato non funzionante
Ad ogni modo, l'utilizzo di ID chiave breve è considerato una cattiva pratica , poiché la possibilità di duplicare le chiavi è piuttosto alta. Utilizza invece ID chiave lunghi o l'impronta digitale completa.
Algoritmi di crittografia asimmetrica
Ci sono principalmente tre scelte per la scelta degli algoritmi: DSA / Elgamal, RSA e curve ellittiche (ECDSA).
- DSA dipende molto dai buoni numeri casuali durante la generazione e l'utilizzo della chiave. Poiché ci sono stati diversi problemi con i generatori di numeri casuali, non è più raccomandato come algoritmo predefinito ( [1 ] , [ 2] , altro su Wikipedia ), anche se chiavi più piccole sono sufficienti (rispetto a RSA).
- RSA richiede dimensioni maggiori della chiave, ma è considerato sicuro per chiavi sufficientemente grandi. Le chiavi a 768 bit sono state rotte , le chiavi a 1024 bit potrebbero essere . Le chiavi a partire da 2048 bit sono considerate sicure e attualmente sono predefinite , le chiavi di 4096 bit < a href="https://wiki.debian.org/Subkeys?action=show&redirect=subkeys"> attualmente raccomandato da Debian e altri .
- Le curve ellittiche non sono ancora supportate a livello generale (GnuPG 2.1 le porterà, Google End to End le usa già) e la sicurezza delle curve selezionate dal NIST è ancora in dubbio (senza alcuna prova). Generalmente, le curve ellittiche sono considerate sicure.
Ho pubblicato ulteriori informazioni sulla scelta delle chiavi in un post Super utente .
Ulteriori impostazioni per l'hashing e la crittografia simmetrica
Le impostazioni predefinite di OpenPGP e GnuPG non soddisfano la massima sicurezza possibile per ragioni di compatibilità. È possibile modificare gli algoritmi preferiti (si desidera che gli altri vengano utilizzati durante la crittografia) utilizzando una firma speciale. In GnuPG, puoi crearlo usando gpg --edit-key
e aggiornando le preferenze usando
setpref SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
Per modificare le preferenze per la firma e la crittografia per gli altri, aggiungi queste linee a ~/.gnupg/gpg.conf
:
personal-digest-preferences SHA256
cert-digest-algo SHA256
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
Questi elenchi sono stati compilati da Ana Beatriz Guerrero López e ordinano l'hashing algoritmi, algoritmi di crittografia simmetrica e infine algoritmi di compressione ordinati da entropia / sicurezza più alte.
Non ci sono problemi con le chiavi, ma un po 'in relazione con queste impostazioni sono due problemi piuttosto teorici. Mister, Zuccherato ha proposto un attacco oracolo di decifrazione sulla modalità di feedback cifrato di OpenPGP , che può essere mitigato da sempre comprimere i dati che verranno crittografati; e Jallad, Katz, Schneier hanno proposto un attacco di testo cifrato scelto che può essere prevenuto usando il pacchetto di dati protetti dall'integrità di recente introduzione (in RFC 4880) (che è una scelta fatta dall'implementazione).