La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Seguridad (2/4): Protocolos de seguridad

Presentaciones similares


Presentación del tema: "Seguridad (2/4): Protocolos de seguridad"— Transcripción de la presentación:

1 Seguridad (2/4): Protocolos de seguridad
Autenticación (validación)

2 Tema de seguridad 1.- Secretos: criptografía
2.- Protocolos de seguridad 3.- Aplicaciones y seguridad 4.- Redes y seguridad

3 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.

4 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.

5 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. 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

6 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.

7 Modelos de validación basados en métodos distribuidos
clave secreta (privada o simétrica) clave pública (asimétrica)

8 Validació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

9 Validació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

10 Validación de identificación basada en clave secreta compartida: protocolo
1 Quiero algo de B B A ¿ERES A? R B 2 K AB (R B ) 3 A ¿ERES B? R A 4 5 K AB (R 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

11 Validación de identificación basada en clave secreta compartida: simplificación
Pero si B acepta varias sesiones simultáneamente ... Clave secreta. Método 1

12 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. 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

13 Validación de identificación basada en clave secreta compartida: ataque por reflexión
1 A, R C Primera sesión C B R B , K AB (R C ) 2 A, R B 3 Segunda sesión R B2 , K AB (R B ) 4 K AB (R B ) 5 Primera sesión establecida 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

14 Validació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 K’AB. 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

15 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: 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

16 A y B comparten una clave secreta: gxy mod n
Establecimiento de una clave compartida: intercambio de claves Diffie-Hellman: protocolo A A selecciona x B B selecciona y n, g, g x mod n 1 2 g y mod n (gy mod n)x mod n (gx mod n)y mod n Se calcula gxy mod n 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. Método 2 Clave secreta

17 Clave secreta. Método 2 Clave secreta

18 Solución: utilizar un KDC, centro de distribución de claves.
Establecimiento 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 A A selecciona x C C selecciona z B B selecciona y n, g, g x mod n 1 n, g, g z mod n 2 g z mod n 3 g y mod n 4 gzx mod n gzy mod n gxz mod n gyz mod n 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

19 TACACS+ 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

20 Validació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

21 Validación de identificación usando un KDC: “la rana de boca amplia”
A, K A (B,K S ) 1 A KDC B K B (A,K S ) 2 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

22 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. Clave secreta. Método 3

23 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. R A , A, B 1 A KDC B K A (R ,B,K S ,K B ( A,Ks)) 2 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

24 Validación de identificación usando un KDC: protocolo de Needham-Schroeder (2/2)
, A, B 1 A KDC B K A (R ,B,K S ,K B ( A,Ks)) 2 K B (A,K S ),K (R A2 ) 3 4 K S (R A2 -1), R B K S (R B -1) 5 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

25 Validación de identificación usando un KDC: ataque del protocolo de Needham-Schroeder
B R , A, B 1 KDC K (R ,B,K S ,K ( A,Ks)) 2 (A,K ),K A2 ) 3 -1) 5 4 -1), R 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

26 Validación de identificación usando un KDC: protocolo de Otway y Rees
A, B, R, K A (A, B, R, R ) 1 A B A, K A (A,B,R,R ) B, K B 2 KDC 3 K B (R ,K S ) A 4 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

27 Autenticació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. Método 4 Clave secreta

28 Protocolo 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. Método 4 Clave secreta

29 Protocolo de autenticación Kerberos: protocolo (1/2)
, A, B 1 B Kerberos 2 Ka(K,L, R A ,B) Kb(K,L,A) 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. Método 4 Clave secreta

30 Protocolo de autenticación Kerberos: protocolo (2/2)
, A, B 1 B Kerberos 2 Ka(K,L, R A ,B) Kb(K,L,A) K(A,Ta) Kb(K,L,A) 3 K(A,Ta) 4 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 Clave secreta Clave secreta. Método 4

31 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. Clave secreta. Método 4 Clave secreta

32 Protocolo 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. Método 4 Clave secreta

33 Autenticació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. Método 4 Clave secreta

34 Validació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

35 Validació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


Descargar ppt "Seguridad (2/4): Protocolos de seguridad"

Presentaciones similares


Anuncios Google