PGP sta per Pretty Good Privacy. È un software di crittografia progettato per fornire privacy, sicurezza e autenticazione per i sistemi di comunicazione online. Phil Zimmerman è il nome dietro il primo programma PGP, che secondo lui è stato reso disponibile gratuitamente a causa della crescente domanda di privacy da parte della società.
Dalla sua creazione nel 1991, sono state create molte versioni del software PGP. Nel 1997, Phil Zimmerman presentò una proposta all'Internet Engineering Task Force (IETF) per la creazione di uno standard PGP open source. La proposta è stata accettata e ha portato alla creazione del protocollo OpenPGP, che definisce formati standard per chiavi e messaggi di crittografia.
Sebbene inizialmente utilizzato solo per proteggere messaggi e allegati e-mail, PGP viene ora applicato a un'ampia gamma di casi d'uso, tra cui firme digitali, crittografia completa del disco e protezione della rete.
PGP era inizialmente di proprietà della società PGP Inc, che è stata successivamente acquisita da Network Associates Inc. Nel 2010, Symantec Corp. ha acquisito PGP per 300 milioni di dollari e il termine è ora un marchio utilizzato per i suoi prodotti compatibili con OpenPGP.
Come funziona?
PGP è tra i primi software ampiamente disponibili a implementare la crittografia a chiave pubblica. È un sistema crittografico ibrido che utilizza sia la crittografia simmetrica che asimmetrica per raggiungere un elevato livello di sicurezza.
In un processo di crittografia di testo di base, il testo normale (dati che possono essere chiaramente compresi) viene convertito in testo cifrato (dati illeggibili). Ma prima che abbia luogo il processo di crittografia, la maggior parte dei sistemi PGP esegue la compressione dei dati. Comprimendo i file di testo prima di trasmetterli, PGP risparmia spazio su disco e tempo di trasmissione, migliorando allo stesso tempo la sicurezza.
Dopo la compressione del file, inizia il processo di crittografia vero e proprio. In questa fase, il file di testo in chiaro compresso viene crittografato con una chiave monouso, nota come chiave di sessione. Questa chiave viene generata in modo casuale utilizzando la crittografia simmetrica e ogni sessione di comunicazione PGP ha una chiave di sessione univoca.
La chiave di sessione(1) stessa viene quindi crittografata utilizzando la crittografia asimmetrica: il destinatario previsto (Bob) fornisce la sua chiave pubblica(2) al mittente del messaggio (Alice) in modo che possa crittografare la chiave di sessione. Questo passaggio consente ad Alice di condividere in modo sicuro la chiave di sessione con Bob su Internet, indipendentemente dalle condizioni di sicurezza.

La crittografia asimmetrica della chiave di sessione viene solitamente eseguita utilizzando l'algoritmo RSA. Molti altri sistemi di crittografia utilizzano RSA, incluso il protocollo Transport Layer Security (TLS) che protegge gran parte di Internet.
Una volta trasmessi il testo cifrato del messaggio e la chiave di sessione crittografata, Bob può utilizzare la sua chiave privata(3) per decrittografare la chiave di sessione, che viene quindi utilizzata per decrittografare il testo cifrato riportandolo in testo normale.

A parte il processo di crittografia e decrittografia di base, PGP supporta anche le firme digitali, che svolgono almeno tre funzioni:
Autenticazione: Bob può verificare che il mittente del messaggio fosse Alice.
Integrità: Bob può essere sicuro che il messaggio non è stato modificato.
Non ripudio: dopo che il messaggio è stato firmato digitalmente, Alice non può affermare di non averlo inviato.
Casi d'uso
Uno degli usi più comuni di PGP è proteggere le email. Un'e-mail protetta da PGP viene convertita in una serie di caratteri che non possono essere letti (testo cifrato) e possono essere decrittografati solo con la chiave di decrittografia corrispondente. I meccanismi di funzionamento sono in gran parte gli stessi per la protezione dei messaggi di testo, e ci sono anche alcune applicazioni software che consentono di implementare PGP sopra altre applicazioni, aggiungendo un sistema di crittografia ai servizi di messaggistica non protetti.
Sebbene PGP venga utilizzato principalmente per proteggere le comunicazioni Internet, può essere utilizzato anche per crittografare singoli dispositivi. In questo contesto, PGP può essere applicato alle partizioni del disco di un computer o dispositivo mobile. Quando si crittografa il disco rigido, all'utente verrà richiesto di fornire una password ogni volta che si avvia il sistema.
Vantaggi e svantaggi
Grazie all'uso combinato della crittografia simmetrica e asimmetrica, PGP consente agli utenti di condividere in modo sicuro informazioni e chiavi crittografiche su Internet. Essendo un sistema ibrido, PGP beneficia sia della sicurezza della crittografia asimmetrica che della velocità della crittografia simmetrica. Oltre alla sicurezza e alla velocità, le firme digitali garantiscono l'integrità dei dati e l'autenticità del mittente.
Il protocollo OpenPGP ha consentito l'emergere di un ambiente competitivo standardizzato e le soluzioni PGP sono ora fornite da varie aziende e organizzazioni. Tuttavia, tutti i programmi PGP conformi agli standard OpenPGP sono compatibili tra loro. Ciò significa che i file e le chiavi generati in un programma possono essere utilizzati senza problemi in un altro.
Per quanto riguarda gli svantaggi, i sistemi PGP non sono così facili da usare e da comprendere, soprattutto per gli utenti con poche conoscenze tecniche. Inoltre, molti considerano la lunga lunghezza delle chiavi pubbliche piuttosto scomoda.
Nel 2018, la Electronic Frontier Foundation (EFF) ha pubblicato una grave vulnerabilità chiamata EFAIL. EFAIL ha consentito agli aggressori di sfruttare il contenuto HTML attivo nelle e-mail crittografate per ottenere l'accesso alle versioni in chiaro dei messaggi.
Tuttavia, alcuni dei problemi descritti da EFAIL erano già noti alla comunità PGP dalla fine degli anni '90, e in effetti le vulnerabilità sono legate a diverse implementazioni dei client di posta elettronica e non al PGP stesso. Quindi, nonostante i titoli allarmanti e fuorvianti, PGP non è danneggiato e rimane altamente sicuro.
Insomma
Sin dal suo sviluppo nel 1991, PGP è stato uno strumento essenziale per la protezione dei dati ed è ora utilizzato in un'ampia gamma di applicazioni, fornendo privacy, sicurezza e autenticazione per vari sistemi di comunicazione e fornitori di servizi digitali.
Sebbene la scoperta del difetto EFAIL nel 2018 abbia sollevato notevoli preoccupazioni sulla fattibilità del protocollo, la tecnologia di base è ancora considerata robusta e crittografica. Vale la pena notare che diverse implementazioni PGP possono presentare diversi livelli di sicurezza.

