Sei sulla pagina 1di 15

Autenticazione in Prefazione -1

Ambienti Distribuiti: • Con la nascita ed evoluzione di Internet e con il


protocollo LDAP notevole incremento dei suoi utenti, sono sorti
problemi di sicurezza.
– La suite di protocolli TCP/IP non prevede nessun meccanismo
che garantisce confidenzialità e privacy tra gli utenti.
• Gli scenari e le applicazioni in cui è richiesta
confidenzialità e privacy delle connessioni
Tesina per il corso di Sicurezza su Reti a cura di: sull'inter-rete sono molteplici.
Salvatore Moscariello – Accedere in maniera privata ad una directory remota dislocata
su di un server è uno di questi possibili scenari.
Rocco Pecoraro
Giovanni Russo
Autenticazione in Ambienti
Distribuiti: protocollo LDAP 2

Prefazione -2
• Introdurremo il protocollo LDAP nato per gestire Introduzione
le directory in un intero dominio internet. Cos’è una directory?
– Tratteremo brevemente i dettagli relativi alla sua evoluzione. Cos’è LDAP?
– Daremo successivamente le nozioni di base dei protocolli che
LDAP coinvolge nella sua specifica.
– Ci soffermeremo sui vari scenari che si vengono a creare per Protocolli
accedere ad una directory remota e mostreremo le varie
politiche e meccanismi di sicurezza adottati da LDAP.
Metodi di autenticazione in LDAP

Autenticazione in Ambienti
Distribuiti: protocollo LDAP 3

Cos’è una directory? Servizi locali e servizi globali


• Database specializzato per la lettura e la ricerca. • Alcuni servizi di directory sono locali.
• Possibilità di contenere informazioni basate su – Forniscono servizi ad un ristretto contesto, ad esempio una
singola macchina.
attributi o descrizioni.
• Altri servizi sono globali.
• Supporto di sofisticate capacità di ricerca – Forniscono servizi ad un contesto più ampio, quale ad esempio
attraverso dei filtri. l’intera Internet.

• Risposte veloci ad operazioni di consultazione o • I servizi globali sono distribuiti.


di ricerca su volumi di dati enormi. – I dati contenuti sono memorizzati in diverse macchine, ognuna
delle quali provvede al servizio di directory.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 5 Distribuiti: protocollo LDAP 6

1
Cos’è LDAP? Prima di LDAP
• LDAP è un acronimo che sta per
LIGHTWEIGHT DIRECTORY ACCESS
• Prima di LDAP, per accedere a dati memorizzati
in una directory X.500 un client doveva
PROTOCOL.
supportare il DAP (DIRECTORY ACCESS
• È un protocollo leggero per accedere ai servizi di PROTOCOL).
directory, basati sul protocollo X.500. – Imponeva una notevole penalizzazione delle risorse in gioco
• Opera su TCP/IP o su altre connessioni orientate poiché richiedeva l'utilizzo della specifica OSI (Open System
Interconnection).
ai servizi di trasferimento.
– Dettagli definiti nella RFC 2251. • LDAP nasce proprio per sostituire DAP.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 7 Distribuiti: protocollo LDAP 8

Tipologie delle informazioni Struttura delle informazioni


• Il modello di informazioni di LDAP è basato sulle • Le entry di una directory sono strutturate come
entry. in una struttura gerarchica di un albero.
– Collezioni di attributi che hanno un unico nome globale: il
Distinguished Name (DN).
• La entry che rappresenta il paese si trova alla
radice dell’albero.
• Ogni attributo della entry ha un tipo ed uno o
più valori. • Al di sotto di essa ci sono quelle che
– I tipi sono stringhe mnemoniche, come cn per i common name, rappresentano stati e organizzazioni nazionali.
oppure mail per gli indirizzi di posta elettronica. – Seguono poi altri tipi di entry che possono rappresentare
organizzazioni, persone, stampanti, documenti, ecc.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 9 Distribuiti: protocollo LDAP 10

LDAP directory tree con nomi LDAP directory tree con nomi usati
tradizionali in Internet

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 11 Distribuiti: protocollo LDAP 12

2
Come si accede alle informazioni Protezione delle informazioni
• Il protocollo LDAP definisce servizi per accedere • Molti servizi di directory non prevedono
e aggiornare una directory. protezione per i dati e le informazioni.
• L’operazione più usata è quella di ricerca di • LDAP include un meccanismo nel quale un client
informazioni all’interno della directory. si può autenticare, o provare la sua identità ad
• LDAP fornisce un efficiente algoritmo di ricerca. un directory server.
• LDAP consente servizi di privacy e di integrità
delle informazioni.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 13 Distribuiti: protocollo LDAP 14

Funzionamento di LDAP -1 Funzionamento di LDAP -2


• Il servizio di directory LDAP è basato su un • Il client si connette al server e gli chiede
modello client – server. informazioni.
• Uno o più server LDAP contengono i dati che • Il server replica con risposte precise e/o con un
servono a costruire l’albero delle informazioni di puntatore ad eventuali informazioni addizionali.
una directory, il DIT (Directory Information • Il client LDAP può comunicare sia con un server
Tree). X.500 sia con un server LDAP.

Autenticazione in Ambienti
15 Distribuiti: protocollo LDAP 16

Schema di funzionamento con un Schema di funzionamento con un


server X.500
X .500 server LDAP

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 17 Distribuiti: protocollo LDAP 18

3
LDAP versione 2 LDAP versione 3
• LDAP con la versione 2 diventa un standard di • Con questa versione LDAP viene specificato
Internet nel 1995. direttamente su protocolli di trasporto come
– Era stata largamente implementata. TCP.
• In questa versione viene introdotto il concetto di • Introdotti i meccanismi SASL per rendere i
Bind Operation, operazione principale per fare servizi offerti dal server più sicuri.
comunicare client e server LDAP. • Possibilità di estendere il protocollo introducendo
– La Bind Operation è usata per stabilire un sessione tra il client e
server che permette al client di autenticarsi sul server. nuove operazioni.
– Implementata nel 1997.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 19 Distribuiti: protocollo LDAP 20

Introduzione
Introduzione ai protocolli
Protocolli
• È utile introdurre i concetti basilari di alcuni
Introduzione
protocolli utilizzati in LDAP.
SASL
• Dei protocolli SASL, TLS e OTP illustreremo
TLS solo le caratteristiche principali.
OTP • Tratteremo in maniera più dettagliata i protocolli
DIGEST-- MD5
DIGEST DIGEST-MD5 e OTP SASL.
OTP SASL

Metodi di autenticazione in LDAP


Autenticazione in Ambienti
Distribuiti: protocollo LDAP 22

Protocollo SASL: descrizione Protocollo SASL: meccanismi


• Simple Authentication and Security Layer è • I meccanismi SASL sono identificati da stringhe,
un metodo per includere l’autenticazione a lunghe da 1 a 20 caratteri.
supporto di protocolli basati sulla connessione. • Se supporta questi meccanismi, un server,
• Include meccanismi per identificare e inizializza un protocollo di autenticazione.
– Consiste in una serie di challenges e risposte del client.
autenticare un utente su un server
– Le challenges e le risposte sono definite per ogni meccanismo
– Presenti meccanismi opzionali per negoziare un livello sicuro ch e come token binari di arbitraria lunghezza.
assicura confidenzialità.
– Protocollo descritto nella RFC 2222.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 23 Distribuiti: protocollo LDAP 24

4
Protocollo SASL: funzionamento -1 Protocollo SASL: funzionamento -2
• Un server invia una challenge, indica il • Durante l’autenticazione, il meccanismo
fallimento, o che l’autenticazione è completata trasmette una authorization identity dal client al
dopo la ricezione di un comando di server.
autenticazione o di una risposta di un client. • Negozia poi l’uso di specifici meccanismi per un
• Dopo la ricezione di una challenge, un client può livello di sicurezza.
rilasciare una risposta o abortire l’autenticazione. – I meccanismi definiti in SASL sono: Kerberos version 4, GSSAPI
mechanism, S/Key mechanism, External mechanism.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 25 Distribuiti: protocollo LDAP 26

Protocollo TLS: descrizione TLS Record Protocol


• Lo scopo di TLS è di garantire privacy e integrità • Il TLS Record Protocol garantisce connessioni
dei dati tra due applicazioni che comunicano. sicure che hanno due proprietà basilari.
• È composto da due livelli: TLS Record • La connessione è privata.
Protocol e TLS Handshake Protocol. – Per la cifratura è utilizzata la crittografia simmetrica (ad esempio
DES, RC4, ecc.).
• Al livello più basso il TLS si allaccia con un
protocollo di trasporto, e con il TLS Record
• La connessione è affidabile.
– I Messaggi di trasporto includono un messaggio da integrità usando
Protocol. MAC.
– Descritto nella RFC 2246. – Funzioni hash sicure sono usate per il calcolo del MAC.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 27 Distribuiti: protocollo LDAP 28

TLS Handshake Protocol -1 TLS Handshake Protocol -2


• IL TLS Record Protocol è incapsulato da • L’identità dei peer può essere autenticata
protocolli da protocolli di livello più alto. usando la crittografia asimmetrica, o a chiavi
• Uno di questi protocolli è il TLS Handshake pubbliche
Protocol. – Ad esempio RSA, DSS, ecc. Può essere opzionale.
– Permette al server e al client di autenticarsi e negoziare un • La negoziazione di un segreto condiviso è sicura.
algoritmo di cifratura e le eventuali chiavi, prima che vengano – La negoziazione di segreti non deve permettere ad eventuali
trasmessi eventuali dati. attaccanti di impersonare uno dei peer.
• Il TLS Handshake Protocol dà garanzia di • La negoziazione è affidabile.
connessioni sicure che hanno tre proprietà – Nessun attaccante può modificare la comunicazione delle parti
basilari. che effettuano la negoziazione.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 29 Distribuiti: protocollo LDAP 30

5
One--Time Password System
One OTP: concetti base
• Utilizza una pass-phrase segreta per generare
• Racchiude meccanismi per l'autenticazione una sequenza di password utilizzate una sola
relativa ad accessi a sistemi che richiedono volta.
un'autenticazione sicura rispetto ad attacchi
passivi basati sul replay delle password.
• La pass-phrase non attraversa mai la rete ed è
quindi non vulnerabile agli attacchi di replay.
• One-time-password (OTP) è stato progettato per
evitare l’ascolto indesiderato delle connessioni.
• Ci sono due entità che sono coinvolte in
– Descritto nella RFC 1938.
un'operazione di one-time password: il
generatore e il server.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 31 Distribuiti: protocollo LDAP 32

OTP: generatore e server -1 OTP: generatore e server -2


• Il generatore produce l'appropriata OTP dalla • Il generatore OTP crea una OTP con iterazioni
pass-phrase dell'utente e consente di vedere le multiple, di una funzione hash sicura, a partire
informazioni contenute nella challenge inviata dal valore seed contenuto nella challenge
dal server. ricevuta e dalla pass-phrase.
• Il server deve inviare una challenge che include i • Dopo che l'autenticazione è avvenuta con
parametri per il generatore e deve verificare la successo, il numero delle iterazioni della
OTP ricevuta dal client. funzione hash è decrementato di uno.
– Questo permette di generare una sequenza di password unica.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 33 Distribuiti: protocollo LDAP 34

OTP: generatore e server -3 Generazione di una OTP


• Il server verifica l'OTP ricevuta computando i • La generazione di una OTP consta di un passo
valori di una precedente autenticazione, che ha iniziale in cui tutti gli input sono combinati.
memorizzato, con la funzione hash e confronta i • Un secondo passo dove la funzione hash è iterata
risultati. un numero specifico di volte
• La sicurezza del sistema OTP è basata sulla • Un terzo passo dove i 64 bit prodotti dalla
difficoltà di invertibilità delle funzioni hash. funzione hash sono convertiti in parole (tramite
– Le funzioni hash supportate da questo protocollo sono MD4, un dizionario) comprensibili all'utente con una
MD5 e SHA.
funzione di output.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 35 Distribuiti: protocollo LDAP 36

6
Digest Authentication come Passo Due. DIGEST response
meccanismo SASL. Passo Uno.
• A questo punto il client prende nota del digest
• Digest può essere usato come un meccanismo di challenge e risponde al server con una stringa
autenticazione per il protocollo SASL. strutturata e costruita secondo le regole del
– Argomento della RFC 2831. digest response.
• Se il client non si è ancora autenticato al server, • Il valore del campo response, formato da 32
deve anzitutto effettuare l’autenticazione iniziale. cifre esadecimali con caratteri lower case sarà:
• Il server inizia mandando un challenge. response -value =
– I dati inclusi in questo challenge contengono alcune stringe HEX( KD ( HEX(H(A 1 )), { nonce-value, ":" nc-value, ":",
cnonce-value, ":", qop-value, ":", HEX(H(A 2 )) }))
strutturate secondo le regole della digest challenge.
Se il campo authzid è presente, allora A1 è uguale a:
A 1 = { H( { username-value, ":", realm -value, ":",
passwd } ),":", nonce-value, ":", cnonce-value, ":", authzid-value }

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 37 Distribuiti: protocollo LDAP 38

DIGEST response: response


response--value Passo Tre. Verifica.
• Il server a questo punto riceve e verifica la
• Il campo response-value sarà: digest response. Verifica anzitutto che il valore
Se il campo authzid non è presente, allora A1 è uguale a: di nonce-count è “00000001” e manda un
A 1 = { H( { username-value, ":", realm -value, ":", passwd } ), ":",
nonce-value, ":", cnonce-value }
messaggio strutturato come segue:
dove passwd = *OCTET
Se il valore del campo qop è auth, allora A2 è uguale a: response-auth = " rspauth" "=" response-value
A 2 = { "AUTHENTICATE:", digest-uri-value } Il response-value è calcolato come descritto al passo precedente,
Se il valore del campo qop è auth-int oppure auth-conf allora A2 è: usando i valori mandati al passo due, eccetto che se il valore di qop è auth,
A 2 = { "AUTHENTICATE:", digest-uri-value, allora A2 è:
":00000000000000000000000000000000" } A 2 = { ":", digest-uri-value }
E se qop è auth-int oppure auth-conf allora A2 vale:
A 2 = { ":", digest-uri-value,
":00000000000000000000000000000000" }

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 39 Distribuiti: protocollo LDAP 40

One -Time
One- Time--Password per il Profili OTP per SASL
meccanismo SASL
• I meccanismi OTP SASL, sostituiscono i • Meccanismi di SASL offrono un modo formale
meccanismi SKEY SASL. per integrare OTP all’interno dei protocolli dove
– Sono descritti nella RFC 2444. è supportato SASL includendo IMAP, ACAP,
• OTP è una buona scelta per scenari dove il client POP3 e LDAPv3.
non è fidato. • OTP e OTP extended response offrono un certo
– Darà una sola opportunità a client maliziosi di accedere a dei numero di opzioni.
servizi a nome di un altro utente. – Per un’ autenticazione con successo, il client e il server hanno
• OTP è una buona scelta per situazioni dove bisogno di un set di opzioni compatibili.
vengono effettuate login interattive sul server.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 41 Distribuiti: protocollo LDAP 42

7
Regole per il meccanismo OTP -1 Regole per il meccanismo OTP -2
• Deve essere usata la sintassi extended response. • I client dovrebbero supportare il monitoraggio
della challenge OTP per utente e una entry OTP
• I server devono supportare le quattro risposte in formato multi-word.
estese: “hex”, “word”, “init-hex” and “init-word”. – I client possono anche supportare una entry per la pass phrase e
• I server devono supportare “word” e “init-word” calcolare la risposta “hex” o “word”.

per un dizionario standard e dovrebbero • I client devono indicare quando l’autenticazione


supportare dizionari alternativi. fallisce.
• I server non devono richiedere l’uso di altre –

A causa di un sequence number troppo basso.
Deve offrire all’utente un opzione per resettarlo.
estensioni OTP o opzioni. – Usando “init-hex” o ”init-word”.
– È richiesto il supporto di MD5 ed è raccomandato l’uso di SHA1.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 43 Distribuiti: protocollo LDAP 44

Meccanismi di Meccanismi di
autenticazione OTP -1 autenticazione OTP -2
• Il client inizia inviando un messaggio al server 2. Un Authentication Identity. Sarà usata l’identità
con: della pass-phrase.
– Questo campo deve essere almeno di 255 ottetti. Per questo
1. Un Authorizzation Identity. Se è usata la stringa campo sono preferiti caratteri US-ASCII.
vuota, viene utilizzata la Authentication Identity • Il server risponde inviando un messaggio
di default . contenente la OTP challenge.
– Quest’ultima è usata da sistemi di amministrazione o dai server
proxy per il login con differenti identità utente. • Il client calcola il valore hash.
– Questo campo deve contenere almeno 255 ottetti e deve – Se non è in grado di inviare direttamente questo può inviare 6
terminare con un ottetto NUL. parole formattate digitate manualmente
– Di solito, vengono utilizzati i caratteri US-ASCII, benché sono – Fornite dalla funzione di output del generatore OTP del client.
supportati i caratteri UTF -8 .
Autenticazione in Ambienti Autenticazione in Ambienti
Distribuiti: protocollo LDAP 45 Distribuiti: protocollo LDAP 46

Meccanismi di Meccanismi di
autenticazione OTP -3 autenticazione OTP -4
• Se il client vede una funzione hash sconosciuta • Ad ogni autenticazione riuscita, il client genera
non sarà capace di processare una pass phrase una risposta estesa nel formato “hex”, “word”,
in input dall’utente. “init-hex” e “init-word”.
– In questa situazione il client può stampare sei parole formattate,
– Non è richiesto al client di terminare la risposta con un spazio
cancellando questa sequenza.
bianco o un carattere di newline.
– Tentare di utilizzare differenti meccanismi di SASL.
– Chiudere la connessione rifiutando l’autenticazione. • I server devono tollerare un input di lunghezza
arbitraria.
• Come risultato di questo comportamento, un
– Può fallire l’autenticazione se la lunghezza dell’input del client è
server è costretto ad utilizzare una funzione eccessiva.
hash che l’utente possiede.
Autenticazione in Ambienti Autenticazione in Ambienti
Distribuiti: protocollo LDAP 47 Distribuiti: protocollo LDAP 48

8
OTP SASL: esempi -1 OTP SASL: esempi -2
• I messaggi contrassegnati da una “C:” • I seguenti esempi di meccanismi OTP usano il
rappresentano i messaggi inviati dal client al profilo ACAP di SASL. La pass phrase usata in
server questi esempi è: This is a test.
• I messaggi con una “S:” rappresentano i
C: a001 AUTHENTICATE "OTP" {4}
messaggi inviati dal server al client. C: <NUL> tim
– L’user name utilizzato è “tim” e non è prevista una S: + "otp-md5 499 ke1234 ext"
Authorizzation Identity. La stringa “<NUL>” rappresenta un C: "hex:5bf075d9959d036f"
ottetto nullo. S: a001 OK "AUTHENTICATE completed"

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 49 Distribuiti: protocollo LDAP 50

OTP SASL: esempi -3 OTP SASL: esempi -4


• Vediamo lo stesso esempio utilizzando una • Lo stesso esempio con init -hex extended
response:
risposta con sei parole formattate: C: a001 AUTHENTICATE "OTP" {4}
C: a001 AUTHENTICATE "OTP" {4} C: <NUL> tim
C: <NUL> tim S: + "otp-md5 499 ke1234 ext“
C: "init-hex:5bf075d9959d036f:md5 499
S: + "otp-md5 499 ke1234 ext“ ke1235:3712dcb4aa5316c1“
C: "word:BOND FOGY DRAB NE RISE MART“ S: a001 OK "OTP sequence reset,
authentication complete"
S: a001 OK "AUTHENTICATE completed“

• Lo stesso esempio utilizzando il meccanismo • Il seguente è un esempio del meccanismo OTP


utilizzando il profilo IMAP profilo di SASL.
OTP-SHA1:
C: a001 AUTHENTICATE OTP
C: a001 AUTHENTICATE "OTP" {4}
S: +
C: <NUL> tim
C: AHRpbQ==
S: + "otp-sha1 499 ke1234 ext“ S: +b3RwLW1kNSAxMjMga2UxMjM0IGV4dA==
C: "hex:c90fc02cc488df5e“ C: aGV4OjExZDRjMTQ3ZTIyN2MxZjE=
S: a001 OK "AUTHENTICATE completed" 51 S: a001 OK AUTHENTICATE completed 52

Introduzione
OTP SASL: considerazioni sulla
Protocolli
sicurezza
• OTP SASL non prevede sessioni private, Metodi di Autenticazione in LDAP
autenticazione server o protezione da attacchi Panoramica
attivi. Scenari tipici
• È soggetto ad attacchi passivi con dizionario ma Autenticazione e Autorizzazione: definizione e concetti
il rischio di tali attacchi può essere ridotto Meccanismi di sicurezza richiesti
Autenticazione anonima
scegliendo pass phrase opportune.
Autenticazione basata su password
– Il database di autenticazione server, necessario per l’uso con
OTP, non necessita di essere plaintext-equivalent. Autenticazione basata su certificati
– Le implementazioni dei server devono essere progettate per Altri meccanismi
resistere a race attack . Authorization Identity
Autenticazione in Ambienti TLS Ciphersuite
Distribuiti: protocollo LDAP 53
Il SASL service name per LDAP

9
Panoramica -1 Panoramica -2
• LDAP Versione 3 è un potente protocollo per • Un servizio di accesso alle directory LDAP
accesso a directory. deve prevenire:
– Accessi non autorizzati ai dati attraverso operazioni.
– Permette la ricerca, l’elaborazione e la manipolazione dei
dati contenuti in una directory. Offre un insieme di funzioni di – Accessi non autorizzati di client che riutilizzano le
sicurezza.
informazioni monitorando altri accessi.
– Accessi non autorizzati ai dati monitorando altri
• L’insieme minimo di funzioni di sicurezza di accessi.
LDAPv3 sono compatibili con macchine con – Modifiche non autorizzate dei dati.
caratteristiche differenti. – Modifiche non autorizzate della configurazione.
– Uso non autorizzato o eccessivo di risorse (denial of
service).
– Spoofing di directory, ingannare un client mostrando
dati diversi da quelli presenti nella sua directory.
Autenticazione in Ambienti Autenticazione in Ambienti
Distribuiti: protocollo LDAP 55 Distribuiti: protocollo LDAP 56

Panoramica -3 Panoramica -4
• La suite di protocolli LDAP può essere protetta
con i seguenti meccanismi di sicurezza: • Altri meccanismi di sicurezza:
– Autenticazione del client attraverso l’insieme dei – Protezione contro spoofing attraverso il protocollo TLS
meccanismi di SASL, possibilmente sostenuti da oppure utilizzando meccanismi di crittografia dati di
scambio di credenziali TLS. SASL.
– Autorizzazione del client attraverso controlli di – Limitazione di risorse attraverso limiti amministrativi
accesso base formulati sull’identità del richiedente. sui servizi.
– Protezione dell’integrità dei dati attraverso il – Autenticazione del server attraverso il protocollo TLS
protocollo TLS o con i meccanismi SASL. o meccanismi del SASL.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 57 Distribuiti: protocollo LDAP 58

Dati sensibili Esempi di scenari tipici -1


• I "dati sensibili" sono dati che, se rivelati,
possono causare seri pericoli alla sicurezza del 1. Una directory a sola lettura, non contenente
loro possessore. dati sensibili accessibili da tutti.
– Non richiede funzioni di sicurezza eccetto che per servizi limitati
– Non tutti i dati protetti sono sensibili.
dall'amministrazione.
• In quali scenari della rete e come vengono 2. Una directory a sola lettura, non contenente
gestiti i dati sensibili? dati sensibili, dove gli accessi in lettura sono
garantiti attraverso l’identità base.
– Richiede una funzione di autenticazione sicura.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 59 Distribuiti: protocollo LDAP 60

10
Esempi di scenari tipici -2 Esempi di scenari tipici -3

3. Una directory a sola lettura, non contenente 5. Una directory a sola lettura, non contenente
dati sensibili. dati sensitivi, dove l'accesso in lettura è
– Il client deve essere assicurato che i dati della directory sian o disponibile per chiunque, l'accesso per l’update
autenticati dal server e che non verranno modificati. può essere effettuato solo da persone
4. Un directory contenente dati sensibili. autorizzate.
– Questo scenario richiede una sessione sicura che assicura – Questo scenario richiede funzioni di autenticazione sicure.
confidenzialità ed una funzione di autenticazione sicura.

Autenticazione in Ambienti
61 Distribuiti: protocollo LDAP 62

Autenticazione, Credenziali,
Identità Politiche di controllo di accesso
• Le credenziali di autenticazione asseriscono • Una politica di controllo di accesso è un
l’identità di una parte che sta cercando di insieme di regole che definiscono la protezione
stabilire una comunicazione con un’altra parte. di risorse.
– Stabilisce quali entità e persone possano accedere alle risorse.
• L’autenticazione è il processo di generazione,
trasmissione e verifica di queste credenziali per
stabilire l'identità delle parti.
• Un'identità di autenticazione (authentication
identity) è il nome presentato in una credenziale.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 63 Distribuiti: protocollo LDAP 64

Fattori di controllo di accesso Identità di autorizzazione


• Una authorization identity è uno dei tipi di
• Una delle forme più usate di politiche di controllo fattore di controllo di accesso.
di accesso è l' access control list. – È il nome dell’utente o di un’altra entità che richiede di eseguire
un'operazione.
– E’ una lista di fattori di sicurezza. Il server li usa per deter minare
quando e come processare queste richieste. • SASL permette ai client di specificare una
– Tali fattori sono chiamati fattori di controllo di accesso authorization identity diversa dall’identità di
(ACFs, Access Control Factors).
autenticazione asserita dalle credenziali del
– Includono: gli indirizzi IP sorgente e destinazione, una stringa
cifrata, il tipo di operazione inizialmente richiesta, l'ora del client.
giorno, ecc... – Permette a un proxy server di autenticarsi con le proprie
credenziali o con l’identità della macchine per cui esegue il
servizio di proxy .

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 65 Distribuiti: protocollo LDAP 66

11
Meccanismi di sicurezza richiesti -1 Meccanismi di sicurezza richiesti -2
1. Per una directory pubblica a sola lettura può
essere usata l’autenticazione anonima. • Se viene negoziato il protocollo TLS:
2. Le implementazioni che prevedono – Il client deve scartare tutte le informazioni sul server
un’autenticazione basata su password devono che gli sono arrivate prima della negoziazione TLS.
supportare l'autenticazione basata sul • Se viene negoziato il livello di sicurezza SASL:
meccanismo DIGEST-MD5 SASL. – Il client deve scartare tutte le informazioni sul server
3. Una directory con sessione protetta e ricevute precedentemente alla negoziazione SASL.
autenticata usa l’operazione Start dil TLS e una
semplice autenticazione o il meccanismo SASL
EXTERNAL.
Autenticazione in Ambienti Autenticazione in Ambienti
Distribuiti: protocollo LDAP 67 Distribuiti: protocollo LDAP 68

Procedure di autenticazione
Autenticazione anonima anonima
• Operazioni su directory che modificano entrate o
accedono ad attributi protetti richiedono • Un client LDAP che non ha completato con
l’autenticazione del client. successo l'operazione di bind viene autenticato
• Se non si effettuano queste operazioni il client in modo anonimo.
utilizza un'autenticazione anonima. • Un client LDAP può richiedere di autenticarsi
– Ogni implementazione di LDAP deve supportare il meccanismo di anonimamente in una richiesta di bind.
autenticazione anonima. – Usando OCTECT STRING di lunghezza zero nella scelta di
• Un LDAP server può decidere se consentire o autenticazione semplice.

negare il diritto di accesso ad un client che ha


effettuato un'autenticazione anonima.
Autenticazione in Ambienti Autenticazione in Ambienti
Distribuiti: protocollo LDAP 69 Distribuiti: protocollo LDAP 70

Autenticazione anonima e TLS Autenticazione basata su password

• Un client LDAP può usare l’operazione Start del • Un’implementazione LDAP deve supportare
TLS per negoziare l’utilizzo degli strumenti di autenticazione con password.
sicurezza supportati da TLS. – Usando i meccanismi DIGEST-MD5 di SASL per la protezione
• Un server LDAP che richiede che il client fornisca
delle password.

i propri certificati durante una negoziazione TLS, • Un’implementazione LDAP deve supportare la
può usare una politica locale di sicurezza. scelta dell’autenticazione con password
– È usata per determinare se la negoziazione TLS è completata “semplice” quando la connessione è protetta con
con successo. TLS.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 71 Distribuiti: protocollo LDAP 72

12
Digest authentication -1 Digest authentication -2
• Un client LDAP può determinare se il server • Il server risponderà con una bind.
supporta questo meccanismo, effettuando una – Il resultCode è saslBindInProgress.
richiesta di ricerca all’interno della root DSE. – Il campo serverSaslCreds è presente ed è definito dal digest-
challenge.
• Durante l’autenticazione iniziale, il client invia
una richiesta di bind.
• Il client invierà una bind request, con un diverso
– Il numero della versione è 3. identificativo.
– La scelta di autenticazione è SASL. – Il numero della versione è 3.
– Il meccanismo di SASL è DIGEST -MD5. – La scelta di autenticazione è SASL, il nome del meccanismo di
SASL è DIGEST-MD5.
– Le credenziali sono assenti.
– Le credenziali contengono la stringa definita dalla digets-
response.
– Il server-type indicato sarà ldap.
Autenticazione in Ambienti Autenticazione in Ambienti
Distribuiti: protocollo LDAP 73 Distribuiti: protocollo LDAP 74

Autenticazione “semplice”
Digest authentication -3
utilizzando TLS -1
• Il server risponderà con una bind response. • Un client che ha una entry della directory con
– il campo ResultCode indicherà se la funzione è terminata con
successo o meno. un attributo userPassword, può autenticarsi in
• Se l’autenticazione ha successo e il server questo modo:
– Esegue una semplice sequenza di bind con una semplice
supporta un ulteriore passo di autenticazione, password;
allora il campo contenente le credenziali conterrà – Negozia una TLS ciphersuite che provvede ad una connessione
la stringa definita da response-auth. che assicura confidenzialità.
– Se non richiede ulteriori autenticazioni il campo sarà vuoto. – Usa l’operazione Start del TLS per negoziare l’uso della
sicurezza del TLS sulla connessione ad un server LDAP.
– Il supporto di ulteriori identificazioni è opzionale sia per il client
che per il server.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 75 Distribuiti: protocollo LDAP 76

Autenticazione “semplice” Autenticazione “semplice”


utilizzando TLS -2 utilizzando TLS -3
• Un’autenticazione semplice ha successo se il • Il server verifica se c'è corrispondenza tra il
client e il server negoziano una ciphersuite. proprio elenco e la password del client.
– Se c’è una corrispondenza, risponde indicando nel campo
• Dopo una negoziazione TLS avvenuta con resultCode che si è verificato un successo.
successo, il client deve inviare una richiesta – Altrimenti risponderà con il campo resultCode contenente
invalidCredenzial.
LDAP al server.
– Il cui numero di versione è 3.
– Il campo nome contiene il nome dell'entry dell'utente.
– Nel campo scelta di autenticazione “semplice”.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 77 Distribuiti: protocollo LDAP 78

13
Autenticazione basata su certificati
Altre Autenticazioni con TLS utilizzando TLS -1
• In seguito ad una negoziazione TLS è possibile • Se un utente ha una coppia di chiavi
effettuare un'autenticazione SASL che non pubblica/privata può autenticarsi ad un directory
presenta lo scambio di password riutilizzabili in server con i certificati.
chiaro. – Il campo subject del certificato dell’utente contiene il nome
– Il client ed il server negoziano una ciphersuite è richiesta solo dell’entry della sua directory.
l’integrità dei dati. – Se il server si fida del’autorità che ha rilasciato la chiave pubblica
all’utente.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 79 Distribuiti: protocollo LDAP 80

Autenticazione basata su certificati Autenticazione basata su certificati


utilizzando TLS -2 utilizzando TLS -3
• l Client utilizza l’operazione Start del TLS per
negoziare l’uso della sicurezza supportata dal • Il server deve verificare che il certificato
TLS su una connessione ad un server LDAP. fornitogli dal client è valido.
– Il server richiede un certificato. – Controlla se il certificato è stato rilasciato da una fidata Autorità
di Certificazione.
– Il client invierà il suo certificato al server cifrandolo con la chiave
privata. – Controlla se i certificati siano non validi o revocati.
– La cifratura proverà che il client è in possesso della chiave • Il client invierà una richiesta di bind LDAP nella
privata del certificato che ha inviato.
quale sarà specificato EXTERNAL come
meccanismo di SASL.

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 81 Distribuiti: protocollo LDAP 82

Altri meccanismi Authorization Identity -1


• Un'autenticazione “semplice” non è consigliabile
su internet se la rete non assicura la • Una Authorization Identity è presente nel campo
confidenzialità. delle credenziali SASL sia nelle richieste che nelle
• Se il client richiede un’identità di autorizzazione risposte bind di LDAP.
differente da una distinguished name, dovrebbe • Se il meccanismo “EXTERNAL” è negoziato, il
essere usato un meccanismo che protegge la campo credenziali contiene una authorization
password in transito. identity (se presente) della forma authzId.
• Il client può richiedere al server LDAP uno
scambio sicuro a basso livello delle credenziali
utilizzando il meccanismo SASL EXTERNAL.
Autenticazione in Ambienti Autenticazione in Ambienti
Distribuiti: protocollo LDAP 83 Distribuiti: protocollo LDAP 84

14
Authorization Identity -2 TLS Ciphersuite -1
• L’authorization identity è una stringa nel formato • Le seguenti ciphersuite, non devono essere
UTF-8, corrispondente al seguente ABNF: usate per protezione e confidenzialità di
password o dati perché non offrono garanzie di
authzId = dnAuthzId / uAuthzId
; distinguished-name-based authz id. sicurezza.
dnAuthzId = "dn:" dn
TLS_NULL_WITH_NULL_NULL
dn = utf8string ; with syntax defined in RFC
2253 TLS_RSA_WITH_NULL_MD5
; unspecified userid, UTF -8 encoded.
TLS_RSA_WITH_NULL_SHA
uAuthzId = "u:" userid
userid = utf8string ; syntax unspecified

• Una utf8string è definita come la codifica UTF-8


di uno o più dei 10646 caratteri ISO.
Autenticazione in Ambienti Autenticazione in Ambienti
Distribuiti: protocollo LDAP 85 Distribuiti: protocollo LDAP 86

TLS Ciphersuite -2 TLS Ciphersuite -3


• Le seguenti ciphersuite, possono essere • Le seguenti ciphersuite sono vulnerabili ad
attacchi man-in-the-middle e non devono essere
facilmente rotte (meno di una settimana per una usate per proteggere password o dati sensibili.
CPU standard del 1997). – A meno che la configurazione della rete è tale che i pericoli di
TLS_RSA_EXPORT_WITH_RC4_40_MD5 attacchi man-in-the-middle sono tollerabili.
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
TLS_RSA_EXPORT_WITH_DES40_CBC_SHA TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA TLS_DH_anon_WITH_RC4_128_MD5
TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA TLS_DH_anon_WITH_DES_CBC_SHA
TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA

Autenticazione in Ambienti Autenticazione in Ambienti


Distribuiti: protocollo LDAP 87 Distribuiti: protocollo LDAP 88

Bibliografia
• www.OpenLDAP.org
• Motore di Ricerca per RFC
• RFC1938 One-Time Password System
• RFC1321 The MD5 Message -Digest Algorithm
• RFC2222 Simple Authentication and Security Layer (SASL)
• RFC2246 The TLS Protocol Version 1.0
• RFC2251 Lightweight Directory Access Protocol (v3)
• RFC2253 Lightweight Directory Access Protocol (v3): UTF -8 String
Representation of Distinguished Names
• RFC2444 The One-Time-Password SASL Mechanism
• RFC2829 Authentication Methods for LDAP
• RFC2831 Using Digest Authentication as a SASL Mechanism
• RFC3377 Lightweight Directory Access Protocol (v3): Technical
Specification
• RFC2828 Internet Security Glossary

Autenticazione in Ambienti
Distribuiti: protocollo LDAP 89

15