Copyright © 1986 Università di Firenze.All rights reserved.
Free license available.
revisori: Franco Pirri e Maurizio Lunghi
GENERALITÀ 
Funzionamento
Installazione
Status e Versioni
La principale caratteristica di PGP risiede nell'utilizzo combinato di un algoritmo simmetrico e di uno asimmetrico.
Le chiavi pubbliche sono conservate in certificati di chiave che comprendono l'ID del proprietario (ovvero il suo nome) , il momento (tempo) in cui la chiave è stata generata, e la chiave stessa. I certificati pubblici contengono le chiavi pubbliche, mentre i certificati segreti contengono le chiavi segrete. Ogni chiave segreta è anche cifrata con la propria frase chiave, nel caso venisse rubata.
Un file di chiavi, o "portachiavi" contiene uno o più di questi certificati: il portachiavi pubblico contiene certificati pubblici, mentre il portachiavi segreto contiene certificati segreti.
La selezione del messaggio viene cifrata con la chiave segreta per formare la firma. I documenti sono firmati facendoli precedere dai certificati di firma, che contengono l'id-di-chiave della chiave usata per produrli, una selezione del messaggio firmata con la chiave segreta e il tempo in cui la firma è stata fatta. L' id-di-chiave viene usato dal destinatario per trovare la chiave pubblica del mittente e controllare la firma; il suo software trova automaticamente la chiave pubblica e l' id-di-chiave nel portachiavi pubblico.
Ci riferiremo per comodità all'ambiente DOS; tutto ciò che si dirà potrà comunque essere applicato su altri sistemi.
Dopo la prima stesura del programma ad opera di Philip Zimmermann negli Stati Uniti, altre persone hanno lavorato sulle versioni successive per meglio adattarle a esigenze diverse.
PGP esiste in numerose versioni differenti, le più popolari disponibili al giorno d'oggi sono:
Essa è la più flessibile e aggiornata oggi disponibile (presenta delle versioni dell'eseguibile "pgp.exe" complete a 32 bits); È vietata negli Stati Uniti. Si può scaricare tramite ftp://ftp.ifi.uio.no/pub/pgp/pc, dove è disponibile per tutti i tipi di piattaforme.
PGP: funzionamento
Abbiamo già detto nei capitoli precedenti che il vantaggio della crittografia convenzionale (a chiave segreta) rispetto a quella a chiave pubblica consiste nel guadagno in termini di tempo di elaborazione, viceversa la crittografia asimmetrica è svincolata dalla necessità di avere a disposizione un canale sicuro per lo scambio della chiave (in quanto la chiave pubblica può essere distribuita in modo capillare attraverso una rete di comunicazione).
Inoltre la crittografia a chiave pubblica permette
di firmare un messaggio (con un utilizzo inverso delle due chiavi) per impedire la sua falsificazione e garantire l'autenticazione del mittente.
Ecco dunque come opera PGP: la cifratura del messaggio (che può essere a volte molto lungo) è effettuata usando un metodo convenzionale e veloce di alta qualità ( IDEA ), con una chiave temporanea generata in maniera assolutamente casuale; la chiave pubblica ( RSA ) del destinatario viene usata quindi per cifrare la chiave temporanea.
Il testo cifrato e la chiave cifrata vengono successivamente inviati al destinatario, il quale usa la propria chiave segreta per recuperare la chiave temporanea e utilizza quest'ultima per decifrare il messaggio originale sfruttando lo stesso algoritmo a chiave simmetrica adoperato dal mittente.
Le chiavi sono anche indicate nel loro portachiavi con il loro "id-di-chiave" che è una abbreviazione della chiave pubblica (i 64 bits meno significativi). Quando questo id-di-chiave è mostrato, per ulteriore semplicità si usano solo gli ultimi 32 bits. Mentre molte chiavi possono avere lo stesso ID (nome del proprietario), a tutti i fini pratici non ci sono due chiavi con lo stesso id-di-chiave.
PGP usa una selezione del messaggio ("message digest_MD5") per creare le firme. Essa è una funzione del messaggio formata da 128 bits. È qualcosa di simile ad un checksum o al codice di controllo per gli errori di CRC. In essa PGP "rappresenta il messaggio" e serve per controllare se sono avvenuti cambiamenti. A differenza del CRC, però, non è pensabile che un estraneo riesca a sostituire il messaggio con un altro che produca la stessa selezione.

I file cifrati sono preceduti dall' id-di-chiave della chiave pubblica usata per cifrarli. Il destinatario usa questo id-di-chiave per trovare la chiave segreta richiesta per decifrare il messaggio; il suo software lo trova automaticamente nel suo portachiavi segreto.
Questi due tipi di portachiavi sono i due metodi principali di conservazione e gestione delle chiavi pubbliche e private. Invece di tenere le singole chiavi in files separati, esse sono raccolte in portachiavi per facilitarne la ricerca automatica per id-di-chiave o ID.
Ogni utilizzatore possiede la sua coppia di portachiavi. Una singola chiave pubblica è tenuta in un file separato il tempo necessario per inviarla ad un corrispondente che
la aggiungerà al suo portachiavi.PGP: installazione
Il pacchetto PGP rilasciato per il DOS è compresso in un file archivio del tipo PGPxx.zip (dove "xx" sta per il numero della
versione). L'archivio può
essere decompresso utilizzando il comunissimo PKUNZIP (comando UNZIP per UNIX) dopo di che sarà opportuno leggere il file README.DOC che contiene ragguagli riguardo a quella particolare versione.
I passi da seguire per l'installazione dovrebbero essere i seguenti:
Una volta installato il programma, si usa tramite comandi dal prompt del DOS; per esempio il primo comando da dare è:
SET PGPPATH=C:\PGP (crea la variabile d'ambiente PGPPATH)
SET PATH=C:\PGP; %PATH% (aggiunge C:\PGP al "PATH")
SET TZ=MET-1DST (imposta l'orologio di PGP secondo
il fuso orario dell' ITALIA)
PGP -kg
con cui è generata una coppia di chiavi univoca.
In un generico comando, alla parola " PGP " possono seguire, in vario ordine:
I comandi disponibili si suddividono in diverse categorie: comandi per
la creazione di messaggi, comandi per la gestione delle chiavi, comandi di decodifica, ecc.
L'installazione in ambiente UNIX o VAX/VMS è generalmente simile a quella in ambiente MS-DOS, ma non è esclusa la possibilità di dover prima compilare il codice sorgente.
PGP: Status e versioni
Il programma è freeware, quindi può essere copiato e usato senza dover pagare nulla, eccetto se si vuole adoperarlo per scopi commerciali. È inoltre un programma aperto, nel senso che i sorgenti, scritti in "C", sono di dominio pubblico.
Il PGP è disponibile per MS-DOS (gira anche sotto WINDOWS 3.1 e WINDOWS 95), OS/2, MAC, ATARI, AMIGA e mediante compilazione dei relativi sorgenti anche
per UNIX e VMS (clicca quì per maggiori informazioni).
Le versioni per piattaforme diverse sono tutte compatibili tra di loro: un file codificato, ad esempio, con PGP per DOS può essere decodificato con PGP per UNIX e viceversa.
È la versione PGP classica ed è stata fino a poco tempo fa quella più usata in tutto il mondo. È ancora possibile usarla, ma nessuno lo fa più perchè essa non riesce a processare i messaggi e le chiavi generate con le versioni più recenti di PGP; inoltre non può trattare chiavi che abbiano una lunghezza maggiore di 1024 bits (la massima dimensione attualmente consentita per le chiavi è di 2048 bits). Il suo uso è vietato negli Stati Uniti. Per chi volesse ancora adoperare tale versione la può scaricare da (versione per DOS) quì; è disponibile anche il codice sorgente.
È una versione non ufficiale di quella "2.3a" che consente di risolvere i problemi di incompatibilità introdotti dalla versione 2.6 del MIT (Massachussetts Institute of Technology): è importante osservare che PGP 2.6ui non è una vera versione "2.6" perchè si basa sul codice sorgente della 2.3a e poichè non include i miglioramenti introdotti dalle versioni attuali.
È basata sulla 2.6ui e vuole essere un suo aggiornamento perchè introduce i miglioramenti (chiavi più lunghe, nuove opzioni nei comandi) delle più recenti versioni 2.6x. PGP 2.62ui può essere scaricata (dall'indirizzo di rete ftp://ftp.mantis.co.uk/pub/cryptography/pgp262uix.zip.
È la più recente versione ufficiale di PGP rilasciata dal MIT e adattata per essere usata negli USA.
Essa crea messaggi che non possono essere decodificati dalle versioni di PGP precedenti alla 2.5 e usa la libreria di
crittazione RSAREF, riducendo leggermente la velocità di esecuzione su alcune piattaforme; inoltre essa non è in grado di capire il vecchio formato delle firme usato dalla versione PGP2.2 e precedenti.
Esportare tale versione al di fuori degli USA è illegale, ma una volta fatto essa può essere liberamente usata.
PGP 2.6.2 corregge numerosi "bugs" trovati nelle versioni "2.6" e "2.6.1".
La si può scaricare da ftp://ftp.datashopper.dk/pub/users/pethern/pgp, dove è disponibile per tutte le piattaforme.
È la più recente versione internazionale di PGP, basata sul codice sorgente del MIT PGP 2.6.2 e modificata per uso internazionale. PGP 2.6.3i è stata pubblicata dal norvegese Stale Schumacher e differisce da MIT PGP 2.6.2 nei seguenti punti:
Contiene praticamente tutte le innovazioni della versione 2.6.3i ma usa la libreria RSAREF; per questo motivo essa può essere usata legalmente negli USA nonostante non sia una versione ufficiale. Essa è distribuita come codice sorgente ed è disponibile via ftp://ftp.datashopper.dk/pub/users/pethern/pgp.
È una versione commerciale di PGP disponibile soltanto negli Stati Uniti e nel Canada. Per informazioni cliccare quì.
Bibliografia e sorgenti d'informazione
Explore the TELEMAT Site !!!
Ultimo aggiornamento: 24/1/97