Title: Seguridad (2/4): Protocolos de seguridad
1Seguridad (2/4) Protocolos de seguridad
Autenticación (validación)
2Tema de seguridad
- 1.- Secretos criptografía
- 2.- Protocolos de seguridad
- 3.- Aplicaciones y seguridad
- 4.- Redes y seguridad
3Clasificació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.
4Validació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.
5Modelo 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. - 2.- Un protocolo de autenticación debe impedir
que un intruso se meta. Terminado el protocolo
habrán negociado una clave de sesión.
C
A
B
6Mé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.
7Modelos de validación basados en métodos
distribuidos
- clave secreta (privada o simétrica)
- clave pública (asimétrica)
8Validación de identificación de clave secreta
- Métodos
- Validación de identificación basada en clave
secreta compartida. - Establecimiento de una clave compartida
intercambio de claves Diffie-Hellman (no permite
autenticación) - Validación de identificación usando un centro de
distribución de claves (KDC- Key Distribution
Center). - Protocolo de autenticación Kerberos.
Clave secreta
9Validación de identificación basada en clave
secreta compartida
- Supondremos que A y B ya comparten una clave
secreta KAB (acordada o bien telefónicamente o en
persona pero, en cualquier caso, no a través de
la red) - Este protocolo se basa en reto-respuesta
- una parte envía un número aleatorio a la otra
- La otra parte lo transforma de una manera
especial y devuelve el resultado a la parte
primera - Notación a utilizar
- Ri son los retos, donde el subíndice identifica
el retador A o B - Ki son las claves, donde i indica el dueño Ks es
la clave de la sesión.
Clave secreta. Método 1
10Validación de identificación basada en clave
secreta compartida protocolo
1
Quiero algo de B
A
A
- 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 fuerza bruta la clave.
Clave secreta. Método 1
11Validación de identificación basada en clave
secreta compartida simplificación
Pero si B acepta varias sesiones simultáneamente
...
Clave secreta. Método 1
12Validació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. - Por ejemplo, B es un banco y acepta muchas
conexiones simultáneas de los diferentes cajeros - El ataque comienza cuando C indica que es A y
envía RC. - B responde, como de costumbre, con su propio
reto, RB pero C no conoce KAB(RB)!
Clave secreta. Método 1
13Validación de identificación basada en clave
secreta compartida ataque por reflexión
- C puede abrir una segunda sesión con el mensaje
3, proporcionando como reto el RB tomado del
mensaje 2.
B lo cifra y envía de regreso KAB(RB) en el
mensaje 4. Ahora C tiene toda la información y
aborta la segunda sesión. B ahora está convencido
de que C es A.
Clave secreta. Método 1
14Validación de identificación basada en clave
secreta compartida solución al ataque por
reflexión
- Tres reglas generales que frecuentemente son de
ayuda son las siguientes - Hacer que el iniciador demuestre quién es antes
de que lo tenga que hacer el respondedor. B
regala información valiosa antes de que C dé
cualquier prueba de su identidad. - Hacer que el iniciador y el respondedor usen
diferentes claves para comprobación, incluso si
esto significa tener dos claves compartidas, KAB
y KAB. - Hacer que el iniciador y el respondedor tomen sus
retos de diferentes conjuntos y por tanto no se
puedan repetir los retos, por ejemplo, el
iniciador usa números pares y el respondedor
números nones. - En este caso, la simplificación ha sido una
vulnerabilidad, porque con el primer esquema no
pasaba esta situación.
Clave secreta. Método 1
15Establecimiento 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 - Este algoritmo se puede considerar también como
de clave pública, pero no permite autenticación. - RSA se basó en este algoritmo
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 escoge un
número grande x, y lo mantiene en secreto, de la
misma manera, B escoge un número secreto grande y
Clave secreta
Clave secreta. Método 2
16Establecimiento de una clave compartida
intercambio de claves Diffie-Hellman protocolo
1.-A inicia el protocolo enviando a B un mensaje
que contiene (n, g, gx mod n)
2.-B responde con gy mod n
- A y B comparten una clave secreta gxy mod n
- Intrusos C conoce (n, g), pero le falta (x, y)
- gxy mod n no se conoce un algoritmo práctico
para calcular esto cuando n es un número primo
muy grande.
Clave secreta
Clave secreta. Método 2
17Clave secreta
Clave secreta. Método 2
18Establecimiento de una clave compartida
intercambio de claves Diffie-Hellman ataque de
brigada de cubetas o ataque de alguien en medio
- Ataque Cuando B recibe (n, g, gx mod n), no sabe
si es A o C quien se la ha enviado
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.
Solución utilizar un KDC, centro de distribución
de claves.
Clave secreta. Método 2
19TACACS y RADIUS
- TACACS (Terminal Access Controller Access
Control System-RFC1492) y RADIUS (Remote
Authentication Dial In User Service- RFC2138) son
ejemplos de centros de distribución de claves o
también conocidos como servidores de control de
acceso. - TACACS y RADIUS son protocolos para
descentralizar el control del acceso, de forma
que cualquier servicio en red que requiera
validar, autorizar o auditar a un usuario lo
puede hacer como cliente de los servidores
TACACS y/o RADIUS. - Estos servidores se utilizan generalmente como
apoyo a los routers de servidor de acceso remoto,
por ejemplo la gestión de usuarios que conectan
desde el exterior a la Universitat por RDSI o
POTS (RTB).
Clave secreta. Método 3
20Validación de identificación usando un centro de
distribución de claves (KDC)
- En Diffie-Hellman no hay garantías por el ataque
de alguien en medio, efectuado por un extraño o
intruso. - Otro inconveniente, es que para hablarle a n
personas de esta manera se requerían n claves
(una verdadera carga)
- Un enfoque diferente es introducir un centro de
distribución de claves fiables (KDC- Key
Distribution Center) - Cada usuario tiene una sola clave compartida con
el KDC - La validación de identificación y la
administración de claves de sesión ahora pasan a
través del KDC. - El protocolo de validación e identificación más
simple conocido es la rana de boca amplia.
Clave secreta. Método 3
21Validación de identificación usando un KDCla
rana de boca amplia
- 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.
Clave secreta. Método 3
22Validació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.
Clave secreta. Método 3
23Validació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.- 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
- un billete para que puede re-enviarse a B
(identificando a A y la clave de sesión Ks)
Clave secreta. Método 3
24Validación de identificación usando un KDC
protocolo de Needham-Schroeder (2/2)
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
repeticiones aquí.
Clave secreta. Método 3
25Validación de identificación usando un KDC
ataque del protocolo de Needham-Schroeder
- 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.
Clave secreta
Clave secreta. Método 3
26Validación de identificación usando un KDC
protocolo de Otway y Rees
- 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.
Clave secreta
Clave secreta. Método 3
27Autenticación con Kerberos
Servicio de autenticación (validación de
identificación) desarrollado en el Massachusetts
Institute of Technology (MIT)
- Perro de tres cabezas y cola de serpiente según
mitología griega, guardián de la entrada del
Templo de Hades (Infierno).
Clave secreta
Clave secreta. Método 4
28Protocolo de autenticación Kerberos
- Kerberos es un KDC diseñado por el MIT para
autenticar la identidad (autenticar) de los
usuarios de una red digital insegura, así como
para distribuir las claves secretas de sesión
transitorias que permitan a los usuarios de la
red establecer comunicaciones seguras. En
ocasiones estas claves de sesión transitorias
pueden ser de un solo uso (OTP, One Time
Password). - Está basado en una variación de
Needham-Schroeder, con la condición que requiere
relojes bien sincronizados. - Kerberos
- actúa como un árbitro en quien los usuarios
confían - utiliza con cada usuario una clave secreta
diferente, intercambiada con Kerberos a través de
un canal seguro. El conocimiento de dicha clave
se utiliza como prueba de identidad del usuario. - La autenticación se produce entre
cliente-servidor y servidor-cliente. - En estas condiciones como Kerberos conoce las
claves secretas de todos los usuarios, puede
demostrar a cualquiera de ellos la autenticidad
de la identidad de otro.
Clave secreta
Clave secreta. Método 4
29Protocolo de autenticación Kerberos protocolo
(1/2)
- A y B no comparten ninguna clave secreta, excepto
con el servidor de claves Kerberos Ka y Kb. A y
B pueden ser usuarios, usuario-servicio,...
1.- A solicita a Kerberos una credencial para
conectarse con B y una clave de sesión, a través
de un mensaje con un valor aleatorio RA y los
identificadores en la red de comunicación de A y
B.
2.- Kerberos genera una clave de sesión aleatoria
K y define el período de validez L de la
credencial, cifrando a continuación los valores
K, L, RA y B con la clave secreta Ka, junto con
la credencial para B, cifrando K, L y A con la
clave secreta Kb
A verifica que el valor aleatorio RA corresponde
con el que él previamente envió y guarda L como
referencia. A calcula el autentificador para B,
cifrando su identidad A y un sello temporal Ta
para sincronización, con la clave de sesión K ?
K(A,Ta)
Clave secreta
Clave secreta. Método 4
30Protocolo de autenticación Kerberos protocolo
(2/2)
K(A,Ta)
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(Ta1)
Por su parte A descifra la conformidad con la
clave de sesión K y verifica que el valor
recuperado es Ta1, lo cual asegura a A que la
clave de sesión K ha sido correctamente recibida
por el usuario B
Clave secreta
Clave secreta. Método 4
31Protocolo 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.
Clave secreta
Clave secreta. Método 4
32Protocolo de autenticación Kerberos comentarios
(2/2)
- 4.- requiere la kerberización (modificación) de
todas las aplicaciones, así como de la
sincronización de todas las máquinas - 5.- cuando un usuario está más de 8 horas (por
defecto) delante de una estación de trabajo
kerberizada, debe identificarse otra vez - 6.- en ningún momento los passwords viajan por la
red ni son guardados en memoria (sólo las
credenciales) - 7.- Cabe destacar del protocolo visto, que
realmente se distinguen dos partes, por una lado
la autenticación y por otro la gestión de tickets
para los diferentes servicios
Clave secreta
Clave secreta. Método 4
33Autenticación con Kerberos ejemplo de login
- Escenario usuario A a través de login requiere
de las credenciales necesarias para acceder a
otros servicios - Pasos
- 1.- al teclear el nombre, el login kerberizado
envía el nombre al servidor Kerberos solicitando
un ticket - 2.- si el usuario es conocido, le manda un
mensaje cifrado, donde utilizará su contraseña
(password) para descifrarlo. De esta forma la
contraseña nunca viaja por la red - 3.- de dicho mensaje extrae el ticket para
realizar la petición de servicio
Clave secreta
Clave secreta. Método 4
34Validación de identificación de clave pública
- Supongamos que A y B ya conocen las claves
públicas del otro EB() y EA() respectivamente y
quieren establecer una sesión utilizando
criptografía de clave secreta (por ser más rápida)
El intercambio inicial tiene como objetivo
validar la identificación de ambos utilizando sus
claves públicas para comunicarse y utilizando las
claves privadas para descifrar y tras ello
acordar una clave de sesión secreta compartida
Un intruso C no tiene manera de conocer RA para
replicar, pero dependiendo de cómo se
intercambien las claves públicas, podría haber
problemas...
Clave publica
35Validación de identificación de clave pública
(debilidades) ataque de brigada de cubetas
- Supongamos que A y B no conocen la clave pública
del otro, por lo que bastaría simplemente A
enviar a B su clave pública en el primer mensaje
y pedir a B que devuelva la suya en el siguiente.
El problema de este enfoque es que está sujeto a
un ataque de brigada de cubetas o alguien en
medio. - C puede capturar el mensaje de A a B y devolver
su propia clave a A, que pensará que tiene una
clave para hablar con B cuando, de hecho, tiene
una clave para hablar con C. Ahora C puede leer
todos los mensajes cifrados con lo que A piensa
es la clave pública de B
Solución El intercambio inicial de claves
públicas puede evitarse almacenando todas las
claves públicas en una base de datos pública.
Así, A y B pueden obtener la clave pública del
otro de la base de datos. PERO, sin embargo, C
aún puede poner en práctica el ataque de brigada
de cubetas interceptando las solicitudes a la
base de datos y enviando respuestas simuladas que
contengan su propia clave. Certificados
digitales gestionados por una autoridad de
certificación
Clave publica