190 likes | 489 Views
Seguridad (2/4): Protocolos de seguridad. Autenticación (validación). Tema de seguridad. 1.- Secretos: criptografía 2.- Protocolos de seguridad 3.- Aplicaciones y seguridad 4.- Redes y seguridad. Clasificación de problemas de seguridad.
E N D
Seguridad (2/4): Protocolos de seguridad Autenticación (validación)
Tema de seguridad 1.- Secretos: criptografía 2.- Protocolos de seguridad 3.- Aplicaciones y seguridad 4.- Redes y seguridad
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.
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.
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
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 Bestán seguro que está hablando entre ellos. Durante el protocolo podrían haber intercambiado una clave de sesión.
Modelos de validación basados en métodos distribuidos • clave secreta (privada o simétrica) • clave pública (asimétrica)
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
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
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
A selecciona x B selecciona y 1 x n, g, g mod n A B 2 y g mod n (gy mod n)x mod n Se calcula (gx mod n)y mod n gxy mod n gxy mod n Establecimiento de una clave compartida: intercambio de claves Diffie-Hellman:protocolo 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. 1.-A inicia el protocolo enviando a B un mensaje que contiene (n, g, gx mod n) 2.-B responde con gy mod n Clave secreta. Método 2 Clave secreta
A selecciona x C selecciona z B selecciona y 1 x 2 n, g, g mod n z n, g, g mod n A C B 3 z g mod n 4 gzx mod n gzy mod n gxz mod n gyz mod n y g mod n 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 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
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
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 npersonas de esta manera se requerían nclaves (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
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 Clave secreta. Método 4
Protocolo de autenticaciónKerberos Kerberos es un KDC diseñado por el MIT para autentificar la identidad (autenticar) de los usuarios de una red digital insegura, así como para distribuir las claves secretas de sesióntransitorias 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 autentificació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
Validación de identificación de clave pública 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 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) 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
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
Validación de identificación de clave pública:protocolo de interbloqueo AC B Rivest y Shamir del RSA han diseñado un protocolo que frustra el ataque de brigada de cubetas (o alguien en medio C). • A envía solo la mitad de su mensaje a B, conocido como INTERBLOQUEO. Por ejemplo sólo los bits pares (después del cifrado) • B entonces responde con los bits pares del mensaje de B encriptado • A tras recibir los bits pares de B, envía sus bits nones, y luego lo hace B. Si A o B no realiza la entrega de sus primeras partes, el protocolo falla. Cuando C recibe los bits pares de A, no puede descifrar el mensaje (porque solo tiene la mitad), aunque tiene la clave privada. En consecuencia, C es incapaz de volver a cifrar los bits pares usando la clave pública de B. Si C envía basura a B, el protocolo continuará, pero B pronto se dará cuenta de que el mensaje reensamblado no tiene sentido y de que ha sido engañado. Clave publica