Kerberos: Separando AS e TGS

9

No Kerberos, o Servidor de Autenticação (AS) e o Servidor de Concessão de Ticket (TGS) são geralmente implementados no mesmo servidor. Esta máquina é chamada de Key Distribution Center (KDC).

Certamente, faz sentido implementar esses serviços na mesma máquina física, já que em redes pequenas e médias seria um exagero separar esses dois serviços. Além disso, tenho uma fonte relativamente confiável, que diz (traduzida):

TGS and AS have to access the same DB => it doesn't make much sense to implement TGS and AS on different machines

No entanto, não vejo qual banco de dados precisa ser compartilhado entre os dois.

Esta é a minha ideia, como eu separaria o AS e o TGS, não há bancos de dados compartilhados:

  • Como AS e TGS estão separados, eles têm um segredo mestre diferente
  • O AS tem um banco de dados com todos os usuários com seus respectivos segredos principais (usado quando o usuário faz login, para criptografar a chave de sessão), bem como o segredo mestre do TGS (para criptografar os TGTs solicitados).
  • O TGS tem um banco de dados, que permite determinar qual usuário tem permissão para usar qual serviço (ACL, lista de revogação, ...), bem como um banco de dados com todos os serviços com seus respectivos segredos principais (para criptografar os tickets). ).

Quando um usuário deseja usar um serviço (simplificado):

  • Autenticar no AS
  • Obtenha um ticket de concessão de tíquete (TGT), criptografado com o segredo mestre do TGS, bem como a chave de sessão, criptografada com o segredo mestre do usuário.
  • Entre em contato com o TGS com o TGT
  • Obter um ticket criptografado com o segredo mestre do serviço
  • Entre em contato com o serviço com o ticket

Estou faltando alguma coisa ou não há problema algum em separar o AS e o TGS?

    
por Misch 18.04.2014 / 09:32

1 resposta

4

Sua pergunta é toda teoria. Então eu vou responder em espécie. O AS e o TGS são servidores lógicos e, como tal, eles poderiam teoricamente ser separados. Mas, na prática, não há boas razões para implementá-las em máquinas separadas, e ninguém faz isso na vida real. Mesmo as maiores e mais movimentadas redes do mundo em termos de autenticação Kerberos não precisam separar os componentes lógicos dos KDCs. Em implementações reais do Kerberos, todos os dados que o AS precisa e todos os dados que o TGS precisa são armazenados no mesmo banco de dados. Ele poderia, teoricamente, ser separado, mas simplesmente não há uma boa razão para fazê-lo e não faria nada além de complicar desnecessariamente a implementação.

    
por 18.04.2014 / 23:36

Tags