Elementi di Sicurezza e Privatezza Lezione 15 Sicurezza della posta elettronica Chiara Braghin chiara.braghin@unimi.it! Sicurezza della posta elettronica 1
Posta elettronica (1) Una mail è un messaggio composto da stringhe di caratteri ASCII in un formato specificato da RFC 822 (anno 1982) w L ultima versione è RFC 2822 (anno 2001) Due parti separate da una linea bianca: w header: mittente, destinatario, data, soggetto, percorso di consegna, w body: contiene il messaggio vero e proprio Busta (envelope): informazioni scambiate tra i server 2 Posta elettronica (2) - Componenti Client (MUA, Mail User Agent), utilizzati per accedere ad una casella di posta elettronica e per inviare i messaggi Server, con 2 funzioni: w immagazzinare i messaggi per uno o più utenti nella rispettiva casella di posta (MS, Message Store) w ricevere i messaggi in arrivo ed in partenza e smistarli (MTA, Mail Transfer Agent) 3 2
Posta elettronica (3) - Architettura A ciascuna casella di posta sono associati uno o più indirizzi di posta elettronica necessari per identificare il destinatario della forma nomeutente@dominio! 4 Posta elettronica (4) - Protocolli SMTP: Simple Mail Transfer Protocol w Connessione TCP alla porta 25 POP3: Post Office Protocol v.3 w Connessione TCP alla porta 110 IMAP: Internet Message Access Protocol w Connessione TCP alla porta 143 w I messaggi rimangono sul server MIME: Multipurpose Internet Mail Extension w Specifica un formato standard per incapsulare più dati diversi in un singolo messaggio 5 3
Posta elettronica (5) - Funzionamento Da Wikipedia, di M. Barbieri MX: Mail exchanger record, record di tipo risorsa del DNS 6 Posta elettronica sicura? (1) Perdita di confidenzialità w mail spedita in chiaro su una rete non sicura w mail memorizzata potenzialmente su client e mail server non sicuri Perdita di integrità w Il corpo del messaggio può essere modificato in transito oppure modificato dal mail server Mancanza di autenticazione w nessuna garanzia sul fatto che la mail provenga da chi è indicato nel campo from: 7 4
Posta elettronica sicura? (2) Mancanza di non-repudiation w il mittente può dichiarare in seguito di non aver inviato una certa mail Mancanza di ricevuta di ricezione w nessuna garanzia sul fatto che il destinatario abbia ricevuto il messaggio w in genere il server invia una notifica al mittente per avvisarlo della mancata consegna, ma la notifica è un messaggio di posta elettronica 8 Posta elettronica sicura? (3) Come fare? Rendere sicure le connessioni tra client e server w Far transitare POP e IMAP su ssh o SSL w Accesso tramite https alla Webmail Rendere sicura la gestione della posta end-to-end w PGP w Entrambe le parti devono supportare PGP 9 5
PGP (1) Software per cifrare la posta elettronica e per la protezione di file di uso personale Creato da Philip Zimmermann nel 1991 e distribuito gratuitamente su Internet Basato su tecniche crittografiche sia di tipo simmetrico che asimmetrico (ibrido) Obiettivi: w permette di firmare una mail lasciando il testo in chiaro w permette di cifrare una mail senza firmarla w permette di firmare e cifrare una mail 10 PGP (2) - Storia Nel 1991 al Senato americano approda un disegno di legge anticrimine che prevede l obbligo per i produttori di strumenti crittografici di inserire trap doors nei loro prodotti Prima che la legge venga approvata, Philip R. Zimmermann scrive e distribuisce PGP w il governo americano lo accusa di violare l ITAR (International Traffic in Arms Regulations) che prevede il divieto di esportazione per le tecnologie crittografiche e quindi anche dei programmi software che le implementano 11 6
PGP (3) - Storia Zimmermann viene accusato di aver violato le leggi sui brevetti in quanto in PGP viene utilizzato RSA w Viene istituito un fondo per far fronte alle spese legali w Le accuse vengono ritirate OpenPGP è uno standard IETF per l'interoperabilità dei messaggi protetti tramite crittografia asimmetrica w definito dalla RFC 4880 (novembre 2007) che rimpiazza la RFC 2440 (novembre 1998) 12 PGP (4) - Algoritmi Basato su crittografia simmetrica e asimmetrica: Cifratura simmetrica: w DES, 3DES, AES, CAST, IDEA w Usata per cifrare il messaggio con la chiave di sessione Cifratura asimmetrica: w RSA, ElGamal, DH w Usata per cifrare la chiave di sessione generata dal mittente Hashing: w SHA-1, MD-5 13 7
PGP (5) - Algoritmi Firma digitale: w RSA, DSS, ECDSA e altri w Usata per firmare/cifrare con la chiave privata del mittente l hash del messaggio Compressione: w Zip Compatibilità mail e segmentazione: w Radix-64 w Il messaggio cifrato è convertito in stringa ASCII ed eventualmente segmentato nel caso di messaggi di lunghezza eccessiva 14 PGP (6) Ogni utente dispone di: w chiave privata: usata per firmare e decifrare i messaggi w chiave pubblica: disponibile a tutti ed usata per cifrare i messaggi w chiave di sessione: chiave che mittente e destinatario condividono varia ad ogni invio viene generata dal mittente 15 8
PGP (7) - Gestione chiavi Due strutture dati (key ring) per memorizzare le chiavi: w Private key ring: contiene la coppia (chiave pubblica, chiave privata) dell utente Campi e attributi memorizzati: TIMESTAMP:indica l ora in cui è stata generata la chiave KEY ID: 64 bit meno significativi della chiave pubblica PUBLIC KEY: chiave pubblica PRIVATE KEY: chiave privata cifrata con la passphrase USER ID: proprietario della chiave Chiave privata: Viene generata da PGP ma permette all utente di specificare la lunghezza della chiave La passphrase (inserita dall utente) viene convertita in una chiave IDEA usando MD5, tale chiave viene utilizzata per cifrare con IDEA la chiave privata 16 PGP (8) - Gestione chiavi w Public key ring: contiene le chiavi pubbliche delle persone note all utente Campi e attributi memorizzati: TIMESTAMP: indica l ora in cui è stata generata o inserita la chiave KEY ID: i 64 bit meno significativi della chiave pubblica PUBLIC KEY: chiave pubblica OWNER TRUST: fiducia nel proprietario della chiave KEY LEGITIMACY: fiducia nella chiave FIRMA: firma per la chiave SIGNATURE TRUST: fiducia nella firma 17 9
PGP (9) - Certificati Ogni chiave presente nel key-ring ha associato un certificato che contiene le seguenti informazioni: w Version number: quale versione di PGP è stata usata per creare la chiave w Time: l'ora in cui è stata creata la chiave w Validity: il periodo di validità della chiave w Key-Type: l'algoritmo usato per generare le chiavi w User Id: il proprietario della chiave w Self-Signature: firma ottenuta usando la chiave privata della chiave pubblica associata al certificato w Message digest algorithm: algoritmo utilizzato per avere il message digest w Signed message digest: firma del message digest w Symmetric encryption algorithm: algoritmo di cifratura usato per cifrare le informazioni 18 PGP (10) - Certificati PGP riconosce due formati di certificato: w Certificati in formato PGP w Certificati in formato X.509 19 10
PGP (11) - Web of Trust PGP si basa su una gestione decentralizzata dei certificati: w Ciascuno si rende responsabile certificando una chiave (o il suo certificato) in suo possesso Metodo: Assegno un valore di fiducia agli utenti (Unknown user, usually not trusted to sign, usually trusted to sign, always trusted to sign, ultimately trusted -own key, present in private key ring-) PGP assegna ad una chiave un valore di validità in base ai giudizi espressi da altri utenti su quella chiave e al valore di fiducia che io ho assegnato a quegli utenti (Valid, Marginally valid, Invalid) Quindi: Io sono Trusted :-) Assegno alle chiavi che ho potuto controllare direttamente di persona il giudizio Valid Il valore di validità di un certificato misura quanto io reputi vero quel certificato 20 PGP (12) Come ottenere una chiave pubblica? w Direttamente dalla persona a cui appartiene w Usando i key-server, server presenti su Internet dedicati al deposito e prelievo delle chiavi pubbliche Per ricevere o inserire chiavi bisogna inviare una mail all indirizzo del key-server 21 11
PGP (13) Key Fingerprint w Breve sequenza di byte utilizzata per autenticare o risalire ad una chiave pubblica più lunga w Creata applicando una funzione di hash alla chiave pubblica w Esempio: D5A4 F097 B6B6 3D3A D7CB 75CA 505E 261C 1EB9 B3E7 22 PGP (14) - Autenticazione mittente K -1 snd m h σ hash enc destinatario m h h σ hash confronta dec accetta/rigetta K snd E possibile fare in modo che la firma NON venga compressa 23 12
PGP (15) - Confidenzialità mittente m s.enc prng k, iv K rcv a.enc {k, iv} Krcv {m} k s.enc: cifratura simmetrica a.enc: cifratura asimmetrica prng: generatore di numeri pseudo-casuali 24 PGP (16) - Generazione di un messaggio firma compressione cifratura 25 13
PGP (17) - Ricezione di un messaggio 26 PGP (18) - Autenticazione e Confidenzialità Source A Public key KUb Destination B Private key KRb Public key KRb M Private key KRa H EP Session key Ks ZIP EC EP M DP Session key Ks DC UNZIP M DP H Compare PGP prima firma il messaggio e poi lo cifra 27 14
PGP (19) - Formato messaggio 28 PGP (20) - Implementazioni PGPi project w International PGP Home Page GNU Privacy Guard (GnuPG o GPG) w rilasciato sotto la licenza GNU GPL, è un programma progettato per sostituire la suite crittografica PGP w è completamente compatibile con gli standard OpenPGP dell'ietf Disponibile sia come stand-alone che come plug-in per i più diffusi client di posta 29 15
PGP (21) - Riferimenti http://www.pgpi.org! www.ietf.org/html.charters/ openpgp-charter.html! http://www.gnupg.org! 30 Alternative a PGP PEM (Privacy Enhanced Mail) w Standard definito in RFC 1421-1424 w Gestione delle chiavi più strutturata (gerarchia di CA) S/MIME w Standard definito in RFC 2632-2643 w Sistema flessibile che supporta diversi algoritmi crittografici 31 16