Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

31
Guida Introduttiva al Programma di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy) di Giorgio Chinnici V1.1 - Aprile 1995 NOTA: Questo testo puo' essere liberamente diffuso e riprodotto con qualunque mezzo, purche' nella sua interezza. ============================================================== "Well! I've often seen a cat without a grin," thought Alice; "but a grin without a cat! It's the most curious thing I ever saw in all my life!" (Lewis Carroll - Alice's Adventures in Wonderland) Indice 1. Scopo della Presente Guida 2. Perche' la Crittografia 3. La Crittografia a Chiave Pubblica 4. Status e Versioni 5. Dove Reperirlo 6. Come si Usa 5.1 Installazione e Generalita' 5.2 Generazione della Coppia di Chiavi 5.3 Gestione delle Chiavi 5.4 Codifica e Firma 5.5 Decodifica e Verifica della Firma 7. I Keyservers 8. Considerazioni sulla Sicurezza 7.1 La Sicurezza delle Chiavi Pubbliche 7.2 Norme di Sicurezza per le Chiavi Pubbliche 7.3 Altre Norme di Sicurezza 9. Come Opera 10. I Tools ×

description

Guida Introduttiva al Programma di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy) di Giorgio Chinnici V1.1 - Aprile 1995

Transcript of Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

Page 1: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

Guida Introduttiva al Programma di Crittografia a Chiave PubblicaPGP (Pretty Good Privacy) di Giorgio Chinnici V1.1 - Aprile 1995

NOTA: Questo testo puo' essere liberamente diffuso e riprodotto conqualunque mezzo, purche' nella sua interezza.==============================================================

"Well! I've often seen a cat without a grin," thought Alice; "but a grinwithout a cat! It's the most curious thing I ever saw in all my life!"(Lewis Carroll - Alice's Adventures in Wonderland)

Indice

1. Scopo della Presente Guida2. Perche' la Crittografia3. La Crittografia a Chiave Pubblica4. Status e Versioni5. Dove Reperirlo6. Come si Usa 5.1 Installazione e Generalita' 5.2 Generazione della

Coppia di Chiavi 5.3 Gestione delle Chiavi 5.4 Codifica e Firma 5.5Decodifica e Verifica della Firma

7. I Keyservers8. Considerazioni sulla Sicurezza 7.1 La Sicurezza delle Chiavi

Pubbliche 7.2 Norme di Sicurezza per le Chiavi Pubbliche 7.3 AltreNorme di Sicurezza

9. Come Opera10. I Tools

×

Page 2: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

=== 0. Scopo della Presente Guida ===

Ho voluto semplicemente scrivere, come dice il titolo, unaintroduzione al PGP. I criteri che ho seguito sono:

spiegare rapidamente e chiaramente di che cosa si tratta;

mettere il lettore in grado di cominciare ad usare il PGP;

fornire alcune utili informazioni.

La presente Guida quindi non ha pretese di completezza, ma contienel'essenziale; non vuole sostituire alcun manuale o documentoesistente sul PGP, ne' rappresentare una guida di riferimento.

=== 1. Perche' la Crittografia ===

PGP (Pretty Good Privacy) e' un programma di crittografia a chiavepubblica, che e' diventato lo standard de facto per l'utilizzo dellacrittografia nella posta elettronica. Con PGP e' possibile codificare unmessaggio in modo che solo il destinatario possa leggerlo, e non unaterza persona. Inoltre, e' possibile autenticare il mittente ed ilmessaggio. Questo risponde alla esigenza fondamentale diriservatezza e sicurezza della corrispondenza privata.

×

Page 3: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

La corrispondenza per posta elettronica ha da un lato innumerevolivantaggi, ma purtroppo presenta intrinsecamente un basso grado disicurezza. E' infatti molto semplice per una terza persona andare aleggere messaggi privati destinati ad altri, oppure alterare unmessaggio inviato da un altro, oppure ancora inviarne uno con ilnome di un altro.

"Ma io non ho nulla da nascondere" si potra' pensare. Certo, nessunodi noi ha qualcosa da nascondere, pero' vogliamo lo stesso proteggerela nostra corrispondenza da occhi ed orecchie indiscrete, vogliamoriaffermare il diritto alla privacy, diritto elementare di liberta' in unoStato democratico gia' garantito dalla legge per quanto riguarda laposta ordinaria ed il telefono.

L'articolo 15 della Costituzione della Repubblica Italiana garantisce laprivacy per qualunque forma di corripondenza. Anche se parliamo dipasta asciutta, vogliamo lo stesso mettere il nostro messaggio dentrouna busta: il PGP e' quella busta. Si corrono poi dei rischi di frodequando si trasmettono per posta elettronica senza crittografia datiriservati.

Un solo esempio: numeri di carte di credito. Questa e' una cosa semprepiu' comune su Internet ed altre Reti Telematiche, dove e' possibileacquistare merci per e-mail.

Purtroppo negli ultimi tempi si assiste ad una campagna didisinformazione circa Internet e la Telematica in generale. Non vienerisparmiata la crittografia, vista da alcuni come strumento per

Page 4: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

malintenzionati o societa' segrete. Si tratta invece di uno strumento diliberta' da mettere a disposizione di tutti, e la cui diffusione rivestequindi una importanza fondamentale, in vista del ruolo sempremaggiore assunto dalla telematica quale quotidiano mezzo dicomunicazione su scala mondiale.

La realizzazione del programma PGP ha introdotto una cultura nuovadella crittografia, perche' ha consentito di fornire questo strumento,prima riservato a pochi iniziati, a chiunque, rendendolo quindiutilizzabile estensivamente quale normale strumento di privacy esicurezza, e non (solo) quale strumento di protezione di segreti.

=== 2. La Crittografia a Chiave Pubblica ===

Il problema storico della crittografia classica si puo' riassumere inquesto modo: per potere cifrare un messaggio si deve scegliere unachiave (segreta) con cui effettuare la cifratura.

Se Alice vuole inviare il messaggio codificato al destinatario MadHatter, ha il problema di fare avere a quest'ultimo la chiave segreta,con la quale egli potra' decodificare il messaggio.

Se pero' Mad Hatter sta all'altro capo del mondo e non c'e' un canalesicuro per trasmettere la chiave, questo sistema non puo' funzionare,perche' la chiave puo' essere intercettata.

Il problema viene risolto brillantemente dalla crittografia a chiavepubblica, alla cui base sta un'idea semplice e geniale.

Page 5: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

Ogni utente genera, mediante una funzione di PGP, una coppia dichiavi.

L'algoritmo matematico che effettua questa operazione e' tale che:

un messaggio codificato con una chiave della coppia puo' esseredecodificato solo con l'altra chiave della stessa coppia;

non e' materialmente possibile, data una chiave della coppia,ricavare l'altra.

Ogni utente tiene per se' una chiave della propria coppia, denominatachiave segreta, e diffonde il piu' possibile l'altra, denominata chiavepubblica.

Questo risolve tutti i problemi posti sopra.

Privacy:

Alice vuole inviare un messaggio a Mad Hatter, e codifica quelmessaggio usando la chiave pubblica di quest'ultimo. Solo Mad Hatter,che ha la corrispondente chiave segreta, e' in grado di decodificare eleggere il messaggio.

Autenticazione del mittente:

Alice codifica il suo messaggio con la propria chiave privata.

Page 6: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

Chiunque, avendo accesso alla chiave pubblica di Alice, puo'decodificare quel messaggio. Se la decodifica riesce, si e' allora sicuriche esso e' stato scritto da Alice, l'unica a possedere la corrispondentechiave segreta. Alice ha posto la sua "firma" elettronica sul messaggio.

Autenticazione del mittente e del messaggio:

E' possible autenticare, facendo un passo in piu', oltre al mittenteanche il contenuto del messaggio. Alice effettua un "hashing" del suomessaggio. Si tratta di una funzione unidirezionale, che a partire daun certo messaggio ricava un valore di lunghezza fissa, detto hash, checaratterizza il messaggio: una sorta di "checksum". Se il messaggioviene alterato, l'hash non corrisponde piu'.

Alice attacca allora in fondo al suo messaggio il corrispondente hash.Alice puo' codificare con la propria chiave privata ("firmare") tuttol'insieme, oppure lasciare il messaggio vero e proprio in chiaro efirmare solo l'hash.

Chiunque puo' decodificare l'insieme ricevuto o il solo hash con lachiave pubblica di Alice, ed e' cosi' sicuro del fatto che il messaggioproviene da quel mittente. Se inoltre, una volta effettuata ladecodifica, messaggio ed hash si corrispondono, si e' sicuri chenessuno dei due e' stato alterato in qualche maniera. In pratica, lafirma elettronica realizzata dal PGP effettua sempre l'autenticazionesia del mittente sia del messaggio. Essa ha dunque le stesse funzionidella firma ordinaria su un documento cartaceo.

Trasmissione della chiave:

Page 7: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

Col sistema di crittografia a chiave pubblica non c'e' una sola chiavesegreta usata per entrambe le funzioni di codifica e decodifica, per cuinon si pone il problema di dovere trasmettere quella chiave. Ogniutente deve semplicemente tenere al sicuro la propria chiave segreta,e puo' diffondere senza alcun problema la propria chiave pubblica.Anzi, piu' questa viene diffusa e meglio e'.

Il PGP consente di effettuare tutte queste funzioni mediante semplicicomandi. E' possibile avere varie funzioni insieme. Due procedurecomuni sono per esempio:

(per la corrispondenza privata)

firmare un messaggio e contemporaneamente codificarlo per un certodestinatario;

(per i messaggi pubblici o privati)

effettuare l'hash di un messaggio e firmarlo per autenticarne ilmittente ed il contenuto, ma lasciando il messaggio stesso in chiaro;questa procedura viene comunemente chiamata firma in chiaro, ed e'quello che io ho fatto per il presente testo.

=== 3. Status e Versioni ===

Il PGP e' stato realizzato da Philip Zimmermann negli Stati Uniti. Inseguito anche altri hanno lavorato alle versioni successive. Ilprogramma e' freeware, quindi puo essere liberamente utilizzato e

Page 8: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

copiato senza dovere pagare nulla. Inoltre, e' un programma aperto,nel senso che i sorgenti, scritti in C, sono di pubblico dominio.

Il PGP e' disponibile per DOS, OS/2, Mac, Amiga, Atari e, mediantecompilazione dei relativi sorgenti, Unix e VMS. Le versioni perpiattaforme diverse sono tutte compatibili tra di loro: un filecodificato p. es. con PGP per DOS puo' essere decodificato con PGP perUnix, e viceversa.

Le versioni piu' recenti del programma sono:

Versione MIT: PGP 2.6.2

Per ragioni di copyright non puo' essere esportata legalmente dagliUSA, ma e' legale utilizzarla una volta che la si ottenga da una fontefuori dagli USA. Genera messaggi non leggibili dalla versione 2.3a.Corregge alcuni bugs presenti nelle versioni 2.6 e 2.6.1. Files per DOS:pgp262.zip (eseguibile), pgp262s.zip (sorgenti).

Versione Internazionale: PGP 2.6.i

Adattamento della 2.6.1 fatto dal norvegese Stale Schumacher in mododa non sottostare al brevetto americano. Puo' trattare chiavi fino a2048 bit (nelle altre versioni il limite e' 1024). E' compatibile con tuttele precedenti versioni 2.x. Non e' legale negli USA. Questa e' laversione che di solito viene consigliata per utenti non residenti negliUSA. Files per DOS: pgp26i.zip (eseguibile), pgp26is.zip (sorgenti)

Queste due versioni sono compatibili tra di loro. Tutti i files compressi

Page 9: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

citati contengono inoltre un dettagliato manuale in due volumi diPhilip Zimmermann, in formato ASCII.

Vi e' poi una versione commerciale, proposta da ViaCrypt, nota comePGP 2.7.1

=== 4. Dove Reperirlo ===

Il PGP si puo' trovare, oltre che su diverse BBS italiane, su moltissimisiti Internet dove si trovano anche files di documentazione einformazioni varie.

Segnalo i seguenti:

ftp://ftp.informatik.uni-hamburg.de/pub/virus/crypt/pgp/

ftp://ftp.dsi.unimi.it/pub/security/crypt/PGP/ (sito ftp del DSI -Universita' Statale di Milano: qui e' disponibile la versioneitaliana)

http://www.ifi.uio.no/~staalesc/PGP/

Tra la documentazione interessante ivi presente segnalo:

PGP FAQ (Frequently Asked Questions)

Per e-mail, il PGP puo' essere ottenuto:

Page 10: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

scrivendo ad Alcei [email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]@alcei.sublink.org;

per la versione 2.6.i, scrivendo a [email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]@ifi.uio.no con

Subject: Per ricevere:

GET pgp26i.zip eseguible DOS (uuencoded)

GET pgp26is.zip sorgenti DOS (uuencoded)

GET pgp26is.tar.gz sorgenti UNIX (uuencoded)

Segnalo inoltre il Forum Internet dedicato al PGP:

Newsgroup: alt.security.pgp

=== 5. Come si Usa ===

+++ 5.1 Installazione e Generalita' +++

In quanto segue si fa riferimento a scopo di esemplificazioneall'ambiente DOS (ove non diversamente specificato, i nomi qui usatiper i files sono a titolo di esempio). L'uso del PGP su altri sistemi e' deltutto identico.

L'installazione del PGP non presenta particolari difficolta'. Perinstallare una versione DOS nel directory c:\pgp occorre

Page 11: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

semplicemente:

scompattare il file compresso in c:\pgp con "pkunzip"; al suointerno c'e' un altro file zip;

scompattare in c:\pgp, con "pkunzip -d", l'ulteriore file compressocontenuto all'interno del primo (prima di farlo, fate una copia diquesto file zip interno: vi servira' in seguito se volete verificarne lafirma);

aggiungere le seguenti righe ad autoexec.bat:

SET PGPPATH=C:\PGP

SET PATH=C:\PGP;%PATH% (aggiunge c:\pgp al "path")

SET TZ=MET-1DST

Una volta installato, il programma si usa mediante comandi dalprompt del DOS; un esempio di comando e' il seguente:

pgp -sta c:\doc\testo.txt

(questo comando firma in chiaro il file c:\doc\testo.txt, producendoun file ASCII, ed e' quello che io ho usato per il presente testo).

In un generico comando, quindi, alla parola "pgp" possono seguire, in

Page 12: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

vario ordine:

le opzioni, introdotte dal segno "-",

identificativi d'utente,

nomi di files.

I comandi disponibili possono essere classificati secondo diversecategorie: comandi per la gestione delle chiavi, per codificare, perdecodificare, ecc.

E' importante leggere i manuali. Essi contengono anche una "QuickReference", elenco sintetico di tutti i comandi, che conviene estrarre etenere a portata di mano. Lo stesso elenco si puo' inoltre avere a videocon il comando di help:

pgp -h

+++ 5.2 Generazione della Coppia di Chiavi +++

La prima cosa da fare, subito dopo l'installazione, e' la generazionedelle chiavi.

+--> Generate la vostra coppia di chiavi con il comando:

pgp -kg

Page 13: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

PGP vi chiede di:

Scegliere la lunghezza delle chiavi. Conviene generare chiavi di1024 bit.

Scegliere il vostro "User Name". Usate il vostro nome e cognomeseguito dal vostro indirizzo e-mail in parentesi angolari, p. es.:

Mad Hatter [email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]@wonderland.it

(E' possibile assegnare alle chiavi piu' identificativi, cosa che si faquando si hanno piu' indirizzi e-mail, per esempio.)

Scegliere la vostra "Pass Phrase".

E' molto importante, perche' si tratta della frase di accesso che vipermette di utilizzare la vostra chiave segreta (p. es. per firmare unmessaggio da voi scritto, o per decodificare un messaggio a voiindirizzato). Senza la pass phrase la vostra chiave segreta e'inutilizzabile. E' una password estesa: puo' essere un testo dilunghezza arbitraria contenente qualunque carattere. Scegliete unafrase lunga che non sia intuibile (niente dati personali!),nell'eventualita' che la vostra chiave segreta vada in mano a terzi.Deve pero' trattarsi di una frase costruita in modo che potetefacilmente ricordarla (importante!). Ancora meglio se intercalate deicaratteri non alfabetici ed usate maiuscole e minuscole, sempre apatto che non rischiate poi di non riuscire a ricordare la frase esatta.

Page 14: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

Due esempi:

La losanga del nonno di Carla che cadde in mare

c$hi Va da#quel%la parte domani MATTINA

Premere casualmente dei tasti, procedura i cui tempi vengonousati da PGP per la generazione dei numeri casuali necessariall'algoritmo.

A questo punto, PGP genera la vostra coppia di chiavi. Assumendo cheil directory in cui e' installato PGP sia c:\pgp, trovate:

la vostra chiave segreta nel file c:\pgp\secring.pgp (secret ring);

la vostra chiave pubblica nel file c:\pgp\pubring.pgp (public ring).

Questi nomi sono di default.

C'e' ancora una cosa da fare subito.

+--> Firmate la vostra chiave pubblica con il comando:

pgp -ks "id"

dove id e' l'identificativo d'utente, che va posto tra virgolette. Puo'essere lo User Name che avete usato prima; PGP riconosce anche unaparte dello User Name, p. es. solo il nome o solo l'indirizzo e-mail. Per

Page 15: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

seguire l'esempio precedente, potete digitare quindi:

pgp -ks "Mad Hatter"

Lo scopo di questa operazione e' di rendere impossibili determinatemanipolazioni della chiave pubblica da parte di terzi (vedi:Considerazioni sulla Sicurezza). Per poter effettuare questaoperazione, PGP vi chiede di digitare la pass phrase, come sempreavviene quando occorre impiegare la chiave segreta.

+++ 5.3 Gestione delle Chiavi +++

Il secret ring (file secring.pgp) contiene la vostra chiave segreta e vatenuto riservato. PGP va a cercare la vostra chiave segreta in questofile tutte le volte che volete decodificare un messaggio a voiindirizzato, oppure volete firmare un messaggio.

Il public ring (file pubring.pgp) e' destinato a contenere, insieme allavostra, tutte le chiavi pubbliche che userete: e' il vostro databasepersonale di chiavi pubbliche, una sorta di agenda del telefono.

PGP infatti, tutte le volte che volete codificare un messaggio destinatoall'utente Cheshire Cat, va a cercare la chiave pubblica di quest'ultimonel vostro public ring. Lo stesso avviene quando volete verificare unafirma. All'inizio, il public ring contiene solo la vostra chiave pubblica,poi a mano a mano potete aggiungere quelle di altre persone con cuicorrispondete.

+--> Aggiungete al vostro public ring una o piu' chiavi pubbliche

Page 16: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

contenute nel file c:\chiavi\keys.asc con il comando:

pgp -ka c:\chiavi\keys.asc

Potete aggiungere in questo modo la mia chiave pubblica, che trovatein fondo al presente testo, usando come nome file nel comandoappena visto quello del presente testo (pgpintro.txt) con il suo path. Intal caso infatti PGP considera solo le chiavi contenute nel file, edignora tutto il resto. Quando aggiungete una chiave, PGP vi chiede sevolete certificarla. Rispondete NO (n) (vedi: Considerazioni sullaSicurezza).

+--> Esaminate il contenuto del vostro public ring con il comando:

pgp -kv

E' possibile estrarre una copia di una o piu' chiavi pubbliche(tipicamente la vostra) dal vostro public ring. Questa operazioneconsiste nel copiare la chiave in un file ASCII armored in modo dapoterla passare ad altri utenti che la inseriranno nel loro public ringcon la procedura descritta sopra.

+--> Estraete la vostra chiave pubblica con il comando:

pgp -kxa "Mad Hatter" c:\chiavi\cappell.asc

Essa sara' allora contenuta nel file ASCII c:\chiavi\cappell.asc, chepotete distribuire. Io ho seguito questa procedura ed ho poi copiato il

Page 17: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

file ASCII ottenuto in fondo a questo testo.

+++ 5.4 Codifica e Firma +++

+--> Codificate il file c:\doc\mess.txt per l'utente Cheshire Cat, efirmatelo, con il comando:

pgp -esta c:\doc\mess.txt "Cheshire Cat" -o c:\crypt\gatto.txt

Viene prodotto il file codificato c:\crypt\gatto.txt.

Se omettete l'opzione "o" e relativo nome di file, il file prodotto sara'c:\doc\mess.pgp, quindi nello stesso directory del file in chiaro, con lostesso nome ma con estensione "pgp".

Se omettete l'opzione "s" (sign), quindi digitate -eta, il file vienecodificato ma non firmato.

Se omettete l'opzione "e" (encrypt), quindi digitate -sta, il fileviene firmato in chiaro, ma non codificato.

Non e' detto che il file da codificare e/o firmare sia un testo, bensi'puo' essere indifferentemente un file binario qualunque.

PGP vi chiede in ogni caso di digitare la vostra pass phrase, in modo dapoter utilizzare la vostra chiave segreta.

Page 18: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

Inoltre, la prima volta che codificate un messaggio per Cheshire Cat,PGP vi chiedera' se volete davvero adoperare la chiave pubblica diquesto utente pur non essendo certificata. Rispondete SI (y) (vedi:Considerazioni sulla Sicurezza).

In ogni caso, e' importante che il comando per codificare e/o firmare(nonche' quello per estrarre la vostra chiave pubblica) contengasempre l'opzione "a" (ASCII Armor), come si vede dal comandoriportato sopra. Il motivo e' il seguente. Quando si invia un file per e-mail, esso passa attraverso e arriva su sistemi di tipo molto diverso.Qualunque sistema pero' e' in grado di riconoscere e trattare caratteriASCII il cui codice decimale e' compreso tra 0 e 127 (il cosiddetto ASCIIbasso). Percio' e' indispensabile che un file inviato per e-mail siaformato esclusivamente da tali caratteri (file ASCII armored osemplicemente ASCII), e non da caratteri qualsivoglia. PGP trasforma,mediante l'opzione "a", il file prodotto in modo che sia ASCII armored.

+++ 5.5 Decodifica e Verifica della Firma +++

+--> Decodificate il messaggio codificato c:\crypt\notizie.pgp, everificatene la firma, con il comando:

pgp c:\crypt\notizie.pgp -o c:\doc\nuove.txt

Viene prodotto il messaggio in chiaro c:\doc\nuove.txt. Seomettete l'opzione "o" e relativo nome di file, il file prodotto sara'c:\crypt\notizie, quindi nello stesso directory del file in chiaro,con lo stesso nome e senza alcuna estensione.

Page 19: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

Questo comando ha molteplici funzioni, perche' agisceindifferentemente su codifica e firma. Se il messaggio di partenzaera codificato, il comando citato lo decodifica. Se in aggiunta essoera anche firmato, il comando verifica inoltre la firma (e quindil'autenticita' del mittente e del messaggio stesso). Se era solofirmato, viene semplicemente verificata la firma.

Potete verificare in questo modo la mia firma su questo testo, usandocome nome file nel comando appena visto quello del presente testo(pgpintro.txt) con il suo path.

=== 6. I Keyservers ===

Sono dei database automatici di chiavi pubbliche PGP, accessibili edutilizzabili da tutti. Ogni Keyserver ha in pratica un enorme publicring, a cui tutti possono aggiungere la propria chiave pubblica e da cuie' possibile estrarre una chiave pubblica di cui si ha bisogno. Una sortadi elenco pubblico del telefono.

Tutte le operazioni avvengono per e-mail in modo automatico. DiKeyservers ce ne sono diversi in tutto il mondo, e si aggiornanoautomaticamente tra di loro, quindi e' sufficiente utilizzarne unoqualunque. Di solito sono gestiti presso Universita', quali ad esempio ilMIT negli Stati Uniti e il Dipartimento di Scienze dell'Informazionedell'Universita' Statale di Milano.

Per utilizzare quest'ultimo, scrivete a:

Page 20: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]@dsi.unimi.it

mettendo il comando nel campo SUBJECT.

I comandi piu' importanti sono:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

HELP Si ottengono le istruzioni.

ADD Per aggiungere la propria chiave pubblica (la chiave stessa vamessa nel corpo del messaggio).

INDEX Lista tutte le chiavi contenute nel Keyserver.

GET Si ricevono tutte le chiavi del Keyserver (non conviene perche'sono troppe!).

GET [id] Si riceve la chiave dell'utente avente l'identificativo [id].

MGET stringa Si ottengono tutte le chiavi il cui identificativo contiene'stringa'.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Se inviate la vostra chiave pubblica in un messaggio avente comeSubject:

ADD

Page 21: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

essa viene aggiunta al Keyserver.

Se inviate un messaggio vuoto con Subject:

GET Giorgio Chinnici

ricevete la mia chiave pubblica.

Se inviate un messaggio vuoto con Subject:

MGET .it>

ricevete tutte (o quasi!) le chiavi pubbliche appartenenti ad utentiitaliani.

Su World Wide Web, i Keyservers possono essere raggiuntiall'indirizzo: http://www-swiss.ai.mit.edu/~bal/pks-commands.html

=== 7. Considerazioni sulla Sicurezza ===

+++ 7.1 La Sicurezza delle Chiavi Pubbliche +++

Questo argomento e' estremamente importante, in quanto la gestionedelle chiavi pubbliche rappresenta il punto debole del PGP.

La crittografia a chiave pubblica, avendo eliminato la necessita' ditrasmettere una chiave segreta, riduce praticamente a zero il rischioche qualcuno si impadronisca della chiave segreta. Tuttavia, la

Page 22: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

gestione delle chiavi e' il punto debole anche di questo sistema dicrittografia, perche' una chiave pubblica puo' non essere sicura.

Il problema sostanzialmente e' il seguente. Quando Mad Hatter ricevela chiave pubblica di Alice, non ha modo di essere sicuro che quellachiave:

appartenga effettivamente ad Alice (Cheshire Cat potrebbe averesostituito la chiave di Alice con la propria ed averesuccessivamente intercettato i messaggi destinati ad Alice);

non sia stata manipolata (Cheshire Cat potrebbe ad esempio averaggiunto alla chiave un indirizzo e-mail). E' possibile cioe'ipotizzare determinati "attacchi" che Cheshire Cat, sfruttandoquesto tipo di "debolezza", puo' mettere in atto allo scopo diintrodursi nelle comunicazioni tra Alice e Mad Hatter.

Va rimarcato che le dimensioni del problema sono completamentediverse nei due sistemi di crittografia:

Il sistema convenzionale a chiave unica pone alla comunicazioneper e-mail problemi di sicurezza cosi' grossi da essere di fattoinutilizzabile. Non avrebbe infatti alcun senso pensare di inviare lachiave segreta sullo stesso canale non sicuro. Inoltre, una chiavesegreta per sua stessa natura non puo' essere diffusapubblicamente, per cui non e' possibile applicare questo sistema dicrittografia come strumento di privacy.

Page 23: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

Gli "attacchi", nel sistema a chiave pubblica sono azioni piuttostocomplesse da effettuare, ed hanno quindi probabilita' ridotte incircostanze normali. Inoltre essi sono, mediante una serie dinorme di sicurezza, prevenibili.

E' quindi fondamentale attenersi alle norme di sicurezza.

In linea di principio, perche' Mad Hatter abbia la certezza che lachiave pubblica di Alice non e' falsa o manipolata, occorre che:

Egli abbia ottenuto la chiave non per e-mail o da una banca dati,ma tramite un incontro personale, una persona fidata, o altrocanale sicuro. In tal caso, Mad Hatter puo' firmare egli stesso lachiave. Oppure che:

La chiave sia firmata, con il comando:

pgp -ks "Alice"

da un utente March Hare del quale Mad Hatter possiede una chiavesicura.

PGP ha un sistema di gestione della sicurezza delle chiavi, e ne tieneconto in fase di utilizzo delle chiavi stesse. In pratica, PGP sa qualechiave e' sicura e quale no secondo le definizioni precedenti, edavverte l'utente.

Page 24: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

L'incontro personale e simili, ove sia possibile farlo con facilita' (p. es.i due utenti abitano nella stessa citta') e' sempre preferibile, perscambiarsi le chiavi pubbliche e per firmarle a vicenda. Inoltre, in casiin cui la sicurezza deve essere assoluta (p. es. comunicazione di segretiindustriali) non ci si deve mai fidare di una chiave non sicura ottenutaper via telematica. Se pero' ci si attenesse sempre strettamente aquesta norma, si potrebbe fare un uso molto limitato del PGP.Normalmente quindi si utilizzano senz'altro chiavi ottenute per e-mail, attenendosi pero' alle norme di sicurezza seguenti.

+++ 7.2 Norme di Sicurezza per le Chiavi Pubbliche +++

Non firmate mai una chiave pubblica che non avete ottenuto inmodo assolutamente sicuro. *

Questo e' molto importante, perche' firmando la chiave di Alice, MadHatter la dichiara sicura. Benche' sia accettabile usare una chiavepubblica non canonicamente sicura, non la si deve dichiarare tale senon lo e'. Infatti, quando la chiave viene passata da Mad Hatter a MockTurtle, questi avrebbe una falsa informazione che invaliderebbe tuttoil sistema di sicurezza delle chiavi pubbliche.

Utilizzate occasioni di incontro personali per scambiare e firmarereciprocamente le proprie chiavi pubbliche. *

In tal modo si crea una "rete" di certificazione. Ogni firma di un altroutente su una chiave rende inoltre sempre piu' difficile manipolare osostituire quella chiave, perche' bisognerebbe riprodurre le firme.

Page 25: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

Firmate voi stessi la vostra chiave pubblica, e firmate inoltre ogniindirizzo e-mail od indentificativo che vi aggiungete. *

Se Mad Hatter segue questa norma, e' impossibile per Cheshire Cataggiungere lui un indirizzo alla chiave di Mad Hatter, perche' questosarebbe l'unico non firmato da Mad Hatter.

Diffondete il "fingerprint" della vostra chiave pubblica. *

Il fingerprint e' un hash di 128 bit, ossia 32 cifre esadecimali, dellachiave pubblica, e la identifica univocamente. Alice puo' ottenerlo avideo per la sua chiave pubblica con il comando:

pgp -kvc "Alice"

Il fingerprint presenta il vantaggio di essere facilmente leggibile. Alicediffonde il suo fingerprint scrivendolo in molti messaggi pubblici, emeglio ancora su documenti cartacei (ad es. biglietti da visita) su cuinon puo' essere contraffatto. Mad Hatter legge il fingerprint di Aliceda varie fonti, e lo confronta con quello ottenuto dalla chiave pubblicadi Alice che Mad Hatter ha nel proprio public ring. Se sono identici,cio' garantisce per l'autenticita' della chiave di Alice che Mad Hatterha. Se Mad Hatter e' in grado di riconoscere Alice al telefono, egli puo'verificare la chiave di Alice telefonicamente, confrontando ilfingerprint sul proprio video con quello che lei gli detta al telefono.

+++ 7.3 Altre Norme di Sicurezza +++

Page 26: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

Mantenete una copia di sicurezza, su un dischetto tenuto in luogosicuro, del vostro secret ring e public ring, nell'eventualita' di uncrash del vostro computer.

Non lasciate il vostro secret ring su un computer cui hanno accessoaltre persone, come potrebbe essere quello dell'ufficio. In tal casousate invece secret ring e public ring da un dischetto che tenetecon voi o in luogo sicuro.

Non scrivete la vostra pass phrase da nessuna parte, maricordatela bene a memoria.

Ricordate che un file cancellato con un semplice comando di"delete" puo' successivamente essere recuperato. Se percio' voleteeliminare definitivamente il messaggio in chiaro che avetecodificato dovete farne il "wipe" o cancellazione definitiva. Cio'viene realizzato da varie utility, e dallo stesso PGP usandol'opzione "w" nel comando di codifica.

=== 8. Come Opera ===

Il PGP utilizza in realta' una intera collezione di algoritmi, tra i piu'sicuri ed internazionalmente conosciuti nel campo della crittografia.Allo scopo di illustrare il processo messo in atto da PGP, supponiamodi partire da un messaggio che deve essere firmato e codificato. Lasequenza delle operazioni e' la seguente.

*A. PGP applica l'algoritmo di hashing MD5 per generare l'hash del

Page 27: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

messaggio, avente lunghezza fissa pari a 128 bit. L'hash vieneattaccato al messaggio.

*B. PGP applica l'algoritmo di compressione dati ZIP per comprimerel'insieme messaggio piu' hash ottenuto in A.

*C. PGP applica un algoritmo di generazione numeri casuali pergenerare una sequenza di 128 bit casuali.

*D. PGP applica l'algoritmo di crittografia convenzionale IDEA percodificare il messaggio compresso ottenuto in B, usando come chiave("session key") il numero casuale generato in C.

*E. PGP applica l'algoritmo di crittografia a chiave pubblica RSA percodificare la session key. Il risultato viene attaccato al messaggiocodificato ottenuto in D. La crittografia convenzionale e' molto piu'veloce di quella a chiave pubblica. PGP unisce i vantaggi dellacrittografia a chiave pubblica e la velocita' di quella convenzionale, Ilmessaggio viene in realta' codificato convenzionalmente, ed e' lasession key usata che viene codificata con l'algoritmo a chiavepubblica.

*F. PGP applica l'algoritmo di ASCII Armor Radix-64 per trasformare ilmessaggio ottenuto in E in modo che esso contenga solo caratteriASCII bassi. Questo algoritmo trasforma ogni gruppo di tre bytes in ungruppo di quattro bytes.

Il messaggio ottenuto in F e' quello finale, che puo' essere inviato pere-mail. Il destinatario esegue la sequenza inversa di operazioni.

Page 28: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

Gli algoritmi utilizzati da PGP sono considerati assolutamente sicuri.Per esempio, l'algoritmo di crittografia a chiave pubblica RSA si basasul prodotto di due numeri primi. Per poter ricavare una chiaveprivata dalla corrispondente chiave pubblica occorrerebbefattorizzare questo prodotto. Nel caso di chiavi a 1024 bit, e' statostimato che una rete di un milione di computers impiegherebbe 10^10anni a risolvere il problema, un tempo pari all'eta' dell'Universo! Poi,ci sarebbe ancora il problema di ricavare la pass phrase. E questo peruna sola coppia di chiavi tra tutte quelle esistenti al mondo.

=== 9. I Tools ===

Allo scopo di rendere piu' semplice ed automatico possibile l'uso diPGP sono stati sviluppati diversi shells e tools per varie piattaforme,nonche' programmi di mail che integrano PGP. Presso gli indirizzicitati in: "Dove Reperirlo" e' possibile trovarne diversi. A quegliindirizzi aggiungo una pagina WWW specificamente dedicata autilities e servizi inerenti al PGP:

http://draco.centerline.com:8080/~franl/pgp/utilities.html

Segnalo qui alcuni prodotti.

AutoPGP

Autore: Stale Schumacher [email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]@ifi.uio.no

Status: Shareware $10

Page 29: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

Versione: 2.12, 2.2 beta 2

Nome file: apgp212.zip, apgp22b2.zip

Descrizione: Indispensabile tool per DOS. Gestione automatica tramitesemplici direttive per offline mailer e testi ASCII. Provatelo!

Come ottenerlo:

http://www.ifi.uio.no/~staalesc/AutoPGP/

ftp://ftp.dsi.unimi.it/pub/security/crypt/PGP/

PGP Shell

Versione: 3.3

Nomefile: pgpshe33.zip

Descrizione: Shell per DOS

Come ottenerlo:

ftp://ftp.dsi.unimi.it/pub/security/crypt/ftp.informatik-PGP/shells

MMMR (Mister Magoo's Mail Reader)

Page 30: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

Autore: Angelo Mariani [email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]@agora.stm.it

Status: Shareware Lit. 30000

Versione: 3.60 (a breve la ver. 4)

Descrizione: Offline Mailer per DOS, integra PGP

Come ottenerlo: Si trova su MC-Link, Agora' ed altre BBS.

PGP Win Front

Autore: Ross Barclay [email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]@trentu.ca

Status: Freeware

Versione: 3.1

Nome file: pgpwf31.zip (oppure pwf30.zip, oppure pwf31.zip)

Descrizione: Un ottimo PGP shell per Windows 3.1

Come ottenerlo:

ftp://ftp.eff.org/pub/EFF/Policy/Crypto/Tools/PGP/

per e-mail scrivendo all'autore con Subject: GET PWF

Page 31: Guida Introduttiva Al Programma Di Crittografia a Chiave Pubblica PGP (Pretty Good Privacy)

WinPGP(tm)

Autore: Christopher W. Geib [email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]@compuserve.com.

Status: Shareware $29.

Versione: 3.1

Nome file: pgpw31.zip

Descrizione: Un altro diffuso shell per Windows.

Come ottenerlo:

ftp://ftp.csn.net/mpj/public/pgp/

+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ |Giorgio Chinnici Milano - Italia | [email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]@[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]@altair.it | Messaggi codificati con PGP sono preferiti. |PGP fingerprint: F3 A6 72 5F 0C C0 5A 5D 3A 69 15 9E DE 92 FE 25 +=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+ Crypto |Leggi | Etere Criptoribelli e autodifesa digitale