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