Identity Management Systems
Transcript
Identity Management Systems
Corso di Sicurezza 2 A.A. 2007/08 Identity Management Systems Eugenio Rustico Sommario ▶ Qualche definizione Identità digitale, IMS ▶ IMS aziendali Caratteristiche ▶ Single Sign On ▶ User-centric IMS Identity selectors OpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico Identità digitale “The digital representation of a set of claims made by one digital subject about itself or another digital subject.” Fonte: wikipedia Intuitivamente: la rappresentazione nel mondo digitale della nostra identità “reale” Sicurezza 2 - Identity Management Systems – Eugenio Rustico Identità digitale Sicurezza 2 - Identity Management Systems – Eugenio Rustico Identità digitale ● ● ● Reale↔digitale è di norma una relazione unoa-molti Quella digitale è univoca quando associata ad un preciso contesto (namespace) Identità federata: l'insieme delle identità digitali di un soggetto reale, memorizzate in più IMS distinti, associate tra loro da un token (username o identificativo) Sicurezza 2 - Identity Management Systems – Eugenio Rustico IMS Identity Management: “Providing the right people with the right access at the right time” Completo ma non corretto: è implicito negare a tutti gli altri! In genere, più corretto “subjects” che “people” Sicurezza 2 - Identity Management Systems – Eugenio Rustico IMS ● ● ● Il sistema di gestione delle identità non è il sistema di autenticazione, ma collabora strettamente con esso. Ogni sistema operativo moderno ha un sottosistema di gestione delle identità più o meno flessibile (es. Unix) Le caselle email che permettono di gestire diversi alias sono un primitivo IMS Sicurezza 2 - Identity Management Systems – Eugenio Rustico IMS Identity Management Systems Aziendali/personali Centralizzati/decentralizzati Provisioning: creazione identità digitali, modifica delle credenziali Deprovisioning: cancellazione di credenziali o intere identità digitali Sicurezza 2 - Identity Management Systems – Eugenio Rustico Sommario ▶ Qualche definizione Identità digitale, IMS ▶ IMS aziendali Caratteristiche ▶ Single Sign On ▶ User-centric IMS Identity selectors OpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico IMS aziendali Non prodotti preconfezionati, ma soluzioni personalizzate. Quali caratteristiche sono desiderabili? Provisioning e deprovisioning automatizzati ✔ Interfacce web-based ✔ Revoche immediate ✔ Coerenza con le politiche aziendali ... Sicurezza 2 - Identity Management Systems – Eugenio Rustico ✔ IMS aziendali ... ✔ Processi di approvazione seriali e paralleli ✔ Integrazione con sistemi legacy ✔ Delega di autorità, manuale o automatica dopo un timeout ✔ Modifica dinamica dei ruoli ✔ Flessibilità nella gestione delle credenziali ✔ Programmazione temporale di provisioning e deprovisioning ... Sicurezza 2 - Identity Management Systems – Eugenio Rustico IMS aziendali ... ✔ Rilevazione cambiamenti manuali, approvazione, aggiornamento automatico ✔ Notifiche automatiche ✔ Flessibilità nei ruoli: ruoli multipli, gerarchici, ereditarietà ✔ Integrazione con diverse topologie di rete (firewall, NAT) ✔ Gestione delle password (rinnovo automatico, dizionari di esclusione, regole di validità...) ... Sicurezza 2 - Identity Management Systems – Eugenio Rustico IMS aziendali ... ✔ Compatibilità con DBMS (MySQL, Oracle, MS SQL Server...) e web applications (Tomcat, Websphere...) ✔ Scalabilità ✔ Rilevamento conflitti ruoli/politiche ✔ Auditing & reporting ✔ Approccio federativo e standard compliance (SAML, LDAP, Liberty Alliance, OpenID, SPML, XACML...) ✔ Single Sign On Sicurezza 2 - Identity Management Systems – Eugenio Rustico Single Sign On “Single sign-on (SSO) is a method of access control that enables a user to authenticate once and gain access to the resources of multiple software systems.” Fonte: wikipedia Meglio “enterprise reduced sign-on”, in quanto è difficilmente attuabile senza omogeneità delle infrastrutture Sicurezza 2 - Identity Management Systems – Eugenio Rustico Single Sign On Vantaggio: semplificazione Una “password” da ricordare Infrastruttura hw/sw semplificata Possiamo concentrare le risorse su di un'unica operazione (e.g. smartcard)! Sicurezza 2 - Identity Management Systems – Eugenio Rustico Single Sign On Svantaggio: centralizzazione Può essere come autenticare un terminale, non un utente E se mi rubassero proprio quella password? Auspicabile single sign off automatico Sicurezza 2 - Identity Management Systems – Eugenio Rustico Single Sign On Il SSO non è una prerogativa dei sistemi aziendali... Sul web è in genere implementato tramite le sessioni (stesso web server) o i cookies Sicurezza 2 - Identity Management Systems – Eugenio Rustico Single Sign On Tecniche Server di autenticazione centralizzato (es. siti multiservizio come Google) Rilascio di un token (es. Kerberos) Identity providers decentralizzati (es. OpenID) Completamento automatico di form (Enterprise-Single Sign On) Sicurezza 2 - Identity Management Systems – Eugenio Rustico Sommario ▶ Qualche definizione Identità digitale, IMS ▶ IMS aziendali Caratteristiche ▶ Single Sign On ▶ User-centric IMS Identity selectors OpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico IMS personali User-centric IMS: è l'utente a decidere le politiche da adottare. ● Di chi mi fido? ● Quali informazioni sono disposto a rilasciare? ● Chi sa cosa sto facendo? A livello applicativo: identity selectors (Windows CardSpace, DigitalMe, Higgins Project...) Sicurezza 2 - Identity Management Systems – Eugenio Rustico IMS personali Sicurezza 2 - Identity Management Systems – Eugenio Rustico Information Cards Information Card: la rappresentazione visuale di una identità digitale Nome Cognome Società Mansione Public RSA key fprint: 0123456789ABCDEF Username Email Password: ********** L'utente seleziona quale information card mostrare quando un servizio richiede delle credenziali Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Da Brad Fitzpatrick, il creatore di LiveJournal. Dal sito ufficiale: “For geeks, OpenID is an open, decentralized, free framework for user-centric digital identity. OpenID takes advantage of already existing internet technology (URI, HTTP, SSL, Diffie-Hellman) and realizes that people are already creating identities for themselves whether it be at their blog, photostream, profile page, etc. With OpenID you can easily transform one of these existing URIs into an account which can be used at sites which support OpenID logins.” Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID OpenID non fornisce un vero e proprio meccanismo di autenticazione, bensì una forma di delega di autenticazione ottenuta tramite altri protocolli. L'utente decide quali credenziali presentare a chi, e si identifica con un solo identificativo (un URL). La novità è che l'utente può anche scegliere chi sia il proprio “provider di identità”. Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID In sintesi 1. URL OpenID End user 2. Redirect presso OP RP 5. Servizio OP 4. Conferma autenticazione 3. Autenticazione = indirect message (redirect via browser) Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Un provider OpenID: MyOpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Come evitare che un OP o una RP possano tracciare tutto ciò che facciamo? 1. Utilizziamo OP differenti 2. Deleghiamo, e usiamo come URL qualsiasi pagina web che possiamo modificare: <link rel="openid.server" href="http://www.myopenid.com/server" /> <link rel="openid.delegate" href="http://eugenior.myopenid.com/" /> 3. Possiamo diventare anche noi degli Identity Provider: esistono librerie per molti linguaggi Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Relying party (RP) – entità che desidera verificare l'identità dell'utente Identity Provider (OP) – entità che offre un servizio di autenticazione compatibile con OpenID End user – colui che chiede un servizio presso la relying party, e ha bisogno di autenticarsi presso di essa Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Direct Request – messaggio scambiato direttamente tra RP e OP tramite HTTP POST Indirect Request – messaggio scambiato tramite il browser dell'utente (redirezione HTTP o form HTML) Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID 1. User RP: {openid_identifier} Nella form della pagina di login dell'RP, il campo destinato all'OpenID deve avere nome openid_identifier Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID 2. RP: normalization dell'openid_identifier e discovery dell'OP Endpoint URL In pratica, l'RP analizza l'indirizzo fornito dall'utente e cerca l'URL esatto dell'OpenID provider (necessario, ad esempio, in caso di delega) Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID 3. RP OP: {ns, mode, assoc_type, session_type} ns: “http://specs.openid.net/auth/2.0” ● mode: “associate” ● assoc_type: “HMAC-SHA1” o “HMAC-SHA256” ● session_type: “no-encryption”, “DH-SHA1” o “DH-SHA256” ● Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Opzionali per Diffie Hellman: dh_modulus, dh_gen, dh_consumer_public Modulo predefinito: DCF93A0B883972EC0E19989AC5A2CE310E1D37717E8D9571BB7623731866E61E F75A2E27898B057F9891C2E27A639C3F29B60814581CD3B2CA3986D268370557 7D45C2E7E52DC81C7A171876E5CEA74B1448BFDFAF18828EFD2519F14E45E382 6634AF1949E5B535CC829A483B8A76223E5D490A257F05BDFF16F2FB22C583AB Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID 4. OP RP: {ns, assoc_handle, assoc_type, session_type, expires_in [...]} se l'OP è in grado di memorizzare l'handle e mantenere una sessione stateful; in tal caso, OP ed RP si scambiano un segreto con DiffieHellman. Altrimenti: 4. OP RP: {ns, error, error_code [,...]} con error_code = “unsupported_type” per una sessione stateless Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Authentication Request 5. RP OP: {ns, mode, claimed_id, [identity, assoc_handle, return_to, realm]} mode: "checkid_immediate" o "checkid_setup"; il primo per richiedere una autenticazione senza intervento dell'utente (ad es. per pagine AJAX), il secondo per una autenticazione interattiva Nota: questo messaggio è una indirect request Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID 6. OP User: autenticazione Dalle specifiche OpenID: “The manner in which the end user authenticates to their OP and any policies surrounding such authentication is out of scope for this document.” Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Authentication Request Se siamo in presenza di una positive assertion: 7. OP RP: {ns, mode, op_endpoint, claimed_id, identity, return_to, response_nonce, invalidate_handle, assoc_handle, signed, sig} mode: ”id_res” ● response_nonce: deve iniziare con la data corrente del server ● signed: elenco dei campi inclusi nella firma ● sign: firma (stringa base64 encoded) tramite HMAC e segreto condiviso (per sessioni stateful) ● Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Se, invece, siamo in presenza di una negative assertion (autenticazione fallita): 7. OP RP: {ns, mode} mode: ”setup_needed” se in risposta ad una immediate request (si richiede una nuova autenticazione in modalità interattiva), “cancel” altrimenti ● Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Se la sessione era stateless, non abbiamo ancora finito: l'RP non possiede un segreto condiviso con cui verificare la firma. Manda dunque una direct request (via HTTP POST) all'OP uguale al messaggio appena ricevuto (tranne nel il campo mode, che deve essere “check_authentication”): 8. RP OP: {[...], mode, [...]} L'OP risponde true/false con una direct request: 9. OP RP: {ns, is_valid, invalidate_handle]} Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Ogni messaggio può contenere dei campi aggiuntivi (extensions) per veicolare informazioni addizionali (ad es. il metodo di autenticazione usato) Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Considerazioni Discreta explicitness (es. in Authentication Response), ma poca attenzione per la freshness (una sola nonce in tutto il protocollo) ● La verifica al passo 8 ha senso solo se la connessione è sicura (TLS/SSL) ● Le indirect request sono facilmente alterabili dall'utente (dal browser dell'utente!) ● Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Le specifiche raccomandano l'utilizzo di crittografia al livello sottostante (TLS in particolare), ma non è mandatory ● Se il DNS non è sicuro, o si altera la fase di discovery, un attaccante può impersonare facilmente un OP ● Diffie Hellman deve essere in un tunnel sicuro per evitare MITM ● Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Contrastare il phishing Chiedere all'utente di digitare manualmente l'indirizzo dell'OP, invece di effettuare un redirect ● ● ● Plugins per il browser (es. SeatBelt di Verisign) Un mostro durante l'autenticazione ci salverà! Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID “Non prenderà mai piede!” Sicurezza 2 - Identity Management Systems – Eugenio Rustico OpenID “Non prenderà mai piede!” AOL ● Microsoft ● LiveJournal ● Technorati ● Sourceforge ● Yahoo! ● Verisign ● Google ● ... ● Il futuro del web 2.0? Sicurezza 2 - Identity Management Systems – Eugenio Rustico ... Sicurezza 2 - Identity Management Systems – Eugenio Rustico Fine ...that's all, folks! Q? Sicurezza 2 - Identity Management Systems – Eugenio Rustico