Usare la crittografia a chiave pubblica per tutelare la

"Giornata delle Libertà Digitali" - 8 Ottobre 2004
Politecnico di Milano
Usare la crittografia a chiave pubblica
per tutelare la privacy nella corrispondenza
elettronica.
Cristian Rigamonti <[email protected]>
GLUX - Gruppo Lecco Utenti linuX - http://www.lecco.linux.it
La copia letterale e la distribuzione di questa presentazione nella sua integrità
sono permesse con qualsiasi mezzo, a condizione che questa nota sia riprodotta.
Di cosa parleremo
La privacy nella corrispondenza elettronica: aspetti giuridici
La crittografia come strumento di tutela della privacy nella corrispondenza
elettronica (e non solo: la firma digitale)
Privacy "end to end" nella corrispondenza elettronica: lo standard
OpenPGP
Il software libero disponibile
Di cosa NON parleremo
Privacy nel trattamento elettronico dei dati (offline)
Privacy in altre forme di comunicazione elettronica (web, IM, P2P)
Libertà di espressione in rete
Anonimizzazione della corrispondenza elettronica
(riferimento: Progetto Winston Smith - www.winstonsmith.info)
Privacy nel _trasporto_ della corrispondenza elettronica (TLS...)
Lo standard S/MIME per la privacy nella corrispondenza elettronica
Il punto di vista giuridico
Alcuni riferimenti nell’ordinamento giuridico italiano:
Art. 15 Cost: "La libertà e la segretezza della corrispondenza e di ogni altra
forma di comunicazione sono inviolabili. La loro limitazione può avvenire
soltanto per atto motivato dell’autorità giudiziaria con le garanzie stabilite
dalla legge."
Art. 616-623 c.p.: delitti contro la "inviolablità dei segreti"
Art. 266, 353 c.p.p.: norme su intercettazioni telefoniche
Legge 547/93: estende la tutela della "corrispondenza" alle comunicazioni
telematiche.
Il punto di vista dell’individuo
Giuridicamente è tutelata al pari di quella cartacea.
Ma:
Per le sue caratteristiche tecniche, si presta più di quella cartacea a
intercettazioni, archiviazioni e manomissioni non autorizzate. (E-mail come
cartolina postale)
Quindi, se si ha interesse alla propria privacy:
Occorre conoscere i rischi dell’uso di alcune tecnologie
Occorre imparare ad usare opportuni strumenti "di autodifesa"
Occorre diffondere l’uso di questi strumenti e difenderne la liceità
La situazione internazionale
USA:
ITAR - International Traffic in Arms regulation
Key Escrow ("Clipper Chip" etc)
"Patriot Act" / "Total Information Act" / "Terrorist Information Act"
UE:
Echelon
Direttiva EU sul cybercrime
EUCD
Crittografia (1)
Visione storica: tecnica per garantire la riservatezza dei messaggi
(militari)
Visione moderna: crittologia, scienza (matematica, informatica)
composta da:
Crittografia: "costruire" sistemi crittografici
Crittanalisi: "smontare" (rompere) sistemi crittografici
Le applicazioni della crittografia moderna non si limitano alla sola
riservatezza (un esempio: la firma digitale)
Crittografia (2): alcune definizioni
Messaggio in chiaro (cleartext)
Messaggio cifrato (ciphertext)
Cifratura (encryption)
Decifrazione (decryption)
Cifrario - Algoritmo (cipher)
Chiave (key)
Crittografia convenzionale (simmetrica) (1)
Esempio:
Cifrario: "Sostituisci ogni lettera con quella che la precede di X posizioni
nell’ordine alfabetico"
Chiave: "X=1"
ABCDEFG... -> ZABCDEF...
Messaggio in chiaro: "CIAO" -> Messaggio cifrato:" BHZN"
Crittografia convenzionale (simmetrica) (2)
Pregi:
Veloce
Esistono algoritmi dimostrati teoricamente inviolabili (Vernam, onetime pad)
Difetti:
Distribuzione delle chiavi: ogni partecipante alla comunicazione deve
possedere la chiave
Segretezza delle chiavi: la chiave va mantenuta segreta!
Crittografia a chiave pubblica (asimmetrica)
(1)
1976: Diffie - Hellman
1977: Rivest - Shamir - Adleman (RSA)
1991: P.Zimmermann: PGP - Pretty good Privacy
Crittografia a chiave pubblica (asimmetrica)
(2)
Crittografia a chiave pubblica (asimmetrica)
(3)
Crittografia a chiave pubblica (asimmetrica)
(4)
Pregi:
Risolve il problema della distribuzione delle chiavi
Consente di implementare la firma digitale
Difetti:
Computazionalmente onerosa
Problema dell’autenticazione delle chiavi
Crittografia "ibrida" (1)
Il messaggio è cifrato usando un algoritmo simmetrico (3DES,
BLOWFISH, IDEA...)
La chiave di sessione è cifrata con la chiave pubblica del
destinatario
Crittografia "ibrida" (2)
Il destinatario decifra la chiave di sessione con la propria chiave
privata e la usa per decifrare il messaggio.
Firma digitale (1)
Il messaggio è firmato con la propria chiave privata.
La firma è controllata usando la chiave pubblica del firmatario.
Firma digitale (2)
Firma digitale (3)
Caratteristiche della firma digitale:
Non altera il documento, è separata da esso.
E’ differente da un documento all’altro.
E’ verificabile da chiunque in modo certo e ripetibile.
Tutte le copie del documento sono originali e autentiche!
Garantisce l’integrità del documento
Non puo’ essere apposta "in bianco", ne’ ripudiata.
Autenticazione delle chiavi (1)
Chi garantisce che una chiave pubblica appartenga effettivamente
a una persona? Problema del "man in the middle".
Persone raggiungibili: consegna diretta della chiave.
Persone conosciute: controllo del "fingerprint" della chiave.
Persone sconosciute: necessità di meccanismi di autenticazione ("Public
Key Infrastructure")
Autenticazione delle chiavi (2)
Come autenticare una chiave? Con una firma digitale!
Autenticazione delle chiavi (3)
Modello piramidale: Certification Authority (es. X509)
Autenticazione delle chiavi (4)
Modello del "web of trust" (PGP e poi OpenPGP)
Ogni utente può firmare le chiavi degli altri utenti.
Ogni utente decide che fiducia dare alle firme fatte da altri utenti (e quindi
alle chiavi)
Autenticazione delle chiavi (5)
Un certificato: chiave + userid + firme
Un portachiavi ("keyring"): un insieme di certificati
Software Libero, privacy, crittografia (1)
Privacy come aspetto particolare della sicurezza informatica: es.
sicurezza dei sistemi che contengono dati sensibili.
Pregi del Software Libero in relazione alla sicurezza informatica:
Il codice sorgente è pubblico, sottoposto ad analisi e miglioramenti
continui; i difetti vengono corretti in brevissimo tempo.
Chiunque puo’ controllare esattamente come funziona un programma
(trasparenza, tutela da abusi)
Disponibilità di software libero per tutti gli aspetti della sicurezza informatica.
Software Libero, privacy, crittografia (2)
Nel caso della crittografia:
Principio di Kerckhoffs (1883): "La sicurezza di un sistema crittografico è
basata esclusivamente sulla conoscenza della chiave; in pratica si
presuppone noto a priori l’algoritmo di cifratura e decifrazione".
Conoscenza dell’algoritmo -> del sorgente -> Software Libero!
B.Schneier: "Se un sistema è veramente sicuro, lo è anche quando i suoi
dettagli diventano pubblici"
PGP - Pretty Good Privacy
http://www.pgp.com - http://www.pgpi.org
1991: PGP 1.0 per MSDOS (P.Zimmermann): codice sorgente disponibile,
gratis per uso personale
1992: PGP 2.0 versioni per altre piattaforme (sviluppatori volontari)
1996: PGP 2.6.3i "PGP International"
2002: PGP 8.0
GPG - GNU Privacy Guard (1)
http://www.gnupg.org
1999: v1.0 (GnuPG team: Matthew Skala, Michael Roth, Niklas Hernaeus,
Rémi Guyomarch, Werner Koch)
2004: v1.2.6
GPG - GNU Privacy Guard (2)
Perché usare GPG:
E’ Software Libero (GPL)
Non usa algoritmi brevettati (ma volendo può farlo)
E’ compatibile con PGP 5.x, 6.x e 7.x (parzialmente anche con 2.x)
Aderisce allo standard OpenPGP (RFC2440)
Supporta molti algoritmi (provare: gpg --version) ed è pronto
per supportarne di nuovi
E’ disponibile su molte piattaforme: Linux/*nix, Windows, Mac
Facilmente integrabile con altre applicazioni: frontend, plugin, GPGME
GPG - Frontend e applicazioni correlate
Frontend:
GPA (Gnu Privacy Assistant)
Seahorse (GNOME)
KGPG (KDE)
Windows Privacy Tools
MacGPG
...
Plugin per programmi di posta elettronica:
Enigmail (per Mozilla Mail)
EudoraGPG
...
Kmail, Evolution, Sylpheed, Mutt (supporto nativo)
Mozilla Thunderbird + Enigmail
http://www.mozilla.org - http://enigmail.mozdev.org
Caratteristiche:
Multipiattaforma: Linux, Win, Mac
Semplice da installare, configurare, usare
Disponibile in italiano