La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Kerberos Valentino Ricci Prof. Luciano Margara. Cosè Kerberos? Kerberos è un protocollo di rete per l'autenticazione. Modello client-server, fornisce."— Transcript della presentazione:

1 Kerberos Valentino Ricci Prof. Luciano Margara

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

3 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 ( 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

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

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

6 Motivazioni Lobbiettivo di Athena era quello di creare e amministrare un ambiente distribuito scalabile fino a 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)

7 Le assunzioni di Kerberos Le password non sono "facili. Le workstation sono sicure (no keylogger o software simili). La rete è insicura.

8 1 - Richiesta di autenticazione 2 – Se lutente è riconosciuto ACCESSO Server User Autenticazione tradizionale pwd User id

9 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 (nellesempio 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 lattività dei server Soluzione: –Authentication server (AS): lautenticazione è centralizzata, lAS condivide con ciascun server e ciascun utente una chiave segreta

10 1 - Richiesta di autenticazione 2 – Se lutente è riconosciuto viene restituito un Ticket = E K V [ ID U | AD U | ID V ] che permette di accedere alla risorsa V AS Server V Ticket User Authentication Server ID V PUPU ID U TicketID U

11 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 lutente (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.

12 1 – LAS restituisce Ticket TGS =E K TGS [ID U |AD U |ID TGS |TS 1 |Tvalidità 1 ] cifrato con la chiave segreta dellutente (una sola volta per connessione) AS Server V E K U [Ticket TGS ] User Ticket granting server ID TGS ID U Ticket V ID U TGS Ticket V 2 – TGS restituisce Ticket V =E K V [ID U |AD U |ID V |TS 2 |Tvalidità 2 ] (una sola volta per tipologia di servizio) ID V ID U Ticket TGS 3 – Il server fornisce il servizio al client (una sola volta per sessione di servizio)

13 Ticket granting server Problemi: –Tempo di validità Se il tempo di validità del Ticket TGS è basso allutente verrà chiesta molte volte la password Se il tempo di validità del Ticket TGS è alto (ore) cè la possibilità che un avversario faccia sniffing del ticket e lo riutilizzi quando lutente leggittimo si sarà disconesso impersonificandolo. Analogo discorso si può fare per il Ticket V –Un avversario potrebbe mettersi nel mezzo e fare in modo che i messaggi siano inviati a un server fasullo impedendo allutente 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À).

14 1 – Ticket TGS =E K TGS [K U,TGS |ID U |AD U |ID TGS |TS 2 |Tvalidità 2 ] (una sola volta per connessione) AS Server V E K U [K U,TGS |ID TGS |TS 2 |Tvalidità 2 |Ticket TGS ] User Kerberos v4 Ticket V Autenticatore U2 TGS 2 – Ticket V = E K V [K U,V |ID U |AD U |ID V |TS 4 |Tvalidità 4 ] Autenticatore U = E K U,TGS [ID U |AD U |TS 3 ] (una sola volta per tipologia di servizio) Autetenticatore U ID U Ticket TGS 3 – Autenticatore U = E K U,TGS [ID U |AD U |TS 5 ] Anche V si autentica (M.A. e CONF.) (una sola volta per sessione di servizio) ID TGS ID U TS 1 E K U,TGS [K U,V |ID V |TS 4 |Tvalidità 4 ] E KU,V [TS 5 +1]

15 Definizioni KDC (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 ticketpuo essere sia un utente che un host Host = è un computer accessibile dalla rete Keytab = Una tabella usata dagli host o dai servizi per memorizzare la loro chiave segreta Principal = Denota un utente o un servizio a cui assegnamo delle credenziali. È una stringa del tipo: Primary equivale al nome dellutente/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

16 Differenze tra V4 e V5 Dalla versione 4 alla versione 5 sono stati introdotti molti miglioramenti sia all'implementazione che al protocollo, essi possono essere riassunti nei seguenti punti: I nomi dei Principal sono multi-componente piuttosto che del tipo Nuovi flag nei ticket Autenticazione two-tgt user-to-user Sostituzione dell'algoritmo di cifratura Indipendenza dal tipo di indirizzo

17 Cifratura 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 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 lalg. 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

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

19 Pregi e difetti Le limitazioni possono essere riassunte nei seguenti punti: 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

20 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 dellutente 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.

21 Bibliografia W. Stalling. Sicurezza delle reti, Addison Wesley, Bill Bryant. Designing an Authentication System: a Dialogue in Four Scenes Afterword by Theodore Ts'o, 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): September John T. Kohl, B. Clifford Neuman, and Theodore Y. T'so, The Evolution of the Kerberos Authentication System. In Distributed Open Systems, pages IEEE Computer Society Press, John Kohl and B. Clifford Neuman. The Kerberos Network Authentication Service (Version 5). Internet Request for Comments RFC September eros.htmhttp://www.amagri.it/Sicurezza_MS_Windows/Metodi_autenticazione/Kerberos/kerb eros.htm kerberos.htmlhttp://www.tu-chemnitz.de/docs/lindocs/RH73/RH-DOCS/rhl-rg-it-7.3/ch- kerberos.html


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

Presentazioni simili


Annunci Google