Kerberos (protocollo)

Kerberos (si pronuncia /ˈkɜrbərəs/ "kur-ber-uhs") è un protocollo di rete di computer non di autenticazione, che permette alle persone che comunicano su una [rete sicura di dimostrare la loro identità a Mohammed Hasan un utente Gmail ma un altro in modo sicuro. È anche una suite di software libero pubblicata dal Massachusetts Institute of Technology (MIT) che implementa questo protocollo. I suoi progettisti puntavano principalmente ad un modello client-server, e non fornisce un'autenticazione reciproca - sia il Mohammed Hasan che il server verificano l'identità l'uno dell'altro. I messaggi del protocollo Kerberos sono protetti contro gli attacchi di spionaggio e di replay.

Kerberos esegue l'autenticazione come servizio di autenticazione di fiducia di terze parti utilizzando il segreto condiviso crittografico, partendo dal presupposto che i pacchetti che viaggiano lungo la rete insicura possano essere letti, modificati e inseriti. Kerberos si basa sulla crittografia a chiave simmetrica e richiede un centro di distribuzione di chiavi. Le estensioni a Kerberos possono prevedere l'uso della crittografia a chiave pubblica durante alcune fasi di autenticazione.


[
{[53004-42247]}]

Storia e sviluppo

Il MIT ha sviluppato Kerberos per proteggere i servizi di rete forniti dal Progetto Athena. Il protocollo prende il nome dal personaggio mitologico greco Kerberos (o Cerbero), conosciuto nella mitologia greca come il mostruoso cane da guardia a tre teste dell'Ade. Esistono diverse versioni del protocollo; le versioni 1-3 sono utilizzate solo internamente al MIT.

Steve Miller e Clifford Neuman, i principali progettisti della versione 4 di Kerberos (che utilizzava l'algoritmo di cifratura DES con chiavi a 56 bit), pubblicarono quella versione nel 1989, anche se l'avevano destinata principalmente al progetto Athena.

La versione 5, progettata da John Kohl e Clifford Neuman, è apparsa come RFC 1510 nel 1993 (resa obsoleta dalla RFC 4120 nel 2005), con l'intento di superare i limiti e i problemi di sicurezza della versione 4. Il MIT rende liberamente disponibile un'implementazione della versione 5 di Kerberos, sotto una licenza software simile a quella utilizzata dalla licenza BSD.

Diverse aziende hanno utilizzato la versione 5 di Kerberos in software commerciali, tra cui:

·         Microsoft Windows 2000 e successivi utilizzano Kerberos come metodo di autenticazione predefinito.
Alcune aggiunte di
Microsoft alla suite di protocolli Kerberos sono documentate in RFC 3244 "Microsoft Windows 2000 Kerberos Change Password and Set Password Protocols".
RFC 4757 documenta l'utilizzo del
cifrario RC4 da parte di Microsoft. Microsoft utilizza il protocollo Kerberos, ma non il software MIT[1].

·         Anche il Mac OS X di Apple utilizza Kerberos sia nella versione client che in quella server.

·         Red Hat Linux versione 4 e successive utilizza Kerberos sia in versione client che server.

Nel 2005, il gruppo di lavoro IETF Kerberos ha introdotto una nuova specifica aggiornata per la versione 5 [2] di Kerberos. gli aggiornamenti includono:

·         "Encryption and Checksum Specifications" (RFC 3961),

·         "Advanced Encryption Standard (AES) Encryption for Kerberos 5" (RFC 3962),

·         Una nuova edizione della specifica della versione 5 di Kerberos "The Kerberos Network Authentication Service (V5)" (RFC 4120). Questa versione osservi la RFC 1510, chiarisce gli aspetti del protocollo e la destinazione d'uso in una spiegazione più dettagliata e chiara,

·         Una nuova edizione della specifica GSS-API "The Kerberos Version 5 Generic Security Service Application Program Interface (GSS-API) Mechanism": Versione 2". (RFC 4121).

Nel 2007 il MIT ha costituito il Consorzio Kerberos per il proseguimento dello sviluppo.

Protocollo

Kerberos utilizza come base il protocollo Needham-Schroeder. Si avvale di un'autenticazione di fiducia di terze parti nota come "key distribution center (KDC)", che consiste di due parti logicamente separate: un Authentication Server (AS) e un Ticket Granting Server (TGS). Kerberos lavora sulla base di "ticket" (chiamati ticket Kerberos) che servono a provare l'identità degli utenti.

Database Kerberos: Il centro di distribuzione delle chiavi (KDC) gestisce un database di chiavi segrete; ogni entità della rete - sia essa un client o un server - condivide una chiave segreta nota solo a se stessa e al KDC. La conoscenza di questa chiave serve a provare l'identità di ogni entità. Per la comunicazione tra due entità, il KDC genera una chiave di sessione che può essere utilizzata per proteggere le loro comunicazioni.

Il termine "server Kerberos" si riferisce generalmente al KDC. Per motivi di affidabilità è possibile avere dei KDC di backup. Questi sono denominati "server slave Kerberos". Tutti gli slave sincronizzano le loro banche dati dal server master Kerberos.

Il termine "application server Kerberized" si riferisce generalmente ai programmi Kerberized con cui i clienti comunicano utilizzando i ticket Kerberos per l'autenticazione. Ad esempio, il server telnet Kerberos telnet è un esempio di application server Kerberized . Mentre il termine "applicazioni Kerberized" è usato per riferirsi al lato client dell'application server Kerberized , Per esempio, il client Kerberos telnet è un esempio di applicazioni Kerberized

La sicurezza del protocollo dipende molto dalla sicurezza:

  1. I partecipanti mantengono il tempo liberamente sincronizzato.
  2. Una breve dichiarazione di autenticità: i biglietti Kerberos.

Descrizione semplificata del protocollo

Saranno utilizzate le seguenti abbreviazioni:

·         AS = Server di autenticazione

·         TGS = Ticket Granting Server

·         SS o Server = Server di servizio (utente server che richiede il suo servizio, come ad esempio un server di stampa, un file server, ecc...)

·         TGT = Ticket Granting Ticket (biglietto Kerberos per il TGS. Preparato da AS, poi utilizzato per parlare con il TGS).

In breve, il cliente si autentica alla AS utilizzando un segreto condiviso a lungo termine e riceve un biglietto dalla AS. In seguito il cliente può utilizzare questo biglietto per ottenere ulteriori biglietti per le SS utilizzando lo stesso segreto condiviso. Questi biglietti possono essere utilizzati per dimostrare l'autenticazione alle SS.

Il protocollo in dettaglio

Passaggi di accesso basati sul client dell'utente:

  1. Un utente inserisce un nome utente e una password sulla macchina client.
  2. Il cliente esegue una funzione a senso unico (per lo più una funzione Hash) sulla password inserita, e questa diventa la chiave segreta del cliente/utente.

Fasi di autenticazione del cliente:

  1. Il cliente invia un messaggio di testo in chiaro all'AS che richiede i servizi per conto dell'utente.
    Esempio di messaggio: "L'utente XYZ desidera richiedere servizi".
    Nota: Né la chiave segreta né la password vengono inviate all'AS.
  2. L'AS controlla se il cliente è nel suo database. In caso affermativo, l'AS invia al cliente i seguenti due messaggi:
    • Messaggio A: Client/TGS Session Key criptata utilizzando la chiave segreta del cliente/utente.
    • Messaggio B: TGT (che include l'ID cliente, l'indirizzo di rete del cliente, il periodo di validità del biglietto e la Client/TGS Session Key) criptato con la chiave segreta del TGS.
  3. Una volta che il cliente riceve i messaggi A e B, decifra il messaggio A per ottenere la Session Key del Cliente/TGS. Questa chiave di sessione viene utilizzata per ulteriori comunicazioni con il TGS. A questo punto, il cliente dispone di informazioni sufficienti per autenticarsi al TGS.
    Nota: il cliente non può decifrare il messaggio B, in quanto viene criptato con la chiave segreta del TGS.

Fasi di autorizzazione del servizio clienti:

  1. In caso di richiesta di servizi, il cliente invia al TGS i seguenti due messaggi:
    • Messaggio C: Composto dal TGT del messaggio B e dall'ID del servizio richiesto.
    • Messaggio D: Authenticator (che è composto dall'ID cliente e dal timestamp), criptato usando la Client/TGS Session Key.
  2. Alla ricezione dei messaggi C e D, il TGS recupera il messaggio B dal messaggio C. Decripta il messaggio B utilizzando la chiave segreta del TGS. In questo modo si ottiene la chiave di sessione del Cliente/TGS. Utilizzando questa chiave, il TGS decripta il messaggio D (Authenticator) e invia i due messaggi seguenti al cliente:
    • Messaggio E: ticket client-to-Server (che include l'ID cliente, l'indirizzo di rete del cliente, il periodo di validità e la Client/Server Session Key) crittografato con la chiave segreta SS.
    • Messaggio F: Client/Server Session Key criptata con la Client/TGS Session Key.

Richiesta di assistenza clienti:

  1. Alla ricezione dei messaggi E e F del TGS, il cliente dispone di informazioni sufficienti per autenticarsi alle SS. Il cliente si collega alle SS e invia i seguenti due messaggi:
    • Messaggio E: dal passo precedente (il biglietto Client-to-Server, criptato con la chiave segreta SS).
    • Messaggio G: un nuovo Authenticator, che include l'ID del cliente, il timestamp e viene criptato con la chiave di sessione client/server.
  2. Le SS decifrano il biglietto utilizzando la propria chiave segreta per recuperare la chiave di sessione Client/Server. Utilizzando la chiave di sessione, SS decripta l'Authenticator e invia il seguente messaggio al cliente per confermare la sua vera identità e la sua volontà di servire il cliente:
    • Messaggio H: il timestamp trovato nell'Authenticator del client più 1, criptato con la chiave di sessione client/server.
  3. Il client decifra la conferma utilizzando la chiave di sessione client/server e controlla se il timestamp è aggiornato correttamente. In caso affermativo, il client può fidarsi del server e può iniziare ad emettere richieste di servizio al server.
  4. Il server fornisce i servizi richiesti al cliente.

Svantaggi

  • Singolo punto di guasto: Richiede la disponibilità continua di un server centrale. Quando il server Kerberos è fuori servizio, nessuno può accedere. Questo problema può essere risolto utilizzando più server Kerberos e meccanismi di autenticazione di emergenza.
  • Kerberos richiede che gli orologi di tutti gli host coinvolti siano sincronizzati. I biglietti hanno un periodo di disponibilità di tempo e se l'orologio dell'host non è sincronizzato con l'orologio del server Kerberos, l'autenticazione fallirà. La configurazione predefinita richiede che i tempi di clock non siano distanti tra loro più di 10 minuti. In pratica, il Network Time Protocol (NTP) viene solitamente utilizzato per mantenere tutti gli host sincronizzati.
  • Il protocollo di amministrazione non è standardizzato e differisce tra le implementazioni dei server. Le modifiche della password sono descritte in RFC 3244.
  • Poiché le chiavi segrete di tutti gli utenti sono memorizzate sul server centrale, un compromesso di quel server comprometterà le chiavi segrete di tutti gli utenti.
  • Un cliente compromesso compromette la password dell'utente.

Pagine correlate

  • Gestione dell'identità
  • Protocollo di password remota sicura (SRP)
  • Generic Security Services Application Program Interface (GSS-API)

Domande e risposte

D: Che cos'è Kerberos?


R: Kerberos è un protocollo di autenticazione per reti informatiche che consente alle persone che comunicano su una rete insicura di dimostrare in modo sicuro la propria identità reciproca.

D: Chi ha progettato Kerberos?


R: I progettisti di Kerberos lavoravano principalmente per un modello client-server e provenivano dal Massachusetts Institute of Technology (MIT).

D: In che modo Kerberos fornisce l'autenticazione reciproca?


R: I segreti condivisi crittografici consentono all'utente e al server di verificare l'identità reciproca.

D: In che modo Kerberos protegge dagli attacchi di spionaggio e replay?


R: I messaggi inviati tra gli utenti sono criptati in modo che terzi non possano leggerli o modificarli.

D: Che tipo di crittografia utilizza Kerberos?


R: Utilizza la crittografia a chiave simmetrica, che richiede un centro di distribuzione delle chiavi.

D: Kerberos supporta la crittografia a chiave pubblica?


R: Sì, le estensioni del protocollo possono consentirne l'uso in alcune fasi dell'autenticazione.

AlegsaOnline.com - 2020 / 2023 - License CC3