Directory Service
Transcript
Directory Service
Concetti di base Autenticazione • Le persone accedono ad un sistema di calcolo, ad una applicazione, sulla base della loro identità. • Il processo di verifica della identità basata sulla disponibilità di credenziali, si chiama autenticazione. • La verifica dell’identità può avvenire in base a ciò che egli: è (impronte digitali,impronta vocale,modello retinico o altri identificatori biometrici) ha (es. tesserino identificativo, token, certificato digitale..) conosce (password,PIN,..) Autorizzazione • Il processo che regola l’accesso alle risorse da parte di un utente prende il nome di autorizzazione. • Metodi di autorizzazione: DAC (Discretional Access Control) MAC(Mandatory Access Control) RBAC (Role Based Access Control) Identity Management & Directories • Identity : insieme di attributi che rappresentano una persona in un sistema informatico. • Identity repository : sistema atto a contenere e rendere accessibili le identità. Fornisce strumenti, API e protocolli per creare e cercare le identità, modificarne gli attributi, costruire relazioni e definire regole per il controllo di queste operazioni. • Directory. Molti sistemi possono contenere digital identity (es.: database) e renderle in qualche modo accessibili Chiamiamo directory i sistemi il cui accesso è definito dal protocollo di comunicazione DAP(Direct Access Protocol) Directory Service e data-base:differenze • Una directory riceve quasi esclusivamente accessi in lettura. La scrittura è limitata agli amministratori di sistema ed ai proprietari delle singole informazioni. • Non sono adatte per memorizzare informazioni aggiornate di frequente. • Modello client-server. Il client chiama una funzione (API) che genera l’invio di un messaggio al server. • Il formato ed il contenuto dei messaggi scambiati deve rispettare un protocollo concordato (LDAP) • LDAP (Lightweight Directory Access Protocol) • Protocollo standard per l’interrogazione e la modifica dei servizi di directory. • Versione semplificata dello standard DAP( Directory Access Protocol) che deriva da X.500 (CCITT). • DSML (Directory Service Mark-up Language). Consente ai programmatori XML di accedere alle directory LDAP LDAP directory • Contiene oggetti che hanno un tipo, sono identificati da una chiave unica (distinguished name) e sono corredati di attributi. • I tipi di oggetti più comuni sono • User • Group • Organizational Unit • Organization • Domain Context • Alcuni oggetti hanno il ruolo di contenitori, come Domain Context (DC), la Organizational Unit (OU) e la Organization (O), gli altri hanno un Common Name (CN). • La directory ha un'organizzazione ad albero, che viene costruita mediante gli oggetti “contenitori”. Il nome di questi oggetti compone il distinguished name, ovvero la chiave di accesso, di tutti gli oggetti della directory, ad esempio: CN=Paolo Rossi, OU=Vendite, O=Fiat • In una rete complessa ed articolata il DS contiene tutte le informazioni relative all’infrastruttura ed alle sue risorse, agli enti che ne fanno parte, al personale ed agli utenti. • Per le persone interessa rendere disponibili informazioni anagrafiche, e-mail, num.tel e fax,etc.. e la loro appartenenza ad unità operative che compongono l’organizzazione. I numeri del DSA – 4266 personale docente e ricercatore – 6531 docenti a contratto – 3856 personale tecnico amministrativo – 8264 dottorandi – 5603 ospiti e collaboratori – 316395 studenti – 12111 gruppi sicurezza profilazione applicativa – 1719 unità organizzative e sedi servizio Identity Federation @ UniBO - Bologna, 09/10/2009 SLIDE 11 Università studenti Facolta’ X CDL 001 personale Facolta’Y CDL 002 computer Esame.. yyy Esame.. PINxxxxxxxx Computer: YYY Dislocazione:… Accesso: gruppo Astrolab Nome: Mario Rossi Username: mario.rossi Password: xxxxxxxxx E-mai: [email protected] Tel: .. Gruppi: Astrolab, Gr1,Gr2 Rafforzamento della sicurezza • Un directory service centralizza il servizio di autenticazione ed autorizzazione degli utenti. • Consente un accesso alle risorse basato sul ruolo individuale e sulle autorizzazioni ad esso concesse. • Tutti i sistemi e le applicazioni che si basano sul directory service usufruiscono del medesimo sistema di autenticazione, trasparente alla localizzazione degli utenti,che lavorano su client all’interno della rete o che utilizzano un’applicazione Web via Internet • Il directory service può essere utilizzato anche da applicazioni esterne utilizzate da personale definito all’interno della directory. • L’applicazione esterna interroga la directory ( web services) per sapere se le credenziali inserite dall’utente sono contenute nella directory. • Esempio: biblioteca comunale che vuole fare accedere al prestito gli studenti dell’Università Active Directory: Lotus Notes: i-Planet: Directory service: ……… Microsoft IBM Sun Nowell Single Sign On (SSO) • SSO: autenticazione unica da parte dell’utente. • Successive richieste di autenticazione per accesso a varie risorse vengono risolte dal software in modo invisibile all’utente. Architettura Approccio centralizzato. • Data base globale e centralizzato di tutti gli utenti e centralizzazione allo stesso modo della politica di sicurezza. • Questo approccio è destinato principalmente ai servizi dipendenti tutti dalla stessa entità, ad esempio all’interno di una azienda. CAS (Central Authentication Service) • E’ un protocollo single sign-on per il web. L’obiettivo è consentire ad un utente di accedere a più applicazioni fornendo le proprie credenziali una sola volta. • Consente alle applicazioni web di autenticare gli utenti senza avere accesso alle loro credenziali (es. password) • Tre componenti: - Client web browser - Applicazione che richiede l’autenticazione - CAS server • Il client vuole accedere ad una applicazione che richiede l’autenticazione. • L’applicazione ridirige la richiesta verso il CAS specificando di quale servizio si tratta. • Il CAS convalida l’autenticità del cliente e la sua autorizzazione. • Se il controllo ha successo CAS invia un “security ticket” all’applicazione e ridirige il client all’applicazione. • L’applicazione valida il ticket contattando CAS su un canale sicuro fornendo l’identificatore del servizio ed il ticket. • CAS fornisce all’applicazione informazioni “trusted” circa il fatto che l’utente è stato autenticato con successo. KERBEROS Kerberos • Sviluppato presso il MIT è un servizio di autenticazione che utilizza la crittografia a chiave simmetrica ed un centro di distribuzione delle chiavi (KDC). • KDC, consiste di due parti separate logicamente: l'Authentication Server (AS) e il Ticket Granting Server (TGS). • L'AS mantiene un database delle chiavi segrete; ogni entità sulla rete — che sia un client o un server — condivide la chiave segreta solo con l'AS. Serve per verificare gli utenti durante il login. • Il TGS emette ticket da usare per convincere i server che offrono i servizi che il loro possessore è realmente chi dichiara di essere. 1. Alice inserisce il suo username A sul client che lo inoltra ad AS. AS controlla se A è nel suo database e tramite la sua password genera Ka (chiave segreta di Alice). 2. AS risponde con un messaggio al client, cifrato con Ka, che contiene: - Ks chiave di sessione client-TGS - Ktgs(A,Ks) ticket per il TGS che contiene l'identificativo di Alice e la chiave di sessione client-TGS, cifrato utilizzando la chiave segreta di TGS(contenuta in AS) 3. Il client di Alice chiede ad Alice la password solo dopo aver ricevuto il messaggio da AS. La password viene usata per generare Ka. Tramite Ka il messaggio può essere decriptato. Alice ottiene la chiave Ks ed il ticket. Ktgs(A,Ks). 4. Il client cancella la password di Alice, assicurandosi così che sia rimasta all’interno della workstation per pochi millisecondi. Approccio federativo (Federated Identity management) • Le organizzazioni oggi necessitano di gestire l’accesso non solo ai propri sistemi, ma anche a sistemi che appartengono a partner esterni o ad altre divisioni della stessa organizzazione. • Esempi: - Outsourcer service provider - Supply chain partners - Cross selling services - Co-developing products …. • Necessità di visitare molti siti ogni volta con un diverso login. •Ampia gamma di differenti modalità di autenticazione ed autorizzazione, non integrabili tra loro con semplicità • Necessità di far gestire ad altri le informazioni sulla identità degli utenti: aumentano i rischi sulla sicurezza (accessi non autorizzati, furto di identità). • Obbligo per i partners di modificare i loro sistemi ogni volta c’e’ una modifica sull’identità degli utenti. • I diritti di accesso di chi non e’ più utente dell’organizzazione possono rimanere attivi su certi siti dei partners. . • E’ resa difficile la semplice costruzione di applicazioni che possono condividere ed aggregare servizi offerti da siti diversi. • Obiettivo:Una persona appartenente ad una organizzazione autenticandosi presso il sistema in uso nell’organizzazione può accedere direttamente ad altri siti senza doversi riautenticare Esempio. • Fabrikam: azienda che produce biciclette. • Applicazione web che consente ai dealers autorizzati di acquistare biciclette all’ingrosso •200 dealers , ciascuno con diverse persone che possono utilizzare l’applicazione. Obiettivo Costruire un sistema di logon sicuro per Fabricam Soluzione Data base centralizzato che contiene username e password di tutte le persone che possono accedere. Problemi - Fabrikam prima di rilasciare un user account deve garantirsi che chi chiede appartenga ad un dealer autorizzato. - Costo della gestione centralizzata degli user accounts. - Deprovisioning. - Possibilità che le passwords vengano attaccate. - Difficoltà di uso di strumenti più sofisticati (es. smart cards) dato il numero dei dealers. Molteplicità di soluzioni difficile da gestire. -Trusting tra Fabrikam ed i dealers autorizzati a mandare le liste di impiegati. Perché costruire un nuovo data base quando ne esiste già uno per ciascun dealer in base al quale gli impiegati sono autenticati localmente? • Ogni organizzazione appartenente alla federazione autentica i propri utenti utilizzando il proprio sistema di autenticazione. • L’accesso ad uno dei sistemi federati permette automaticamente l’accesso a tutti gli altri. • Ogni partner deve fidarsi che gli altri partner garantiscono per i loro utenti “L’utente è OK; consentigli di utilizzare questa applicazione”. • L’accesso al server avviene senza dover specificare la propria identità. • Le password rimangono locali al sistema di autenticazione cui fa capo l’utente. • Trust tra i due siti. I due siti devono essere sicuri che gli attributi vengano rilasciati al sito deciso. • Sistema di distribuzione di certificati digitali ed un meccanismo per associare questi certificati ai siti origine e destinazione. Scambio di messaggi utilizzando un protocollo standard (SAML- Security Assertion Markup Language) SAML Assertions: 1. Authentication statements 2. Attribute statements 3. Authorization statements Active Directory Federation Services (ADFS) • Un impiegato A di un dealer B tenta di accedere al sito di Fabricam. • Il web agent si accorge che la richiesta non è accompagnata da un ticket (ADFS cookie) • Il web agent ridirige il browser di A al servizio di federazione di Fabrikam senza che l’applicazione veda la richiesta . • Il servizio di federazione di Fabrikam ridirige il browser al servizio di federazione del dealer con un identificatore di Fabrikam in modo che il dealer sappia quale servizio è richiesto. • Il servizio di federazione del dealer chiede il logon di A e definisce un token usando SAML che descrive A. • Il dealer ha un sistema di Identity Provisioning per tutti i suoi impiegati (appartenenza dell’impiegato al dealer, il suo ruolo attuale se ha diritto o no di fare l’acquisto) • Fabrikam legge il contenuto del token ed invia un token SAML che contiene l’insieme delle richieste che l’applicazione vede. • Questo token è un cookie che consente ad A di usare l’applicazione fino al termine di validità del token (default 10 ore) Liberty Alliance • 150 organizzazioni: AOL,Intel, novell,Oracle, Sun,…. • ID-FF 1.0 e 2.0 • OASIS( Organization for the Advancement of Structured Information Standards) : SAML standard Shibboleth • Shibboleth è Internet2 Middleware Initiative project that has created an architecture and open-source implementation for federated identity-based authentication and authorization infrastructure based on Security Assertion Markup Language (SAML). Federated identity allows for information about users in one security domain to be provided to other organizations in a federation. This allows for cross-domain single sign-on and removes the need for content providers to maintain user names and passwords. Identity providers (IdPs) supply user information, while service providers (SPs) consume this information and get access to secure content Sicurezza delle reti • I problemi di sicurezza nelle reti si possono suddividere in quattro categorie interconnesse tra loro: -segretezza (o confidenzialità) -autenticazione -non ripudio -controllo dell’integrità • La segretezza si occupa di proteggere le informazioni da utenti non autorizzati. • L’autenticazione si occupa di stabilire l’identità del soggetto con cui stiamo comunicando. • Il non ripudio rende impossibile rinnegare l’invio di un messaggio realmente avvenuto. • Il controllo di integrità garantisce che il messaggio ricevuto sia realmente quello inviato L’intruso passivo ascolta soltanto Testo in chiaro, P intruso Metodo di cifratura,E L’intruso attivo può alterare i messaggi Metodo di decifratura,D Testo cifrato, C = Ek(P) Chiave di cifratura, K Chiave di decifratura, K DK(EK(P))=P • La mancanza di segretezza dell’algoritmo è fondamentale. • Cercare di tenere segreto l’algoritmo (sicurezza per occultamento) comporta un lavoro complesso per inventare, testare ed installarne un nuovo quando quello vecchio si pensa che sia stato compromesso. • La chiave può invece essere cambiata tutte le volte che si vuole. • Pubblicizzando l’algoritmo il crittografo ottiene gratuitamente la consulenza di molte persone desiderose di forzare il sistema. • Il modello base di un sistema crittografico è dato da un algoritmo generale stabile e noto pubblicamente e da una chiave che può essere facilmente modificata. Algoritmi a chiave simmetrica Chiave segreta Testo in chiaro algoritmo Chiave segreta Testo in chiaro Testo cifrato algoritmo Due tipi: cifrari a flusso (operano su sequenze di testo in chiaro bit a bit o byte a byte); cifrari di blocco (operano su blocchi di testo in chiaro o cifrato, generalmente di 64 bit) DES (Data Encryption Standard) Adottato come standard federale nel ’77. il DES cifra blocchi di dati di 64-bit impiegando una chiave di lunghezza pari a 56 bit; per ogni blocco lo schema di funzionamento prevede 16 cicli (“round”); ogni round e’ semplicemente la combinazione delle due operazioni di permutazione e sostituzione a partire dalla chiave; DES utilizza operazioni logiche ed aritmetiche facilmente implementabili in hardware Algoritmi a chiave pubblica Chiave segreta del mittente Chiave pubblica del destinatario algoritmo Testo in chiaro autenticazione cifratura ciphertext Chiave pubblica del mittente Chiave privata del destinatario algoritmo Testo in chiaro la chiave di cifratura differisce dalla chiave di decifratura; la conoscenza della chiave pubblica non permette di risalire alla chiave privata (almeno in una ragionevole quantità di tempo) RSA • Rivest, Shamir, Adleman. MIT (1978) • Richiede chiavi di almeno 1024 bit per poter offrire una buona sicurezza. Complessità dell’algoritmo e quindi lentezza. • Molto utilizzato • Si basa su alcuni principi della teoria dei numeri. Riservatezza delle comunicazioni tramite sistemi ibridi Processo di cifratura Si cifra il file utlizzando una chiave simmetrica Si cifra la ch. simmetrica per i destinatari utilizzando La loro ch. pubblica + Processo di decifratura Si estrae la ch. simmetrica utilizzando la ch.privata Si decifra il file utilizzando la ch. simmetrica Si recupera Il file originale Al testo cifrato e’ allegata l’intestazione Ora come puo’ essere utilizzata la crittografia a chiave pubblica per fornire autenticazione dell’origine dei dati ed integrita’? Digital Signature la firma e’ autentica; la firma non e’ falsificabile; il documento firmato non e’ alterabile; la firma non e’ riusabile in un altro documento; la firma non puo’ essere disconosciuta. Riservatezza delle comunicazioni con sistemi a chiave pubblica Alice reperisce la chiave pubblica di Bob da un database; Alice cifra il messaggio utilizzando la chiave pubblica di Bob e lo invia a Bob; Bob decifra il messaggio utilizzando la propria chiave privata Directory delle chiavi pubbliche ChiavePubblica di Bob Alice cifratrura Chiave Privata di Bob Testo cifrato decifratura Bob Firma digitale Firma di documenti con crittografia a chiave pubblica: Chiave privata di A C h i a v e pubblica di A Testo in chiaro A cifratura Testo cifrato Testo in chiaro B decifr. • Gli algoritmi a chiave pubblica non forniscono buone prestazioni nella firma di documenti di dimensioni elevate. • Per migliorare le prestazioni la firma digitale viene realizzata utilizzando le cosiddette funzioni hash unidirezionali Funzioni hash Le funzioni hash unidirezionali rappresentano blocchi costitutivi fondamentali nella crittografia a chiave pubblica • one-way function (funzioni unidirezionali): dato x e’ facile calcolare f(x), data f(x) e’ computazionalmente infattibile risalire a x, cioè calcolare f-1 da una completa descrizione di f • hash function: data una stringa di ingresso di lunghezza variabile tale stringa viene trasformata in un output di lunghezza fissa (hash value) (md2, md5, SHA-1) Proprieta’: funzioni unidirezionali; prive di collisioni messaggio lungo funzione hash Esempi: • Algoritmo MD5 di Ron Rivest (RFC1321) produce un digest di 128 bit • Algoritmo SHA-1 (Secure Hash Algorithm) Standard federale USA Produce un digest di 160 bit digest del messaggio di dimensione fissa Digital Signature Firma digitale ottenuta combinando crittografia a chiave pubblica e funzioni hash unidirezionali: Processo di firma Si calcola l’hash Si firma l’hash con la chiave privata Processo di verifica Si calcola un hash fresco Si verifica l’hash originale con la chiave pubblica = Testo firmato Si confronta l’hash verificato Con l’hash fresco SSL (Secure Socket Layer) • Il server invia al client il suo certificato (contenente la sua chiave pubblica). Il certificato e’ stato cifrato con la chiave privata di una CA. • Il client usa la chiave pubblica della CA per decifrare il messaggio e ricavare la chiave pubblica del server (autenticazione del server). • Il client genera una chiave simmetrica di sessione, la cifra con la chiave pubblica del server e la invia al server. • Il server ricava la chiave simmetrica utilizzando la sua chiave privata. • Avviene lo scambio di messaggi cifrati con la chiave simmetrica