kerberos n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Kerberos PowerPoint Presentation
Download Presentation
Kerberos

Loading in 2 Seconds...

play fullscreen
1 / 21

Kerberos - PowerPoint PPT Presentation


  • 158 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Kerberos' - moral


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
kerberos

Kerberos

Valentino Ricci

Prof. Luciano Margara

cos kerberos
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
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)
  • MacOS 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, DovecotIMAP4 , 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
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
Perché Kerberos?
  • Il nome KERBEROS deriva dalla mitologia greca (Cerbero)
  • Cerbero 3 teste = Kerberos 3 moduli:
    • Authentication: un servizio che consente di accertare l'identita' dichiarata da una entita' mediante la verifica di credenziali.
    • Authorization: Protegge l'accesso ad una risorsa mediante l'applicazione di “Security Policy”.
    • 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
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 assunzioni di Kerberos
  • Le password non sono "facili“.
  • Le workstation sono sicure (no keylogger o software simili).
  • La rete è insicura.
autenticazione tradizionale

pwd

User id

Server

Autenticazione tradizionale

1 - Richiesta di autenticazione

User

2 – Se l’utente è riconosciuto ACCESSO

autenticazione tradizionale1
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
authentication server

IDU

PU

IDV

AS

Ticket

Server V

IDU

Ticket

Authentication Server

1 - Richiesta di autenticazione

User

2 – Se l’utente è riconosciuto viene restituitoun Ticket = EKV[ IDU | ADU | IDV ] che permette di accedere alla risorsa V

authentication server1
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.
ticket granting server

IDU

IDTGS

EKU[TicketTGS]

TicketV

TGS

AS

IDU

IDV

TicketTGS

Server V

IDU

TicketV

Ticket granting server

1 – L’AS restituisce TicketTGS=EKTGS[IDU|ADU|IDTGS|TS1|Tvalidità1] cifrato con la chiave segreta dell’utente (una sola volta per connessione)

User

2 – TGS restituisce TicketV=EKV[IDU|ADU|IDV|TS2|Tvalidità2] (una sola volta per tipologia di servizio)

3 – Il server fornisce il servizio al client (una sola volta per sessione di servizio)

ticket granting server1
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À).
kerberos v4

IDU

IDTGS

TS1

EKU[KU,TGS|IDTGS|TS2|Tvalidità2|TicketTGS]

EKU,TGS[KU,V|IDV|TS4|Tvalidità4]

TGS

AS

IDU

AutetenticatoreU

TicketTGS

AutenticatoreU2

TicketV

Server V

EKU,V[TS5 +1]

Kerberos v4

1 – TicketTGS=EKTGS[KU,TGS|IDU|ADU|IDTGS|TS2|Tvalidità2]

(una sola volta per connessione)

User

2 – TicketV= EKV [KU,V|IDU|ADU|IDV|TS4|Tvalidità4]

AutenticatoreU= EKU,TGS[IDU|ADU|TS3]

(una sola volta per tipologia di servizio)

3 – AutenticatoreU = EKU,TGS[IDU|ADU|TS5]

Anche V si autentica (M.A. e CONF.) (una sola volta per sessione di servizio)

definizioni
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 “ticket”puo’ 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/instance@REALMPrimary 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
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 user@host
  • Nuovi flag nei ticket
  • Autenticazione two-tgt user-to-user
  • Sostituzione dell'algoritmo di cifratura
  • Indipendenza dal tipo di indirizzo
cifratura
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 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
Attacchi
  • Nella gestione dei ticket è possibile per un pirata intromettersi nella workstation (Backdoor,trojan) intercettare un ticket, prelevare le credenziali e spacciarsi per il client
  • Nella risposta di Kerberos ad un principal, possibilità di intercettazione della chiave privata rilasciata (attacco BRUTE FORCE)
  • 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
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”
pregi e difetti1
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
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