Está en la página 1de 20

Kerberos

Seguridad de las tecnologías de la información

Mª del Socorro Bernardos Galindo


sbernardos@fi.upm.es
Más conceptos
• Protocolo [DRAE]:
– 4. m. Secuencia detallada de un proceso de actuación científica, técnica,
médica, etc.
– 5. m. Inform. Conjunto de reglas que se establecen en el proceso de
comunicación entre dos sistemas
Especifica orden temporal y formato de intercambio de información entre
partes
• Protocolo de seguridad:
– Protocolo que usa mecanismos (criptográficos) para proporcionar
servicios de seguridad a partes implicadas
– Partes que actúan honradamente consiguen objetivo de protocolo
• Ej., establecer una clave, autenticar una de ellas o mutuamente, ...
Si es
bueno y
– Atacantes no pueden evitar objetivo de protocolo se sigue
• Ej., haciéndose pasar por una de las partes
Mas conceptos
• Consideraciones sobre protocolos de seguridad
– Diseñar protocolos es fácil
– Diseñar protocolos seguros es difícil
• Cómo usar mecanismos (criptográficos) en el diseño de protocolos
– Distancia entre teoría y realidad
• Protocolo puede ser seguro, pero su implementación no
• Componentes pueden ser seguros, pero su interacción no
– Algunos estandarizados
• Kerberos
• S/MIME
• TLS
• IPsec
• ...
Autenticación

Imagen de [The New Yorker, 1993]


Autenticación
• Asociación de identidad con entidad
• Basada en:
– Algo que se tiene
• tarjeta, llave, pasaporte, …
– Algo que se sabe
• contraseña, PIN, … Multifactor
– Algo que se es: factor biométrico
• Característica fisiológica: huella dactilar, …
• Característica de comportamiento: forma de caminar, …
¿Ventajas y desventajas?

• Protocolo para autenticación


– Objetivo: autenticar entidades que se quieren comunicar de forma
segura
– Protocolos relacionados: de establecimiento/distribución/gestión de clave
Más conceptos
• Participantes en un protocolo de seguridad
– Partes que se comunican
– Opcional: tercera parte en la que confían partes que se comunican
• Dependiendo de protocolo y aplicación se confía en que:
– No descubra claves de otras partes
– No use esas claves para suplantar alguna parte
– No escuche comunicación entre esas partes
• Posibilidades:
– Intermediario con el que comunicantes comparten clave a priori
• Centro de distribución de claves (CDC o KDC):
proporciona clave temporal Servidor de
• Centro de transferencia de claves (CTC o KTC): autenticación
pasa clave elegida por uno a otro

– Intermediario como notario: autoridad de certificación (AC o CA)


Autenticación (con crip. sim.) en sistema C/S
Cada usuario con cada servidor Servidor de autenticacion centralizado
• N usuarios y M servidores  • N usuarios y M servidores 
N*M contraseñas N+M contraseñas
• Nuevo usuario o cambio de • Nuevo usuario o cambio de
contraseña de usuario  contraseña de usuario 
actualización en M servidores actualización en 1 servidor (de aut.)

Usuarios Usuarios
Kerberos
Clientes Clientes

Servicios Servicios

Servidor de correo Servidor de archivos … Servidor de correo Servidor de archivos …

Servidor de autenticación

Adaptado de [Stevems, 2006]


Kerberos
Kerberos
• Origen en proyecto Athena de MIT, 1987
• Sistema de autenticación para sistemas distribuidos / en red
– Protocolo específico que emplea
• Versión 5: RFC 4120 (2005), con varias extensiones
– 4212: API
– 4537: Negociación de criptografía
– 5021: Extensión relacionada con CDC
– ...
– Software que lo implementa y que lo ejecuta
• Código gratuito: http://web.mit.edu/kerberos
• Suposición: máquinas seguras (pero redes inseguras)
• Usa
– Cifrado simétrico: DES, 3DES, AES, …
– MAC: CBC, MD4, MD5, SHA-1, …
– Cifrado asimétrico en intercambio inicial de autenticación (RFC 4556)
Características

• Requisitos/Propiedades: contraseña no por red


– Seguridad: Escuchas no pueden suplantar usuario
¿Suplantación de servidor Posibilidad de
(de Kerberos u otro)? autenticación mutua

– Fiabilidad: Fallo no afecta a acceso a servicios arq. distribuida


estación de
trabajo
– Transparencia: Usuario no consciente de autenticación
encargada

– Escalabilidad: Manejo de muchos usuarios y servidores arq. modular


Más conceptos. Frescura
• Garantía de que mensaje
– Se ha creado recientemente Frescura + autenticación de origen
– No se ha utilizado previamente  liveness
• Frente a ataques por repetición (intercepción y envío posterior)
• Métodos:
– Nonce (Number used once)
• Impredecible generalmente: cadena aleatoria larga
• Protocolo necesita varios mensajes (desafío-respuesta)
– Sello de tiempo • Control de últimos
• Basado en reloj: sincronización necesaria mensajes recibidos
– Necesario establecer margen de tiempo válido • Secreto o no según
protocolo
• Lógico: par de nºs de secuencia
– En extremo, nº se incrementa con cada envío
• Protocolo necesita 1 o 2 mensajes
Entidades participantes
CDC
• Comparte clave (de plazo largo) con C y S
• Autentica C para S
• Posibilita autenticación de S para C
SA • (Establece clave como efecto colateral) SCT
• Autentica C con clave CDC (centro de distribución de claves) • Autentica C con clave
a partir de contraseña y ticket
SCT
• Comparte clave con SA • Da a C ticket y clave
(servidor de
SCT (servidor de para acceder a S
concesión
• Da a C ticket y clave autenticación) de tickets) • (Evita usar contraseña
para acceder a SCT de C cada vez que C
1 2 3
4 requiere S)
C 5 S
• Quiere C S • Usa CDC para
acceder a S (cliente) 6 (servidor) autenticar C
• Puede • Autentica C
autenticar S con clave y
U No comparten clave a priori ticket
U (usuario)
• Conoce contraseña para entrar en sistema
Notación
Participantes Elementos
• C = Cliente • IDX = Identificador de X
• SA = Servidor de autenticación • PX = Contraseña de X
• SCT = Servidor de tickets • ADX = Dirección de red de X
• CDC = Centro de Distribución • TSX = Sello de tiempo de X
de Claves = SA + SCT • Nx = Nonce de X
• S = Servidor • DX = Dominio de X
• K{M} = M cifrado con K
Operaciones • KX = Clave secreta entre X y SA
• || = concatenación • KX,Y = Clave (secreta) de sesión
entre X e Y
• TX,Y= Ticket de X para Y
• AX,Y= Autenticador de X para Y
Autenticación (para obtener ticket inicial) v5

Estación de trabajo
IDU, PC Opciones|| IDC|| DC || IDSCT ||Tiempos|| NC1
Usuario

BD
(clientes,

SA
DC || IDC|| TC,SCT
servidores
K SCT{Flags ||KC,SCT || DC || IDC || ADC ||Tiempos} || y sus claves)
KC{ KC,SCT ||Tiempos || NC1 || DSCT || IDSCT}
Cliente

• [Usuario solicita servicio]


• Solicita a SA ticket para SCT • Comprueba si C está en BD
• Si es así, crea KC,SCT
• Y responde a C con
– Ticket TC,SCT
con periodo de validez
• Descifra su información con KC ( ≈ h(PC) ) – Clave nueva KC,SCT
cifrada con KC
– Si descifra, autenticación con éxito
¿Cómo? • Archivo
• Guarda KC,SCT y TC,SCT (intacto) ¿Dónde? • Memoria (caché)
Autorización (para obtener ticket de servicio) v5
Opciones|| IDS || Tiempos || NC2 || TC,SCT
KSCT {Flags ||KC,SCT|| DC || IDC || ADC ||Tiempos} ||
Cliente KC,SCT {IDC || DC ||TS1} A BD

SCT
C, SCT
(clientes,
servidores
y sus claves)
DC || IDC || KS {Flags ||KC,S || DC || IDC || ADC || Tiempos}
|| K {K || Tiempos || N || D || ID } TC,S
C,SCT C,S C2 S S

• Solicita servicio a SCT


– Con ticket dado por SA: TC,SCT • Descifra TC,SCT y obtiene KC,STC
– Y su autenticador con SCT: AC,STC • Usa KC,SCT para descifrar AC,SCT
[Usuario no pide ticket para servidor • Compara datos de TC,SCT y AC,SCT
explícitamente] • Si coinciden y C tiene permiso
para acceder a S, crea KC,S y TC,S
• Y responde a C con
– Ticket TC, S con periodo de validez
– Clave nueva KC,S cifrada con KC,SCT
Control de acceso (para acceder a un servicio) v5
TC,S
Opciones || KS {Flags ||KC,S || DC || IDC || ADC || Tiempos}

Servidor
Cliente
|| KC,S{ IDC || DC ||TS2 [|| Subclave ][|| nºSec]}
AC,S

KC,S{TS2 [|| Subclave ][|| nºSec]}

• Solicita servicio
• Descifra TC,S y obtiene KC,S
– Con ticket dado por TGS: TC,S
• Compara datos de TC,S y AC,S
– Y su autenticador con S: AC,S
• Si coincide, autenticación con éxito
• Si necesaria autenticación mutua,
responde con mensaje cifrado
• Después tráfico entre C y S puede ser:
– No protegido
– Con comprobación de integridad
– Con integridad y con confidencialidad
Resumen del protocolo Kerberos
Una vez por 2. SA busca cliente en BD, crea clave de
acceso de sesión y ticket para SCT.
usuario
1. Usuario entra en máquina
(con su contraseña) y pide Kerberos (CDC)
servicio. Servidor de
autenticación BD
(SA) (clientes,
servidores
Servidor de y sus claves)
tickets (SCT)

4. SCT descifra ticket y


3. Cliente usa contraseña Una vez autenticador, verifica petición,
de usuario para descifrar por tipo de luego crea ticket para servidor
clave de sesión y crea servicio pedido.
autentidador con ella;
luego envía ticket y 6. Servidor verifica petición a
autenticador a SCT. partir de ticket y autenticador.
Si cliente requiere autenticación
Una vez por
5. Análogo a 3, envía ticket y sesión de mutua, servidor devuelve su
autenticador a servidor. autenticador.
servicio
(Da servicio si cliente tiene
permiso)
Adaptada de [Stallings, 2005]
Kerberos replicados. Varios dominios
• Uno único
– Cuello de botella para rendimiento
– Fallo en él supone fallo en todo el sistema
• Con varios
– Usuarios (clientes) y servidores
registrados en servidor Kerberos
correspondiente a su dominio
– Servidores Kerberos registrados entre sí
(o, al menos, el que quiere acceder al otro
dominio registrado en su servidor
Kerberos )
– En v4 no posible cadenas de más de dos
– En v5 puede configurarse jerarquía
• Menos claves
• Más pasos intermedios

Imagen adaptada de [Stallings, 2005]


Ventajas
• Autenticación segura
– Usando mezcla de números aleatorios y marcas de tiempo
– C no autenticado a SA explícitamente, pero C sólo puede descifrar
mensaje que le envía SA si tiene clave KC correcta
– Otras autenticaciones: C y SCT, C y S
• Escritura de contraseña una vez y no viaja por red
• Usuario sólo necesita usar su clave de plazo largo una vez (tras
recibir de SA para establecer clave de plazo corto y ticket) si no
expira tiempo determinado
• V5 permite transmisión y renovación de ticket
• Posibilita confidencialidad de datos Al menos un
– Flujo seguro mediante cifrado con claves de sesión tipo compartido
¿Restricciones? por todos
– V5 permite distintos tipos de cifrado
participantes
• Muy estudiado
– y usado: Cisco, Microsoft, Apple, …
Desventajas
• Claves:
¿Usar
– Contraseñas: Vulnerable a ataques de diccionario/adivinación criptografía
– Gestión y distribución de claves previas (de plazo largo): asimétrica,
entre SA y SCT, SCT y Ss, y SA y Cs, en y entre dominios tarjetas
– Almacenamiento de claves y tickets: protección necesaria inteligentes,
…?
• Sincronización de relojes:
– Almacén de mensajes recientes ante repetición con reajuste de reloj
– Actualización de reloj o uso de protocolo de tiempo en red (NTP)
• Ampliabilidad: autenticación entre muchos dominios compleja
• Disponibilidad: necesaria para SA y SCT
• Vulnerabilidad de código de Kerberos: muchas a lo largo de años
• Necesarias aplicaciones “kerberizadas” en todos los participantes
• Protocolo de administración sin estándar
– Cambio de contraseña depende de implementación

También podría gustarte