2x - Politecnico di Torino
Transcript
2x - Politecnico di Torino
Sicurezza della posta elettronica (emailsec - dec'16) Sicurezza della posta elettronica Antonio Lioy < lioy @ polito.it> Politecnico di Torino Dip. Automatica e Informatica MHS (Message Handling System) MTA MSA MTA chain MTA MSA MS MS MUA MUA MUA (Message User Agent) MSA (Message Submission Agent) MTA (Message Transfer Agent) MS (Message Store) © Antonio Lioy - Politecnico di Torino (1995-2016) 1 Sicurezza della posta elettronica (emailsec - dec'16) E-mail in client-server SMTP Mailserver ( MSA ) SMTP MTA ... MUA (es. Thunderbird, Outlook Express) Post Office ( MS ) POP, IMAP ... MTA SMTP Webmail Mailserver SMTP ( MSA ) MTA ... SMTP HTTP HTML web server HTTP engine virtual MUA web browser POP / IMAP Post Office ... MTA ( MS ) SMTP © Antonio Lioy - Politecnico di Torino (1995-2016) 2 Sicurezza della posta elettronica (emailsec - dec'16) Protocolli, porte e formati standard SMTP (Simple Mail Transfer Protocol) 25/tcp (MTA) 587/tcp (MSA) POP (Post Office Protocol) 110/tcp IMAP (Internet Message Access Protocol) 143/tcp “RFC-822” formato di un messaggio (body di puro testo) MIME estensione multimediale di RFC-822 Messaggi RFC-822 solo caratteri US-ASCII a 7 bit righe terminate da <CR> <LF> messaggi composti da header + body header parole chiave a inizio riga righe di continuazione iniziano con uno spazio body separato dall’header da una riga vuota contiene il messaggio © Antonio Lioy - Politecnico di Torino (1995-2016) 3 Sicurezza della posta elettronica (emailsec - dec'16) Header RFC-822 From: mittente (logico) Sender: mittente (operativo) Organization: organizzazione del mittente To: destinatario Subject: argomento Date: data e ora di spedizione Received: passaggi intermedi Message-Id: ID di spedizione CC: in copia a Bcc: in copia (nascosta) a Return-Receipt-To: ricevuta di ritorno a Un esempio SMTP / RFC-822 telnet duke.colorado.edu 25 Trying ..... Connected to duke.colorado.edu Escape character is ‘^]’ 220 duke.colorado.edu ... HELO leonardo.polito.it 250 Hello leonardo.polito.it ... Nice to meet you! MAIL FROM: cat 250 cat ... Sender ok RCPT TO: franz 250 franz ... Recipient ok DATA 354 Enter mail, end with “.” on a line by itself © Antonio Lioy - Politecnico di Torino (1995-2016) 4 Sicurezza della posta elettronica (emailsec - dec'16) From: [email protected] (Antonio Lioy) To: [email protected] Subject: vacanze Ciao Francesco, ti rinnovo l’invito a venirmi a trovare nelle tue prossime vacanze in Italia. Fammi sapere quando arrivi. Antonio . 250 Ok QUIT 221 duke.colorado.edu closing connection connection closed by foreign host Problematiche sistema connectionless (store-and-forward, anche solo per via dei record MX) MTA non fidati sicurezza del MS cifratura per mailing-list compatibilità con l’installato soluzioni concorrenti: Internet = PGP, PEM, MOSS, S/MIME OSI = X.400 © Antonio Lioy - Politecnico di Torino (1995-2016) 5 Sicurezza della posta elettronica (emailsec - dec'16) Mail spamming anche detto UBE (Unsolicited Bulk E-mail) o UCE (Unsolicited Commercial E-mail) invio di messaggi indesiderati: pubblicità attacchi (malware, phishing, ...) oggi è circa 88% del traffico mail grosso carico su server (CPU e dischi) e reti grosso fastidio per gli utenti carne di maiale in scatola e Monty Python il contrario di “spam” è “ham” (termine usato dai programmi di identificazione e filtraggio) Strategie degli spammer nascondere il vero mittente … ma usare un mittente esistente spedire spam tramite MTA speciali open mail relay zombie o botnet con indirizzo IP variabile o inesistente content obfuscation errori deliberati (es. Vi@gr@) immagine invece che testo Bayesian poisoning (es. testo da un libro) all’interno di una mail di errore © Antonio Lioy - Politecnico di Torino (1995-2016) 6 Sicurezza della posta elettronica (emailsec - dec'16) (Open) mail relay outgoing mail polito.it incoming mail polito.it mail relay bouncing spam “open mail relay” = MTA che accetta posta anche non da / per i suoi utenti Anti-spam per MSA non configurare i propri MSA / MTA come “open relay” ma restringerne l’uso solo ai propri utenti autenticare gli utenti dei propri MSA: indirizzo IP del MUA problema con nodi mobili, IP spoofing e malware (installato su un nodo valido) valore del campo From aggirabile facilmente con fake mail autenticazione SMTP metodi sicuri? © Antonio Lioy - Politecnico di Torino (1995-2016) 7 Sicurezza della posta elettronica (emailsec - dec'16) Anti-spam per incoming MTA (I) rifiutare o accettare mail da un MTA, controllando una blacklist o whitelist DNSBL (DNS-based BlackList) l’indirizzo A.B.C.D è usato per inviare spam? nslookup –q=A D.C.B.A.dnsbl.antispam.net se NXDOMAIN allora non è uno spammer altrimenti viene fornito: un indirizzo 127.0.0.X (ove X è un codice che indica perché è elencato) un record TXT per maggiori informazioni RFC-5782 “DNS blacklists and whitelists” Anti-spam per incoming MTA (II) URI DNSBL (~URI reputation data) ritardo nell’identificazione di nuovi MTA spammer (e loro vita breve) honeypot / spamtrap per catturare spam e classificare le URI trovate nei messaggi lookup delle URI presenti nel body di un messaggio (incoming) rispetto a quelle di spam © Antonio Lioy - Politecnico di Torino (1995-2016) 8 Sicurezza della posta elettronica (emailsec - dec'16) Liste DNSBL molte liste (gratis/commerciali, anonime o meno): MAPS RBL (Realtime Blackhole List) Spamhaus SBL (Spamhaus Block List) SORBS (Spam and Open Relay Blocking System) APEWS (Anonymous Postmaster Early Warning System) non banale uscirne una volta che si è stati inseriti: meglio configurare bene il proprio MTA attivare/usare l’indirizzo abuse@dominio, come richiesto da RFC-2142 Anti-spam per incoming MTA (III) greylisting gli spammer non hanno tempo da perdere errore temporaneo (“try later”) OK se si ripresenta lo stesso MTA dopo T (es. 5’) ritarda anche ham + server carico (history contatti) nolisting (poor man’s greylisting) gli spammer non hanno tempo da perdere, non provano gli altri MX e/o contattano MX più elevato MX primario non risponde, MX secondario OK, MX terziario non risponde ritarda anche ham © Antonio Lioy - Politecnico di Torino (1995-2016) 9 Sicurezza della posta elettronica (emailsec - dec'16) Anti-spam per incoming MTA (IV) DKIM (DomainKeys Identified Mail) – vari RFC un dominio di posta garantisce: l’identità del mittente l’integrità (parziale) del messaggio … tramite una firma digitale apposta dall’outgoing MTA o MSA che copre alcuni header e parte del body verificabile tramite chiave pubblica (es. nel DNS) uso crescente (es. Gmail, Yahoo) permette di scartare messaggi con falso mittente e quindi di fare anti-spam ed anti-phishing Anti-spam per incoming MTA (V) SPF (Sender Policy Framework) – RFC 4408 un dominio di posta dichiara quali sono i suoi outgoing MTA, tramite un apposito record nel DNS esempi: $ nslookup –q=txt polito.it. polito.it text = "v=spf1 ptr ~all" $ nslookup –q=txt gmail.com. gmail.com text = "v=spf1 redirect=_spf.google.com" $ nslookup –q=txt _spf.google.com. _spf.google.com text = "v=spf1 ip4:216.239.32.0/19 ip4:64.233.160.0/19 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:209.85.128.0/17 ip4:66.102.0.0/20 ip4:74.125.0.0/16 ip4:64.18.0.0/20 ip4:207.126.144.0/20 ip4:173.194.0.0/16 ?all" © Antonio Lioy - Politecnico di Torino (1995-2016) 10 Sicurezza della posta elettronica (emailsec - dec'16) ESMTP Extended SMTP, definito in RFC-1869 e quindi incorporato (con SMTP) in RFC-2821 non cambia il protocollo base ed il canale i client ESMTP devono presentarsi con: EHLO hostname se il server ricevente parla ESMTP, deve dichiarare le estensioni che supporta, una per riga, nella sua risposta all’EHLO Esempi ESMTP positivi mailer ESMTP senza estensioni: 220 mail.polito.it - SMTP service ready EHLO mailer.x.com 250 Hello mailer.x.com - nice to meet you! mailer ESMTP con estensioni: 220 mail.polito.it - SMTP service ready EHLO mailer.x.com 250-Hello mailer.x.com - nice to meet you! 250-SIZE 26214400 250 8BITMIME © Antonio Lioy - Politecnico di Torino (1995-2016) 11 Sicurezza della posta elettronica (emailsec - dec'16) Esempio ESMTP negativo il mailer non conosce il protocollo ESMTP: 220 mail.polito.it - SMTP service ready EHLO mailer.x.com 500 Command not recognized: EHLO SMTP-Auth estensione di ESMTP definita in RFC-4954 comando AUTH + opzioni di MAIL FROM per autenticare un client … … prima di accettarne i messaggi!!! utile contro lo spamming: dopo il comando EHLO il server invia i meccanismi di autenticazione supportati il client ne sceglie uno viene eseguito il protocollo di autenticazione se l’autenticazione fallisce, il canale viene chiuso © Antonio Lioy - Politecnico di Torino (1995-2016) 12 Sicurezza della posta elettronica (emailsec - dec'16) Esempio AUTH negativo il mailer non conosce (o non accetta) la modalità di autenticazione proposta dal client: 220 example.polito.it - SMTP service ready EHLO mailer.x.com 250-example.polito.it 250 AUTH LOGIN CRAM-MD5 DIGEST-MD5 AUTH PLAIN 504 Unrecognized authentication type AUTH: metodo LOGIN 220 example.polito.it - SMTP service ready EHLO mailer.x.com 250-example.polito.it 250 AUTH LOGIN CRAM-MD5 DIGEST-MD5 AUTH LOGIN 334 VXNlcm5hbWU6 Username: lioy bGlveQ== 334 UGFzc3dvcmQ6 Password: antonio YW50b25pbw== 235 authenticated © Antonio Lioy - Politecnico di Torino (1995-2016) 13 Sicurezza della posta elettronica (emailsec - dec'16) AUTH: metodo PLAIN sintassi (RFC-2595): AUTH PLAIN id_pwdBASE64 id_pwd è definito come: [ authorize_id ] \0 authentication_id \0 pwd 220 example.polito.it - SMTP service ready EHLO mailer.x.com 250-example.polito.it 250 AUTH LOGIN PLAIN AUTH PLAIN bGlveQBsaW95AGFudG9uaW8= 235 authenticated lioy \0 lioy \0 antonio AUTH: metodi challenge-response CRAM–MD5 RFC-2195 challenge = nonceBASE64 response = usr SP hmac-md5( pwd, nonce )LHEX DIGEST–MD5 RFC-2831 simile a digest-authentication di HTTP/1.1 dichiarato obsoleto da RFC-6331 (2011) e rimpiazzato con SCRAM © Antonio Lioy - Politecnico di Torino (1995-2016) 14 Sicurezza della posta elettronica (emailsec - dec'16) AUTH: metodo CRAM-MD5 220 x.polito.it - SMTP service ready EHLO mailer.x.com <[email protected]> 250-x.polito.it 250 AUTH CRAM-MD5 DIGEST-MD5 AUTH CRAM-MD5 334 PDY5LjIwMTIwMTAzMjAxMDU4MDdAeC5wb2xpdG8uaXQ+ bGlveSA1MGUxNjJiZDc5NGZjNDNjZmM1Zjk1MzQ1NDI3MjA5Nw== 235 Authentication successful lioy hmac(antonio,<[email protected]>)hex Analisi di CRAM-MD5 vantaggi: autenticazione del client (password) no replay (challenge = rnd + timestamp + FQDN) resistente allo sniffing (hash non invertibile) svantaggi: no autenticazione del server (ma OK se su TLS) memorizzazione della pwd in chiaro, a meno di memorizzare i passi intermedi di HMAC (ossia K' ⊕ opad e K' ⊕ ipad) possibili attacchi dizionario possibile MITM (controllo del canale dopo CRAM) © Antonio Lioy - Politecnico di Torino (1995-2016) 15 Sicurezza della posta elettronica (emailsec - dec'16) SCRAM Salted Challenge-Response Authentication Method RFC-5802 e RFC-7677 si sceglie funzione di hash h con |output|=hLen si calcola un hash della pwd con sale e iterazioni sPwd = PBKDF2 (HMAC-h, pwd, salt, itc, hLen) scambio client-server cFirst = gs2-cbind-flag, usr, cNonce sFirst = salt, itc, cNonce, sNonce cFinal = cbind-input, cNonce, sNonce, cProof sFinal = sProof SCRAM client e server calcolano lo stesso autenticatore auth = cFirst, sFirst, cFinalNoProof … e ne dimostrano conoscenza tramite una prova incrociata cKey = HMAC-h (sPwd, "Client key") sKey = HMAC-h (sPwd, "Server key") cProof = cKey ⊕ HMAC-h( h(cKey), auth ) sProof = HMAC-h( h(cKey), auth ) per ogni utente il server conserva { usr, h(cKey), salt, itc, sKey } © Antonio Lioy - Politecnico di Torino (1995-2016) 16 Sicurezza della posta elettronica (emailsec - dec'16) Analisi di SCRAM mutua autenticazione difficile gli attacchi al DB delle pwd (hash, salt, itc) semplice da implementare internazionalizzazione (usr & pwd sono UTF-8) il client può conservare sPwd invece che la pwd in chiaro resistente agli attacchi brute-force legata ad uno specifico servizio (se la stessa pwd è usata per altri servizi genererà sPwd diverse) permette il channel binding Channel Binding (CB) associare un canale sicuro (tipicamente cifrato) ad uno scambio applicativo … per evitare un MITM che faccia da end-point per il canale cifrato e poi intercetti tutto il dialogo applicativo due classi principali: unique (uso di uno specifico canale) tls-unique tls-unique-for-server end-point (stesso end-point per il canale sicuro e quello applicativo) tls-server-end-point (binding col server cert) © Antonio Lioy - Politecnico di Torino (1995-2016) 17 Sicurezza della posta elettronica (emailsec - dec'16) Channel Binding (CB) il server dichiara i metodi SCRAM che supporta normali (es. SCRAM-SHA-1) con CB (es. SCRAM-SHA-1-PLUS) gs2-cbind-flag n : client non supporta CB y : client supporta CB ma pensa che il server non lo supporti p=cb_method : client richiede lo specifico CB cbind-input : SCRAM [ + channel_data ] channel_data solo se il client aveva richiesto CB Protezione di SMTP con TLS RFC-2487 “SMTP Service Extension for Secure SMTP over TLS” STARTTLS = opzione di EHLO e comando se la negoziazione ha successo, si resetta lo stato del protocollo (si riparte da EHLO e le estensioni supportate possono essere diverse) se il livello di sicurezza negoziato è insufficiente: il client invia subito QUIT ed esce il server risponde ad ogni comando col codice 554 (refused due to low security) © Antonio Lioy - Politecnico di Torino (1995-2016) 18 Sicurezza della posta elettronica (emailsec - dec'16) Protezione di SMTP con TLS: esempio 220 example.polito.it - SMTP service ready EHLO mailer.x.com 250-example.polito.it 250-8BITMIME 250-STARTTLS 250 DSN STARTTLS 220 Go ahead … TLS negotiation is started between client and server Servizi di sicurezza per messaggi di e-mail integrità (senza comunicazione diretta): il messaggio non può essere modificato autenticazione identifica il mittente non ripudio il mittente non può negare di aver spedito il mail riservatezza (opzionale): messaggi non leggibili sia in transito sia nella casella postale © Antonio Lioy - Politecnico di Torino (1995-2016) 19 Sicurezza della posta elettronica (emailsec - dec'16) Sicurezza dell’e-mail - idee guida (I) nessuna modifica agli attuali MTA messaggi codificati per evitare problemi nell’attraversare i gateway (es. Internet-Notes) oppure gli MTA non 8BITMIME nessuna modifica agli attuali UA interfaccia utente scomoda con modifica agli attuali UA interfaccia utente migliore Sicurezza dell’e-mail - idee guida (II) algoritmi simmetrici per la crittografia dei messaggi con chiave di messaggio algoritmi asimmetrici per crittografare e scambiare la chiave simmetrica per la firma digitale usare certificati a chiave pubblica (es. X.509) per il non-ripudio la sicurezza del messaggio si basa solo sulla sicurezza dell’UA del destinatario, non su quella degli MTA (non fidati) © Antonio Lioy - Politecnico di Torino (1995-2016) 20 Sicurezza della posta elettronica (emailsec - dec'16) Tipi di messaggi sicuri clear-signed msg in chiaro (perché tutti possano leggerlo) + firma (come allegato o parte del messaggio) solo chi ha MUA sicuro può verificare la firma signed msg + firma codificati (es. base64, uuencode) solo chi ha MUA sicuro (o fa uno sforzo manuale) può decodificarli e verificare la firma encrypted / enveloped msg cifrato + chiavi cifrate, codificato solo chi ha MUA sicuro (e chiavi!) può decifrarlo signed and enveloped Messaggi sicuri: creazione canonicalizzazione formato standard, indipendente da OS / host / net MIC (Message Integrity Code) integrità ed autenticità tipicamente: msg + { h(msg) } Kpri_sender cifratura riservatezza tipicamente: { msg } KM + { KM } Kpub_receiver codifica per evitare alterazioni da parte degli MTA tipicamente: base64 (vecchi: uuencode, binhex) © Antonio Lioy - Politecnico di Torino (1995-2016) 21 Sicurezza della posta elettronica (emailsec - dec'16) Formati di posta elettronica sicura IETF underground DOD + EU PEM PGP X.400 MOSS MIME-PGP X.421 S/MIME PGP (Pretty Good Privacy) autenticazione, integrità e riservatezza per posta elettronica o file privati stessi obiettivi di PEM e struttura simile ma più artigianale peculiare certificazione delle chiavi ("amici" fidati, algebra di propagazione della fiducia) RFC: RFC-1991 (informational) RFC-4880 (OpenPGP) versioni per UNIX, VMS, MS-DOS, Mac, Amiga, ... l’autore (Phil Zimmerman) ed il programma sono ormai diventati un simbolo della libertà in Internet © Antonio Lioy - Politecnico di Torino (1995-2016) 22 Sicurezza della posta elettronica (emailsec - dec'16) Phil Zimmermann rilascia PGP come freeware nel 1991 incarcerato, rilasciato e investigato sino al 1996, quando le accuse vengono fatte cadere e fonda PGP Inc. acquisita poi da NAI agosto 2002 lascia NAI e fonda PGP Co. non più open-source e non disponibile per Linux! PGP - certificazione delle chiavi ogni certificato contiene la firma di tutti coloro che si fidano del proprietario la fiducia si propaga transitivamente con un certo grado di approssimazione: completely partially (2 partially = 1 completely) untrusted unknown © Antonio Lioy - Politecnico di Torino (1995-2016) 23 Sicurezza della posta elettronica (emailsec - dec'16) PGP web of trust M F E C B G YOU L ? D I A N H X completely trusted partially trusted untrusted unknown Y firma X Y PGP - distribuzione delle chiavi le chiavi sono conservate personalmente da ogni utente ( key-ring ) le chiavi sono distribuite direttamente dal proprietario (PGP party!) o dai key-server (http, smtp, finger) progetti per distribuire le chiavi mediante X.500 o DNS ( pgp.net ): www.pgp.net keys.pgp.net ftp.pgp.net © Antonio Lioy - Politecnico di Torino (1995-2016) 24 Sicurezza della posta elettronica (emailsec - dec'16) MIME (Multipurpose Internet Mail Extensions) MIME varie codifiche dei dati formato recursivo – alfabeti non-USA – righe “lunghe” – dati binari ogni parte può essere un oggetto multipart formato multipart – parti distinte – parti di tipo diverso Posta elettronica multimediale sicura (MOSS o S/MIME) firma digitale / cifratura con certificati X.509v3 protegge messaggi MIME firmato firmato e cifrato cifrato testo testo testo tabella Excel tabella Excel docum. Word docum. Word tabella Excel docum. Word firma digitale in formato S/MIME firma digitale in formato S/MIME busta cifrata in formato S/MIME busta cifrata in formato S/MIME © Antonio Lioy - Politecnico di Torino (1995-2016) 25 Sicurezza della posta elettronica (emailsec - dec'16) RFC-1847 estensioni MIME per la sicurezza dei messaggi per la firma digitale: Content-Type: multipart/signed; protocol="TYPE/STYPE"; micalg="..."; boundary="..." con due body part: quella da proteggere (content-type: ...) la firma (content-type: TYPE/STYPE) rischioso se un gateway altera il messaggio S/MIME sicurezza di messaggi MIME promosso da RSA v2 pubblicato come serie di informational RFC: RFC-2311 “S/MIME v2 message specification” RFC-2312 “S/MIME v2 certificate handling” RFC-2313 “PKCS-1: RSA encryption v.1-5” RFC-2314 “PKCS-10: certification request syntax v.1-5” RFC-2315 “PKCS-7: cryptographic message syntax v.1-5” © Antonio Lioy - Politecnico di Torino (1995-2016) 26 Sicurezza della posta elettronica (emailsec - dec'16) S/MIMEv3 proposed standard IETF RFC-2633 “S/MIME v3 message specification” RFC-2632 “S/MIME v3 certificate handling” RFC-2634 “Enhanced Security Services for S/MIME” RFC-2314 “PKCS-10: certification request syntax v.1-5” RFC-2630 “CMS (Cryptographic Message Syntax)” RFC-2634 Enhanced Security Services for S/MIME indirizza le seguenti aree: firma per ricevuta di un documento security label mailing-list sicure firma degli attributi dei certificati © Antonio Lioy - Politecnico di Torino (1995-2016) 27 Sicurezza della posta elettronica (emailsec - dec'16) Architettura di S/MIME Architetturalmente è basato su: PKCS-7 (S/MIME v2) CMS (S/MIME v3) specifica le caratteristiche crittografiche ed i tipi di messaggi (equivalente al PEM) PKCS-10 formato della richiesta di certificato X.509 formato dei certificati a chiave pubblica S/MIME v3.2 – algoritmi firma digitale: (MUST) RSA with SHA-256. (SHOULD+) DSA with SHA-256 (SHOULD+) RSASSA-PSS with SHA-256 (SHOULD–) RSA with SHA-1 (SHOULD–) DSA with SHA-1 (SHOULD–) RSA with MD5 scambio chiave: (MUST) RSA encryption (SHOULD+) RSAES-OAEP (SHOULD–) DHE © Antonio Lioy - Politecnico di Torino (1995-2016) 28 Sicurezza della posta elettronica (emailsec - dec'16) S/MIME v3.2 – algoritmi riservatezza: (MUST) AES-128 CBC (SHOULD+) AES-192 CBC e AES-256 CBC (SHOULD–) DES EDE3 CBC micalg (dipende anche da firma digitale): MD5 SHA-1 SHA-224, SHA-256, SHA-384, SHA-512 MIME type application/pkcs7-mime, usato per: msg. cifrati (PKCS-7 envelopedData) msg. firmati binari (PKCS-7 signedData) destinati solo ad utenti S/MIME perché il messaggio è all’interno della busta PKCS-7 msg. che contengono solo una chiave pubblica (= certificato; formato PKCS-7 signedData "degenerato", ossia con dati nulli) estensione standard: .p7m sempre codificato in base64 © Antonio Lioy - Politecnico di Torino (1995-2016) 29 Sicurezza della posta elettronica (emailsec - dec'16) MIME type multipart/signed messaggi firmati destinati anche ad utenti non S/MIME (clear-signed) il messaggio resta in chiaro l’ultima parte MIME è la firma (da RFC-1847) la parte di firma ha estensione standard .p7s ed è codificata in base64 application/pkcs10 per inviare richiesta di certificazione ad una CA codificato in base64 Esempi S/MIME cifrato B64( P7_enveloped( msg )) firmato (solo utenti S/MIME) B64( P7_signed( msg )) firmato (generico) MIME( msg ) + B64( P7_signed_detached( msg )) firmato e cifrato B64( P7_enveloped( P7_signed( msg ))) B64( P7_signed( P7_enveloped( msg ))) nota: msg è il body RFC-822 del messaggio © Antonio Lioy - Politecnico di Torino (1995-2016) 30 Sicurezza della posta elettronica (emailsec - dec'16) S/MIME: esempio di firma Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="-----aaaaa" -----aaaaa Content-Type: text/plain Content-Transfer-Encoding: 7bit Ciao! -----aaaaa Content-Type: application/pkcs7-signature Content-Transfer-Encoding: base64 MIIN2QasDDSdwe/625dBxgdhdsf76rHfrJe65a4f fvVSW2Q1eD+SfDs543Sdwe6+25dBxfdER0eDsrs5 -----aaaaa- Naming in S/MIME per: selezionare il certificato verificare l’indirizzo del mittente in S/MIMEv2 consigliato Email= o E= nel DN nel certificato X.509, ma possibile usare l’estensione subjectAltName con codifica rfc822 in S/MIMEv3 obbligatorio usare l’estensione subjectAltName con codifica rfc822 © Antonio Lioy - Politecnico di Torino (1995-2016) 31 Sicurezza della posta elettronica (emailsec - dec'16) Protocolli di accesso al MS Post Office MUA autenticazione dell’utente autenticazione del server riservatezza/integrità della posta sul server durante il trasferimento Protocolli di accesso al MS POP (Post-Office Protocol) POP-2 (RFC-937), POP-3 (RFC-1939) autenticazione dell’utente mediante password in chiaro (!!!) APOP autenticazione dell’utente mediante sfida K-POP mutua autenticazione grazie ai ticket IMAP (Internet Mail Access Protocol) username e password in chiaro può usare OTP, Kerberos o GSS-API © Antonio Lioy - Politecnico di Torino (1995-2016) 32 Sicurezza della posta elettronica (emailsec - dec'16) Esempio POP-3 telnet pop.polito.it 110 +OK POP3 server ready <[email protected]> USER lioy +OK password required for lioy PASS antonio +OK lioy mailbox locked and ready STAT +OK 2 320 .......... QUIT +OK POP3 server signing off APOP comando APOP sostituisce la coppia di comandi USER + PASS la sfida è la parte della riga di hello tra parentesi acute < ... > (parentesi incluse) sintassi: APOP user risposta-alla-sfida risposta = MD5( sfida + password ) risposta codificata in esadecimale supportato da Eudora © Antonio Lioy - Politecnico di Torino (1995-2016) 33 Sicurezza della posta elettronica (emailsec - dec'16) Esempio APOP telnet pop.polito.it 110 +OK POP3 server ready <[email protected]> APOP lioy 36a0b36131b82474300846abd6a041ff +OK lioy mailbox locked and ready STAT +OK 2 320 .......... QUIT +OK POP3 server signing off RFC-2595 (TLS per POP / IMAP) RFC-2595 “Using TLS with IMAP, POP3 and ACAP” prima si apre il canale e poi si negozia la sicurezza tramite un apposito comando: STARTTLS per IMAP e ACAP STLS per POP3 client e server devono poter essere configurati per rifiutare user e password client confronta identità del certificato con l’identità del server © Antonio Lioy - Politecnico di Torino (1995-2016) 34 Sicurezza della posta elettronica (emailsec - dec'16) Porte separate per SSL/TLS? sconsigliate da IETF per i seguenti motivi: implicano URL diverse (es. http e https) implicano un modello sicuro / insicuro non corretto (es. è sicuro SSL a 40 bit? è non sicura un’applicazione senza SSL ma con SASL?) non facile implementare “usa SSL se disponibile” raddoppia il numero di porte necessarie … ma presentano alcuni vantaggi: semplicità di filtraggio sui firewall packet-filter SSL con client-authentication permette di non esporre le applicazioni ad attacchi © Antonio Lioy - Politecnico di Torino (1995-2016) 35