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
Scarica

x509 - MediaLab