header image
Home arrow Libra Security arrow Cerification arrow Pretty Good Privacy
Pretty Good Privacy

Pretty Good Privacy (PGP) è un programma che permette di usare autenticazione e privacy crittografica. Nelle sue varie versioni è probabilmente il crittosistema più usato al mondo. In Applied Cryptography, il crittografo Bruce Schneier lo ha descritto come il modo per arrivare "probabilmente il più vicino alla crittografia di livello militare".

PGP è stato originariamente sviluppato da Phil Zimmermann nel 1991. Il nome gli è stato suggerito da una drogheria di Lake Wobegon, la città natale dello speaker radio Garrison Keillor. La drogheria si chiamava "Ralph's Pretty Good Grocery" ("la drogheria niente male di Ralph") e il suo slogan era "se non lo puoi trovare da Ralph, probabilmente puoi anche farne a meno".

PGP ed email

Anche se col PGP è possibile cifrare ogni tipo di dato o file, l'uso prevalente è per proteggere le e-mail che non hanno un sistema di sicurezza nativo. Il PGP e l'S/MIME sono i due sistemi di sicurezza per le e-mail attualmente specificati come standard dal NIST.

Sono disponibili plug-in che implementano le funzionalità del PGP per molte delle più popolari applicazioni e-mail (come Outlook, Outlook Express, Eudora, Evolution, Mutt, Mozilla Thunderbird, Mail e molti altri). Molti sono inclusi con molte distribuzioni PGP.

Dal punto di vista della sicurezza, ognuno di questi plug-in è un PGP indipendente; ognuno potrebbe essere affetto da errori di implementazione o interagire in maniera insicura con il PGP o altri software. Utilizzare questi plug-in non fornisce necessariamente lo stesso livello di sicurezza assicurato dall'uso del PGP in maniera corretta e come applicazione a se stante.

Al più, questi programmi aggiuntivi possono fornire la stessa sicurezza del PGP e nel caso peggiore potrebbero non fornire alcuna sicurezza.

Distinguere tra questi casi non è banale neanche per gli esperti nel campo.

Il miglior consiglio per il normale utente è di provare l'intero sistema mandando un messaggio a se stesso o ad un conoscente periodicamente, specialmente dopo ogni modifica od aggiornamento del software.

La modalità di utilizzo più sicura consiste nel cifrare a mano e firmare messaggi ed e-mail manualmente. Ad ogni modo, come tutte le altre considerazioni sulla sicurezza, si arriva necessariamente ad un compromesso fra i vincoli del sistema e le esigenze dell'utente.

Comunque, qualunque sia il rischio in un sistema di sicurezza di qualità, non utilizzarlo è comunque più rischioso.

Come funziona PGP

PGP usa sia la crittografia asimmetrica (detta anche a chiave pubblica) sia quella simmetrica, e fino ad un certo punto una Infrastruttura a chiave pubblica (PKI) con qualche somiglianza (ma molte differenze) con lo standard dei certificati d'identità X.509, che precede.

PGP usa la crittografia a chiave asimmetrica, nella quale il destinatario del messaggio ha generato precedentemente una coppia di chiavi collegate fra loro; una chiave pubblica ed una privata.

La chiave pubblica del destinatario serve al mittente per cifrare una chiave comune (detta anche chiave segreta o convenzionale) per un algoritmo di crittografia simmetrica; questa chiave viene quindi usata per cifrare il testo in chiaro del messaggio.
Molte chiavi pubbliche di utenti PGP sono a disposizione di tutti dai numerosi key server (server delle chiavi) PGP sparsi per il mondo, che operano come mirror reciproci.

Il destinatario di un messaggio protetto da PGP lo decifra usando la chiave di sessione con l'algoritmo simmetrico. La chiave di sessione è inclusa nel messaggio in maniera criptata e viene decifrata usando la chiave privata del destinatario.
L'utilizzo di due cifrature è giustificato dalla notevole differenza nella velocità di esecuzione tra una cifratura a chiave asimmetrica ed una a chiave simmetrica (l'ultima è generalmente molto più veloce). Ci sono inoltre delle vulnerabilità crittografiche nell'algoritmo a chiave asimmetrica utilizzato da PGP quando viene usato per cifrare direttamente un messaggio.

Una strategia simile può essere usata per capire se un messaggio è stato alterato, o se è stato mandato effettivamente da chi dice di essere il mittente. Per fare entrambe le cose, il mittente usa PGP per 'firmare' il messaggio con l'algoritmo di firma RSA o DSA. Per fare questo, PGP calcola un 'hash' (anche chiamato message digest) dal testo in chiaro, e crea poi da questo hash la firma digitale usando la chiave privata del mittente.

Il destinatario del messaggio calcola il message digest dal testo in chiaro decifrato, e poi usa la chiave pubblica del mittente ed il valore del message digest firmato con l'algoritmo di firma. Se la firma corrisponde al message digest del testo in chiaro ricevuto, si presuppone (con un grande margine di sicurezza) che il messaggio ricevuto non sia stato alterato ne accidentalmente ne volontariamente da quando è stato firmato. Questa presunzione si basa su diverse considerazioni: è poco probabile, visti gli algoritmi ed i protocolli usati in PGP, che un avversario possa creare una firma per un messaggio qualsiasi, e quindi un messaggio ricevuto che superi questo test dev'essere stato mandato da chi dice di essere il mittente. Gli esperti in sicurezza chiamano spesso questa proprietà 'non-repudation', non si può ripudiare la paternità del messaggio.

In ogni caso chiunque possegga la parte privata delle chiavi può facilmente creare una firma corretta per ogni cosa. In un mondo di e-mail virus, rootkits,Trojan, ed altri malware, ed agenti dell'FBI con ordinanze della corte, il termine 'non-repudation' dev'essere usato con le pinze, siccome le chiavi private possono essere compromesse (e copiate) in maniera illegale. Ma questa è una affermazione valida per 'tutti' i sistemi che utilizzano algoritmi a chiave asimmetrica per la firma digitale e quindi inglobino il concetto di non-repudation. PGP non è particolarmente vulnerabile, ma Zimmerman è stato saggio e non solo divertente, nel chiamare il suo sistema "pretty good" (quasi buono).

Sia quando si cifra un messaggio che quando si verifica la firma, è fondamentale che la chiave pubblica utilizzata per mandare il messaggio ad una persona o ente appartenga effettivamente al destinatario. Scaricare una chiave pubblica da qualche parte non è per niente una garanzia di questa corrispondenza; lo spoofing intenzionale od accidentale è possibile. PGP include delle precauzioni per la distribuzione delle chiavi pubbliche in 'certificati d'identità' i quali sono costruiti crittograficamente, in maniera tale da rendere qualsiasi manomissione o disturbo accidentale facilmente rivelabile. Purtroppo rendere un certificato effettivamente impossibile da modificare senza lasciare tracce non è sufficiente. Questo può prevenire la manomissione solo dopo la creazione del certificato, non prima. Gli utenti devono anche verificare in qualche maniera che la chiave pubblica in un certificato appartenga effettivamente alla persona o ente che ne reclama la paternità.
Per questo PGP racchiude un sistema di 'voto' dei certificati; è chiamata web of trust (letteralmente, "rete di fiducia"). PGP ha anche sempre incluso una maniera per cancellare i certificati d'identità che possono essere diventati inutilizzabili; questo è, più o meno, l'equivalente dei certificate revocation list (certificati di revoca) dei sistemi PKI più centralizzati. Le versioni più recenti di PGP supportano anche una data di scadenza per i certificati.

Questa cautela obbligatoria nell'accettare le chiavi pubbliche appartenenti veramente ad altri utenti non è una prerogativa di PGP. Tutti i sistemi di crittografia a chiave pubblica e privata hanno lo stesso problema, anche se in apparenza un po' diversi, e non esiste ancora una soluzione pienamente soddisfacente. Il sistema di PGP, almeno, permette all'utente di decidere se usare o meno il sistema di voto, mentre molti altri sistemi PKI richiedono invece che ogni certificato venga confermato da una CA (Certification Authority) centrale.

 
Cerca su Libra Srl
Links