Corso di Privacy

Pretty Good Privacy: Il Programma - Parte IV

 

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