18.3. Funzionamento di Kerberos

Kerberos differisce dai metodi di autenticazione del tipo nome utente/password perchè invece di effettuareun'autenticazione tra ogni dispositivo del client e ogni server, Kerberos utilizza la cifratura simmetrica e un sistema fidato di terze parti — noto come Key Distribution Center o (KDC) — per autenticare gli utenti per una suite di servizi di rete.Avvenuta l'autenticazione, Kerberos invia un ticket specifico per quella sessione sul computer dell'utente e tutti i servizi kerberizzati, per effettuare l'autenticazione, invece di chiedere la password all'utente cercheranno direttamente quel ticket.

Quando un utente su di una rete kerberizzata si collega alla propria workstation,il suo principal viene inviato al KDC in una richiesta per il Ticket-granting Ticket(TGT) dall'Authentication Server (AS). Questa richiesta può essere inviata dal programma di login in modo trasparente o dal programma kinit una volta che l'utente si è collegato.

Il KDC controlla per la presenza del principal nel suo database. Se viene trovato, il KDC crea un TGT, lo cifra usando la chiave dell'utente e lo invia come risposta all'utente.

Il programma di login sulla macchina client o kinit decifra il TGT utilizzando la chiave (che ricava dalla password dell'utente). La chive dell'utente é usata solo sul dispositivo del client e non é inviata attraverso la rete.

Il TGT scade dopo un determinato periodo (generalmente dieci ore) ed è immagazzinata in una cache delle credenziali del dispositivo del client. La data di scadenza viene impostata in modo che un TGT compromesso possa essere utilizzato solo per un periodo limitato. Una volta emesso il TGT, l'utente non dovrá inserire nuovamente la propria password fino a quando non scadrá il TGT o quando l'utente si scollega per poi collegarsi nuovamente.

Quando un utente deve accedere a un servizio di rete, il software del client utilizza il TGT per richiedere dal Ticket Granting Service (TGS), un nuovo ticket per un determinato servizio. Il ticket del servizio verrá usato per autenticare l'utente in modo trasparente al servizio specifico stesso.

AttenzioneAttenzione
 

Il sistema Kerberos può risultare compromesso ogni volta che l'autenticazione di un utente per un servizio che non utilizza Kerberos avviene per mezzo dell'invio di una password di testo. Pertanto, non è consigliato utilizzare servizi che non prevedono Kerberos, come per esempio Telnet e FTP. È invece accettabile l'utilizzo di protocolli cifrati,come i servizi sicuri SSH o SSL, anche se non é ideale.

Chiaramente, la spiegazione sopra riportata non è che una panoramica sul funzionamento dell'autenticazione da parte di Kerberos. Se desiderate approfondire l'argomento, consultate la Sezione 18.7.

NotaNota Bene
 

Kerberos dipende da alcuni servizi di rete per poter funzionare correttamente. Kerberos richiede una sincronizzazione degli orologi delle macchine sulla rete. Si consiglia, pertanto, di impostare sulla rete, un programma di sincronizzazione degli orologi, come per esempio ntpd. Per maggiori informazioni su come configurare ntpd, controllare /usr/share/doc/ntp-<numero-versione>/index.htm per l'impostazione dei server del Network Time Protocol (sostituire <numero-versione> con il numero della versione del pacchetto ntp installato sul sistema).

Inoltre, alcuni aspetti di Kerberos si basano sul DNS (Domain Name Service), per questo motivo accertatevi che le entry e gli host DNS presenti sulla rete, siano configurati in modo corretto. Consultate la Guida degli amministratori di Kerberos V5 System, presente in formato PostScript e HTML nella directory /usr/share/doc/krb5-server-<numero-versione> per maggiori informazioni (sostituire <numero-versione> con il numero della versione del pacchetto krb5-server installato sul sistema).