Pretty Good Privacy (PGP)

Autore:Stefano Tagliaferri
Adattamento per PIDO/2:Mirco Miranda
Data:26/11/2002
Revisione:1.04
Progetto:PIDO/2 (http://www.ecomstation.it/pido2/)
Note: L'articolo è di proprietà di Stefano Tagliaferri e non può essere riprodotto per nessun motivo in mancanza dell'autorizzazione dell'autore.
Questo documento è anche disponibile su MerlinoBBS.
Fonti: Guida Introduttiva al Programma di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy) di Giorgio Chinnici V1.1 - Aprile 1995, PGP - Pretty Good Privacy, Introduzione all'utilizzo del PGP di EnricoZimuel.net.

Indice

  1. Disponibilità sul Web ed operazioni preliminari
    1. Introduzione al PgP e all'uso della crittografia
    2. Algoritmi a chiave simmegrica
    3. Algoritmi a chiave asimmetrica
  2. Interfaccia grafica per la gestione delle chiavi pubbliche e private tramite il presentation Manager
  3. Installazione del Pgp 5.0i e dell'interfaccia PM per la gestione dei certificati digitali con PMMail
  4. Compatibilità con il PgP 2.6.3i

1. Disponibilità sul Web ed operazioni preliminari

Scaricare il pacchetto software del PGP 5.0i, in particolare la versione internazionale (non quella valida per gli USA). L'utilizzo del Pgp non è consentito alle società che hanno scopo di lucro.

Download: http://www.pgpi.org/cgi/download.cgi?filename=pgp50ios2ga.zip
Sito Web del PgP internazionale: http://www.pgpi.org/

E' disponibile anche la versione GNU del PGP:
http://www.tobiashuerlimann.de/GnuPG/

(Torna all'Indice)

1.1 Introduzione al PGP e all'uso della crittografia

Chiunque si interessa di questioni inerenti la privacy digitale avrà sentito parlare del software Pretty Good Privacy (PGP). Il PGP è un programma che utilizza tecniche di crittografia e si è diffuso in tutto il mondo a partire dai primi anni '90: funziona su qualsiasi computer ed è praticamente gratuito. PGP non si basa su un'algoritmo in particolare, ma è in grado di gestire quasi tutti quelli più diffusi: RSA, IDEA, DSS (compatibile anche con GnuPG). Quando abbiamo la necessità di rendere sicuri i nostri dati, cioè che possano esser letti solo da chi vogliamo noi, ricorriamo all'uso degli algoritmi di crittografia.
Crittografare significa codificare un documento in modo che possa essere decifrato solo da chi ne conosce il segreto: la crittografia è un'arte antichissima che appunto consiste nel rendere "incomprensibile" un certo messaggio ad eventuali occhi estranei. Facciamo un esempio di crittografia: ad ogni lettera corrisponde un numero compreso da 1 a 26. Mettendosi daccordo con l'interlocutore, che avrà la facolta di leggere il messaggio, si sostituisce una lettera con un numero: ad esempio la lettera "A" viene sostituita dal numero 1, "B" con 2 ecc... La trasposizione di ogni lettera in un numero fisso di posizioni rappresenta ciò che viene chiamato algoritmo; il numero di posizioni di cui trasporre le lettere rappresenta la chiave di cifratura o di codifica. Algoritmo e chiave sono le due componenti principali di un sistema di crittografia, sono cioè parti che consentono il passaggio del messaggio in chiaro al messaggio cifrato. L'esempio che è stato ora citato rappresenta un sistema di crittografia molto debole.

La crittografia, nel corso dei secoli, data la sua importanza in ambito militare e strategico, è divenuta una tecnica estremamente complessa capace di utilizzare algoritmi derivati dalle più avanzate conoscenze nel campo della matematica. Con la crescita della complessità degli algoritmi si è arrivati a definire alcuni requisiti che sono la base di qualsiasi sistema crittografico per essere considerato sufficientemente robusto.

La sicurezza del sistema non deve dipendere dalla segretezza dell'algoritmo: nei sistemi crittografici robusti anche la totale conoscenza dell'algoritmo non permette in nessun modo di comprometterne la sicurezza. Nella fase di valutazione dell'affidabilità di un sistema crittografico sono stati presi in considerazione quei sistemi di crittografia i cui autori hanno messo a disposizione tutti gli algoritmi impiegati: nel caso del software gli algoritmi sono i codici sorgenti. Il PGP utilizza algoritmi noti e nonostante la dimensione pubblica garantisce un'ottima sicurezza. Il motivo per il quale viene consigliato il PGP è semplice: si tratta di un programma sviluppato alla luce del sole, sotto gli sguardi attenti di una vasta comunità di esperti, inoltre viene distribuito completo dei sorgenti. Riflettiamo anche sul fatto che i sistemi crittografici proprietari sono contorniati da leggende ed illazioni su possibili backdoors che garantirebbero accesso solo a chi conosce l'algoritmo.

I moderni metodi di crittografia si dividono in: I principali algoritmi a chiave simmetrica sono: DES, IDEA e RC4. Un'algoritmo a chiave simmetrica ha il vantaggio che le chiavi usate sono molto corte, quindi facili da ricordare e che le operazioni di codifica/decodifica possono essere effettuate anche da computers poco potenti. Lo svantaggio maggiore è che bisogna utilizzare una chiave per ogni persona con la quale si vuole comunicare, inoltre i due utenti dovrebbero scambiarsi le chiavi incontrandosi di persona per evitare che le stesse vengano intercettate.
Gli algoritmi a chiave asimmetrica più diffusi sono RSA e DSS. Questi due algoritmi hanno l'enorme vantaggio di essere molto sicuri. Non dobbiamo preoccuparci di trasmettere segretamente la chiave di crittazione, anzi, potremmo inviarla in chiaro tramite posta elettronica. L'unico svantaggio di questi algoritmi è che sono molto lenti e richiedono dei processori molto potenti per svolgere le operazioni di codifica/decodifica.

La crittografia a chiave asimmetrica si basa su una coppia di chiavi:

una chiave pubblica che serve unicamente per codificare il messaggio
una chiave segreta che serve unicamente per decodificare il messaggio


E' come se una cassaforte avesse avesse due chiavi distinte: una usata per aprire e l'altra utilizzata per chiudere.

Il PGP utilizza la crittografia asimmetrica: ogni utente dispone di una propria coppia di chiavi: la chiave segreta, nominata chiave privata, che viene tenuta nascosta e non viene rivelata a nessuno e la chiave pubblica che viene diffusa e può anche essere depositata presso degli archivi pubblici (keyservers) a disposizione di chi la desideri prelevare per scambiare dei messaggi sicuri. Chiunque voglia comunicare con noi deve disporre della nostra chiave pubblica; la chiave pubblica può solo crittare il messaggio e nessuno che non ne sia il destinatario avrà la capacità di decrittarlo: il destinatario del messaggio utilizzerà la propria corrispondente chiave privata (segreta) per decrittare quel messaggio.

L'unico medoto possibile per decifrare il messaggio in assenza della chiave privata è quello dell'attacco a forza bruta: dovremmo far provare al nostro computer tutte le chiavi possibili ma anche uno dei più moderni computer impiegherebbe centinaia di anni per trovare una chiave a 1024 bit, immaginiamo dunque quanto impiegherebbe per trovare una chiave a 2048 o 4096 bit.

Nonostante ciò il PGP non è un sistema sicuro, nessun sistema di crittografia è sicuro e mai potrà esserlo. La sicurezza fornita dal PGP è assolutamente relativa per quanto molto vicina a quella assoluta: essa dipende da una serie di fattori tra cui quello umano. E' perfettamente inutile speculare su milioni di anni di calcolo per spezzare una chiave se poi la propria chiave segreta e la propria frase di accesso rimangono a disposizione di chiunque sulla propria scrivania o sulla propria agenda.

(Torna all'Indice)

1.2 Algoritmi a chiave simmetrica

DES: Data Encryption Standard - questo algoritmo nasce negli anni '70 e verrà largamente utilizzato negli Stati Uniti in ambito governativo. Il DES è in grado di operare su blocchi di dati a 64bit mediante chiavi lunghe 56bit. Oggi il DES non viene più utilizzato perchè insicuro e ne viene utilizzata una sua variante: il 3DES (triple DES) che prevede questo algoritmo moltiplicato per 3 volte.

IDEA: International Data Encryption Algoritm - questo algoritmo nasce nel 1991 ed è molto simile al DES. IDEA lavora su blocchi di dati a 64bit utilizzando però chiavi a 128bit che rendono questo metodo molto più sicuro del precedente. IDEA è coperto da brevetto quindi non può essere utilizzato liberamente.

RC4: Algoritmo sviluppato da Ron Rivest per conto della RSA è veloce ed utilizza chiavi di lunghezza differente. Inizialmente rimase segreto per circa 7 anni sino a quando venne pubblicato l'algoritmo su un newsgroup. Questo sistema effettua 3 crittazioni consecutive come il 3DES di cui risulta decisamente più veloce; viene principalmente utilizzato nelle applicazioni che implementano la sicurezza nelle connessioni web.

(Torna all'Indice)

1.3 Algoritmi a chiave asimmetrica

DSS: Basato sull'algoritmo Diffie-Hellman, la sua sicurezza si basa sulla difficoltà del calcolo dei logaritmi ed è tanto più sicuro quanto più grande è la sua chiave. Dal momento che è scaduto il suo brevetto viene comunemente utilizzato dal PGP.

RSA: identifica Rivest Shamir Adelman, è senza dubbio l'algoritmo più utilizzato e la sua sicurezza si basa sulla difficoltà di fattorizzazione dei grandi numeri ed inoltre può utilizzare chiavi molto lunghe (fino a 2048 bit). Il suo brevetto è scaduto a Settembre del 2000 e da allora viene utilizzato liberamente nel PGP.

(Torna all'Indice)

2. Interfaccia grafica per la gestione delle chiavi pubbliche e private tramite il presentation Manager

Esiste anche un programma in modalità PM, che permette una comoda gestione dei certificati digitali:

Pagina Web di PGP Tools: http://bohn-stralsund.de/pgpkeyse.htm
Pagine Web per effettuare il download: http://bohn-stralsund.de/download.htm
Download alternativo: http://hobbes.nmsu.edu/pub/os2/util/encrypt/pgpk101.zip

(Torna all'Indice)

3. Installazione del Pgp 5.0i e dell'interfaccia PM per la gestione dei certificati digitali con PMMail

Questa procedura è valida per chi già utilizzava il PGP 2.63i ed è stata anche testata su computer OS/2 senza Pgp. Purtroppo non è stato possibile convertire il vecchio archivio delle chiavi, quindi è stato generato un nuovo certificato digitale, la nuova chiave pubblica è disponibile a richiesta. PMMail riconoscerà automaticamente il nostro certificato digitale e ci permetterà di crittografare i messaggi. Sono graditi contributi per la gestione del Pgp 5.0i con altri client per la gestione della posta elettronica.

(Torna all'Indice)

4. Compatibilità con il PGP 2.6.3i

Nella directory di root del pgp5 esite il file di configurazione pgp.cgf. La sintassi inclusa nella distribuzione consente già di operare al meglio ma non gestisce la compatibilità con le versioni precedenti del PGP come la notissima 2.6.3i. E' necessario editare il file modificando questo tag:

# There is some "odd" behavior with PGP and how it works with it's temporary
# keyrings. For the majority of users this is not a issue other than PGP
# will run a little slower when working with large keyrings. Unfortunatly
# if you are using my PGP Rexx scripts it becomes a *big* issue. This can
# be fixed by setting version to 4. There is a drawback to this though, with
# the version set to 4 PGP generates messages that are *not* compatiable with
# 2.6.x PGP versions. So if you need backward compatability with 2.6.x then
# set version to 3 otherwise leave it at 4.

version = 3

In questo modo la versione 5.0i di PGP cripterà i messaggi in maniera compatibile con le vecchie versioni.

(Torna all'Indice)