KERBEROS
“IL MOSTRO DELLA RETE”
corso: RETI DI CALCOLATORI E SICUREZZA
Docente: prof. Stefano Bistarelli
Relatore: Nicolino Crognale
Sommario
1. Introduzione
•
La rete è “insicura”
•
Viaggio sicuro sulla rete
•
l’avvento del “Cane”
2. KERBEROS – il protocollo
• La struttura
• Modello a “terza parte di fiducia – il KDC”
• i Ticket
• il DataBase
• REALM & Trasporto
3. Funzionamento
4. Cifratura & Sicurezza
5. Bugs & Attacks
6. Pregi e difetti
7. bibliografia
1. Introduzione – La rete è “insicura”
• Internet per natura è una rete insicura
• Ed i pericoli possibili sono diversi…(solo alcuni!)
- furto di informazioni riservate
- defacing (modifica contenuti sito Web)
- intercettazione del traffico (packet sniffer)
• Esistono tanti modi per renderla sicura (o quasi)
- “quasi” perché "La piena sicurezza su Internet non esiste!“
Introduzione – La rete è “insicura”
Ad esempio,nel caso del packet sniffer, tra le informazioni
intercettabili possono esserci:
1. File
2. Messaggi di posta elettronica
3. Dati login utente ad un servizio
• Username
• PASSWORD
etc….etc….etc…
Ma come
possiamo
tutelarci ed
essere più
sicuri?
Introduzione – Viaggio sicuro sulla rete
Immaginate di essere un signore feudale ai tempi del Medio Evo.
Dovete inviare importanti informazioni strategiche a un alleato, e
pertanto un messo deve uscire dalle solide mura della vostra fortezza
ed esporsi a un viaggio pieno di rischi (nemici,ladri). Se il messo viene
catturato, il nemico avrà accesso alle vostre informazioni. Per quanto
possiate tutelarvi aggregando al messo un certo numero di cavalieri, il
rischio di cattura è sempre alto. Quindi l'unico modo per essere certi
che il nemico non abbia le informazioni, è…quello di inviarle in codice.
Come?
• creare informazioni cifrate (CRITTOGRAFIA)
• utilizzare protocolli adatti per l’invio delle stesse
Introduzione – Viaggio sicuro sulla rete
I protocolli più utilizzati sono:
• HTTPS (Secure http - hypertext transport protocol secure )
- permette la comunicazione cifrata sul www
basandosi su SSL
• SSL (Secure Socket Layer)
- stabilisce modalità comunicazione client-server
- garantisce che la comunicazione avvenga tra i veri soggetti
- autenticazione a chiavi pubbliche basato sui certificati
- protezione tra livello applicazione (HTTP) e trasporto (TCP/IP)
e…..
• KERBEROS
Introduzione – L’avvento del “Cane”
Le origini di KERBEROS
• Sistema di autenticazione prodotto nell’ambito del progetto
“Athena” (1983) frutto della collaborazione tra il
M.I.T.(Massachusetts Institute of Tecnology),l’IBM e il DEC
• Il nome KERBEROS deriva dalla mitologia greca
• Era il nome del cane a tre teste a guardia delle porte dell’inferno
Introduzione – L’avvento del “Cane”
Perché proprio un cane a tre teste?
• Il cane simboleggia con le sue tre teste i tre scopi originali di
KERBEROS ossia
Autenticazion
e
Autorizzazione
Cifratura
Autenticazione: verificare l'identità di un client o di un servizio;
Autorizzazione: autorizzare un client autenticato ad utilizzare un
particolare servizio;
Cifratura: capacità del sistema di prevenire che terze parti ascoltino
i contenuti di qualunque comunicazione
Sommario
1. Introduzione
•
La rete è “insicura”
•
Viaggio sicuro sulla rete
•
l’avvento del “Cane”
2. KERBEROS – il protocollo
• La struttura
• Modello a “terza parte di fiducia – il KDC”
• i Ticket
• il DataBase
• REALM & Trasporto
3. Funzionamento
4. Cifratura & Sicurezza
5. Bugs & Attacks
6. Pregi e difetti
7. bibliografia
2. KERBEROS – La struttura
• L'autenticazione nel sistema Kerberos si basa su un nuovo modello
di fiducia. (a chiavi private con terza parte fidata)
• A differenza del modello a due parti, in cui è prevista la presenza di
due elementi aventi fiducia reciproca (trasmissione password avviene
in chiaro = pericolo sniffer),
nel sistema Kerberos le due parti vengono a trovarsi in una
relazione di fiducia verso una terza parte avente funzione di
garante dell'identità dell'uno verso l'altro.
KERBEROS
Modello a “terza parte di fiducia”
Descrizione
La terza parte è chiamata KDC (Key Distribution Center)
• tratta tutti (client e server) come “principal”
utente o servizio che si possono autenticare tramite Kerberos
struttura nome di un principal: Primary/instance@NOMEREALM
Primary = equivale al nome dell’utente o del servizio
instance = equivale alla qualifica di un utente.
• client e server condividono con lui una key (o password)
crittografica
• si occupa di presentare un principal ad un altro principal tramite le
key mantenendone la segretezza reciproca
KERBEROS
Modello a “terza parte di fiducia”
KDC ha due funzioni logiche:
1. quella di AS (Authentication server)
riceve la richiesta di ticket TGS da parte del client
2. quella di TGS (Ticket granting server)
fornisce i ticket per i server
Nonostante la divisione in due parti, le due funzioni del KDC
vengono svolte entrambe da un server program che risiede
sul sistema KDC
KERBEROS – i Ticket
Descrizione
• insieme di dati che permette ad un servizio di identificare un
client
• anche chiamati ‘passaporto temporaneo’ poiché hanno la
durata di una sessione
Struttura
KERBEROS – i Ticket (2)
Le 11 parti della sequenza cifrata
• FLAGS: istruzioni attiv/disattiv per necessità
• KEY:necessario per passaggio chiave da kerberos a
client e server (keytype=tipo chiave cifratura usata;
keyvalue=contiene chiave codificata)
• CREALM: contiene nome realm dove registrato client
• CNAME: parte nome del principal identifier del client
• TRANSITED: elenco realms (dislocazioni kerberos
sulla rete) partecipanti all’autenticazione dell’utente per
cui è stato emesso il ticket (nodi sul percorso)
• AUTHTIME: indica quando è avvenuta autenticazione
• STARTTIME: indica da quando è valido il ticket
• ENDTIME: indica fino a quando è valido il ticket
• RENEW-TILL: tempo esistenza assoluto ticket
(incluso rinnovi eventuali)
• AUTHORIZATION-DATA: usato per passaggio dati di
autorizzazione dal client al server ricercato
• CADDR: elenco
host dai quali poter
usare il ticket (se
vuoto,ticket utiliz da
ovunque)
KERBEROS – i Ticket (3)
Le istruzioni attivabili/disattivabili del FLAG
Initial e Pre-authenticated: il ticket è stato emesso utilizzando il protocollo
AS e non servendosi di un ticket-granting.
Invalid: il ticket non è valido.
Renewable: ogni ticket di questo tipo è caratterizzato da due 'tempi di
scadenza'. Il tempo di scadenza associato al singolo ticket ed il massimo tempo
di rinnovo possibile. I tickets rinnovabili vengono utilizzati per minimizzare i
danni derivanti dal possibile furto di tickets.
Postdated: ticket generato per essere utilizzato in seguito.
Proxiable e proxy: vi potrebbe essere la necessità per un principal di
permettere ad un servizio di effettuare delle operazioni al suo posto. Il servizio
dovrà quindi essere in grado di impersonare il client, ma solo per un
determinato scopo. Per fare questo, si utilizza un ticket proxy.
Forwardable: è una versione particolare di ticket proxy nella quale al servizio
è garantita l'impersonazione totale del client. Un esempio potrebbe essere: un
utente si collega ad un sistema e vuole che l'autenticazione funzioni nel
sistema come se il login fosse effettuato in locale.
KERBEROS – il DataBase
Il Database - cuore di Kerberos
• parte fondamentale del sistema kerberos
• conserva all’interno tutte le chiavi e gli identificatori
• risiede sul server di autenticazione AS
• è soggetto sia a lettura che a scrittura
• ad ogni accesso Kerberos aggiunge/toglie record dai vari campi
che compongono il database
Struttura
Le voci del database
• NAME: contiene indicatori dei Principal
• KEY: contiene le chiavi crittografiche dei Principal
• P KVNO ( Principal Key Version Number): versione della chiave dei
Principal
• MAX LIFE: contiene durata massima vita del ticket-Principal
• MAX RENEWABLE LIFE: contiene durata massima vita del ticket
rinnovabili
KERBEROS – REALM & Trasporto
REALM
• dislocazioni Kerberos sparse geograficamente e non
• i vari REALM comunicano tra loro solo se:
• hanno una chiave inter-real condivisa
• se tra i due real esiste un nodo realm che fa da tramite
?
Come farà un client ad accedere ad un servizio fornito
da un server presente in un realm diverso dal proprio?
Non farà altro che richiedere al suo TGS un ticket da
presentare al TGS remoto per ottenere un nuovo ticket
da utilizzare con il relativo server remoto.
Trasporto - Porte usate
Il sistema Kerberos, su reti TCP/IP,
utilizza come trasporto il protocollo
non connesso UDP e come porta
per il servizio, la porta 88 per KDC
e 1024 per il Client.
Sommario
1. Introduzione
•
La rete è “insicura”
•
Viaggio sicuro sulla rete
•
l’avvento del “Cane”
2. KERBEROS – il protocollo
• La struttura
• Modello a “terza parte di fiducia – il KDC”
• i Ticket
• il DataBase
• REALM & Trasporto
3. Funzionamento
4. Cifratura & Sicurezza
5. Bugs & Attacks
6. Pregi e difetti
7. bibliografia
3. Il Funzionamento
Fasi del funzionamento
• ipotesi: Un client (A), vuole accedere ad un servizio presente su di un
server (B) e per farlo richiederà le giuste credenziali al KDC
Il Funzionamento (1a fase – AS(1))
AS – Authentication Server
• Questa fase rappresenta il primo passo verso l'accesso a qualsiasi
servizio e di norma viene effettuata al primo logon dell'utente.
1. Il sistema client invia
un messaggio composto
da due componenti,
una in chiaro e l'altra
cifrata. Nella prima è
contenuta una richiesta
per ottenere il TGS che
permetta l'accesso al
Server B, nella seconda
i dati necessari al AS, e
quindi al KDC, per
verificare l'identità del
client: nome del
sistema client e
marcatore orario, il
tutto cifrato con la
chiave segreta del
client.
Il Funzionamento (1a fase – AS(2))
AS – Authentication Server
2. A questo punto, l'AS
utilizzando la chiave
segreta del client,
contenuta insieme ad altri
dati nell'archivio del KDC,
decifrerà la componente
cifrata, ed in questo modo
sarà sicuro che la richiesta
sia stata effettuata
realmente dal client. Il
marcatore orario è
fondamentale perchè farà
si che la richiesta non
possa essere ripresentata
nuovamente.
Il Funzionamento (1a fase – AS(3))
AS – Authentication Server
3. Una volta verificata
l'identità del client, l'AS
invierà un messaggio di
risposta composto, anche
in questo caso, da due
componenti. La prima,
cifrata con la chiave
segreta del client,
conterrà la chiave di
sessione (CS) necessaria
al client per comunicare
con il TGS mentre la
seconda, a parità del
contenuto, sarà cifrata
con la chiave segreta del
TGS e quindi accessibile
solo a quest'ultimo.
Il Funzionamento (2a fase - TGS)
TGS – Ticket Granting Service Exchange
1. In questa fase, il client,
invierà al TGS un
messaggio composto da
tre parti distinte. Una in
chiaro contenente la
richiesta di un TGS per il
server B, una cifrata con
la chiave segreta del
client, contenente il nome
del client ed un
marcatore orario, e
l'ultima costituita dal TGT
ottenuto dall'AS nella fase
AS_Exchange.
2. Il TGS risponderà con un messaggio composto da due parti, una
cifrata con la chiave segreta del client e quindi accessibile solo a
quest'ultimo, contenente la chiave di sessione (CS) da utilizzare con il
Server B ed un ticket cifrato con la chiave segreta del Server B ma
contenente la stessa chiave di sessione (CS) passata al Client A.
Il Funzionamento (3a fase)
Client/Server Authentication Exchange
1.Nell'ultima fase, il client si
presenta al server,
sfruttando i dati ottenuti dal
TGS, con un messaggio
composto da due parti
completamente cifrate.
La prima parte, cifrata con la
chiave di sessione ottenuta
dal TGS, è chiamata anche
Authenticator, e contiene,
fra l'altro, il nome del client
ed un marcatore orario. La
seconda è costituita dal
ticket, ottenuto sempre dal
TGS, contenente la stessa
chiave di sessione vista in
precedenza, ma cifrato con
la chiave segreta del server.
2. Il server risponderà con un
messaggio, cifrato utilizzando la chiave
di sessione estratta dal messaggio
ricevuto dal client, contenente il
marcatore orario ricevuto nel
precedente messaggio dal client.
Sommario
1. Introduzione
•
La rete è “insicura”
•
Viaggio sicuro sulla rete
•
l’avvento del “Cane”
2. KERBEROS – il protocollo
• La struttura
• Modello a “terza parte di fiducia – il KDC”
• i Ticket
• il DataBase
• REALM & Trasporto
3. Funzionamento
4. Cifratura & Sicurezza
5. Bugs & Attacks
6. Pregi e difetti
7. bibliografia
4. Cifratura & Sicurezza
Algoritmi usati
• la parte cifrata riveste un ruolo fondamentale all'interno dei singoli passaggi
legati al processo di scambio delle credenziali alla base del Kerberos
• string2key: funzione che converte password in chiave di cifratura simmetrica
• come?  applicare una funzione HASH alla stringa composta
concatenando la password dell'utente con un "SALT" il cui valore varia a
secondo delle versioni di Kerberos e che serve a rendere la trasformazione
sulla password dipendente dalla macchina sulla quale è effettuata.
• per implementare lo scambio di messaggi tra AS, client e server, sono
necessari tre elementi:
una algoritmo di crittografia forte;
una funzione HASH;
una funzione che implementi il checksum per l'Authenticator;
• nelle prime versioni di Kerberos l’alg. di crittografia usato era solo il DES,e
non si usava il SALT
• nella versione 5 (attuale) algoritmi disponibili sono
• DES e Triplo DES per la crittografia (si ottiene chiave da 64 bit )
• DES-CBC per l'hash
• CRC32 per i checksum
Sommario
1. Introduzione
•
La rete è “insicura”
•
Viaggio sicuro sulla rete
•
l’avvento del “Cane”
2. KERBEROS – il protocollo
• La struttura
• Modello a “terza parte di fiducia – il KDC”
• i Ticket
• il DataBase
• REALM & Trasporto
3. Funzionamento
4. Cifratura & Sicurezza
5. Bugs & Attacks
6. Pregi e difetti
7. bibliografia
5. Bugs & Attacks
Punti deboli di Kerberos
1. Nella gestione dei ticket è possibile per un pirata intromettersi
facendo credere a Kerberos di essere un client,
(SPOOFING ATTACK) avendo il totale controllo della rete.
•
Ma come avviene?
1. pirata tramite Backdoor,trojan prende possesso di un pc
2. lancia uno sniffer invisibile
3. intercetta un ticket,preleva le credenziali e si spaccia per il client
al quale il ticket era riferito
2. Nella risposta di Kerberos ad un principal, possibilità di
intercettazione della chiave privata rilasciata (attacco BRUTE FORCE)
3. Nella versione 5 trovate due falle con possibili attacchi Ddos che
consiste nel creare carico di lavoro elevato tale da bloccare il
sistema
•
1a falla: tipo "double-free" e potrebbe essere sfruttata da un cracker
per compromettere l'intera infrastruttura di autenticazione di una rete.
•
2a falla: tipo "buffer overflow", quindi potrebbe essere utilizzata da
un aggressore sia per mandare in crash un server per la distribuzione
delle chiavi Kerberos sia per eseguire del codice
5. Bugs & Attacks (2)
Altri attacchi
• Attacco alle credenziali di amministratore Kerberos
un pirata scopre la password dell’amministratore principale con la quale
si ha completo accesso al database di kerberos
• Denial of service
creazione carico elevato
• The Insider
Kerberos non è protetto da possibili modifiche dannose ai privilegi da
parte di utenti interni (come amministratori )
• Social engineering and password exposure
Anche in questo caso,Kerberos non è protetto da possibili divulgazioni
non autorizzate da parte degli utenti, di password,impostazioni di
sicurezza
• Security holes in the Kerberos software itself
Questo è un rischio costante,perché nonostante gli sviluppi nella
progettazione di software, è davvero difficile creare software sicuro e
stabile.
Sommario
1. Introduzione
•
La rete è “insicura”
•
Viaggio sicuro sulla rete
•
l’avvento del “Cane”
2. KERBEROS – il protocollo
• La struttura
• Modello a “terza parte di fiducia – il KDC”
• i Ticket
• il DataBase
3. Funzionamento
4. Cifratura & Sicurezza
5. Bugs & Attacks
6. Pregi e difetti
7. bibliografia
6. Pregi e difetti
Pregi ( anche confronti con SSL )
• Elimina la trasmissione di password in chiaro attraverso la rete
• Costo di utilizzo: Kerberos è un pacchetto libero e può essere
installato liberamente (mentre SSL è a pagamento)
• La flessibilità: Kerberos è più flessibile di SSL
se si vuole aggiungere una nuova tecnologia di autenticazione a
Kerberos l'unica cosa da fare è modificare il proprio KDC,mentre
SSL non è modificabile con facilità.
• La sicurezza delle chiavi in SSL: quando si ottiene un certificato,
esso risiederà sull'hard disk del sistema. Essendo cifrato con una
password memorizzata nel sistema e vulnerabile ad eventuali
attacchi di cracker. In Kerberos invece non c'è la necessità di
ricerca di certificati per l'autenticazione.
• Le chiavi revocate : nel caso di SSL, tutti i server devono
ricevere notifica che il certificato è compromesso,quindi dispendio
di risorse! In Kerberos basta disabilitare la chiave con il KDC senza
alcun impegno per i server
6. Pregi e difetti (2)
Difetti ( anche confronti con SSL )
• Per utilizzare Kerberos bisogna modificare codice sorgente delle
applicazioni per permettere chiamate alle librerie necessarie
• Per proteggere la rete con Kerberos bisogna “ kerberizzare” tutte
le applicazioni che inviano password in chiaro
• Necessaria terza parte di fiducia,mentre in SSL no!
• Richiede un cammino sicuro attraverso il quale deve
transitare la password dell'utente, inoltre richiede in genere
una macchina dedicata e sicura come Authentication server
• Installazione difficile (casi di incompatibilità software,modifiche
file di configurazione,sostituzione di server non adatti)
Quale il sistema più efficiente?…
Kerberos è più efficiente su alcune applicazioni
(reti eterogenee di dimensioni significative)
SSL su altre (ideale per comunicazione sul Web)!
7. bibliografia
http://www.areanetworking.it/index.php/Kerberos
http://www.amagri.it/Sicurezza_MS_Windows/Metodi_autenticazione/
Kerberos/kerberos.htm
http://www.tu-chemnitz.de/docs/lindocs/RH73/RH-DOCS/rhl-rg-it7.3/ch-kerberos.html
http://www.hackeralliance.net
FINE
Scarica

Kerberos - Crognale Nicolino