En Kerberos, el servidor de autenticación (AS) y el servidor de concesión de tickets (TGS) generalmente se implementan en el mismo servidor. Esta máquina se llama Centro de distribución de claves (KDC).
Seguramente, tiene sentido implementar estos servicios en la misma máquina física, ya que en redes pequeñas y medianas sería excesivo separar estos dos servicios. Además, tengo una fuente relativamente confiable, que dice (traducida):
TGS y AS tienen que acceder al mismo DB => no tiene mucho sentido implementar TGS y AS en diferentes máquinas
Sin embargo, no veo qué base de datos se debe compartir entre los dos.
Esta es mi idea, cómo separaría AS y TGS, no hay bases de datos compartidas:
- Como AS y TGS están separados, tienen un secreto maestro diferente
- El AS tiene una base de datos con todos los usuarios con su respectivo secreto maestro (utilizado cuando el Usuario inicia sesión, para cifrar la clave de sesión), así como el secreto maestro del TGS (para cifrar los TGT solicitados).
- El TGS tiene una base de datos, que le permite determinar qué usuario puede usar qué servicio (ACL, lista de revocación, ...), así como una base de datos con todos los servicios con sus respectivos secretos maestros (para encriptar Tickets).
Cuando un usuario quiere usar un servicio (simplificado):
- Autenticar en el AS
- Obtenga un Ticket Granting Ticket (TGT), cifrado con el secreto maestro de TGS, así como la clave de sesión, cifrada con el secreto maestro del usuario.
- Póngase en contacto con el TGS con el TGT
- Obtenga un boleto, encriptado con el secreto maestro del servicio
- Póngase en contacto con el servicio con el boleto
¿Me estoy perdiendo algo o realmente no hay ningún problema para separar el AS y el TGS?
Respuestas:
Tu pregunta es toda teoría. Entonces responderé en especie. El AS y la TGS son servidores lógicos, y como tales podrían teóricamente ser separados. Pero en la práctica no ha habido una buena razón para implementarlos en máquinas separadas, por lo que nadie lo hace en la vida real. Incluso las redes más grandes y activas del mundo en términos de autenticación Kerberos no tienen necesidad de separar los componentes lógicos de los KDC. En las implementaciones de la vida real de Kerberos, todos los datos que necesita el AS y todos los datos que necesita el TGS se almacenan en la misma base de datos. Teóricamente podría separarse, pero no hay una buena razón para hacerlo y no haría nada más que complicar innecesariamente la implementación.
fuente