Per aiutarvi a capire esattamente come funziona l’autenticazione Kerberos, in questo paragrafo la scomponiamo nei suoi componenti principali. Di seguito i principali componenti coinvolti in un tipico flusso di lavoro Kerberos:
- Client: il client agisce “per conto” dell’utente e avvia la comunicazione quando viene fatta una richiesta di servizio.
- Server hosting: questo è il server che ospita il servizio a cui l’utente sta cercando di accedere.
- Server di autenticazione (AS): l’AS esegue l’autenticazione client desiderata. Se l’autenticazione ha successo, l’AS emette un ticket al client, il TGT (Ticket Granting Ticket), che assicura agli altri server che il client è autenticato.
- Ticket Granting Server (TGS): il TGS è un server applicativo che emette ticket di servizio.
- Key Distribution Center (KDC): il KDC è composto dall’Authentication Server (AS) e dal Ticket Granting Server (TGS).
Passiamo ora al flusso di lavoro del protocollo, come mostrato nel diagramma.
Primo passaggio: il client fa una richiesta criptata al server di autenticazione. Quando l’AS riceve la richiesta, cerca la password nel database Kerberos usando l’ID utente. Se l’utente ha inserito la password corretta, l’AS decifra la richiesta.
Secondo passaggio: dopo aver verificato l’utente, l’AS emette un Ticket Granting Ticket (TGT), che viene rimandato al client.
Terzo passaggio: il client invia ora il TGT al Ticket Granting Server. Insieme al TGT, il client “spiega” anche il motivo dell’accesso al server hosting. Il TGS decifra il biglietto con la chiave segreta che l’AS e il TGS condividono.
Quarto passaggio: se il TGT è valido, il TGS emette un ticket di servizio al client.
Quinto passaggio: il client invia il ticket di servizio al server hosting. Il server decifra il biglietto con la chiave segreta condivisa tra il server e il TGB.
Sesto passaggio: se le chiavi segrete corrispondono, il server hosting permette al client di accedere al servizio. Il ticket di servizio determina per quanto tempo l’utente può utilizzare il servizio. Una volta che l’accesso scade, può essere rinnovato con il comando Kinit con il quale viene ripercorso l’intero protocollo di autenticazione Kerberos.