Condividi tramite


biglietti Ticket-Granting

Poiché il protocollo Kerberos è stato originariamente progettato, una chiave master per un utente è derivata da una password fornita dall'utente. Quando un utente ha eseguito l'accesso, il client Kerberos nella workstation dell'utente ha accettato la password dall'utente e lo ha convertito in una chiave di crittografia passando il testo tramite una funzione hash unidirezionale. L'hash risultante era la chiave master dell'utente. Il client ha usato questa chiave master per decrittografare le chiavi di sessione ricevute da KDC.

Il problema della progettazione Kerberos originale è il client che richiede la chiave master dell'utente ogni volta che decrittografa una chiave di sessione dal KDC. Ciò significa che il client deve chiedere all'utente la password all'inizio di ogni scambio client/server o il client deve archiviare la chiave dell'utente nella workstation. Le interruzioni frequenti dell'utente sono troppo intrusive. L'archiviazione della chiave nella workstation comporta rischi per compromettere una chiave derivata dalla password utente che rappresenta una chiave a lungo termine.

La soluzione del protocollo Kerberos a questo problema è per il client per ottenere una chiave temporanea dal KDC. Questa chiave temporanea è valida solo per questa sessione di accesso. Quando un utente accede, il client richiede un ticket per il KDC proprio come richiederebbe un ticket per qualsiasi altro servizio. Il KDC risponde creando una chiave di sessione di accesso e un ticket per un server speciale, il servizio di concessione del ticket completo del KDC. Una copia della chiave di sessione di accesso è incorporata nel ticket e il ticket viene crittografato con la chiave master del KDC. Un'altra copia della chiave di sessione di accesso viene crittografata con la chiave master dell'utente derivata dalla password di accesso dell'utente. Sia il ticket che la chiave di sessione crittografata vengono inviati al client.

Quando il client ottiene la risposta del KDC, decrittografa la chiave di sessione di accesso con la chiave master dell'utente derivata dalla password dell'utente. Il client non necessita più della chiave derivata dalla password dell'utente perché il client userà ora la chiave di sessione di accesso per decrittografare la copia di qualsiasi chiave di sessione del server ottenuta dal KDC. Il client archivia la chiave di sessione di accesso nella cache dei ticket insieme al relativo ticket per il servizio di concessione di ticket completo del KDC.

Il ticket per il servizio di concessione di ticket completo viene chiamato ticket-granting ticket (TGT). Quando il client chiede al KDC di un ticket a un server, presenta le credenziali sotto forma di un messaggio di autenticazione e di un ticket, in questo caso un TGT, proprio come presenterebbe le credenziali per qualsiasi altro servizio. Il servizio di concessione del ticket apre il TGT con la relativa chiave master, estrae la chiave di sessione di accesso per questo client e usa la chiave sessione di accesso per crittografare la copia del client di una chiave di sessione per il server.