1 Directory Directory cos’e’? e’ un database distribuito e’ uno standard sviluppato da...

Post on 03-May-2015

220 views 1 download

Transcript of 1 Directory Directory cos’e’? e’ un database distribuito e’ uno standard sviluppato da...

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.