Che cos’è un biglietto di autenticazione?

Un ticket di autenticazione è un componente di sicurezza del protocollo di sicurezza di rete Kerberos. Funziona come una sorta di token, una piccola raccolta di dati, passata tra un computer client e un server, in modo che i due computer possano dimostrare l’identità l’uno all’altro. Oltre a questa identificazione reciproca della rete, il ticket indica anche i permessi che il client ha per accedere al server e ai suoi servizi, nonché il tempo assegnato alla sessione.

Esistono essenzialmente due tipi di ticket di autenticazione. Un ticket di concessione ticket (TGT), noto anche come ticket per ottenere ticket, è il ticket principale emesso quando il computer client stabilisce per la prima volta la propria identità. Questo tipo di biglietto ha in genere una durata prolungata, fino a 10 o più ore, e può essere rinnovato in qualsiasi momento durante il periodo in cui l’utente è connesso alla rete. Con un TGT, l’utente può quindi richiedere ticket di autenticazione individuali per accedere ad altri server sulla rete.

Un ticket da client a server, noto anche come ticket di sessione, è la seconda forma di ticket di autenticazione. Questo è in genere un ticket di breve durata che viene distribuito quando un client desidera accedere a un servizio su un particolare server. Il ticket di sessione contiene l’indirizzo di rete del computer client, le informazioni sull’utente e una durata di validità del ticket. In alcune implementazioni Kerberos, come Microsoft® Active Directory®, è possibile utilizzare anche un terzo tipo di ticket, chiamato ticket di riferimento. Questo tipo di ticket viene concesso quando un client desidera accedere a un server che risiede su un dominio separato dal proprio.

Il modo in cui funziona il sistema di assegnazione dei ticket Kerberos è attraverso l’uso di un server separato, noto come centro di distribuzione delle chiavi (KDC), che fornisce l’intero sistema di ticket di autenticazione. Questa macchina ha due sottocomponenti in esecuzione, il primo dei quali è noto come server di autenticazione (AS). L’AS conosce tutti gli altri computer e utenti della rete e mantiene un database delle loro password. Quando un utente accede alla rete, l’AS gli concede un TGT.

Nel momento in cui un utente deve accedere a un server da qualche parte sulla rete, utilizza il TGT fornito in precedenza e richiede un ticket di servizio dalla seconda parte del KDC, chiamato ticket granting server (TGS). Il TGS restituisce un ticket di sessione all’utente, che può quindi utilizzarlo per accedere al server da lui richiesto. Quando il server riceve il ticket di sessione, invia un altro messaggio all’utente verificando la sua identità e che l’utente è autorizzato ad accedere al servizio richiesto. Nel caso di un ticket di riferimento, è necessario un passaggio aggiuntivo in cui il KDC del dominio principale crea invece un ticket di riferimento che consente al client di richiedere ticket di sessione da un altro KDC su un dominio di rete diverso. L’intero processo di generazione e condivisione dei ticket è crittografato in ogni fase del percorso per proteggersi da un aggressore che intercetta o si maschera da utente.

Lo svantaggio principale del metodo del ticket di autenticazione è la struttura centralizzata di tutte le autorizzazioni. Se un utente malintenzionato riesce ad accedere al KDC, ottiene essenzialmente l’accesso a tutte le identità e password degli utenti e può quindi impersonare chiunque. Inoltre, se il KDC non fosse disponibile, nessuno sarebbe in grado di utilizzare la rete. Un altro problema sono i cicli di vita dettagliati dei biglietti, che richiedono che tutti i computer della rete abbiano i loro orologi sincronizzati.