:: Elementi di Sicurezza e Privatezza - Kerberos ::
Questo è una sorta di riassunto semplificato di Kerberos, così che si capisca un po' meglio rispetto alle slide. Ci sono 4 passi, ma è solo per semplicità. Non si entra in dettagli scabrosi.
Le entità in gioco sono AS, TGS, client e Server:
Un kerberos realm è l'insieme dei Server e dei client che fanno capo ad una singola coppia AS/TGS. I vari realms possono comunicare, così che non è necessario per un utente iscriversi a mille realms. Per ottenere ciò è comunque necessario un pre-accordo fra i vari realms.
AS contiene le password di tutti gli utenti: quando un client si connette a lui, AS verifica che ID e password coincidano, e quindi prosegue l'autenticazione.
Inoltre, AS sa anche tutte le password dei vari TGS: altrimenti, non potrebbe mai dare al client il tgt (ticket granting ticket) che il client poi deve forwardare al server.
I ticket in ballo sono 2:
Riguardo ai ticket, occorre sapere che hanno sempre un timestamp, perché hanno durata limitata. Ciò vuol dire che se mando un ticket vecchio, esso non è più accettato.
Il fatto che sia necessario il timestamp implica un'altra cosa: gli orologi di tutti i sistemi devono essere sincronizzati. A questo scopo si usa il network time protocol, va beh.
Va inoltre evidenziato che AS deve essere sempre disponibile: quando va giù, tutto il sistema non si regge più in piedi. È quindi un single point of failure. Inoltre, sapendo esso le password di tutti i client, se viene crackato la faccenda si fa grama.
Il client si autentica presso AS. Riceve 2 messaggi:
Il client comunica con TGS, e gli invia:
Il messaggio numero 2, essendo stato crittato da AS con la chiave segreta di TGS, viene aperto da TGS. Conteine la chiaveTGS, e la usa per aprire il messaggio numero 1, e controlla che l'ID del client corrisponda.
Il TGS allora invia al client:
Il client invia al Server:
Il Server al solito decritta 1, ne trae chiaveServer, la usa per aprire 2 e vede se i dati coincidono. Se sì, allora il client è autenticato. e gli dà finalmente quello che vuole.
Perché ci sono un AS e un TGS? Non basterebbe un AS e basta, senza il TGS di mezzo?
La risposta è che AS e TGS fanno cose diverse. AS fornisce l'autenticazione, mentre TGS fornisce il controllo dell'accesso. L'autenticazione serve per stabilire CHI è il client, mentre il controllo dell'accesso serve per sapere CHE COSA quel client può fare.
Quindi, l'AS in tutto sto bailamme ha questi ruoli:
Mentre il TGS, nello stesso bailamme: