Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
TD4 2022TD4 2022 Escenario y actores 3 ▪ Alice y Bob desean comunicarse de forma segura ▪ Trudy, con intenciones maliciosas, puede interceptar, manipular, eliminar o agregar mensajes ▪ Terminología conocida y frecuente en el ámbito de la seguridad emisor seguro receptor seguro canal mensajes (datos y/o control) datos datos BobAlice Trudy TD4 2022TD4 2022 Actores maliciosos ¿Qué acciones puede llevar adelante Trudy en la realidad? ■ Interceptar mensajes (sniffing) ■ Inyectar mensajes en la conexión ■ Impersonar otros actores (e.g. spoofing de direcciones en los paquetes) ■ Tomar control de la conexión eliminando al emisor o al receptor y adoptando dicho rol (hijacking) ■ Denegar servicio, prohibiendo que otros usuarios legítimos utilicen el servicio afectado ■ … TD4 2022TD4 2022 5 Criptografía TD4 2022TD4 2022 Criptografía: escenario y terminología m: mensaje en texto plano K A (m): texto cifrado (encriptado con la clave KA) m = K B (K A (m)) texto plano texto planotexto cifrado KA algoritmo de cifrado algoritmo de descifrado Clave de cifrado de Alice Clave de descifrado de Bob KB 6 TD4 2022TD4 2022 Criptografía simétrica texto plano texto plano KS KS texto cifrado K (m)S Alice y Bob comparten la misma clave: KS ▪ e.g., la clave es el patrón de desplazamiento en el cifrado del César (caso especial de cifrado por sustitución –ver siguiente slide) ¿Cómo hacen Alice y Bob para acordar una clave? 7 algoritmo de cifrado algoritmo de descifrado TD4 2022TD4 2022 Criptografía simétrica: DES 8 DES: Data Encryption Standard ▪ Standard de cifrado de EEUU [NIST 1993] ▪ Clave simétrica de 56 bits; toma textos planos de 64 bits ▪ Cifrado por bloques (block cipher) que opera en modo CBC (cipher block chaining) ▪ Seguridad de DES: • En 1999 se logró quebrar una clave por fuerza bruta en menos de un día (notar que el espacio de claves es “abordable”) • No se conocen ataques analíticos buenos ▪ Puede robustecerse el método vía 3DES: cifrar tres veces con tres claves diferentes TD4 2022TD4 2022 AES: Advanced Encryption Standard 9 ▪Standard del NIST (reemplazó a DES en noviembre de 2001) ▪Procesa datos en bloques de 128 bits ▪Emplea claves de 128, 192, ó 256 bits ▪Un ataque de fuerza bruta que tome 1 segundo para DES tomaría 149 trillones de años para AES TD4 2022TD4 2022 Criptografía de clave pública 10 Criptografía simétrica ▪ Necesita que los interlocutores conozcan una clave compartida ▪ La pregunta es cómo acordar una –particularmente entre interlocutores que “no se conocen” Criptografía de clave pública ▪ Adopta un enfoque muy diferente ▪ Los interlocutores no comparten una clave secreta ▪ La clave de cifrado es pública (todos la conocen) ▪ La clave de descifrado es privada (sólo la conoce el receptor del mensaje cifrado) TD4 2022TD4 2022 Criptografía de clave pública 11 m = K (K (m))B + B - texto plano K (m) B + texto cifradotexto plano mensaje, m K B + Clave pública de Bob Clave privada de BobK B - Esta idea provocó una revolución en la criptografía –previamente, sólo basada en métodos simétricos algoritmo de descifrado algoritmo de cifrado TD4 2022TD4 2022 RSA: generación de claves 12 1. Elegir dos números primos p, q grandes (e.g. de 1024 bits) 2. Calcular n = pq; z = (p-1)(q-1) 3. Elegir e < n de modo tal que no posea factores comunes con z (e y z se dicen coprimos) 4. Elegir d de modo tal que ed-1 sea divisible por z (es decir, ed mod z = 1) 5. La clave pública es el par (n,e); la privada, el par (n,d) K B + K B - TD4 2022TD4 2022 RSA: cifrado y descifrado 13 0. Dadas las claves (n,e) y (n,d), 1. Para cifrar el mensaje m (< n), calcular c = me mod n 2. Para descifrar el patrón de bits c, calcular c m = cd mod n m = (me mod n)d mod n TD4 2022TD4 2022 RSA: ejemplo 14 ■ Supongamos que tomamos p = 5 y q = 7 → n = 35 y z = 24 ■ Supongamos que elegimos e = 5 (e y z son coprimos) ■ Podemos instanciar d = 29 (→ ed-1 es divisible por z) ■ Luego, entrada m me c = me mod n 00011001 25 9765625 30 cifrado: c m = cd mod n 30 68630377364883 x 1029 25 cddescifrado: TD4 2022TD4 2022 Demostrando que RSA funciona 15 ▪ Para ver que el método es correcto, debemos comprobar que cd mod n = m, con c = me mod n ▪ Necesitamos el teorema de Euler: para cualquier a coprimo con n, aφ(n) = 1 mod n, siendo φ(n) la función phi de Euler ▪ Vale que φ(n) = φ(pq) = (p - 1)(q - 1) = z ▪ Luego, cd mod n = (me mod n)d mod n = med mod n = m(zk + 1) mod n = (mzk m) mod n = (mz mod n)k * m mod n = m mod n ed ≡ 1 mod z teo. Euler (si m no es coprimo con n: usar teorema chino del resto) TD4 2022TD4 2022 Seguridad de RSA 16 ▪ Dada una clave pública (n, e), ¿cuán difícil es computar d? ▪ Necesitamos factorizar n (i.e. encontrar sus factores primos) •Problema computacionalmente difícil •No existen hasta ahora algoritmos tradicionales de tiempo polinomial para factorizar números suficientemente grandes (a excepción de algoritmos cuánticos –el algoritmo de Shor) •Los semiprimos (producto de dos primos) con factores de tamaño similar suelen ser los casos más complicados TD4 2022TD4 2022 RSA en la práctica 17 ▪ La exponenciación (modular) en RSA es costosa ▪ Los algoritmos simétricos (como AES) permiten encriptar considerablemente más rápido ▪ En la práctica, la criptografía de clave pública se utiliza para establecer una conexión segura y derivar una clave compartida de sesión para cifrar los datos posteriores con un método simétrico TD4 2022TD4 2022 18 Autenticación TD4 2022TD4 2022 Autenticación 19 Objetivo: Alice quiere demostrar su identidad ante Bob Protocolo ap1.0: Alice dice “Soy Alice!” “Soy Alice!” TD4 2022TD4 2022 20 En la red, Bob no tiene forma de ver a Alice: Trudy podría declarar que es Alice sin que Bob se dé cuenta Objetivo: Alice quiere demostrar su identidad ante Bob Protocolo ap1.0: Alice dice “Soy Alice!” “Soy Alice!” Autenticación TD4 2022TD4 2022 Autenticación: segundo intento 21 Objetivo: Alice quiere demostrar su identidad ante Bob Protocolo ap2.0: Alice dice “Soy Alice!” en un datagrama IP con su propia dirección “Soy Alice!”IP deAlice TD4 2022TD4 2022 22 Autenticación: segundo intento Objetivo: Alice quiere demostrar su identidad ante Bob Protocolo ap2.0: Alice dice “Soy Alice!” en un datagrama IP con su propia dirección “Soy Alice!”IP deAlice Trudy podría generar un datagrama artificial spoofeando la dirección IP de Alice TD4 2022TD4 2022 23 Autenticación: tercer intento Objetivo: Alice quiere demostrar su identidad ante Bob Protocolo ap3.0: Alice dice “Soy Alice!” y envía su contraseña para probar que es ella “Soy Alice!”IP de Alice contra- seña OK TD4 2022TD4 2022 24 ataque de replay: Trudy sniffea y guarda el paquete de Alice; luego lo reenvía a Bob Objetivo: Alice quiere demostrar su identidad ante Bob Autenticación: tercer intento Protocolo ap3.0: Alice dice “Soy Alice!” y envía su contraseña para probar que es ella “Soy Alice!”IP de Alice contra- seña OK “Soy Alice!”IP de Alice contra- seña OK TD4 2022TD4 2022 25 Objetivo: Alice quiere demostrar su identidad ante Bob Autenticación: tercer intento mejorado Protocolo ap3.1: Alice dice “Soy Alice!” y envía su contraseña encriptada para probar que es ella “Soy Alice!”IP de Alice contr. enc. OK TD4 2022TD4 2022 26 playback attack still works: Trudy records Alice’s packet and later plays it back to Bob Objetivo: Alice quiere demostrar su identidad ante Bob Autenticación: tercer intento mejorado Protocolo ap3.1: Alice dice “Soy Alice!” y envía su contraseña encriptada para probar que es ellasigue siendo posible hacer un replay del mensaje original de Alice! “Soy Alice!”IP de Alice contr. enc. OK “Soy Alice!”IP de Alice contr. enc. OK TD4 2022TD4 2022 27 nonce: valor numérico utilizado una única vez (R) “Soy Alice!” Bob sabe que Alice está activa y que del otro lado está ella (sólo comparte la clave con ella) Autenticación: cuarto intento Objetivo: evitar ataques de replay Protocolo ap4.0: Bob envía a Alice un nonce R; Alice debe devolver R cifrado con una clave compartida KAB(R) R TD4 2022TD4 2022 28 El protocolo anterior emplea una clave compartida ¿Podemos lograr autenticación utilizando criptografía de clave pública? ap5.0: uso de nonces y claves públicas Autenticación: cuarto intento mejorado “Soy Alice!” KA - (R) R ¿pub key? KA + Bob calcula KA +(KA -(R)) = R y, sabiendo que sólo Alice posee la clave privada KA -, concluye que se trata de Alice TD4 2022TD4 2022 29 Ataque man-in-the-middle: Trudy se hace pasar por Alice hacia Bob y viceversa “Soy Alice!” “Soy Alice!” R Autenticación: fallas en ap5.0 R KA - (R) KT - (R) ¿pub key? KA + ¿pub key? KT + Bob verifica el nonce y autentica a Trudy (como Alice) Bob envía un mensaje m a Alice KT + (m)KT -(KT + (m)) = m Trudy descifra el mensaje y lo reenvía a Alice cifrándolo con su clave pública KA + (m) Alice descifra el mensaje de Bob; nunca se enteró de que Trudy pudo leerlo ¿Qué salió mal? TD4 2022TD4 2022 30 Integridad TD4 2022TD4 2022 Firmas digitales 31 Mecanismo criptográfico análogo a las firmas de puño y letra ▪ El emisor firma digitalmente un documento de su autoría ▪ Verificable y no falsificable: el receptor puede probar que sólo el emisor del documento produjo la firma que lo acompaña Algoritmo de cifrado de clave pública Clave privada de Emma, KE - Mensaje m (Emma) Lucio: Tomemos firmas digitales en el parcial. Acá te dejo el link al ejercicio. Emma Lucio: Tomemos firmas digitales en el parcial. Acá te dejo el link al ejercicio. Emma KE -(m) m, KE -(m) ▪ Esquema básico: firmar el mensaje m cifrándolo con la clave privada K - TD4 2022TD4 2022 32 Luego, Lucio verifica que: ▪ Emma firmó m ▪ Ninguna otra persona firmó m ▪ Emma firmó m y no otro mensaje m’ (integridad) No repudio: ■ Lucio puede demostrar que fue Emma quien firmó el mensaje m ▪ Supongamos que Lucio recibe el mensaje m con firma KB -(m) ▪ Lucio verifica la firma aplicando la clave pública KB + de Emma a la firma digital y asegurando que KB +(KB -(m) ) = m ▪ Si esto vale, quienquiera que haya firmado m debe haber empleado la clave privada de Emma - Firmas digitales TD4 2022TD4 2022 Resúmenes de mensajes (digests) 33 Algunas propiedades de las funciones de hash criptográficas: ▪ No son inyectivas (“muchos a uno”) ▪ Produce una salida (digest) de longitud fija (e.g. 256 bits) ▪ Dado un digest x, es computacionalmente inviable encontrar un m tal que H(m) = x (i.e. resistente a la preimagen) mensaje largo m función de hash H H(m) Es computacionalmente costoso cifrar mensajes largos con criptografía de clave pública Objetivo: obtener resúmenes de nuestros mensajes que sean de longitud fija y fáciles de computar ▪ Para calcular estos digests de mensajes, utilizamos funciones de hash criptográficas: TD4 2022TD4 2022 Ejemplo (malo): checksum de Internet 34 El algoritmo de checksum de Internet posee algunas de estas propiedades: ▪ Genera digests de longitud fija (16 bits) ▪ Es “muchos a uno” …pero, dado un mensaje con cierto digest, es fácil encontrar otro mensaje con el mismo digest (no es resistente a colisiones) I O U 1 0 0 . 9 9 B O B 49 4F 55 31 30 30 2E 39 39 42 D2 42 mensaje en hexa B2 C1 D2 AC I O U 9 0 0 . 1 9 B O B 49 4F 55 39 30 30 2E 31 39 42 D2 42 mensaje en hexa B2 C1 D2 AC mensajes distintos, mismo checksum TD4 2022TD4 2022 Algunas funciones de hash populares 35 ▪ MD5 (RFC 1321) • Calcula digests de 128 bits en un proceso de cuatro rounds • Si bien es vulnerable, continúa en uso (por ejemplo para verificar integridad en las transferencias de archivos) • En 2013 se descubrió un ataque para generar colisiones de MD5 que corre en menos de un segundo en una computadora estándar ▪ SHA-1 es otra popular (también vulnerable) • Estandarizada en EEUU por el NIST • Produce digests de 160 bits • SHA-2 y SHA-3 (sus sucesoras) se consideran seguras al día de hoy TD4 2022TD4 2022 Firma digital: digest firmado 36 + Bob envía el mensaje con su firma digital: mensaje largo m función de hash H H(m) Alice valida la firma y la integridad del mensaje firmado: H(m) H(m) mensaje largo m clave privada de Bob KB - KB -(H(m)) digest cifrado firma digital (descifrado) ¿iguales? firma digital (cifrado) función de hash H clave pública de Bob KB + KB -(H(m)) digest cifrado TD4 2022TD4 2022 Retomando el protocolo ap5.0 37 ▪ Para corregir el protocolo ap5.0, necesitamos certificar las claves públicas ▪ Si Bob pudiera comprobar que la clave pública de Alice es auténtica, el ataque man-in-the-middle de Trudy no tendría efecto ¿pub key? ¿pub key? Bob comprueba que la clave no está debidamente certificada y descarta la comunicación . . . . . . KA + KT + TD4 2022TD4 2022 Autoridades de Certificación (CAs) 38 ▪ Las autoridades de certificación (CAs) vinculan una clave pública con una entidad (persona física, sitio web, router, etc.) ▪ Cuando una entidad E desea certificar su clave pública, la CA debe verificar la identidad del solicitante • La CA genera un certificado vinculando la identidad de E con su clave pública • Dicho certificado está firmado digitalmente por la CA certificado para la clave pública de Bob (firmado por la CA) firma digital (cifrado) clave pública de Bob KB + Datos de la identidad de Bob clave privada de la CA KCA - TD4 2022TD4 2022 Autoridades de Certificación (CAs) 39 ▪ Cuando Alice quiere utilizar la clave pública de Bob, ■ Obtiene el certificado de Bob ■ Utiliza la clave pública de la CA para validar el certificado ■ Extrae del certificado la clave pública de Bob firma digital (descifrado) clave pública de BobKB + clave pública de la CA KCA + certificado de Bob TD4 2022TD4 2022 Certificados en Internet 40 ▪ En los protocolos de Internet, los certificados de clave pública siguen el estándar X.509 de la ITU (International Telecommunication Union) ■ Describe el formato de los certificados y el mecanismo de autenticación para utilizarlos ■ Incluye datos de identidad de la entidad dueña del certificado, el período de validez del mismo, los algoritmos criptográficos utilizados y la firma digital de la CA, entre otros campos ▪ Dos tipos de certificados: certificado de CA y certificado de entidad final ■ Los certificados de CA se pueden usar para firmar otros certificados ■ Al certificado al comienzo de la cadena de certificación se lo conoce como certificado root ▪ Los navegadores suelen traer una lista de certificados root de las CAs más importantes (e.g. IdenTrust, DigiCert, Let’s Encrypt, etc.) ▪ Los servidores web envían la cadena completa de certificados intermedios para que los navegadores puedan realizar las validaciones correspondientes
Compartir