Elementi di Sicurezza e Privatezza Lezione 19 SAML e sicurezza della posta elettronica Chiara Braghin chiara.braghin@unimi.it
SAML Security Assertion Markup Language
Dalla lezione precedente (1) Single Sign On (Federato) Consente all utente di autenticarsi una sola volta e di avere accesso a tutte le risorse alle quali è abilitato (anche in domini diversi) Identity Provider (IdP): gestisce l autenticazione e le credenziali degli utenti Service Provider (SP): fornisce i servizi e si appoggia alle informazioni passate dall IdP per autorizzare o meno l accesso ad una risorsa 2
Dalla lezione precedente (2) SSO, cosa è necessario stabilire: 1.Forma (sintassi e semantica) degli attributi scambiati tra domini e server 2.Protocolli per lo scambio di informazioni di autenticazione e autorizzazione tra domini SAML Security Assertion Markup Language OpenID 3
SAML (1) Security Assertion Markup Language (SAML) standard per lo scambio di dati di autenticazione e autorizzazione (asserzioni) tra domini di sicurezza distinti, tipicamente un identity provider e un service provider formato delle asserzioni SAML basato su XML prodotto, a partire dal 2001, dal Security Services Technical Commitee di OASIS (Organization for the Advancement of Structured Information Standards) http://www.oasis-open.org/ la più di usa implementazione Open Source è OpenSAML (OpenSAML - an Open Source Security Assertion Language implementation) http://www.opensaml.org 4
SAML (2) - Storia SAML 1.0: Novembre 2002 SAML 1.1: Settembre 2003 SAML 2.0: Marzo 2005 (non retrocompatibile!) Liberty Alliance: un consorzio di organizzazioni con l obiettivo di stabilire linee guida e standard per la gestione delle identità 5
SAML (3) - Funzionamento SAML suppone che l utente (detto principal) sia iscritto ad almeno un Identity Provider l IdP viene utilizzato per fornire servizi di autenticazione all'utente SAML non specifica come i servizi di autenticazione siano implementati Identity Server Service Provider 6
SAML (4) - Core Asserzioni Sono i dati di autenticazione e autorizzazione in genere trasferiti da un IdP e un SP Contengono informazioni che il SP usa per decidere se autorizzare o meno un accesso Possono contenere 3 tipi di informazioni: Authentication statement: indica che l utente è stato autenticato Attribute statement: indica che un utente è associato con gli attributi specificati. Un attributo è una coppia (nome, valore) Authorization decision statement: specifica che un utente ha l autorizzazione a compiere un azione A su di una risorsa R in caso E sia valido 7
SAML (5) - Core Asserzioni cont d <saml:assertion...>... </saml:assertion> 8
SAML (6) - Core Protocolli Specifica il protocollo utilizzato per richiedere e trasmettere le asserzioni tra un entità ed un altra Fa riferimento a cosa viene trasmesso, non a come venga trasmesso 9
SAML (7) - Core Vincoli (binding) Determina in che modo richieste e risposte SAML vengono mappate al formato dei protocolli di comunicazione e trasmissione standard (SOAP o HTTP) Specifica come le asserzioni vengano inviate da un server ad un altro Profili Specifica un caso d'uso definito utilizzando una particolare combinazione di asserzioni, protocolli e vincoli Web Browser SSO 10
SAML (8) - Funzionamento SAML Web Browser SSO La comunicazione tra C e SP avviene tramite SSL/TLS con autenticazione del SP La comunicazione tra C e IdP avviene tramite SSL/TLS con mutua autenticazione 11
SAML (9) Perché non usare i cookie per SAML SSO? alcuni prodotti SSO usano i cookie del browser per mantenere lo stato PROBLEMA: i cookie non sono trasferiti tra domini DNS: se si ottiene un cookie da www.abc.com, quel cookie non verrà inviato in una request HTTP a www.xyz.com 12
Google Apps Google Apps è un servizio di Google per usare nomi di dominio preimpostati con i vari prodotti di Google (Gmail, Google Calendar, Google Talk, Google Docs e Google Sites) L'edizione standard è gratuita e offre un certo quantitativo di memoria di archiviazione come gli account Gmail L'edizione Premier offre 25GB di E-mail per 40 all'anno L'edizione educativa è gratuita e combina caratteristiche della standard e della Premier 13
SAML e Google Apps (1) Google Apps offre un servizio SAMLbased Single Sign-On (SSO) per l accesso ad applicazioni Web based Nel modello SAML: Google funge da SP e offre servizi come Gmail e Start Pages I partner di Google fungono da IdS e gestiscono username, password and le altre info necessarie per autenticazione e autorizzazione 14
SAML e Google Apps (2) 15
SAML e Google Apps (3) XXX XX ID e SP non sono inclusi nell authentication assertion ID, SP e IdP non sono inclusi nel response 16
SAML e Google Apps (4) 17
SAML e Google Apps (5) AVISPA 18
Riferimenti Sito di OASIS http://www.oasis-open.org/ SAML e Google Apps http://code.google.com/googleapps/domain/sso/ saml_reference_implementation.html http://code.google.com/apis/apps/sso/saml_sta tic_demo/saml_demo.html Articolo su bug SAML e Google Apps Formal Analysis of SAML 2.0 Web Browser Single Sign- On: Breaking the SAML-based Single Sign-On for Google Apps, A. Armando, R. Carbone, L. Compagna, J. Cuellar, Llanos Tobarra Abad, 6th ACM Workshop on Formal Methods in Security Engineering (FMSE 2008) http://www.kb.cert.org/vuls/id/612636 19
Sicurezza della posta elettronica
Posta elettronica (1) Una mail è un messaggio composto da stringhe di caratteri ASCII in un formato specificato da RFC 822 (anno 1982) L ultima versione è RFC 2822 (anno 2001) Due parti separate da una linea bianca: header: mittente, destinatario, data, soggetto, percorso di consegna, body: contiene il messaggio vero e proprio 21
Posta elettronica (2) MUA: Mail User Agent, client di posta MTA: Mail Transportation Agent, server di posta 22
Posta elettronica (3) SMTP: Simple Mail Transfer Protocol Connessione TCP alla porta 25 POP3: Post Office Protocol v.3 Connessione TCP alla porta 110 IMAP: Internet Message Access Protocol Connessione TCP alla porta 143 I messaggi rimangono sul server MIME: Multipurpose Internet Mail Extension Specifica un formato standard per incapsulare più dati diversi in un singolo messaggio 23
Posta elettronica sicura? (1) Perdita di confidenzialità mail spedita in chiaro su una rete non sicura mail memorizzata potenzialmente su client e mail server non sicuri Perdita di integrità Il corpo del messaggio può essere modificato in transito oppure modificato dal mail server Mancanza di autenticazione nessuna garanzia sul fatto che la mail provenga da chi è indicato nel campo from: 24
Posta elettronica sicura? (2) Mancanza di non-repudiation il mittente può dichiarare in seguito di non aver inviato una mail con un dato contenuto Mancanza di ricevuta ricezione nessuna garanzia sul fatto che il destinatario abbia ricevuto il messaggio 25
Posta elettronica sicura? (3) Come fare? Rendere sicure le connessioni tra client e server POP, IMAP over ssh, SSL Accesso tramite https alla Webmail Rendere sicura la gestione della posta end-to-end PGP Entrambe le parti devono supportare PGP 26
PGP (1) PGP = Pretty Good Privacy Programma freeware (nella sua versione base) Basato su tecniche crittografiche sia di tipo simmetrico che asimmetrico (ibrido) Utilizzato principalmente garantire la segretezza (e integrità) di informazioni digitali (sia messaggi di posta elettronica che file residenti sul proprio PC) Permette anche la firma digitale 27
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 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 28
PGP (3) - Storia Zimmermann viene accusato di aver violato le leggi sui brevetti in quanto in PGP viene utilizzato RSA Viene istituito un fondo per far fronte alle spese legali Le accuse vengono ritirate OpenPGP è uno standard IETF per l'interoperabilità dei messaggi protetti tramite crittografia asimmetrica definito dalla RFC 4880 (novembre 2007) che rimpiazza la RFC 2440 (novembre 1998) 29
PGP (4) - Autenticazione sender K -1 snd m h σ hash enc receiver m h h σ hash compare accept / reject dec K snd 30
PGP (5) - Confidenzialità m prng K rcv sender s.enc k, iv a.enc {k, iv} Krcv {m} k s.enc: cifratura simmetrica a.enc: cifratura asimmetrica 31
PGP (6) - Autenticazione e Segretezza X := file signature? no compress X := Z(X) yes generate signature X := σ(x) X encryption? no radix 64 X := R64(X) yes generate envelop X := {k} Krcv {X} k 32
PGP (7) - Autenticazione e Segretezza Source A Destination B Public key KUb Private key KRb Public key KRb M Private key KRa H EP ZIP Session key Ks EC EP M DP Session key Ks DC UNZIP M DP H Compare PGP prima firma il messaggio e poi lo cifra 33