21
Kerberos Valentino Ricci Prof. Luciano Margara

Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

Embed Size (px)

Citation preview

Page 1: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

Kerberos

Valentino Ricci

Prof. Luciano Margara

Page 2: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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.

Page 3: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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

Page 4: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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.

Page 5: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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).

Page 6: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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)

Page 7: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

Le assunzioni di Kerberos

• Le password non sono "facili“.

• Le workstation sono sicure (no keylogger o software simili).

• La rete è insicura.

Page 8: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

1 - Richiesta di autenticazione

2 – Se l’utente è riconosciuto ACCESSO

Server

User

Autenticazione tradizionale

pwdUser id

Page 9: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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

Page 10: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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

Page 11: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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.

Page 12: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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)

Page 13: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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À).

Page 14: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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]

Page 15: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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

Page 16: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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

Page 17: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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

Page 18: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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)

Page 19: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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”

Page 20: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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.

Page 21: Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce

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