Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete...
-
Upload
gioachino-giuliani -
Category
Documents
-
view
218 -
download
1
Transcript of Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete...
Kerberos
Valentino Ricci
Prof. Luciano Margara
Cos’è Kerberos?
• Kerberos è un protocollo di rete per l'autenticazione.
• Modello client-server, fornisce mutua autenticazione.
• Si basa sulla crittografia simmetrica e sul protocollo Needham-Schroeder, utilizza però una terza parte affidabile.
Utilizzi• AFS, NFS, Coda File System (distributed networked file system )• Apache (mod_auth_kerb) e Apache 2 (libapache-mod-auth-kerb) • Cisco routers and switches running • Eudora, Mulberry (e-mail client)• Mac OS X • Microsoft Windows 2000 e successivi (default authentication protocol)• OpenSSH SSH protocol (Kerberos v5) • PAM Pluggable authentication modules (pam_krb5 module) • Samba, Netatalk networking protocol • SOCKS Internet protocol • X Window System standard toolkit and protocol to build GUI• Qualsiasi software che usi il framework SASL (OpenLDAP, Dovecot
IMAP4 , POP3, Postfix)• La suite di Kerberos contiene versioni kerberizzate di rsh, FTP e Telnet • Qualsiasi software java che utilizzi JAAS/JGSS• È possibile modificare qualsiasi applicazione affinché utilizzi Kerberos
Un po’ di storia
• Realizzato dal MIT per il progetto ATHENA in alternativa al sistema di autenticazione tradizionale.
• La versione 4 fu ideata nel 1987 da Steve Miller e Clifford Neuman.
• La Versione 5 (RFC 1510 proposed standard) fu ideata nel 1990 John Kohl e Clifford Neuman .
• Le autorità degli USA classificarono Kerberos come arma e ne vietarono l'esportazione poiché utilizzava l'algoritmo di crittazione DES (con chiavi da 56 bit).
• Una implementazione di Kerberos non statunitense, KTH-KRB sviluppata in Svezia, rese il sistema disponibile anche al di fuori degli Stati Uniti.
Perché Kerberos?
• Il nome KERBEROS deriva dalla mitologia greca (Cerbero)
• Cerbero 3 teste = Kerberos 3 moduli:1. Authentication: un servizio che consente di accertare l'identita'
dichiarata da una entita' mediante la verifica di credenziali.2. Authorization: Protegge l'accesso ad una risorsa mediante
l'applicazione di “Security Policy”.3. Audit: Registrazione di eventi di sistema o di rete. Consente di
rintracciare, ricostruire l'utilizzo delle risorse.
• In realtà le ultime due componenti non sono mai state realizzate (la 2 implementata nel Kerberos di Microsoft).
Motivazioni
• L’obbiettivo di Athena era quello di creare e amministrare un ambiente distribuito scalabile fino a 10000 workstation.
• Problema:– Gli utenti collegati alle workstation desiderano
accedere a servizi forniti da server distribuiti sulla rete.
– I server devono essere in grado di consentire gli accessi solo a utenti autorizzati e di autenticare le richieste di servizi. (rischio spoofing e sniffing)
Le assunzioni di Kerberos
• Le password non sono "facili“.
• Le workstation sono sicure (no keylogger o software simili).
• La rete è insicura.
1 - Richiesta di autenticazione
2 – Se l’utente è riconosciuto ACCESSO
Server
User
Autenticazione tradizionale
pwdUser id
Autenticazione tradizionale
• Problemi:– per evitare che utenti non autorizzati accedano alle risorse
occorre implementare un meccanismo di autenticazione per ciascun servizio
– per garantire la sicurezza di ciascun servizio bisogna implementare meccanismi complessi per ciascuno di essi (nell’esempio precedente password in chiaro non è sicuro)
– in un ambiente distribuito in cui i client interagiscono spesso con i server il sistema di autenticazione decentralizzato appesantisce molto l’attività dei server
• Soluzione:– Authentication server (AS): l’autenticazione è centralizzata,
l’AS condivide con ciascun server e ciascun utente una chiave segreta
1 - Richiesta di autenticazione
2 – Se l’utente è riconosciuto viene restituitoun Ticket = EK
V[ IDU | ADU | IDV ]
che permette di accedere alla risorsa V
AS
Server V
TicketUser
Authentication Server
IDVPUIDU
TicketIDU
Authentication Server
• Problemi:– Richiesta di password per accedere a ciascun
servizio (ticket utilizzabile una volta sola).– Richiesta di password per accedere a servizi diversi
(ticket riutilizzabile).– Possibile sniffing del ticket e successivo spoofing per
impersonare l’utente (si risolverà più avanti).– Password in chiaro (bleah!!!).
• Soluzione:– Ticket granting server (TGT): distributore di ticket
per le risorse.– Protocollo che non prevede il passaggio della
password in chiaro.
1 – L’AS restituisce TicketTGS=EKTGS
[IDU|ADU|IDTGS|
TS1|Tvalidità1] cifrato con la chiave segreta dell’utente (una sola volta per connessione)
AS
Server V
EKU[TicketTGS]
User
Ticket granting server
IDTGSIDU
TicketVIDU
TGSTicketV
2 – TGS restituisce TicketV=EKV[IDU|ADU|IDV|TS2|
Tvalidità2] (una sola volta per tipologia di servizio)
IDVIDU TicketTGS
3 – Il server fornisce il servizio al client (una sola volta per sessione di servizio)
Ticket granting server• Problemi:
– Tempo di validità• Se il tempo di validità del TicketTGS è basso all’utente verrà chiesta molte
volte la password• Se il tempo di validità del TicketTGS è alto (ore) c’è la possibilità che un
avversario faccia sniffing del ticket e lo riutilizzi quando l’utente leggittimo si sarà disconesso impersonificandolo.
• Analogo discorso si può fare per il TicketV
– Un avversario potrebbe mettersi nel mezzo e fare in modo che i messaggi siano inviati a un server fasullo impedendo all’utente di comunicare con il vero server.
• Soluzione:– Autenticatore: permette a un server di assicurarsi che la persona che
utilizza il ticket è la stessa per cui il ticket è stato emesso.– Chiavi di sessione: permettono ai server di autenticarsi agli utenti
(MUTUA ESCLUSIONE, CONFIDENZIALITÀ).
1 – TicketTGS=EKTGS[KU,TGS|IDU|ADU|IDTGS|TS2|
Tvalidità2](una sola volta per connessione)
AS
Server V
EKU[KU,TGS|IDTGS|TS2|Tvalidità2|TicketTGS]
User
Kerberos v4
TicketVAutenticatoreU2
TGS
2 – TicketV= EKV [KU,V|IDU|ADU|IDV|TS4|
Tvalidità4] AutenticatoreU= EKU,TGS
[IDU|ADU|TS3]
(una sola volta per tipologia di servizio)
AutetenticatoreUIDU TicketTGS
3 – AutenticatoreU = EKU,TGS
[IDU|ADU|TS5]
Anche V si autentica (M.A. e CONF.) (una sola volta per sessione di servizio)
IDTGSIDU TS1
EKU,TGS
[KU,V|IDV|TS4|Tvalidità4]
EKU,V[TS5 +1]
DefinizioniKDC (Key Distribution Center) = è sinonimo di AS e TGS, nonostante
la divisione in due parti, le due funzioni vengono svolte entrambe da un server program che risiede sul sistema KDC
Client = è un entità che puo’ ottenere un “ticket”puo’ essere sia un utente che un “host”
Host = è un computer accessibile dalla reteKeytab = Una tabella usata dagli host o dai servizi per memorizzare la
loro chiave segretaPrincipal = Denota un utente o un servizio a cui assegnamo delle
credenziali. È una stringa del tipo: Primary/instance@REALM Primary equivale al nome dell’utente/servizio Instance e’ la qualifica di un utente
Realm = E’ una rete “logica” che fa capo ad un unico database. Definisce un area di validita’ dei ticket
Differenze tra V4 e V5
Dalla versione 4 alla versione 5 sono stati introdottimolti miglioramenti sia all'implementazione che alprotocollo, essi possono essere riassunti nei seguentipunti: • I nomi dei Principal sono multi-componente piuttosto
che del tipo user@host • Nuovi flag nei ticket • Autenticazione two-tgt user-to-user • Sostituzione dell'algoritmo di cifratura • Indipendenza dal tipo di indirizzo
CifraturaLa parte cifrata riveste un ruolo fondamentale all'interno dei singolipassaggi legati al processo di scambio delle credenziali alla base delKerberos • string2key: funzione che converte password in chiave di cifratura
simmetrica• 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
Attacchi
1. Nella gestione dei ticket è possibile per un pirata intromettersi nella workstation (Backdoor,trojan) intercettare un ticket, prelevare le credenziali e spacciarsi per il client
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 (nel software, non nel protocollo) con possibili attacchi Ddos (creare carico di lavoro elevato tale da bloccare il sistema)
Pregi e difetti
Le limitazioni possono essere riassunte nei seguentipunti:• Non protegge dalla possibilità di scoperta della
password dell'utente• Richiede in genere una macchina dedicata e sicura
come KDC• Le applicazioni devono essere in parte riscritte• Superato il DES sussistono ancora conflitti con la• legislazione degli USA• l'installazione e' molto "intrusiva”
Pregi e difetti
Kerberos ha molti dei pregi:• La gestione centralizzata delle chiavi e degli utenti
(revoca, rinnovo, cancellazione,ecc,ecc) è più semplice ed efficiente che in altri sistemi come SSL.
• è un sistema FREE cioè aperto a tutte le modifiche e contributi.
• è sicuro perché la chiave non circola sulla rete e non e’ memorizzata in nessun posto oltre che la testa dell’utente e il KDC.
• è flessibile, volendo usare una nuova tecnologia di autenticazione (per esempio un nuovo tipo di Smart Card con il proprio algoritmo), basta ”solo” modificare il KDC.
Bibliografia• http://web.mit.edu/Kerberos/#what_is• W. Stalling. Sicurezza delle reti, Addison Wesley, 2001.• Bill Bryant. Designing an Authentication System: a Dialogue in Four Scenes. 1988.
Afterword by Theodore Ts'o, 1997. • Brian Tung. The Moron's Guide to Kerberos. • B. Clifford Neuman and Theodore Ts'o. Kerberos: An Authentication Service for
Computer Networks, IEEE Communications, 32(9):33-38. September 1994. • John T. Kohl, B. Clifford Neuman, and Theodore Y. T'so, The Evolution of the
Kerberos Authentication System. In Distributed Open Systems, pages 78-94. IEEE Computer Society Press, 1994.
• John Kohl and B. Clifford Neuman. The Kerberos Network Authentication Service (Version 5). Internet Request for Comments RFC-1510. September 1993.
• http://en.wikipedia.org/wiki/Kerberos_%28protocol%29• http://tools.ietf.org/html/rfc4120• http://www.dia.unisa.it/~ads/corso-security/www/CORSO-0001/kerberos/index.html• http://www.amagri.it/Sicurezza_MS_Windows/Metodi_autenticazione/Kerberos/
kerberos.htm• http://www.tu-chemnitz.de/docs/lindocs/RH73/RH-DOCS/rhl-rg-it-7.3/ch-kerberos.
html