Una contraseña, muchos servicios
Kerberos te deja entrar a todo sin que tu contraseña viaje nunca por la red. Al terminar sabrás pedir tickets y entender por qué un reloj atrasado lo arruina todo.
Primero, la idea completa
Mira el video entero o salta a la parte que quieras repasar. Después, cada idea tiene su propia escena para tocarla.
Qué es Kerberos
Kerberos es un protocolo de seguridad creado en el Instituto de Tecnología de Massachusetts (MIT) para tener un sistema integrado que cumpliera las tres funciones de seguridad. Se diseñó para autenticar de forma segura en una red, sin enviar nunca las contraseñas y protegiendo contra la suplantación de identidad. También buscaba que cada usuario manejara una sola contraseña para todos los servicios (single sign-on) y acabar con la pesadilla de tener muchas.
Sus piezas son:
- Cliente: el usuario o proceso que se quiere autenticar y usar servicios.
- Servidores de servicios: los que prestan los servicios, cuyo acceso valida Kerberos.
- AS (Authentication Service): el primer contacto. Verifica la identidad y, si las credenciales son correctas, entrega un ticket que lo certifica: el TGT.
- TGS (Ticket Granting Service): con base en el TGT, decide a qué servicios puede acceder el usuario y entrega tickets para ellos.
- KDC (Key Distribution Center): la unión del AS y el TGS. Un servidor Kerberos es un KDC.
Y tres elementos de seguridad:
- Clave de sesión: una clave secreta temporal que Kerberos genera para que un cliente y un servidor la usen durante una sesión. Sirve para gastar lo menos posible las claves secretas de cada parte, que duran mucho tiempo.
- Ticket: el testigo que expide el servicio de tickets para que un cliente pida un servicio; garantiza que el cliente se autenticó hace poco. Incluye el nombre del cliente, un período de validez y una clave de sesión, y va siempre cifrado con la clave secreta del servidor al que se entrega.
- Autenticador: lo construye el cliente para probar su identidad y que la comunicación es actual: contiene su nombre y una marca de tiempo, cifrados con la clave de sesión. Solo se puede usar una vez.
El intercambio completo, paso a paso. Fíjate con qué clave va cerrado cada mensaje y quién puede abrirlo.
Cómo funciona
- El usuario escribe su nombre y contraseña en el cliente. El cliente obtiene una clave a partir de la contraseña (un hash): será la clave secreta del cliente,
Kc. - El cliente envía al AS un mensaje en texto plano: usuario y marca de tiempo.
- Si el usuario existe, el AS genera una clave de sesión para hablar con el TGS,
Kc-tgs, y responde con dos mensajes: A, esa clave cifrada conKc, y B, el TGT (usuario, dirección, vigencia yKc-tgs) cifrado con la clave del TGS, que el cliente no puede abrir. - El cliente abre A con
Kcy le envía al TGS: C, el TGT y el servicio que quiere, y D, un autenticador cifrado conKc-tgs. - El TGS responde con E, el ticket para el servicio cifrado con la clave del servicio, y F, una clave de sesión cliente-servicio
Kc-scifrada conKc-tgs. - El cliente le envía al servicio E y G, un autenticador nuevo cifrado con
Kc-s. - El servicio abre el ticket con su clave y responde H: la marca de tiempo del autenticador más uno, cifrada con
Kc-s. Así el cliente también comprueba que el servidor es legítimo, y empieza el servicio.
Ventajas y desventajas
A favor: criptografía sólida, las tres funciones de seguridad y la contraseña nunca viaja por la red; un único punto de autenticación para muchos servicios; escala a muchos usuarios y servicios; y los tickets se pueden renovar para no autenticarse a cada rato.
En contra: es complejo de implementar y mantener; necesita servidores dedicados e infraestructura de red sólida; si el AS o el TGS fallan, nadie entra (punto único de falla); no hay un estándar para administrarlo; usa criptografía de forma intensiva, con cinco llaves en el proceso; y exige relojes sincronizados: con más de 5 minutos de diferencia (configurable) se rechaza todo. Aunque no es parte del protocolo, en la práctica es obligatorio usar NTP para sincronizar la hora de todas las computadoras.
Desfasa el reloj de la estación de trabajo respecto al KDC y mira si el KDC acepta la marca de tiempo.
Eva copia mensajes de la red. Elige cuál intenta usar y mira por qué no le sirve.
Antes de leer la respuesta
Tu turno: entra al reino
Tu estación de trabajo pertenece al reino PIXELAULA.LOCAL, donde hay dos servicios: archivos (por ssh) y la intranet (por web). Consigue tu TGT, entra a los servicios sin volver a escribir la contraseña, revisa qué viajó por la red y prueba qué pasa si alguien repite un mensaje.
Comprueba lo que entendiste
Cada respuesta incorrecta explica por qué parece correcta y en qué falla.