Il sistema di sicurezza e l'integrità all'interno di una rete possono essere complesso. Diversi amministratori possono essere impegnati per controllare quali sono i servizi eseguiti su di una rete e il modo con il quale essi vengono usati. L'autenticazione di un utente può essere pericolosa se fatta con protocolli insicuri, esempio il trasferimento in chiaro attraverso la rete di una password usando protocolli Telnet e FTP. L'uso di Kerberos può rappresentare un modo per eliminare il bisogno di usare protocolli che permettono l'uso di metodi poco sicuri di autenticazione, aumentandone così la sicurezza di rete.
Kerberos è un protocollo di autenticazione dei servizi di rete creato dal MIT che si serve della crittografia a chiave segreta [1] per autenticare gli utenti per i servizi di rete — 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 effettua una autenticazione per accedere a un server di rete deve fornire un user name e una password. 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.
Anche in questo caso, una volta che una rete è collegata a Internet, non si potrà più assumere che la rete sia sicura. Qualunque aggressore che ha accesso alla rete e che può utilizzare un analizzatore di pacchetti di rete (solitamente chiamato packet sniffer) può intercettare le password e i nomi utente 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:
Migrare le password utente da un database delle password di UNIX standard, per esempio /etc/passwd o /etc/shadow, a quello di Kerberos può essere noioso, in quanto non esiste alcun meccanismo automatico che consenta di fare questo. Per maggiori informazioni a riguardo, consultate la domanda numero 2.23 nella sezione FAQ di Kerberos,
Kerberos è solo in parte compatibile con il sistema PAM (Pluggable Authentication Modules) usato dalla maggior parte dei server Red Hat Enterprise Linux. Per maggiori informazioni, consultate la Sezione 18.4.
Kerberos parte dal presupposto che ogni utente sia fidato e che stia usando un host non fidato su di una rete non fidata. Il suo obiettivo principale è di impedire che le password non cifrate vengano inviate attraverso 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.
Affinchè una applicazione possa usare Kerberos, è necessario modificare il suo codice sorgente per effettuare le chiamate alle librerie Kerberos. Le applicazioni modificate in questo modo, vengono considerate essere kerberized. Per alcune applicazioni, questo può essere un pò problematico a causa della misura dell'applicazione o del suo modello. Per altre applicazioni incompatibili, occorre effettuare dei cambiamenti in modo tale che il client e il server possano comunicare. Ed ancora ciò può comportare molta programmazione. Le applicazioni a sorgente chiusa che non supportano Kerberos di default, risultano quelle più problematiche.
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. In questo caso, la rete può ottenere nussun beneficio nell'uso di kerberos. Per proteggere unarete con Kerberos, una deve usare versioni dovete kerberizzare di tutte le applicazioni client/server che inviano password non cifrate oppure evitate qualsiasi applicazione di questo tipo.
[1] | Un sistema dove sia il client che il server, condividono una chiave comune usata per cifrare e decifrare le comunicazioni di rete |