Directory • Directory cos’e’? • e’ un database distribuito • e’ uno standard sviluppato da – ISO – ITU • Directory qual’e’ il suo scopo? • fornire informazioni su oggetti • fornire meccanismi per accedere alle informazioni • Directory com’e’ usato? • consultazione • distribuzione 1 Directory • il Directory e’ un db distribuito – – – – – molte letture e poche scritture aggiornamento nottetempo (*) no rollback ammesse inconsistenze architettura di tipo gerarchico 2 Directory • Per esempio: un directory puo’ contenere: – – – – – indirizzi e-mail, user-authentication (login, passw) network-security (access right), sistemi in rete, servizi in rete • Queste informazioni possono essere accessibili alle applicazioni Sw oppure possono essere visibili agli utenti. 3 Directory - organizzazione • Quattro aspetti: – aspetto informativo • descrive l’organizzazione dei dati – aspetto funzionale • descrive le interazioni tra i vari componenti del Directory – aspetto organizzativo • descrive la politica su cui si basano le relazioni tra le varie entità e le informazioni che esse gestiscono – aspetto sicurezza • evidenzia gli aspetti di autenticazione ed autorizzazione 4 Aspetto informativo • DIB (Directory Information Base) Contiene tutte le informazioni su gli oggetti del Directory • Ogni oggetto è rappresentato da una entry • Ogni entry contiene un insieme di informazioni relative all'oggetto che rappresenta • le informazioni vengono descritte in termini di attributi dell’entry • ogni attributo è composto da un tipo e uno o più valori 5 Aspetto informativo Entry Attributo attributo attributo tipo valori valore valore attributo valore .. . . . attributo valore 6 Aspetto informativo • Le entry sono organizzate sotto forma di albero: il Directory Information Tree (DIT) • Ogni entry del DIT è univocamente identificata dal suo DN (Distinguished Name) • Il DN di una entry si determina traversando il DIT a partire dalla entry root fino a raggiungere l’entry desiderata • Ogni entry ha anche associato un attributo con un singolo valore, chiamato RDN (Relative Distinguished Name) • DN è la concatenazione degli RDN 7 delle entry attraversate root 1.1 RDN RDN RDN 2.1 O=Finsiel C=IT 2.2 O=Telesoft 3.1 OU=Tecsiel 4.1 CN=Franco Pitto 1.2 4.2 CN=Fabio Rossi C=US 2.3 O=Coca Cola 3.2 OU=Diet Coke 4.3 CN=Mary Smith 8 Directory • Niente di trascendentale. • Molti usano fanno ricorso al directory senza neanche rendersene conto: – www.company.com • resolved via the Domain Name System – finger someone@host – email someone@host • host e’ risolto via DNS, poi someone e’ risolto localmente oppure attraverso directory di contesto piu’ ampio. 9 Object Name : hosts Directory : org_dir.next.com. Owner : nishost.next.com. Group : admin.next.com. Access Rights : r---rmcdrmcdr--Time to Live : 12:0:0 Creation Time : Tue Feb 2 18:39:43 1999 Mod. Time : Tue Feb 2 18:39:43 1999 Object Type : TABLE Table Type : hosts_tbl Number of Columns : 4 Character Separator : Search Path : Columns : [0] Name : cname Attributes : (SEARCHABLE, TEXTUAL DATA, CASE INSENSITIVE) Access Rights : ---------------[1] Name : name Attributes : (SEARCHABLE, TEXTUAL DATA, CASE INSENSITIVE) Access Rights : ---------------[2] Name : addr Attributes : (SEARCHABLE, TEXTUAL DATA, CASE INSENSITIVE) Access Rights : ---------------[3] Name : comment Attributes : (TEXTUAL DATA) 10 Access Rights : ---------------- Object Name : passwd ………….. Object Type : TABLE Table Type : passwd_tbl …………….. Columns : [0] Name : name Attributes : (SEARCHABLE, TEXTUAL DATA, CASE SENSITIVE) Access Rights : r---rmcdrmcdr--[1] Name : passwd Attributes : (TEXTUAL DATA) Access Rights : r---rmcdrmcdr--[2] Name : uid Attributes : (SEARCHABLE, TEXTUAL DATA, CASE SENSITIVE) Access Rights : r---rmcdrmcdr--[3] Name : gid Attributes : (TEXTUAL DATA) Access Rights : r---rmcdrmcdr--[4] Name : gcos Attributes : (TEXTUAL DATA) Access Rights : r---rmcdrmcdr--[5] Name : home Attributes : (TEXTUAL DATA) Access Rights : r---rmcdrmcdr--[6] Name : shell Attributes : (TEXTUAL DATA) 11 Access Rights : r---rmcdrmcdr--- Directory - Architettura client-server • X500 definisce il protocollo di accesso al directory (DAP) quando i client contattano i server • il client chiede e riceve risposte da uno o piu’server • il DAP che controlla la comunicazione clientserver 12 Directory - le componenti • Directory User Agent (DUA) – fornisce funzionalita’ standard che supportano l’utente • nelle ricerche su uno o piu’ directory • nel recupero delle informazioni • nella presentazione dei risultati – comunica con il Directory per conto dell'utente e nasconde all'utente stesso i dettagli dell'organizzazione interna del Directory 13 Directory - le componenti • Directory System Agent (DSA) – e’ il database dove le informazioni del directory sono memorizzate • db gerarchico • update giornaliero 14 Directory - le componenti • Directory Protocols – rappresentano le regole che governano la comunicazione tra • directory client (DUA) e uno o piu’ directory servers (DSA) – Directory Access Protocol (DAP), e’ usato per controllare la comunicazione tra DUA e DSA. • due o piu’ directory servers (DSA) – Directory system Protocol (DSP), fa si che l’utente possa accedere le informazioni nel directory senza sapere dove sono esse sono esattamente localizzate 15 Utente Directory DSA C request DUA DSA A reply 1 2 3 4 DSA B 16 Aspetto organizzativo • “ descrive la politica su cui si basano le relazioni tra le varie entità e le informazioni che esse gestiscono” – definisce la mappatura delle porzioni di DIT sui DSA – definisce come i DSA possono essere visti dall’esterno 17 Aspetto Sicurezza • politica di autenticazione definisce i meccanismi per identificare DSA e utenti • tre tipi di autenticazione • nessuna – accessi liberi • debole – accesso regolato da password criptata • forte – accesso regolato da coppie di chiavi pubblica/privata • il meccanismo più utilizzato: • access control list 18 Access list: example • access to dn=".*, o=U of M, c=US" • by * search • access to dn=".*, c=US" • by * read • accesso in Read garantito alle entry del sottoalbero c=US, eccetto per per le entry nei sottoalberi • "o=University of Michigan, • c=US" subtree, • alle quali e’ garantito solo la Search 19 X509 • X509 definisce lo standard del formato dei certificati (Chiavi pubbliche). • X.509 e’ una raccomandazione dell’ITU • I certificati X509 sono utilizzati per la costruzine del SSL (Secure Socket Layer) 20 SSL • Secure Socket Layer – e’ un protocollo che fornisce sicurezza nelle comunicazioni su Internet. – Permette ad applicazioni client/server di comunicare in una modalita’ che previene – origliamento dei messaggi – manomissione dei messaggi – falsificazione dei messaggi 21 SSL • Secure Socket Layer protocol e’ composto di 2 strati – SSL Record protocol • si occupa di incapsulare i livelli alti dello stack OSI – SSL Handshake protocol • permette al server ed al client di – autenticare l’un l’altro – negoziare algoritmi di encription e le chiavi criptate • prima ancora che l’application protocol trasmetta e riceva i dati. 22 SSL • Secure Socket Layer protocol fornisce una comunicazione sicura, basata su 3 principi: • La connessione e’ privata: la cifratura dei messaggi e’ effettuata dopo il processo di Handshake. • l’identita’ degli interlocutori e’ autenticata usando il meccanismo di chiavi pubbliche/privata. • La connessione e’ affidabile: il trasporto dei messaggi include meccanismi di check di integrita’. 23 SSL • Secure Sockets (SSL) are inserted at the transport layer 24 Certificati e Autorità di Certificazione (CA) • Le chiavi pubbliche sono distribuite sotto forma di certificati firmati da una Autorità di Certificazione (CA) • chi usa il certificato deve essere certo dell’autenticità della chiave pubblica della CA Firma Elettronica della CA 25 LDAP • Lightweight Directory Access Protocol, • LDAP e’ un protocollo per accedere alle informazioni dei directory • LDAP e’ basato sugli standard contenuti in X500 ma e’ significativamente piu’ semplice. • Contrariamente a X500 supporta TCP/IP. Necessario per accedere al mondo Internet. • Poiche’ e’ una semplificazione di X500 e’ anche detto X500-Lite. • Lavorando con TCP/IP permette una larghissima diffusione. 26 Directory & X509 * Cos’e’ LDAP * • LDAP - Lightweight Directory Access Protocol. • E’ uno standard Internet Database • E’ un modo di usare i database X.500 sullo stack TCP/I, rendendolo utilizzabile su Internet. 27