"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