Sean Deuby

Nel 1999 ho scritto un libro su Windows 2000 Server in generale e su Active Directory in particolare. Cerco di non guardare indietro a ciò che scrissi su AD all'epoca rispetto a ciò che so ora, ma resto affezionato a un passaggio che spiegava il funzionamento del protocollo di sicurezza Kerberos, utilizzando l'analogia di una festa aziendale nella sala da ballo di un hotel. Anche se OAuth2 e OpenID Connect sono gli attuali beniamini del mondo della sicurezza, la maggior parte del mondo aziendale on-premises dipende ancora da Kerberos ogni secondo di ogni giorno.

Credo che un'analogia che coinvolga una festa sia più adatta all'apprendimento di un argomento arido come Kerberos. Quindi, ho modernizzato un po' il mio esempio e l'ho perfezionato per condividerlo con voi. Kerberos gestisce sia l'autenticazione che l'autorizzazione in Active Directory. Tecnicamente parlando, Kerberos è un protocollo di autenticazione, ma Microsoft inserisce i dati di autorizzazione (SID) nel campo PAC del ticket Kerberos affinché i servizi (risorse integrate in AD come le condivisioni di file o le applicazioni come Exchange o SharePoint) possano consumarli.

Kerberos alla festa aziendale

Immaginate di partecipare a una grande festa aziendale in cui vengono serviti alcolici, con un open bar1. È stata pubblicizzata come una festa a tema fantascientifico (ehi, è un'azienda tecnologica), e ogni area bar della sala da ballo in cui si svolge la festa è decorata con un particolare tema fantascientifico come Il pianeta proibito, Il giorno in cui la Terra si fermò, Guerre stellari, ecc. e il personale è composto da baristi in cosplay).

Figura 1: Il layout del partito

All'ingresso della sala da ballo c'è uno di quei tavoli con le gonne di velluto e un grande striscione con la scritta "Key Drink Center". Per accedere alla festa, è necessario mostrare la patente di guida (la richiesta di servizio di autenticazione contenente la password) alle persone che lavorano al tavolo (il Key Distribution Center, o KDC).

Si consegna la patente(ora attuale, crittografata con l'hash della password inserita) a una persona che ha in mano un elenco di inviti; questa guarda l'utente, guarda la patente e guarda l'elenco di inviti della festa. Se il vostro nome corrisponde a quello dell'elenco degli invitati(l'utente esiste nella directory) e se assomigliate alla persona nella foto della patente(l'hash della password inserita corrisponde all'hash della password per il nome dell'utente sul DC), potete entrare alla festa(siete autenticati).

Ora che siete ammessi alla festa, la persona seduta accanto al controllore della lista timbra la vostra mano (il Ticket Granting Ticket, o TGT). È valido per dieci ore: sarà una bella festa! Avanti...

La persona successiva al tavolo vi chiede se volete visitare una particolare area del bar(un servizio). Avete sentito dire che nel bar della Guida galattica per gli autostoppisti ci sarà un gargarismo Pan Galactic Blaster, quindi chiedete quel bar(nome del committente del servizio, o SPN). Vedono il timbro della vostra mano e vi danno un biglietto(il biglietto di servizio) da consegnare al barista del bar HHGG. Anche questo biglietto è valido per dieci ore. Se la vostra patente indica che avete più di 21 anni, lo stampiglieranno anche sul retro del biglietto.

Armati di biglietto del bar, ci si avvia alla festa.

Andando direttamente al bar HHGG per ottenere il servizio, si presenta il biglietto al barista a tre teste. Lui vede che è per il suo bar(autenticazione al servizio), lo gira e vede che c'è un timbro che indica che avete più di 21 anni(il campo PAC del biglietto di servizio contiene un SID che corrisponde a un ACE per il servizio) e quindi siete autorizzati a prendere una bevanda alcolica. Annuisce e ve lo restituisce (ricordate che è valido per l'accesso illimitato per le prossime dieci ore). Ti prepara un gargarismo pan-galattico e te lo serve.

Da quel momento in poi, se avete bisogno di un altro drink (e si consiglia cautela se state ordinando un PGGB), dovete semplicemente presentare al barista dell'HHGG il vostro biglietto di servizio e lui vi preparerà un altro drink. Si noti che con quel biglietto si può bere solo al bar dell'HHGG; se si vuole che sia Gort a preparare un drink (è piuttosto maldestro e continua a rompere i bicchieri) si deve tornare al tavolo davanti e prendere un biglietto di servizio per Day The Earth Stood Still.

Questo sistema di bevande per feste è un po' impegnativo, ma garantisce la sicurezza:

  • Possono partecipare solo le persone iscritte alla lista degli invitati
  • Non è possibile far entrare di soppiatto i partecipanti alla festa, perché l'identità deve essere verificata.
  • I frequentatori delle feste scelgono un bar specifico
  • Solo i partecipanti di età superiore ai 21 anni sono autorizzati a prendere una bevanda alcolica.
  • La festa finirà sicuramente dopo 10 ore

Naturalmente, questa analogia può essere estesa solo fino a un certo punto, quindi non guardate troppo da vicino; per i dettagli più crudi, consultate l'articolo dettagliato di Brian Desmond sul processo di autenticazione/autorizzazione Kerberos di Active Directory. Ma credo che spieghi bene l'autenticazione AD con lo scambio di ticket Kerberos, l'autorizzazione e i valori di time-to-live. E so che ogni professionista IT che ha partecipato a una conferenza ha una certa familiarità con la partecipazione a una festa nella sala da ballo di una conferenza!

1Il mio tipo di festa.