Kerberos: separazione di AS e TGS


9

In Kerberos, Authentication Server (AS) e Ticket Granting Server (TGS) sono generalmente implementati sullo stesso server. Questa macchina è chiamata Key Distribution Center (KDC).

Sicuramente ha senso implementare questi servizi sulla stessa macchina fisica, poiché nelle reti di piccole e medie dimensioni sarebbe eccessivo separare questi due servizi. Inoltre, ho una fonte relativamente affidabile, che dice (tradotto):

TGS e AS devono accedere allo stesso DB => non ha molto senso implementare TGS e AS su macchine diverse

Tuttavia, non vedo quale database debba essere condiviso tra i due.

Questa è la mia idea, come separerei AS e TGS, non ci sono database condivisi:

  • Poiché AS e TGS sono separati, hanno un Master Secret diverso
  • L'AS ha un database con tutti gli utenti con il rispettivo segreto principale (utilizzato quando l'utente effettua l'accesso, per crittografare la chiave di sessione), nonché il segreto principale del TGS (per crittografare i TGT richiesti).
  • Il TGS ha un database, che consente di determinare a quale utente è consentito utilizzare quale servizio (ACL, elenco di revoca, ...), nonché un database con tutti i servizi con i rispettivi segreti principali (per crittografare i ticket).

Quando un utente desidera utilizzare un servizio (semplificato):

  • Autenticare presso l'AS
  • Ottieni un Ticket Granting Ticket (TGT), crittografato con il Master Secret TGS, così come la chiave di sessione, crittografato con il Master Master dell'utente.
  • Contatta il TGS con il TGT
  • Ottieni un biglietto, crittografato con il Master Secret del servizio
  • Contatta il servizio con il biglietto

Mi sto perdendo qualcosa o non c'è davvero alcun problema a separare l'AS e il TGS?


1
Sembra che tu sia troppo in profondità negli interni di Kerberos. Il solito modo di ridimensionare è semplicemente aggiungere più KDC, quindi non sono davvero sicuro di ciò che stai cercando di realizzare.
Michael Hampton,

1
Giusto: quale problema stai effettivamente affrontando, che stai cercando di risolvere?
mfinni,

1
Non sto cercando di risolvere alcun problema concreto. Sto solo cercando di capire gli interni di Kerberos (per un esame) senza volerlo usare al momento. La domanda è puramente teorica, voglio solo sapere se ho capito qualcosa di sbagliato o se la citazione nella mia domanda non è del tutto corretta.
Misch

Risposte:


4

La tua domanda è tutta teoria. Quindi risponderò in natura. L'AS e il TGS sono server logici e come tali potrebbero teoricamente essere separati. Ma in pratica non ci sono state buone ragioni per implementarle su macchine separate, e quindi nessuno lo fa nella vita reale. Anche le reti più grandi e trafficate al mondo in termini di autenticazione Kerberos non hanno bisogno di separare i componenti logici dei KDC. Nelle implementazioni reali di Kerberos, tutti i dati di cui l'AS ha bisogno e tutti i dati di cui il TGS ha bisogno sono tutti archiviati nello stesso database. Teoricamente potrebbe essere separato, ma non c'è proprio una buona ragione per farlo e non farebbe altro che complicare inutilmente l'attuazione.


1
Ho appena riscontrato un altro problema durante la separazione di AS e TGS: non è solo possibile ottenere TGT dall'AS, ma è anche possibile richiedere un biglietto per qualsiasi altro servizio (ad es. Se si sa che sarà necessario solo questo biglietto, quindi nessuna necessità di deviazione tramite TGT). Ciò significa che l'AS necessita inoltre di tutti i dati che ho assunto solo per il TGS.
Misch
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.