Autenticazione in Ambienti Distribuiti: protocollo...

15
Autenticazione in Autenticazione in Ambienti Distribuiti: Ambienti Distribuiti: protocollo LDAP protocollo LDAP Tesina per il corso di Sicurezza su Reti a cura di: Salvatore Moscariello Rocco Pecoraro Giovanni Russo Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAP Distribuiti: protocollo LDAP 2 Prefazione Prefazione -1 Con la nascita ed evoluzione di Internet e con il 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 sull'inter-rete sono molteplici. Accedere in maniera privata ad una directory remota dislocata su di un server è uno di questi possibili scenari. Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAP Distribuiti: protocollo LDAP 3 Prefazione Prefazione -2 Introdurremo il protocollo LDAP nato per gestire le directory in un intero dominio internet. Tratteremo brevemente i dettagli relativi alla sua evoluzione. 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 accedere ad una directory remota e mostreremo le varie politiche e meccanismi di sicurezza adottati da LDAP. Introduzione Introduzione Cos’è una directory? Cos’è una directory? Cos’è LDAP? Cos’è LDAP? Protocolli Protocolli Metodi di autenticazione in LDAP Metodi di autenticazione in LDAP Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAP Distribuiti: protocollo LDAP 5 Cos’è una directory? Cos’è una directory? Database specializzato per la lettura e la ricerca. Possibilità di contenere informazioni basate su attributi o descrizioni. Supporto di sofisticate capacità di ricerca attraverso dei filtri. Risposte veloci ad operazioni di consultazione o di ricerca su volumi di dati enormi. Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAP Distribuiti: protocollo LDAP 6 Servizi locali e servizi globali Servizi locali e servizi globali Alcuni servizi di directory sono locali. Forniscono servizi ad un ristretto contesto, ad esempio una singola macchina. Altri servizi sono globali. Forniscono servizi ad un contesto più ampio, quale ad esempio l’intera Internet. I servizi globali sono distribuiti. I dati contenuti sono memorizzati in diverse macchine, ognuna delle quali provvede al servizio di directory.

Transcript of Autenticazione in Ambienti Distribuiti: protocollo...

Page 1: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

1

Autenticazione in Autenticazione in Ambienti Distribuiti: Ambienti Distribuiti: protocollo LDAPprotocollo LDAP

Tesina per il corso di Sicurezza su Reti a cura di:Salvatore Moscariello

Rocco PecoraroGiovanni Russo

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 22

Prefazione Prefazione --11

• Con la nascita ed evoluzione di Internet e con il 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 sull'inter-rete sono molteplici. – Accedere in maniera privata ad una directory remota dislocata

su di un server è uno di questi possibili scenari.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 33

Prefazione Prefazione --22• Introdurremo il protocollo LDAP nato per gestire

le directory in un intero dominio internet. – Tratteremo brevemente i dettagli relativi alla sua evoluzione. – 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

accedere ad una directory remota e mostreremo le varie politiche e meccanismi di sicurezza adottati da LDAP.

IntroduzioneIntroduzioneCos’è una directory?Cos’è una directory?

Cos’è LDAP?Cos’è LDAP?

ProtocolliProtocolli

Metodi di autenticazione in LDAPMetodi di autenticazione in LDAP

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 55

Cos’è una directory?Cos’è una directory?

• Database specializzato per la lettura e la ricerca.• Possibilità di contenere informazioni basate su

attributi o descrizioni. • Supporto di sofisticate capacità di ricerca

attraverso dei filtri. • Risposte veloci ad operazioni di consultazione o

di ricerca su volumi di dati enormi.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 66

Servizi locali e servizi globaliServizi locali e servizi globali

• Alcuni servizi di directory sono locali.– Forniscono servizi ad un ristretto contesto, ad esempio una

singola macchina.

• Altri servizi sono globali.– Forniscono servizi ad un contesto più ampio, quale ad esempio

l’intera Internet.

• I servizi globali sono distribuiti. – I dati contenuti sono memorizzati in diverse macchine, ognuna

delle quali provvede al servizio di directory.

Page 2: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

2

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 77

Cos’è LDAP?Cos’è LDAP?• LDAP è un acronimo che sta per

LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL.

• È un protocollo leggero per accedere ai servizi di directory, basati sul protocollo X.500.

• Opera su TCP/IP o su altre connessioni orientate ai servizi di trasferimento. – Dettagli definiti nella RFC 2251.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 88

Prima di LDAPPrima di LDAP

• Prima di LDAP, per accedere a dati memorizzati in una directory X.500 un client doveva supportare il DAP (DIRECTORY ACCESS PROTOCOL). – Imponeva una notevole penalizzazione delle risorse in gioco

poiché richiedeva l'utilizzo della specifica OSI (Open System Interconnection).

• LDAP nasce proprio per sostituire DAP.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 99

Tipologie delle informazioniTipologie delle informazioni

• Il modello di informazioni di LDAP è basato sulle entry. – Collezioni di attributi che hanno un unico nome globale: il

Distinguished Name (DN).

• Ogni attributo della entry ha un tipo ed uno o più valori. – I tipi sono stringhe mnemoniche, come cn per i common name,

oppure mail per gli indirizzi di posta elettronica.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 1010

Struttura delle informazioniStruttura delle informazioni

• Le entry di una directory sono strutturate come in una struttura gerarchica di un albero.

• La entry che rappresenta il paese si trova alla radice dell’albero.

• Al di sotto di essa ci sono quelle che rappresentano stati e organizzazioni nazionali. – Seguono poi altri tipi di entry che possono rappresentare

organizzazioni, persone, stampanti, documenti, ecc.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 1111

LDAP directory tree con nomi LDAP directory tree con nomi tradizionalitradizionali

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 1212

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

Page 3: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

3

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 1313

Come si accede alle informazioniCome si accede alle informazioni

• Il protocollo LDAP definisce servizi per accedere e aggiornare una directory.

• L’operazione più usata è quella di ricerca di informazioni all’interno della directory.

• LDAP fornisce un efficiente algoritmo di ricerca.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 1414

Protezione delle informazioniProtezione delle informazioni

• Molti servizi di directory non prevedono protezione per i dati e le informazioni.

• LDAP include un meccanismo nel quale un client si può autenticare, o provare la sua identità ad un directory server.

• LDAP consente servizi di privacy e di integrità delle informazioni.

1515

Funzionamento di LDAP Funzionamento di LDAP --11

• Il servizio di directory LDAP è basato su un modello client – server.

• Uno o più server LDAP contengono i dati che servono a costruire l’albero delle informazioni di una directory, il DIT (Directory Information Tree).

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 1616

Funzionamento di LDAP Funzionamento di LDAP --22

• Il client si connette al server e gli chiede informazioni.

• Il server replica con risposte precise e/o con un puntatore ad eventuali informazioni addizionali.

• Il client LDAP può comunicare sia con un server X.500 sia con un server LDAP.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 1717

Schema di funzionamento con un Schema di funzionamento con un server Xserver X.500.500

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 1818

Schema di funzionamento con un Schema di funzionamento con un server LDAPserver LDAP

Page 4: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

4

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 1919

LDAP versione 2LDAP versione 2

• LDAP con la versione 2 diventa un standard di Internet nel 1995.– Era stata largamente implementata.

• In questa versione viene introdotto il concetto di Bind Operation, operazione principale per fare comunicare client e server LDAP. – La Bind Operation è usata per stabilire un sessione tra il client e

server che permette al client di autenticarsi sul server.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 2020

LDAP versione 3LDAP versione 3

• Con questa versione LDAP viene specificato direttamente su protocolli di trasporto come TCP.

• Introdotti i meccanismi SASL per rendere i servizi offerti dal server più sicuri.

• Possibilità di estendere il protocollo introducendo nuove operazioni.– Implementata nel 1997.

IntroduzioneIntroduzione

ProtocolliProtocolliIntroduzioneIntroduzione

SASLSASLTLSTLSOTPOTP

DIGESTDIGEST--MD5MD5OTP SASLOTP SASL

Metodi di autenticazione in LDAPMetodi di autenticazione in LDAPAutenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 2222

Introduzione ai protocolliIntroduzione ai protocolli

• È utile introdurre i concetti basilari di alcuni protocolli utilizzati in LDAP.

• Dei protocolli SASL, TLS e OTP illustreremo solo le caratteristiche principali.

• Tratteremo in maniera più dettagliata i protocolli DIGEST-MD5 e OTP SASL.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 2323

Protocollo SASL: descrizioneProtocollo SASL: descrizione

• Simple Authentication and Security Layer è un metodo per includere l’autenticazione a supporto di protocolli basati sulla connessione.

• Include meccanismi per identificare e autenticare un utente su un server – Presenti meccanismi opzionali per negoziare un livello sicuro che

assicura confidenzialità.– Protocollo descritto nella RFC 2222.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 2424

Protocollo SASL: meccanismiProtocollo SASL: meccanismi

• I meccanismi SASL sono identificati da stringhe, lunghe da 1 a 20 caratteri.

• Se supporta questi meccanismi, un server, inizializza un protocollo di autenticazione. – Consiste in una serie di challenges e risposte del client. – Le challenges e le risposte sono definite per ogni meccanismo

come token binari di arbitraria lunghezza.

Page 5: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

5

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 2525

Protocollo SASL: funzionamento Protocollo SASL: funzionamento --11

• Un server invia una challenge, indica il fallimento, o che l’autenticazione è completata dopo la ricezione di un comando di autenticazione o di una risposta di un client.

• Dopo la ricezione di una challenge, un client può rilasciare una risposta o abortire l’autenticazione.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 2626

Protocollo SASL: funzionamento Protocollo SASL: funzionamento --22

• Durante l’autenticazione, il meccanismo trasmette una authorization identity dal client al server.

• Negozia poi l’uso di specifici meccanismi per un livello di sicurezza.– I meccanismi definiti in SASL sono: Kerberos version 4, GSSAPI

mechanism, S/Key mechanism, External mechanism.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 2727

Protocollo TLS: descrizioneProtocollo TLS: descrizione

• Lo scopo di TLS è di garantire privacy e integrità dei dati tra due applicazioni che comunicano.

• È composto da due livelli: TLS Record Protocol e TLS Handshake Protocol.

• Al livello più basso il TLS si allaccia con un protocollo di trasporto, e con il TLS Record Protocol.– Descritto nella RFC 2246.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 2828

TLS Record ProtocolTLS Record Protocol

• Il TLS Record Protocol garantisce connessioni sicure che hanno due proprietà basilari.

• La connessione è privata. – Per la cifratura è utilizzata la crittografia simmetrica (ad esempio

DES, RC4, ecc.).

• La connessione è affidabile. – I Messaggi di trasporto includono un messaggio da integrità usando

MAC. – Funzioni hash sicure sono usate per il calcolo del MAC.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 2929

TLS Handshake Protocol TLS Handshake Protocol --11

• IL TLS Record Protocol è incapsulato da protocolli da protocolli di livello più alto.

• Uno di questi protocolli è il TLS Handshake Protocol.– Permette al server e al client di autenticarsi e negoziare un

algoritmo di cifratura e le eventuali chiavi, prima che vengano trasmessi eventuali dati.

• Il TLS Handshake Protocol dà garanzia di connessioni sicure che hanno tre proprietà basilari.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 3030

TLS Handshake Protocol TLS Handshake Protocol --22

• L’identità dei peer può essere autenticata usando la crittografia asimmetrica, o a chiavi pubbliche– Ad esempio RSA, DSS, ecc. Può essere opzionale.

• La negoziazione di un segreto condiviso è sicura. – La negoziazione di segreti non deve permettere ad eventuali

attaccanti di impersonare uno dei peer.

• La negoziazione è affidabile. – Nessun attaccante può modificare la comunicazione delle parti

che effettuano la negoziazione.

Page 6: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

6

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 3131

OneOne--Time Password System Time Password System

• Racchiude meccanismi per l'autenticazione relativa ad accessi a sistemi che richiedono un'autenticazione sicura rispetto ad attacchi passivi basati sul replay delle password.

• One-time-password (OTP) è stato progettato per evitare l’ascolto indesiderato delle connessioni.– Descritto nella RFC 1938.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 3232

OTP: concetti baseOTP: concetti base

• Utilizza una pass-phrase segreta per generare una sequenza di password utilizzate una sola volta.

• La pass-phrase non attraversa mai la rete ed è quindi non vulnerabile agli attacchi di replay.

• Ci sono due entità che sono coinvolte in un'operazione di one-time password: il generatore e il server.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 3333

OTP: generatore e server OTP: generatore e server --11

• Il generatore produce l'appropriata OTP dalla pass-phrase dell'utente e consente di vedere le informazioni contenute nella challenge inviata dal server.

• Il server deve inviare una challenge che include i parametri per il generatore e deve verificare la OTP ricevuta dal client.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 3434

OTP: generatore e server OTP: generatore e server --22

• Il generatore OTP crea una OTP con iterazioni multiple, di una funzione hash sicura, a partire dal valore seed contenuto nella challenge ricevuta e dalla pass-phrase.

• Dopo che l'autenticazione è avvenuta con successo, il numero delle iterazioni della funzione hash è decrementato di uno. – Questo permette di generare una sequenza di password unica.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 3535

OTP: generatore e server OTP: generatore e server --33

• Il server verifica l'OTP ricevuta computando i valori di una precedente autenticazione, che ha memorizzato, con la funzione hash e confronta i risultati.

• La sicurezza del sistema OTP è basata sulla difficoltà di invertibilità delle funzioni hash. – Le funzioni hash supportate da questo protocollo sono MD4,

MD5 e SHA.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 3636

Generazione di una OTPGenerazione di una OTP

• La generazione di una OTP consta di un passo iniziale in cui tutti gli input sono combinati.

• Un secondo passo dove la funzione hash è iterata un numero specifico di volte

• Un terzo passo dove i 64 bit prodotti dalla funzione hash sono convertiti in parole (tramite un dizionario) comprensibili all'utente con una funzione di output.

Page 7: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

7

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 3737

Digest Authentication come Digest Authentication come meccanismo SASL. Passo Uno.meccanismo SASL. Passo Uno.

• Digest può essere usato come un meccanismo di autenticazione per il protocollo SASL.– Argomento della RFC 2831.

• Se il client non si è ancora autenticato al server, deve anzitutto effettuare l’autenticazione iniziale.

• Il server inizia mandando un challenge. – I dati inclusi in questo challenge contengono alcune stringe

strutturate secondo le regole della digest challenge.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 3838

Passo Due. DIGEST Passo Due. DIGEST responseresponse• A questo punto il client prende nota del digest

challenge e risponde al server con una stringa strutturata e costruita secondo le regole del digest response.

• Il valore del campo response, formato da 32 cifre esadecimali con caratteri lower case sarà:

response-value = HEX( KD ( HEX(H(A1 )), { nonce-value, ":" nc-value, ":",

cnonce-value, ":", qop-value, ":", HEX(H(A2 )) }))Se il campo authzid è presente, allora A1 è uguale a:

A1 = { H( { username-value, ":", realm-value, ":", passwd } ),":", nonce-value, ":", cnonce-value, ":", authzid-value }

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 3939

DIGEST response: DIGEST response: responseresponse--valuevalue

• Il campo response-value sarà:Se il campo authzid non è presente, allora A1 è uguale a:A1 = { H( { username-value, ":", realm-value, ":", passwd } ), ":",

nonce-value, ":", cnonce-value }dove passwd = *OCTET

Se il valore del campo qop è auth, allora A2 è uguale a:A2 = { "AUTHENTICATE:", digest-uri-value }

Se il valore del campo qop è auth-int oppure auth-conf allora A2 è:A2 = { "AUTHENTICATE:", digest-uri-value,

":00000000000000000000000000000000" }

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 4040

Passo Tre. Verifica.Passo Tre. Verifica.• Il server a questo punto riceve e verifica la

digest response. Verifica anzitutto che il valore di nonce-count è “00000001” e manda un messaggio strutturato come segue:

response-auth = "rspauth" "=" response-valueIl response-value è calcolato come descritto al passo precedente,

usando i valori mandati al passo due, eccetto che se il valore di qop è auth, allora A2 è:

A2 = { ":", digest-uri-value }E se qop è auth-int oppure auth-conf allora A2 vale:

A2 = { ":", digest-uri-value, ":00000000000000000000000000000000" }

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 4141

• I meccanismi OTP SASL, sostituiscono i meccanismi SKEY SASL. – Sono descritti nella RFC 2444.

• OTP è una buona scelta per scenari dove il client non è fidato.– Darà una sola opportunità a client maliziosi di accedere a dei

servizi a nome di un altro utente.

• OTP è una buona scelta per situazioni dove vengono effettuate login interattive sul server.

OneOne--TimeTime--PasswordPassword per il per il meccanismo SASL meccanismo SASL

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 4242

Profili OTP per SASLProfili OTP per SASL

• Meccanismi di SASL offrono un modo formale per integrare OTP all’interno dei protocolli dove è supportato SASL includendo IMAP, ACAP, POP3 e LDAPv3.

• OTP e OTP extended response offrono un certo numero di opzioni. – Per un’ autenticazione con successo, il client e il server hanno

bisogno di un set di opzioni compatibili.

Page 8: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

8

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 4343

Regole per il meccanismo OTP Regole per il meccanismo OTP --11

• Deve essere usata la sintassi extended response. • I server devono supportare le quattro risposte

estese: “hex”, “word”, “init-hex” and “init-word”. • I server devono supportare “word” e “init-word”

per un dizionario standard e dovrebbero supportare dizionari alternativi.

• I server non devono richiedere l’uso di altre estensioni OTP o opzioni.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 4444

Regole per il meccanismo OTP Regole per il meccanismo OTP --22• I client dovrebbero supportare il monitoraggio

della challenge OTP per utente e una entry OTP in formato multi-word. – I client possono anche supportare una entry per la pass phrase e

calcolare la risposta “hex” o “word”.

• I client devono indicare quando l’autenticazione fallisce. – A causa di un sequence number troppo basso. – Deve offrire all’utente un opzione per resettarlo. – 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 LDAPDistribuiti: protocollo LDAP 4545

Meccanismi di Meccanismi di autenticazione OTP autenticazione OTP --11• Il client inizia inviando un messaggio al server

con: 1. Un Authorizzation Identity. Se è usata la stringa

vuota, viene utilizzata la Authentication Identitydi default . – Quest’ultima è usata da sistemi di amministrazione o dai server

proxy per il login con differenti identità utente. – Questo campo deve contenere almeno 255 ottetti e deve

terminare con un ottetto NUL. – Di solito, vengono utilizzati i caratteri US-ASCII, benché sono

supportati i caratteri UTF-8 .

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 4646

Meccanismi di Meccanismi di autenticazione OTP autenticazione OTP --222. Un Authentication Identity. Sarà usata l’identità

della pass-phrase.– Questo campo deve essere almeno di 255 ottetti. Per questo

campo sono preferiti caratteri US-ASCII.

• Il server risponde inviando un messaggio contenente la OTP challenge.

• Il client calcola il valore hash. – Se non è in grado di inviare direttamente questo può inviare 6

parole formattate digitate manualmente – Fornite dalla funzione di output del generatore OTP del client.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 4747

Meccanismi di Meccanismi di autenticazione OTP autenticazione OTP --33• Se il client vede una funzione hash sconosciuta

non sarà capace di processare una pass phrasein input dall’utente. – In questa situazione il client può stampare sei parole formattate,

cancellando questa sequenza.– Tentare di utilizzare differenti meccanismi di SASL.– Chiudere la connessione rifiutando l’autenticazione.

• Come risultato di questo comportamento, un server è costretto ad utilizzare una funzione hash che l’utente possiede.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 4848

Meccanismi di Meccanismi di autenticazione OTP autenticazione OTP --44

• Ad ogni autenticazione riuscita, il client genera una risposta estesa nel formato “hex”, “word”, “init-hex” e “init-word”. – Non è richiesto al client di terminare la risposta con un spazio

bianco o un carattere di newline.

• I server devono tollerare un input di lunghezza arbitraria.– Può fallire l’autenticazione se la lunghezza dell’input del client è

eccessiva.

Page 9: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

9

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 4949

OTP SASL: esempi OTP SASL: esempi --11

• I messaggi contrassegnati da una “C:” rappresentano i messaggi inviati dal client al server

• I messaggi con una “S:” rappresentano i messaggi inviati dal server al client. – L’user name utilizzato è “tim” e non è prevista una

Authorizzation Identity. La stringa “<NUL>” rappresenta un ottetto nullo.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 5050

OTP SASL: esempi OTP SASL: esempi --22

• I seguenti esempi di meccanismi OTP usano il profilo ACAP di SASL. La pass phrase usata in questi esempi è: This is a test.

C: a001 AUTHENTICATE "OTP" {4}C: <NUL>timS: + "otp-md5 499 ke1234 ext"C: "hex:5bf075d9959d036f"S: a001 OK "AUTHENTICATE completed"

5151

OTP SASL: esempi OTP SASL: esempi --33• Vediamo lo stesso esempio utilizzando una

risposta con sei parole formattate:

• Lo stesso esempio utilizzando il meccanismo OTP-SHA1:

C: a001 AUTHENTICATE "OTP" {4}C: <NUL>timS: + "otp-md5 499 ke1234 ext“C: "word:BOND FOGY DRAB NE RISE MART“S: a001 OK "AUTHENTICATE completed“

C: a001 AUTHENTICATE "OTP" {4}C: <NUL>timS: + "otp-sha1 499 ke1234 ext“C: "hex:c90fc02cc488df5e“S: a001 OK "AUTHENTICATE completed" 5252

OTP SASL: esempi OTP SASL: esempi --44• Lo stesso esempio con init -hex extended

response:

• Il seguente è un esempio del meccanismo OTP utilizzando il profilo IMAP profilo di SASL.

C: a001 AUTHENTICATE "OTP" {4}C: <NUL>timS: + "otp-md5 499 ke1234 ext“C: "init-hex:5bf075d9959d036f:md5 499ke1235:3712dcb4aa5316c1“S: a001 OK "OTP sequence reset,authentication complete"

C: a001 AUTHENTICATE OTPS: +C: AHRpbQ==S: +b3RwLW1kNSAxMjMga2UxMjM0IGV4dA==C: aGV4OjExZDRjMTQ3ZTIyN2MxZjE=S: a001 OK AUTHENTICATE completed

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 5353

OTP SASL: considerazioni sulla OTP SASL: considerazioni sulla sicurezzasicurezza

• OTP SASL non prevede sessioni private, autenticazione server o protezione da attacchi attivi.

• È soggetto ad attacchi passivi con dizionario ma il rischio di tali attacchi può essere ridotto scegliendo pass phrase opportune. – Il database di autenticazione server, necessario per l’uso con

OTP, non necessita di essere plaintext-equivalent. – Le implementazioni dei server devono essere progettate per

resistere a race attack.

Introduzione

Protocolli

Metodi di Autenticazione in LDAPMetodi di Autenticazione in LDAPPanoramicaPanoramicaScenari tipiciScenari tipici

Autenticazione e Autorizzazione: definizione e concettiAutenticazione e Autorizzazione: definizione e concettiMeccanismi di sicurezza richiestiMeccanismi di sicurezza richiesti

Autenticazione anonimaAutenticazione anonimaAutenticazione basata su passwordAutenticazione basata su passwordAutenticazione basata su certificatiAutenticazione basata su certificati

Altri meccanismiAltri meccanismiAuthorization IdentityAuthorization Identity

TLS CiphersuiteTLS CiphersuiteIl SASL service name per LDAPIl SASL service name per LDAP

Page 10: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

10

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 5555

Panoramica Panoramica --11

• LDAP Versione 3 è un potente protocollo per accesso a directory. – Permette la ricerca, l’elaborazione e la manipolazione dei

dati contenuti in una directory. Offre un insieme di funzioni di sicurezza.

• L’insieme minimo di funzioni di sicurezza di LDAPv3 sono compatibili con macchine con caratteristiche differenti.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 5656

Panoramica Panoramica --22• Un servizio di accesso alle directory LDAP

deve prevenire:– Accessi non autorizzati ai dati attraverso operazioni.– Accessi non autorizzati di client che riutilizzano le

informazioni monitorando altri accessi.– Accessi non autorizzati ai dati monitorando altri

accessi.– Modifiche non autorizzate dei dati.– 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 LDAPDistribuiti: protocollo LDAP 5757

Panoramica Panoramica --33• La suite di protocolli LDAP può essere protetta

con i seguenti meccanismi di sicurezza:– Autenticazione del client attraverso l’insieme dei

meccanismi di SASL, possibilmente sostenuti da scambio di credenziali TLS.

– Autorizzazione del client attraverso controlli di accesso base formulati sull’identità del richiedente.

– Protezione dell’integrità dei dati attraverso il protocollo TLS o con i meccanismi SASL.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 5858

Panoramica Panoramica --44

• Altri meccanismi di sicurezza:– Protezione contro spoofing attraverso il protocollo TLS

oppure utilizzando meccanismi di crittografia dati di SASL.

– Limitazione di risorse attraverso limiti amministrativi sui servizi.

– Autenticazione del server attraverso il protocollo TLS o meccanismi del SASL.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 5959

Dati sensibiliDati sensibili• I "dati sensibili" sono dati che, se rivelati,

possono causare seri pericoli alla sicurezza del loro possessore. – Non tutti i dati protetti sono sensibili.

• In quali scenari della rete e come vengono gestiti i dati sensibili?

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 6060

Esempi di scenari tipici Esempi di scenari tipici --11

1. Una directory a sola lettura, non contenente dati sensibili accessibili da tutti. – Non richiede funzioni di sicurezza eccetto che per servizi limitati

dall'amministrazione.

2. Una directory a sola lettura, non contenente dati sensibili, dove gli accessi in lettura sono garantiti attraverso l’identità base.– Richiede una funzione di autenticazione sicura.

Page 11: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

11

6161

Esempi di scenari tipici Esempi di scenari tipici --22

3. Una directory a sola lettura, non contenente dati sensibili. – Il client deve essere assicurato che i dati della directory siano

autenticati dal server e che non verranno modificati.

4. Un directory contenente dati sensibili. – Questo scenario richiede una sessione sicura che assicura

confidenzialità ed una funzione di autenticazione sicura.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 6262

Esempi di scenari tipici Esempi di scenari tipici --33

5. Una directory a sola lettura, non contenente dati sensitivi, dove l'accesso in lettura è disponibile per chiunque, l'accesso per l’updatepuò essere effettuato solo da persone autorizzate. – Questo scenario richiede funzioni di autenticazione sicure.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 6363

Autenticazione, Credenziali, Autenticazione, Credenziali, IdentitàIdentità

• Le credenziali di autenticazione asseriscono l’identità di una parte che sta cercando di stabilire una comunicazione con un’altra parte.

• 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 LDAPDistribuiti: protocollo LDAP 6464

Politiche di controllo di accessoPolitiche di controllo di accesso

• Una politica di controllo di accesso è un insieme di regole che definiscono la protezione di risorse.– Stabilisce quali entità e persone possano accedere alle risorse.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 6565

Fattori di controllo di accesso Fattori di controllo di accesso

• Una delle forme più usate di politiche di controllo di accesso è l'access control list.– E’ una lista di fattori di sicurezza. Il server li usa per determinare

quando e come processare queste richieste. – Tali fattori sono chiamati fattori di controllo di accesso

(ACFs, Access Control Factors). – Includono: gli indirizzi IP sorgente e destinazione, una stringa

cifrata, il tipo di operazione inizialmente richiesta, l'ora delgiorno, ecc...

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 6666

Identità di autorizzazioneIdentità di autorizzazione• Una authorization identity è uno dei tipi di

fattore di controllo di accesso. – È il nome dell’utente o di un’altra entità che richiede di eseguire

un'operazione.

• SASL permette ai client di specificare una authorization identity diversa dall’identità di autenticazione asserita dalle credenziali del client.– Permette a un proxy server di autenticarsi con le proprie

credenziali o con l’identità della macchine per cui esegue il servizio di proxy .

Page 12: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

12

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 6767

Meccanismi di sicurezza richiesti Meccanismi di sicurezza richiesti --111. Per una directory pubblica a sola lettura può

essere usata l’autenticazione anonima.2. Le implementazioni che prevedono

un’autenticazione basata su password devono supportare l'autenticazione basata sul meccanismo DIGEST-MD5 SASL.

3. Una directory con sessione protetta e autenticata usa l’operazione Start dil TLS e una semplice autenticazione o il meccanismo SASL EXTERNAL.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 6868

Meccanismi di sicurezza richiesti Meccanismi di sicurezza richiesti --22

• Se viene negoziato il protocollo TLS:– Il client deve scartare tutte le informazioni sul server

che gli sono arrivate prima della negoziazione TLS.

• Se viene negoziato il livello di sicurezza SASL:– Il client deve scartare tutte le informazioni sul server

ricevute precedentemente alla negoziazione SASL.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 6969

Autenticazione anonimaAutenticazione anonima• Operazioni su directory che modificano entrate o

accedono ad attributi protetti richiedono l’autenticazione del client.

• Se non si effettuano queste operazioni il client utilizza un'autenticazione anonima.– Ogni implementazione di LDAP deve supportare il meccanismo di

autenticazione anonima.

• Un LDAP server può decidere se consentire o negare il diritto di accesso ad un client che ha effettuato un'autenticazione anonima.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 7070

Procedure di autenticazione Procedure di autenticazione anonimaanonima

• Un client LDAP che non ha completato con successo l'operazione di bind viene autenticato in modo anonimo.

• Un client LDAP può richiedere di autenticarsi anonimamente in una richiesta di bind.– Usando OCTECT STRING di lunghezza zero nella scelta di

autenticazione semplice.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 7171

Autenticazione anonima e TLS Autenticazione anonima e TLS

• Un client LDAP può usare l’operazione Start del TLS per negoziare l’utilizzo degli strumenti di sicurezza supportati da TLS.

• Un server LDAP che richiede che il client fornisca i propri certificati durante una negoziazione TLS, può usare una politica locale di sicurezza.– È usata per determinare se la negoziazione TLS è completata

con successo.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 7272

Autenticazione basata su passwordAutenticazione basata su password

• Un’implementazione LDAP deve supportare autenticazione con password.– Usando i meccanismi DIGEST-MD5 di SASL per la protezione

delle password.

• Un’implementazione LDAP deve supportare la scelta dell’autenticazione con password “semplice” quando la connessione è protetta con TLS.

Page 13: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

13

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 7373

Digest authentication Digest authentication --11• Un client LDAP può determinare se il server

supporta questo meccanismo, effettuando una richiesta di ricerca all’interno della root DSE.

• Durante l’autenticazione iniziale, il client invia una richiesta di bind. – Il numero della versione è 3.– La scelta di autenticazione è SASL.– Il meccanismo di SASL è DIGEST-MD5.– Le credenziali sono assenti.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 7474

Digest authentication Digest authentication --22• Il server risponderà con una bind.

– Il resultCode è saslBindInProgress.– Il campo serverSaslCreds è presente ed è definito dal digest-

challenge.

• Il client invierà una bind request, con un diverso identificativo. – Il numero della versione è 3.– La scelta di autenticazione è SASL, il nome del meccanismo di

SASL è DIGEST-MD5.– Le credenziali contengono la stringa definita dalla digets-

response.– Il server-type indicato sarà ldap.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 7575

Digest authentication Digest authentication --33

• Il server risponderà con una bind response.– il campo ResultCode indicherà se la funzione è terminata con

successo o meno.

• Se l’autenticazione ha successo e il server supporta un ulteriore passo di autenticazione, allora il campo contenente le credenziali conterrà la stringa definita da response-auth.– Se non richiede ulteriori autenticazioni il campo sarà vuoto. – Il supporto di ulteriori identificazioni è opzionale sia per il client

che per il server.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 7676

Autenticazione “semplice”Autenticazione “semplice”utilizzando TLS utilizzando TLS --1 1

• Un client che ha una entry della directory con un attributo userPassword, può autenticarsi in questo modo: – Esegue una semplice sequenza di bind con una semplice

password; – Negozia una TLS ciphersuite che provvede ad una connessione

che assicura confidenzialità.– Usa l’operazione Start del TLS per negoziare l’uso della

sicurezza del TLS sulla connessione ad un server LDAP.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 7777

Autenticazione “semplice”Autenticazione “semplice”utilizzando TLS utilizzando TLS --22

• Un’autenticazione semplice ha successo se il client e il server negoziano una ciphersuite.

• Dopo una negoziazione TLS avvenuta con successo, il client deve inviare una richiesta 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 LDAPDistribuiti: protocollo LDAP 7878

Autenticazione “semplice”Autenticazione “semplice”utilizzando TLS utilizzando TLS --33

• Il server verifica se c'è corrispondenza tra il proprio elenco e la password del client. – Se c’è una corrispondenza, risponde indicando nel campo

resultCode che si è verificato un successo. – Altrimenti risponderà con il campo resultCode contenente

invalidCredenzial.

Page 14: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

14

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 7979

Altre Autenticazioni con TLS Altre Autenticazioni con TLS

• In seguito ad una negoziazione TLS è possibile effettuare un'autenticazione SASL che non presenta lo scambio di password riutilizzabili in chiaro.– Il client ed il server negoziano una ciphersuite è richiesta solo

l’integrità dei dati.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 8080

Autenticazione basata su certificati Autenticazione basata su certificati utilizzando TLS utilizzando TLS --11

• Se un utente ha una coppia di chiavi pubblica/privata può autenticarsi ad un directory server con i certificati. – Il campo subject del certificato dell’utente contiene il nome

dell’entry della sua directory. – Se il server si fida del’autorità che ha rilasciato la chiave pubblica

all’utente.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 8181

Autenticazione basata su certificati Autenticazione basata su certificati utilizzando TLS utilizzando TLS --22• l Client utilizza l’operazione Start del TLS per

negoziare l’uso della sicurezza supportata dal TLS su una connessione ad un server LDAP. – Il server richiede un certificato. – Il client invierà il suo certificato al server cifrandolo con la chiave

privata. – La cifratura proverà che il client è in possesso della chiave

privata del certificato che ha inviato.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 8282

Autenticazione basata su certificati Autenticazione basata su certificati utilizzando TLS utilizzando TLS --33

• Il server deve verificare che il certificato fornitogli dal client è valido.– Controlla se il certificato è stato rilasciato da una fidata Autorità

di Certificazione. – Controlla se i certificati siano non validi o revocati.

• Il client invierà una richiesta di bind LDAP nella quale sarà specificato EXTERNAL come meccanismo di SASL.

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 8383

Altri meccanismiAltri meccanismi• Un'autenticazione “semplice” non è consigliabile

su internet se la rete non assicura la confidenzialità.

• Se il client richiede un’identità di autorizzazione differente da una distinguished name, dovrebbe essere usato un meccanismo che protegge la password in transito.

• 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 LDAPDistribuiti: protocollo LDAP 8484

AuthorizationAuthorization IdentityIdentity --11

• Una Authorization Identity è presente nel campo delle credenziali SASL sia nelle richieste che nelle risposte bind di LDAP.

• Se il meccanismo “EXTERNAL” è negoziato, il campo credenziali contiene una authorization identity (se presente) della forma authzId.

Page 15: Autenticazione in Ambienti Distribuiti: protocollo LDAPads/corso-security/www/CORSO-0203/LDAP.pdf · Distribuiti: protocollo LDAP 7 Cos’è LDAP? • LDAP è un acronimo che sta

15

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 8585

AuthorizationAuthorization IdentityIdentity --22• L’authorization identity è una stringa nel formato

UTF-8, corrispondente al seguente ABNF:

• Una utf8string è definita come la codifica UTF-8 di uno o più dei 10646 caratteri ISO.

authzId = dnAuthzId / uAuthzId; distinguished-name-based authz id.dnAuthzId= "dn:" dndn = utf8string ; with syntax defined in RFC 2253; unspecified userid, UTF -8 encoded.uAuthzId= "u:" useriduserid = utf8string ; syntax unspecified

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 8686

TLS Ciphersuite TLS Ciphersuite --11• Le seguenti ciphersuite, non devono essere

usate per protezione e confidenzialità di password o dati perché non offrono garanzie di sicurezza. TLS_NULL_WITH_NULL_NULLTLS_RSA_WITH_NULL_MD5

TLS_RSA_WITH_NULL_SHA

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 8787

TLS TLS CiphersuiteCiphersuite --22

• Le seguenti ciphersuite, possono essere facilmente rotte (meno di una settimana per una CPU standard del 1997).TLS_RSA_EXPORT_WITH_RC4_40_MD5TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5TLS_RSA_EXPORT_WITH_DES40_CBC_SHATLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHATLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHATLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHATLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHATLS_DH_anon_EXPORT_WITH_RC4_40_MD5TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 8888

TLS Ciphersuite TLS Ciphersuite --33• Le seguenti ciphersuite sono vulnerabili ad

attacchi man-in-the-middle e non devono essere usate per proteggere password o dati sensibili.– A meno che la configurazione della rete è tale che i pericoli di

attacchi man-in-the-middle sono tollerabili.

TLS_DH_anon_EXPORT_WITH_RC4_40_MD5TLS_DH_anon_WITH_RC4_128_MD5TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHATLS_DH_anon_WITH_DES_CBC_SHATLS_DH_anon_WITH_3DES_EDE_CBC_SHA

Autenticazione in Ambienti Autenticazione in Ambienti Distribuiti: protocollo LDAPDistribuiti: protocollo LDAP 8989

Bibliografia 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