Il PGP presenta inoltre altre funzioni che permettono l’autenticazione
del mittente e del messaggio.
Uno dei vantaggi principali della crittografia a chiave pubblica
è la possibilità di fornire un metodo per definire delle firme
digitali. La firma digitale permette al destinatario di
verificare l’autenticità dell’origine delle informazioni,
e anche di verificare che esse siano integre. Quindi la chiave
pubblica digitale permette di garantire l’autenticazione
e l’integrità dei dati contenuti nel messaggio cifrato.
Inoltre evita il rifiuto, ciò significa che impedisce al mittente
di sostenere di non avere mai spedito le informazioni. Queste
caratteristiche sono fondamentali non solo per la sicurezza ma
soprattutto per la privacy: una firma digitale è in grado di svolgere
le stesse funzioni di una firma manoscritta, col vantaggio che,
mentre la seconda è facile da contraffare, una firma digitale
presenta sicuramente maggiori difficoltà.
Questo sistema di autenticazione presenta qualche problema: è
lento e normalmente genera un enorme volume di dati. PGP migliora
questo sistema prevedendo l’aggiunta nel processo di una
funzione hash unidirezionale. Questa funzione prende un
imput di lunghezza variabile, in questo caso un messaggio di lunghezza
qualsiasi, anche di migliaia di milioni di bits, e genera un output
di una lunghezza prefissata, ad esempio 160 bits. La funzione
hash garantisce che se l’informazione viene per qualche
motivo modificata anche di un solo bit, si genera un output completamente
diverso.
PGP usa la funzione hash per generare nel testo un valore di lunghezza
fissa, una specie di “checksum” noto come message
digest. PGP utilizza poi il digest e la chiave privata per
creare la “firma”, che viene spedita assieme al testo.
Quando il destinatario riceve il messaggio usa PGP per ricalcolare
il digest, in modo da verificare la firma. Una volta che la funzione
hash viene utilizzata non c’è modo di prelevare la firma
da un documento e di inserirla in un altro o di alterare in qualche
modo il messaggio firmato: il minimo cambiamento in quel messaggio
causerà il fallimento del processo di verifica della firma digitale.
Una delle condizioni di questo sistema è che gli utenti devono
fare attenzione nel fare in modo che essi stiano usando la corretta
chiave personale e non un falso. Per essere sicuri bisognerebbe
scambiare e-mail cifrate solo con le chiavi che sono state consegnate
direttamente, ma supponiamo che dobbiate scambiare informazioni
con persone che non avete mai conosciuto, come fate ad ottenere
la chiave corretta?
I Certificati Digitali semplificano le procedure di riconoscimento,
in quanto di tratta di informazioni incluse con una chiave pubblica
personale che aiuti gli altri utenti a verificare se la chiave
è valida o meno.
Un certificato digitale è dato da tre cose:
- una chiave pubblica;
- una informazione certificata (tipo un nome, una user ID, etc.);
- una o più firme digitali.
Il fine di inserire una firma digitale su un certificato è quello
di garantire che l’autenticità sia stata verificata da altre
persone o enti, ad esempio mettiamo che uno degli amici redattori
di Software Planet mi chieda di “firmare” il proprio
certificato e mettiamo che io possa scegliere uno dei suoi indirizzi
e-mail: uno su un provider qualsiasi e quello di Software Planet.
Dato che mi sento più sicuro della seconda mail sceglierò di porre
la mia firma digitale su questa certificando così la sua chiave
pubblica con la mia.
Consiglio personale: non firmate mai una chiave pubblica che non
avete ottenuto in modo assolutamente sicuro.
Dove reperire le chiavi pubbliche? Nei keyserver. Sono dei database
automatici di chiavi pubbliche PGP, accessibili
ed utilizzabili da tutti. Ogni keyserver ha in pratica un enorme
public ring, a cui tutti possono aggiungere la propria chiave
pubblica e da cui e' possibile estrarre una chiave pubblica di
cui si ha bisogno, insomma una sorta di elenco pubblico del telefono.
Di keyservers ce ne sono diversi in tutto il mondo, e si aggiornano
automaticamente tra di loro, quindi e' sufficiente
utilizzarne uno qualunque. Di solito sono gestiti presso le Università,
quali ad esempio il MIT negli Stati Uniti e il
Dipartimento di Scienze dell'Informazione dell’Università
Statale di Milano.
Per utilizzare quest'ultimo, scrivete a: pgp-public-keys@dsi.unimi.it mettendo
il comando nel campo SUBJECT.
Tutte le operazioni avvengono infatti tramite e-mail e i comandi
piu' importanti sono:
HELP Si ottengono le istruzioni.
ADD Per aggiungere la propria chiave pubblica
(la chiave stessa va messa nel corpo del messaggio).
INDEX Lista tutte le chiavi contenute nel keyserver.
GET Si ricevono tutte le chiavi del keyserver.
GET [id] Si riceve la chiave dell'utente avente l'identificativo
[id].
MGET stringa Si ottengono tutte le chiavi il cui identificativo
contiene 'stringa'.
Ad esempio se inviate la vostra chiave pubblica in un messaggio
avente come Subject: ADD essa viene aggiunta al keyserver. Mentre
se inviate un messaggio vuoto con Subject: GET Giorgio Chinnici
[Nimrod] ricevete la mia chiave pubblica.
I keyservers possono essere utilizzati da Web all'indirizzo: http://www-swiss.ai.mit.edu/~bal/pks-commands.html
Abbiamo visto tutte le funzioni e le potenzialità di questo programma
che nel frattempo ha raggiunto la settima versione, come vi dicevo
nella 12° Lezione è distribuito gratuitamente e può essere facilmente
reperito in internet. Si può trovare PGP su moltissimi siti Internet
assieme a una ricca documentazione, anche in italiano.
Segnalo i siti seguenti.
The International PGP Home Page (il miglior sito PGP!): http://www.pgpi.org/
PGP al Mit: http://web.mit.edu/network/pgp.html
E’ consigliabile anche frequentare le newsgroups: alt.security.pgp,
comp.security.pgp.announce, comp.security.pgp.discuss, comp.security.pgp.resources
e comp.security.pgp.tech
Si parla anche di PGP nel gruppo di discussione italiano sulla
sicurezza: it.comp.sicurezza.varie
Con questa lezione abbiamo concluso anche la parte dedicata a
PGP e alla crittografia, a partire dalla prossima parleremo di
un nemico subdolo e antipatico: lo SPAM!
Torna all'indice Generale del corso di Corso di Privacy di Software Planet