Riassunti

Appunti universitari in formato Markdown da Obsidian.

Nato a metà anni '80, Kerberos è un protocollo progettato per l'autenticazione distribuita in rete, permettendo a utenti, applicazioni e computer di autenticarsi a vicenda senza inviare password in chiaro.

1. Modello di Fiducia

  • Kerberos Server (Ente Fidato): Unico punto di fiducia centrale per tutte le macchine della rete.
  • Chiavi Simmetriche: Ogni utente/server condivide una chiave segreta solo con il Kerberos Server.
  • Mutua Autenticazione: Client e server si riconoscono reciprocamente grazie alla mediazione del server centrale.

2. Componenti e Protocollo

  • KDC (Key Distribution Center): Gestisce le chiavi.
  • TGS (Ticket Granting Service): Rilascia i ticket per i servizi specifici.
  • Tickets: Funzionano come capabilities riutilizzabili per una durata limitata.

Fasi del Protocollo

  1. Richiesta TGS: Il client $C$ contatta il KDC dichiarando la propria identità e richiedendo di parlare con il TGS.
  2. Risposta TGS: Il KDC invia a $C$ un ticket per il TGS.
  3. Richiesta Servizio: $C$ presenta il ticket al TGS.
  4. Ticket Servizio: Il TGS restituisce a $C$ un ticket per il server di destinazione $M$ (es. server di stampa). Il messaggio è cifrato con la chiave tra Client e TGS e contiene:
    • La chiave di sessione tra Client e $M$.
    • Il ticket per $M$ (cifrato con la chiave tra $M$ e Kerberos).
  5. Accesso: $C$ presenta il ticket a $M$. Avviene la mutua autenticazione e i due iniziano a comunicare con la chiave condivisa.

3. Evoluzione e Difetti

Differenze tra Versioni

  • V4: Utilizzava DES. Gli autenticatori non erano legati al messaggio, permettendo usi non previsti.
  • V5 (Standard attuale, usato in AD): Supporta AES. Include informazioni sul messaggio corrente nell'autenticatore per prevenire usi impropri. Richiede un timestamp cifrato nella richiesta iniziale per prevenire attacchi brute force e replay.

Vulnerabilità note

  • Reflection Attack: Client e server usano la stessa chiave per andata e ritorno. Se un attaccante forza il server a cifrare un contenuto scelto da lui (es. in un server mail), può scoprire informazioni.
  • Brute Force: Se le richieste non sono autenticate, chiunque può chiedere ticket cifrati con chiavi altrui per tentare il cracking offline.