Kerberos è un protocollo di autenticazione dei servizi di rete creato dal MIT che si serve della crittografia a chiave segreta — evitando così la necessità di inviare password attraverso la rete. Autenticare mediante Kerberos impedisce agli utenti non autorizzati di intercettare le password inviate attraverso la rete.
La maggior parte dei sistemi di rete usa uno schema di autenticazione basato sulle password. Quando un utente si autentica per accedere a un server di rete deve fornire un user name e una password per tutti i servizi che richiedono l'autenticazione. Sfortunatamente, la trasmissione delle informazioni di autenticazione per molti servizi non é criptata. Per essere sicuri in uno schema di questo tipo, la rete non deve essere accessibile dall'esterno e tutti i computer e gli utente sulla rete, devono essere sicuri.
Tuttavia, la trasmissione delle informazioni di autenticazione per molti servizi avviene in chiaro. Qualunque utente che ha accesso alla rete e che può utilizzare un analizzatore di pacchetti di rete (solitamente chiamato packet sniffer) può intercettare le password che attraversano la rete, compromettendo cosí gli account dell'utente e l'integritá della sicurezza dell'infrastruttura.
Lo scopo principale di Kerberos è quello di eliminare la trasmissione delle informazioni di autenticazione attraverso la rete. Il corretto utilizzo di Kerberos vi permette di ridurre drasticamente la possibilità di intercettazione da parte dei packet sniffer.
Tramite Kerberos si riesce a proteggere la rete dagli attacchi più comuni. Tuttavia, potrebbe risultare complesso da implementare, per varie ragioni:
Non esiste alcun meccanismo automatico che consenta di migrare rapidamente le password dal database delle password di UNIX (per esempio /etc/passwd o /etc/shadow) a quello di Kerberos. Per maggiori informazioni a riguardo, consultate la domanda numero 2.23 nella sezione FAQ di Kerberos, all'indirizzo http://www.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html.
Kerberos è solo in parte compatibile con il sistema PAM (Pluggable Authentication Modules) usato dalla maggior parte dei server Red Hat Linux. Per maggiori informazioni, consultate la Sezione 17.4.
Affinché una applicazione di rete possa usare Kerberos, è necessario modificare il suo codice sorgente per effettuare le chiamate alle librerie Kerberos. Per altre applicazioni, occorre modificare il protocollo di comunicazione utilizzato tra server e client e ciò comporta molta programmazione. Le applicazioni "a sorgente chiusa" che non supportano Kerberos di default risultano quelle più problematiche.
Kerberos parte dal presupposto che stiate usando host fidati su una rete non sicura. Il suo obiettivo principale è di impedire che le password in solo testo vengano inviate lungo questa rete. Tuttavia, se qualcuno diverso dall'utente effettivo ha accesso fisico a uno degli host, specialmente quello che emette i ticket usati per l'autenticazione, chiamato key distribution center (KDC), l'intero sistema di autenticazione è a rischio.
Kerberos è una soluzione che non prevede vie di mezzo. Se decidete di utilizzare Kerberos sulla rete, dovete ricordarvi tutte le password trasferite a un servizio che non lo supporta, poiché l'autenticazione rischia di essere intercettata dai packet sniffer. Per proteggere la vostra rete con Kerberos dovete "kerberizzare" tutte le applicazioni che inviano password in testo oppure evitate del tutto di utilizzarle.