El arte de romper códigos secretos (edición Da Vinci) Carlos Sarraute 30 abril 2007 Semana de la Matemática – FCEyN – UBA Presentación Trabajo en el laboratorio de investigación de Core Security Technologies (desde 2000) – empresa de seguridad informática – software para penetration tests Algunos proyectos del laboratorio – – – – falla en la autenticación de MySQL ataque por timing del protocolo SSH simulación y planificación de ataques a redes reconocimiento de sistemas operativos » presentado con J.Burroni en PacSec (Tokyo), EUSecWest (London), SSTIC (Francia), HITB (Kuala Lumpur) Semana de la Matemática – FCEyN – UBA Criptografía Uno de los fundamentos de la seguridad de la información La criptografía es el estudio de las comunicaciones en presencia de adversarios – – – – confidencialidad autenticidad integridad no repudio Ejemplo típico = sistemas para establecer comunicaciones secretas sobre un canal inseguro Semana de la Matemática – FCEyN – UBA Necesidad de privacidad en la Internet Ejemplo más concreto: mensajes privados / compras por Internet Información privada – cartas – número de tarjeta de crédito Circula por muchos servidores entre el cliente y el negocio Como proteger esa información? Semana de la Matemática – FCEyN – UBA Sistema de encripción Encriptar la información (el mensaje) Transformar el mensaje usando un sistema de encripción y una clave secreta DK EK mensaje plano Semana de la Matemática – FCEyN – UBA mensaje encriptado mensaje plano Intercambio de claves N personas requieren N (N-1) / 2 claves 1 5 2 4 Semana de la Matemática – FCEyN – UBA 3 Sistemas de clave pública y privada Diffie – Hellman (1976): “New directions in Cryptography” Cada persona tiene 2 claves – se encripta con la clave pública – se desencripta con la clave privada Como encriptar mails? – usar PGP (pretty good privacy) – Enigmail = extensión de Thunderbird Semana de la Matemática – FCEyN – UBA Y la seguridad? pregunta: como saber si un sistema es seguro? definición: es seguro si resiste a los ataques Criptoanálisis = el arte de romper códigos secretos – bueno, arte y ciencia – métodos artesanales » hasta el siglo 19 – búsqueda de formalización y generalización Semana de la Matemática – FCEyN – UBA Estaría bueno poder demostrar... Por que intervienen los matemáticos? Muchos sistemas están basados en problemas matemáticos que son difíciles – RSA = sistema de clave pública y privada – basado en el problema de factorizar números muy grandes Se puede demostrar que un sistema es seguro contra cualquier atacante? Semana de la Matemática – FCEyN – UBA El secreto perfecto Shannon definió el secreto perfecto (1948) – un sistema que resiste a cualquier atacante, incluso con poder de cómputo y tiempo infinito – problema: la clave tiene que ser tan larga como el texto – existe, es el one time pad » se usaba para las comunicaciones entre Washington y el Kremlin Semana de la Matemática – FCEyN – UBA Ejemplo de criptoanálisis del Código Da Vinci Jacques Saunière, conservador del Museo del Louvre, aparece muerto en la gran galería, desnudo al medio de un circulo trazado en el piso Robert Langdon, especialista en simbología religiosa Sophie Neveu criptógrafa de la DGPJ Semana de la Matemática – FCEyN – UBA Mensaje críptico Pintado en el piso con tinta fluorescente 13 – 3 – 2 – 21 – 1 – 1 – 8 – 5 ¡Diavole in Dracon! Límala, asno Semana de la Matemática – FCEyN – UBA Anagramas 13 – 3 – 2 – 21 – 1 – 1 – 8 – 5 reordenado da la serie de Fibonacci 1 – 1 – 2 – 3 – 5 – 8 – 13 Diavole in Dracon! – 15 letras: a a c d d e i i l o o n n r v – cuantas permutaciones hay? Semana de la Matemática – FCEyN – UBA Anagramas 13 – 3 – 2 – 21 – 1 – 1 – 8 – 5 reordenado da la serie de Fibonacci 1 – 1 – 2 – 3 – 5 – 8 – 13 Diavole in Dracon! – 15 letras: a a c d d e i i l o o n n r v – cuantas permutaciones hay? – si fuesen todas diferentes: 15.14.13 ... 2.1 = 15! – como hay repetidas: 15! / ( 2 . 2 . 2 . 2 . 2 ) = 40.864.824.000 Semana de la Matemática – FCEyN – UBA Fuerza bruta! usando un diccionario Dividir los 15 espacios en subconjuntos mas chicos – por ejemplo 8 + 5 + 2 letras Probar con todas las palabras de 8 letras que usen solo las letras permitidas – luego con todas las de 5 letras (usando las letras restantes) – luego con todas las de 2 letras (las que quedan) Diccionario con 20.000 palabras Semana de la Matemática – FCEyN – UBA Cantidad de palabras según cantidad de letras letras palabras 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Semana de la Matemática – FCEyN – UBA 7 53 159 639 1620 2341 3176 3489 3024 2475 1622 894 551 264 140 56 18 5 3 3500 3000 2500 2000 1500 1000 500 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Resultados para “Diavole in Dracon” Incendiado valor Encarnado livido Con el adivinador Vil ira condenado El Vinci adornado Invadida en color ... Leonardo da Vinci ... Semana de la Matemática – FCEyN – UBA Resultados para “Límala asno” Ama anillos Anima al sol Allá sin amo Allí os aman ... La Mona Lisa ... en total 510 resultados Conclusión: ataques de diccionario son muy eficientes – diccionarios de contraseñas comunes Semana de la Matemática – FCEyN – UBA Cifrado de Cesar HQ OD FLXGDG GH ORQGUHV, HQWHUUDGR SRU HO SDSD, UHSRVD XQ FDEDOOHUR. GHVSHUWDURQ ORV IUXWRV GH VXV REUDV ODV LUDV GH ORV KRPEUHV PDV VDJUDGRV. HO RUEH TXH HQ VX WXPED HVWDU GHELHUD EXVFDG, RV KDEODUD GH PXFKDV FRVDV, GH FDUQH URVD B YLHQWUH IHFXQGDGR. Semana de la Matemática – FCEyN – UBA Frecuencias de las letras en el texto 30 25 20 15 10 5 0 A B C D E Semana de la Matemática – FCEyN – UBA F G H I J K L M N O P Q R S T U V W X Y Z Frecuencia de las letras en español 14,00 12,00 10,00 8,00 6,00 4,00 2,00 0,00 A B C D E Semana de la Matemática – FCEyN – UBA F G H I J K L M N O P Q R S T U V W X Y Z Comparación 14,00 12,00 10,00 8,00 6,00 4,00 2,00 0,00 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 30 25 20 15 10 5 0 A B Semana de la Matemática – FCEyN – UBA C D E F G H I J K L M N O P Q R S T U V W X Y Z Mensaje desencriptado HQ OD FLXGDG GH ORQGUHV, HQWHUUDGR En la ciudad de Londres, enterrado SRU HO SDSD, UHSRVD XQ FDEDOOHUR. por el Papa, reposa un caballero. GHVSHUWDURQ ORV IUXWRV GH VXV REUDV Despertaron los frutos de sus obras ODV LUDV GH ORV KRPEUHV PDV VDJUDGRV. las iras de los hombres mas sagrados. HO RUEH TXH HQ VX WXPED HVWDU GHELHUD El orbe que en su tumba estar debiera EXVFDG, RV KDEODUD GH PXFKDV FRVDV, buscad, os hablará de muchas cosas, GH FDUQH URVD B YLHQWUH IHFXQGDGR. de carne rosa y vientre fecundado. Semana de la Matemática – FCEyN – UBA Modelo simplificado del español Aproximación al español de primer orden El español como proceso aleatorio – proceso no determinístico, que respeta una distribución de probabilidades – monos tipeando al azar respetando la probabilidad de las letras Semana de la Matemática – FCEyN – UBA Cadena de Markov Aproximación al español de segundo orden – cadena de Markov – proceso aleatorio con diferentes estados (las letras) – probabilidades de transición (de pasar de un estado a otro) probabilidades condicionales Q Semana de la Matemática – FCEyN – UBA U 99,98 % H O 24,54 % A 55,02 % P 0,00 % Probabilidades de transición 84,16 % Y A 5,66 % A 55,02 % O 6,46 % E 8,68 % I 5,61 % O 24,54 % U 5,70 % H Semana de la Matemática – FCEyN – UBA Timing attack: usando retardos entre teclas En el protocolo de SSH, cada vez que una tecla es pulsada, se encripta y se manda encriptada por el canal seguro. Los paquetes, aunque encriptados, pueden ser sniffeados. En particular, el tiempo de emisión de estos paquetes es un dato que los atacantes pueden obtener. Usando solo los retardos entre la llegada de esos paquetes es posible recuperar lo tipeado (en casos favorables). Elegimos el Hidden Markov Model (HMM) para modelar esta situacion inspirandonos en las técnicas de reconocimiento de voz. Semana de la Matemática – FCEyN – UBA Proceso oculto genera observaciones Semana de la Matemática – FCEyN – UBA Hay que modelar el ruido Semana de la Matemática – FCEyN – UBA Probabilidades de transición Semana de la Matemática – FCEyN – UBA Modelo del tipeador Semana de la Matemática – FCEyN – UBA Algoritmo de Viterbi para cada nueva tecla (nuevo tiempo) pruebo todas las posibilidades asigno un puntaje que representa la probabilidad de que sea español (aproximación de 2do orden) + probabilidad de generar ese tiempo me quedo con los 500 mejores (entre 26*500) cuando termine, el mensaje estará entre los 500 mejores – con algo de suerte – mejora si el diccionario es mas chico Semana de la Matemática – FCEyN – UBA Gracias por su atención! Carlos Sarraute carlos @ coresecurity.com Semana de la Matemática – FCEyN – UBA