sei sul sito di Giovanni Fraterno
Il programma che esamineremo
è PGP 7.0.3 Freeware liberamente scaricabile
dal sito web con url: http://www.pgpi.org
PGP 7.0.3 Freeware utilizza per
la cifratura sia una chiave simmetrica,
ovvero la chiave segreta di un sistema crittografico appunto a chiave segreta,
che una chiave asimmetrica, ovvero la chiave
pubblica di un sistema crittografico appunto a chiave pubblica.
Insomma PGP 7.0.3 Freeware è
un sistema crittografico misto.
I sistemi crittografici
misti sono nati perché quello a chiave pubblica è da
100 a 1000 volte più lento di quello a chiave segreta.
Nei sistemi crittografici
misti si utilizza la chiave pubblica soltanto per comunicare la chiave segreta
di un sistema crittografico appunto a chiave segreta, chiave che, chiamata chiave di sessione, verrà poi
usata per una normale comunicazione basata su un sistema crittografico a chiave
segreta.
In tal modo è ampiamente
risolto il problema della sicurezza nello scambio
della chiave segreta e quello della velocità
di cifratura/decifratura, velocità che infatti non
penalizza la comunicazione essendo abbastanza elevata.
Una volta scaricato PGP 7.0.3 Freeware occorre scompattarlo
utilizzando un programma compatibile con l'algoritmo di compressione zip, si
otterranno così 2 files:
- PGPfreeware
7.0.3.exe, ovvero il programma di installazione vero e proprio
- PGPfreeware
7.0.3.exe.sig, ovvero la firma associata al programma e che consente di
verificare l'integrità e la provenienza di quest’ultimo.
Non verrà
qui mostrato come effettuare queste ultime operazioni, e ciò anche perchè è necessario
disporre di una precedente versione di PGP.
In trasmissione PGP per cifrare un
messaggio:
- genera un numero casuale
da utilizzare come chiave di sessione
- utilizza l'algoritmo
crittografico asimmetrico associato alla chiave pubblica dei singoli destinatari
(algoritmo RSA oppure DH) per cifrare la chiave di sessione
- comprime
il messaggio originale mediante l'uso dell’algoritmo
di compressione ZIP
- cela
quest’ultimo utilizzando la chiave di
sessione nell’ambito di un algoritmo crittografico simmetrico scelto
dall'utente fra quelli disponibili (algoritmi: TripleDES, IDEA, CAST, AES,
Twofish)
- il tutto viene finalmente inviato
al destinatario.
In ricezione PGP per decifrare il suddetto
messaggio:
- decifra
la chiave di sessione utilizzando la chiave
privata (algoritmo RSA oppure DH) del destinatario
- con la chiave di sessione decifra il messaggio ed inverte il processo di compressione.
Vediamo adesso come avviene
l’autenticazione.
Una volta che il mittente ha
scritto il messaggio, in trasmissione PGP per
autenticare il suddetto messaggio:
- genera un codice di hash del
messaggio stesso utilizzando un algoritmo di hash
- utilizzando la chiave
privata del mittente, associata all'algoritmo asimmetrico RSA oppure a quello DSA, viene cifrato il
precedente codice di hash del messaggio, con
ciò ottenendo la cosiddetta firma digitale
- la suddetta firma digitale
viene allegata al
messaggio in chiaro ed il tutto viene spedito.
In ricezione PGP per verificare l’autenticità della suddetta firma digitale:
- genera un nuovo codice di hash locale
del messaggio in chiaro ricevuto
- decifra la
firma digitale utilizzando la chiave
pubblica (algoritmo RSA oppure DH) del mittente con ciò ottenendo il codice di hash remoto
- e se viene
verificato che il codice di hash locale e il codice di hash remoto coincidono allora vuol dire che il messaggio in
chiaro trasmesso è effettivamente autentico.
Cifrare ed autenticare
messaggi sono operazioni che possono coinvolgere il medesimo
messaggio.