Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Protocolos de seguridad
Autenticación (validación)
1
Tema de seguridad
1.- Secretos: criptografía
2.- Protocolos de seguridad
3.- Aplicaciones y seguridad
4.- Redes y seguridad
2
Clasificación de problemas de seguridad
Los problemas de seguridad de las redes pueden dividirse de forma
general en cuatro áreas interrelacionadas:
1.-El secreto, encargado de mantener la información fuera de las manos
de usuarios no autorizados.
2.-La validación de identificación, encargada de determinar la identidad
de la persona/computadora con la que se esta hablando.
3.-El control de integridad, encargado de asegurar que el mensaje
recibido fue el enviado por la otra parte y no un mensaje manipulado
por un tercero.
4.-El no repudio, encargado de asegurar la “firma” de los mensajes, de
igual forma que se firma en papel una petición de compra/venta entre
empresas.
3
Validación de identificación en redes
La validación de identificación, o también llamada
autenticación (que no autentificación, que es ver si algo
es auténtico), es la técnica mediante la cual un proceso
comprueba que su compañero de comunicación es quien se
supone que es y no un impostor.
La verificación de la identidad de un proceso remoto con un
intruso activo malicioso, es sorprendentemente difícil y
requiere protocolos de validación complejos basados en
criptografía como vamos a ver.
La validación es el paso previo al establecimiento de una
conexión entre dos entidades, para pactar una clave de
sesión.
4
Modelo general de validación e intrusos
Un usuario A, quiere establecer una conexión segura con un
segundo usuario, B:
1.- Se validan. Comienza A por enviar un mensaje a B o a un centro de distribución
de claves (KDC, Key Distribution Centre) fiable (honesto). Tras ello siguen
varios intercambios de mensajes en diferentes direcciones (o protocolo).
PERO, a medida que se envían estos mensajes, un intruso malicioso, C, puede
interceptarlos, modificarlos o reproducirlos para engañar a A y a B, o
simplemente para estropear sus actividades.
C
A
B
2.- Un protocolo de autenticación debe impedir que un intruso se meta. Terminado el
protocolo habrán negociado una clave de sesión.
5
Métodos de autenticación (identificación)
• Biomédicas, por huellas dactilares, retina del
ojo, ...
• Tarjetas inteligentes que guardan
información de los certificados de un usuario
• Métodos clásicos basados en contraseña, más
frágiles que los anteriores y más simples
(baratos), basados en:
– Comprobación local o método tradicional
en la propia máquina
– Comprobación en red o método
distribuido, más utilizado actualmente
Una vez completado el protocolo, ambos A y B están
seguro que está hablando entre ellos.
Durante el protocolo podrían haber intercambiado una
clave de sesión. 6
Modelos de validación basados en
métodos distribuidos
7
Validación de identificación de clave secreta
Métodos:
9
Clave secreta. Método 1
Validación de identificación basada en clave
secreta compartida: protocolo
1
Quiero algo de B A
2
RB ¿ERES A?
3
A KAB(RB) B
4
RA
¿ERES B?
5
KAB(RA)
Ri son números aleatorios grandes lanzados desde cada extremo como reto.
El paso 4 y 5 es para que A se asegure que le contesta B. Tras esta
identificación, A puede indicar una Ks para la sesión.
Este protocolo funciona, pero se puede simplificar el número de mensajes.
DESTACAR, que con el mensaje 2 y 3 se podría tratar de explotar por 10
fuerza bruta la clave.
Clave secreta. Método 1
Validación de identificación basada en clave
secreta compartida: simplificación
1
A, RA
2
A RB, KAB(RA) B
3
KAB(RB)
11
Clave secreta. Método 1
Validación de identificación basada en
clave secreta compartida: fallo
Un intruso C puede burlar este protocolo por un
ataque por reflexión, si es posible abrir al mismo
tiempo varias sesiones con B.
B
Por ejemplo, B es un banco y acepta muchas
conexiones simultáneas de los diferentes cajeros
12
Clave secreta. Método 1
Validación de identificación basada en clave
secreta compartida: ataque por reflexión
1
A, RC
2 Primera sesión
RB, KAB(RC)
3
C A, RB B
4 Segunda sesión
RB2, KAB(RB)
5
KAB(RB)
Primera sesión
establecida
14
Clave secreta. Método 1
Establecimiento de una clave compartida:
intercambio de claves Diffie-Hellman (1976)
Hasta ahora hemos supuesto que A y B comparten una clave secreta. ¿Y
si no es así?
Existe una manera de que completos desconocidos establezcan una clave
secreta a plena luz del día (aunque C esté registrando cada mensaje).
El protocolo de intercambio de claves Diffie-Hellman:
A y B tienen que acordar dos números primos grandes (n, g), que deben
cumplir ciertas condiciones [RFC 2631]. Estos números pueden ser
públicos
Cualquiera puede escoger (n, g) y decírselo al otro abiertamente
A gy mod n B
2
Cada mensaje que A y/o B envía durante la sesión cifrada es capturado por C,
almacenado, modificado y pasado (opcionalmente) a B y/o A.
C ve todo y puede modificar los mensajes, mientras A y B están pensando
equivocadamente que tienen un canal seguro entre ambos.
20
Clave secreta. Método 3
Validación de identificación usando un KDC:
“la rana de boca amplia”
1
A, KA(B,KS)
A KDC B
2
KB(A,KS)
1.- A escoge una clave de sesión, KS e indica al KDC que desea hablar con
B usando KS. Este mensaje se cifra con la clave secreta que comparte A
sólo con el KDC, KA
2.- KDC descifra este mensaje, extrayendo la identidad de B y la clave de
sesión. Construye un mensaje nuevo cifrado con KB (compartido entre
KDC y B) que contiene la identidad de A y la clave de sesión y se lo
envía a B
Ahora, A y B pueden hablar y saben además la clave a utilizar.
Para la validación de identificación, como las claves con el KDC son
secretas, nadie más habría sido capaz de cifrarlo con la clave secreta de
otro A diferencia de Diffie Hellman, aquí si existe autenticación por ambas
partes. 21
Clave secreta. Método 3
Validación de identificación usando un KDC:
ataque por repetición
Ataque: un intruso C puede copiar el mensaje 2 (de KDC a B) y todos los
mensajes que le siguen y reproducirlos de nuevo para B, con lo cual B creerá
estar hablando con A. Pero C no sabe Ks repite sin saber lo que dice, pero
interfiere en B e incluso podría generar denegación de servicio (DoS).
Soluciones posibles:
1.- incluir una marca de tiempo en cada mensaje de forma que pueda descartar
mensajes obsoletos, pero los relojes nunca están perfectamente sincronizados
en toda una red
2.- incluir un número de mensaje único (llamado núnico), de forma que cada
parte entonces tiene que recordar todos los núnicos y rechazar cualquier
mensaje que contenga un núnico previamente usado
Comentarios:
Si una máquina se cae y pierde la lista de núnicos, es vulnerable a un ataque
por repetición.
Las marcas de tiempo y los núnicos pueden combinarse para limitar el tiempo
que pueden recordarse los núnicos, pero el protocolo se volverá más
complicado. 22
Clave secreta. Método 3
Validación de identificación usando un KDC: protocolo de Needham-
Schroeder (1/2)
Mejora: se basa en usar un protocolo multisentido de reto-respuesta, en vez de
una única transacción.
1
RA, A, B
2 KDC
KA(RA ,B,K S,KB (A,Ks))
A B
1.- A indica al KDC que quiere hablar con B, incluyendo un número aleatorio grande, RA,
como núnico.
2.- KDC devuelve el mensaje 2 con
• RA para asegurar a A que el mensaje 2 es reciente, y no una repetición
• La identidad de B, por si a C se le ocurre reemplazar a B del mensaje 1 por su propia
identidad además de que cifre un billete al final del mensaje 2 con KC en lugar de KB y
sabotee a A (haciendo creer a A que habla con B, cuando en realidad lo hace con C)
• una clave de sesión 23
• un billete para que puede re-enviarse a B (identificando a A y la clave de sesión K s)
Clave secreta. Método 3
Validación de identificación usando un KDC: protocolo de Needham-
1
Schroeder (2/2)
RA, A, B
2 KDC
KA(RA ,B,K S,KB (A,Ks))
3
A KB(A,K S),KS(RA2) B
4
KS(RA2-1), R B
5
KS(RB-1)
3.- A ahora envía el billete a B, junto con un nuevo número aleatorio, RA2, cifrado
con la clave de la sesión, KS.
4.- B devuelve KS(RA2-1) para demostrar a A que está hablando con el
verdadero B. El envío de regreso de KS(RA2) no habría funcionado,
puesto que C lo podría haber robado del mensaje 3.
Al hacer que cada parte genere un reto y responda a otro, en nuestro caso (-1), se elimina la
posibilidad de un ataque por repetición.
5.- A está convencido de que está hablando con B, y de que no se pudieron haber
usado repeticiones hasta el momento. El propósito del mensaje 5 es convencer
a B de que realmente está hablando con A, y de que tampoco se han usado 24
repeticiones aquí.
Clave secreta. Método 3
Validación de identificación usando un KDC: ataque del
protocolo de Needham-Schroeder
1
RA, A, B
2 KDC
KA(RA,B,KS,KB (A,Ks))
3
A KB(A,KS),KS(RA2) B
4
KS(RA2-1), RB
5
KS(RB-1)
Debilidad:
Si C llega a obtener una clave de sesión vieja KS en texto normal, puede
iniciar una nueva sesión con B repitiendo el mensaje 3 correspondiente
a la clave obtenida con KS(Rc) y convencerlo de que es A con KB(A,KS),
que lo guardó C copiado de un mensaje 3 antiguo, completando el protocolo
sin problema con los mensajes 4 y 5, y suplantando la identidad de A.
Solución:
Otway y Rees publicaron un protocolo que resuelve el problema, haciendo que B
hable con el KDC.
25
Clave secreta
secreta. Método 3
Validación de identificación usando un KDC: protocolo de Otway y Rees
1
A, B, R, KA(A, B, R, RA)
2
A A, KA(A,B,R,RA) B
B, KB(A,B,R,RB)
KDC
4 3
KA(RA,KS) KB(RB,KS)
1.- A comienza por generar un par de números aleatorios: R, que se usará como
identificador común, y RA, que A usará para retar a B.
2.- Cuando B recibe este mensaje, construye un mensaje nuevo a partir de la parte cifrada del
mensaje de A con KA, y uno análogo propio con KB. Ambas partes cifradas, identifican:
A, B, el identificador común R y un reto RA o RB respectivamente.
3 y 4.- KDC comprueba que R de ambas partes es igual. Los R podrían no serlo porque C
alteró el R del mensaje 1 y reemplazó parte del mensaje 2. Si los 2 R son iguales, el KDC
se convence de que el mensaje de solicitud de B es válido, y genera una clave de sesión.
Cada mensaje contiene un número aleatorio del receptor como prueba de que el KDC, y
no C, generó el mensaje.
26
Clave secreta
secreta. Método 3
Autenticación con Kerberos
Servicio de autenticación (validación de identificación)
desarrollado en el Massachusetts Institute of Technology (MIT)
28
Clave secreta
secreta. Método 4
Protocolo de autenticación Kerberos: protocolo (1/2)
1
RA, A, B
2 Kerberos
Ka(K,L, RA,B)
A Kb(K,L,A)
K(Ta+1)
3.- B descifra la credencial con su clave secreta Kb, recuperando de esta forma K,
L y la identidad A y con ello utiliza K para descifrar el autentificador y recuperar
los valores identidad de A y Ta, comprobando que las identidades de la credencial
y el autentificador coinciden, y que el sello Ta es válido y se encuentra en los
límites de L.
4- Si las comprobaciones son satisfactorias, B se convence de la autenticidad de la
identidad de A, y en tal caso, B envía a A la conformidad con K(Ta+1)
Por su parte A descifra la conformidad con la clave de sesión K y verifica que el
valor recuperado es Ta+1, lo cual asegura a A que la clave de sesión K ha sido
correctamente recibida por el usuario B 30
Clave secreta
secreta. Método 4
Protocolo de autenticación Kerberos: comentarios (1/2)
1.-El propósito del sello temporal Ta y del período de validez L es doble
– A pueda utilizar la credencial para realizar sucesivas autentificaciones
ante B durante el período de validez de la clave sin necesidad de que
intervenga Kerberos
– permite prevenir un posible ataque activo al protocolo consistente en el
almacenamiento de las claves para su posterior reutilización. Esto se
consigue puesto que una clave no se acepta como válida si su sello
temporal no se encuentra dentro de los límites del período de validez de la
misma.
2.- Kerberos viene en la mayoría de distribuciones UNIX y/o Linux,
utilizado en procesos como login, rlogin o NFS (Network File System)
y las versiones más utilizadas son v4 y v5
3.- es centralizado y no distribuido en una red, lo cual si falla ...o si se ve
comprometido, se compromete toda la red, además las claves
almacenadas son privadas y no públicas. En versión 4 y/o 5 incorpora
servidores secundarios.
31
Clave secreta
secreta. Método 4
Protocolo de autenticación Kerberos: comentarios (2/2)
32
Clave secreta
secreta. Método 4
Autenticación con Kerberos: ejemplo de login