Post on 03-May-2015
1
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
2
Directory
• il Directory e’ un db distribuito– molte letture e poche scritture– aggiornamento nottetempo (*)– no rollback– ammesse inconsistenze– architettura di tipo gerarchico
3
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.
4
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
5
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
6
Aspetto informativo
Entry
Attributo
attributo attributo attributo attributo. . . .
tipo valori
valore valore valore valore. . .. . .
7
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 delle entry attraversate
8
4.1
root
1.1 1.2
2.1 2.2 2.3
3.1 3.2
4.2 4.3
C=IT C=US
O=Finsiel O=Telesoft O=Coca Cola
OU=Tecsiel
CN=Franco Pitto CN=Fabio Rossi CN=Mary Smith
OU=Diet Coke
RDN
RDN
RDN
9
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.
10
Object Name : hostsDirectory : org_dir.next.com.Owner : nishost.next.com.Group : admin.next.com.Access Rights : r---rmcdrmcdr---Time to Live : 12:0:0Creation Time : Tue Feb 2 18:39:43 1999Mod. Time : Tue Feb 2 18:39:43 1999Object Type : TABLETable Type : hosts_tblNumber of Columns : 4Character Separator : Search Path : Columns :
[0] Name : cnameAttributes : (SEARCHABLE, TEXTUAL
DATA, CASE INSENSITIVE)Access Rights : ----------------
[1] Name : nameAttributes : (SEARCHABLE, TEXTUAL
DATA, CASE INSENSITIVE)Access Rights : ----------------
[2] Name : addrAttributes : (SEARCHABLE, TEXTUAL
DATA, CASE INSENSITIVE)Access Rights : ----------------
[3] Name : commentAttributes : (TEXTUAL DATA)Access Rights : ----------------
11
Object Name : passwd…………..Object Type : TABLETable Type : passwd_tbl……………..Columns :
[0] Name : nameAttributes : (SEARCHABLE, TEXTUAL
DATA, CASE SENSITIVE)Access Rights : r---rmcdrmcdr---
[1] Name : passwdAttributes : (TEXTUAL DATA)Access Rights : r---rmcdrmcdr---
[2] Name : uidAttributes : (SEARCHABLE, TEXTUAL
DATA, CASE SENSITIVE)Access Rights : r---rmcdrmcdr---
[3] Name : gidAttributes : (TEXTUAL DATA)Access Rights : r---rmcdrmcdr---
[4] Name : gcosAttributes : (TEXTUAL DATA)Access Rights : r---rmcdrmcdr---
[5] Name : homeAttributes : (TEXTUAL DATA)Access Rights : r---rmcdrmcdr---
[6] Name : shellAttributes : (TEXTUAL DATA)Access Rights : r---rmcdrmcdr---
12
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 client-server
13
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
14
Directory- le componenti -
• Directory System Agent (DSA)– e’ il database dove le
informazioni del directory sono memorizzate
• db gerarchico
• update giornaliero
15
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
16
Utente
request
reply
DirectoryDirectory
12
3
4
DSA A
DSA B
DSA C
DUA
17
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
18
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
19
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
20
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)
21
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
22
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.
23
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’.
24
SSL
• Secure Sockets (SSL) are inserted at the transport layer
25
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
Nome
Chiave Pubblica
Periodo di validità
Identificativo della CA
. . .
Firma Elettronica della CA
26
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.
27
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.