VULNERABILIDADES CRIPTOGRÁFICAS Por Alexandre Ramilo Conde y Pablo Prol Sobrado Índice 1. Cifrado Simétrico DES b. AES a. 2. Cifrado Asimétrico RSA b. DSA a. 3. Funciones Hash MD5 b. SHA-0 y SHA-1 c. SHA-2 a. 4. Dentro de cada uno Vulnerabilidades y puntos débiles b. Ataques típicos (Claves débiles y semidébiles, factorización, búsqueda y generación de colisiones HASH...) c. Medidas de defensa incluidas y fortalezas a. Cifrado Simétrico DES 1. Vulnerabilidades y puntos débiles El principal problema que tiene el algoritmo DES es que tiene una clave de cifrado demasiado corta, de sólo 56 bits), hecho que según algunas fuentes, fue por culpa de la NSA, que pidió reducir de los 128 bits iniciales a 64 y después hasta los 56 que finalmente fueron, y que esto pudo ser debido a que en la época en la que se desarrolló este algoritmo, la NSA ya poseía computadores capaces de romper este algoritmo. Incluso se rumorea que pueda existir una posible puerta trasera para este organismo en el algoritmo que permita desencriptar fácilmente los documentos. 2. Ataques típicos Como todos los algoritmos, este es susceptible de ser atacado por fuerza bruta, ataque que hoy en día es bastante sencillo, con un ordenador sencillo se puede romper una clave en el orden de horas o unos pocos días, lo cuál hace que el uso de este algoritmo esté muy poco recomendado. Posteriromente, hay varios ataques teóricos que fueron desarrollados, como el criptoanálisis diferencial (Que necesitaría 16 rondas para romperla y 2^47 textos planos escogidos), el criptoanálisis lineal (Que necesitaría 2^43 textos planos conocidos) y el ataque de davies (Que es específico para DES y requeriría 2^50 textos planos conocidos, con un 51% de probabilidad de éxito). 3. Medidas de defensa incluidas y fortalezas En teoría fue diseñado para ser resistente al criptoanálisis diferencial. Además, destacar que existe una variable del DES, el Triple DES (3DES), que consiste en aplicar el cifrado DES 3 veces, siendo este algoritmo más seguro que el DES original. AES 1. Vulnerabilidades y puntos débiles El mayor problema que presenta el AES es el número de rondas, que se considera muy bajo para lo que debería ser un algoritmo “seguro”, con 10 rondas para claves de 128 bits, 12 rondas para claves de 192 bits y 14 rondas para claves de 256 bits). 2. Ataques típicos Al igual que todos, podría llevarse un ataque por fuerza bruta, aunque hoy en día no es computacionalmente factible. Ataques más trabajados son: a. Ataques sobre versiones del cifrador con un número menor de rondas: 7 para claves de 128 bits, 8 para claves de 192 bits y 9 para claves de 256 bits. b. Posible ataque por su estructura matemática: El algoritmo AES presenta una estructura matemática muy organizada. c. Ataque XSL: Expresando el algoritmo completo como polinomios cuadráticos multivariados, y utilizando una técnica innovadora para tratar los términos de estos polinomios como variables individuales, se podría realizar un ataque al algoritmo, aunque es un ataque teórico. d. Ataque de canal auxiliar: Ataque a las implementaciones del algoritmo. En el 2005, se atacó a un servidor preparado para dar la máxima información posible, pero requería cerca de 200 millones de ficheros de texto en claro, por lo que no es un ataque muy factible. 3. Medidas de defensa incluidas y fortalezas Tiene claves de 128, 192 y 256 bits, que permiten encriptar los archivos con mayor o menor confianza sobre su seguridad (La clave de 128 permite más rapidez, pero podría ser más susceptible a un ataque que una de 256). Un ejemplo de ello es la NSA, cuyos archivos SECRET se encriptan con una clave de 128 bits, mientras que los TOP SECRET han de ser encriptados como mínimo con una de 192 bits. Cifrado Asimétrico RSA 1. Vulnerabilidades y puntos débiles Aunque el algoritmo en sí es seguro, tiene una pequeña debilidad que hoy en día no sería explotable sería utilizar la potencia de la computación cuántica. Como el algoritmo RSA se basa en un número grande producto de dos números primos muy grandes, la potencia de la computación cuántica permitiría en teoría realizar la descomposición de una manera sencilla, aunque es algo que aún no se puede demostrar. 2. Ataques típicos Uno de los más sencillos ataques es un ataque man-in-the-middle, esto es, existiendo un tercer usuario que controle en cierto grado la transmisión de paquetes de la red y se haga pasar por el respectivo extremo de la comunicación para los dos usuarios que habían establecido la comunicación. Por otro lado, un ataque posible es por descomposición de números, que es posible según el tamaño de la clave. Por ejemplo, hoy en día, se puede romper una clave de 256 bits en un par de horas, por eso se recomienda como mínimo usar claves de 1024 bits y si es posible, una de 2048. 3. Medidas de defensa incluidas y fortalezas La dificultad técnica de realizar la factorización de números enteros grandes, resultado de realizar el producto de dos números primos muy grandes (Tamaño del orden de 10^200). También es una fortaleza que se pueda variar el tamaño de la clave, de tal manera que el tamaño de las claves avanza según la potencia computacional (Antiguamente, los ordenadores no eran capaces de ofrecer un tiempo asequible para romper claves de 256 bits, y hoy en día sí, y en el futuro, es probable que los ordenadores sean capaces de romper una clave de 1024 de manera sencilla y rápida, por lo que se usarán claves más grandes). DSA 1. Vulnerabilidades y puntos débiles Tiene la problemática de que es un algoritmo más lento que el RSA y que, al contrario que éste, no cifra, sino que realiza firmas. 2. Ataques típicos Como todos los algoritmos, es susceptible a un ataque por fuerza bruta, pero con claves de longitud grande, esto es mucho más difícil. Al igual que el RSA, se le puede realizar un ataque man-in-the-middle, y se podría realizar la descomposición de números para realizar un posible ataque. 3. Medidas de defensa incluidas y fortalezas Similar al RSA, sus puntos fuertes son la factorización de números enteros grandes lo que dificulta un posible ataque, y la capacidad de variar el tamaño de la clave. Funciones Hash MD5 1. Vulnerabilidades y puntos débiles La mayor problemática que sufren las funciones hash son las colisiones de hash. Se descubrieron las primeras de este algoritmo en el año 1996, lo cuál motivó el desarrollo de nuevos algoritmos. Esto es algo inevitable para estos algoritmos (Ya que al dejar una cadena de la misma longitud siempre, es factible que una cadena muy larga de lo mismo que una de menor tamaño, por dar una posibilidad), sin embargo, es algo que es poco deseable que ocurra. 2. Ataques típicos Al igual que todos los algoritmos, es susceptible de sufrir un ataque por fuerza bruta. Para los casos de algoritmos de tipo de hash, surgen nuevos ataques, como: a. Ataque de diccionario: Usar una base de datos que tenga los pares cadena hash - texto claro, de tal manera que introduciendo la cadena hash obtengamos el texto claro (Estos diccionarios son buenos para claves genéricas que siempre se usan como “1234” o “pass”, pero no sirve para nada en caso de que no exista una hash registrado para una clave (Por ejemplo, si utilizamos claves largas y con dígitos raros, como “^¨*^SF”·$·343rdfd3*¨*Ǩ*”). b. Ataque de cumpleaños: Por la probabilidad de que dos cadenas similares pero con varias diferencias que generen una misma cadena hash. c. Rainbow tables 3. Medidas de defensa incluidas y fortalezas La longitud del hash generado es de 128 bits. SHA-0 y SHA-1 1. Ataques típicos Al igual que todos los algoritmos, es susceptible de sufrir un ataque por fuerza bruta. Para los casos de algoritmos de tipo de hash, surgen nuevos ataques, como: a. Ataque de diccionario: Similar al de MD5 b. Ataque de cumpleaños: Similar al de MD5, solo que en este caso es un ataque más teórico debido a la longitud de cadena, lo que hace más imposible estas colisiones. 2. Medidas de defensa incluidas y fortalezas La longitud del hash generado es de 160 bits, lo que haría resistente en teoría al algoritmo en 2^80 operaciones por fuerza bruta. Sin embargo, esto poco a poco se ha ido rebajando, dejando al SHA-0 en 2^61 en 1996 y en 2^40 en 2004, y más tarde el SHA-1, dejando en 2^69 en 2005 y en 2^52 en 2009. SHA-2 1. Ataques típicos c. Ataque de diccionario: Similar al de MD5 y SHA-0 y SHA-1, sólo que en este caso los diccionarios son más reducidos y, por tanto, las posibilidades de encontrar una coincidencia es más difícil. d. Ataque de cumpleaños: Similar al de SHA-0 y SHA-1. 2. Medidas de defensa incluidas y fortalezas La longitud del hash va desde los 224 bits pasando por 256 y 384 hasta los 512 bits. estos altos tamaños han logrado que, a día de hoy, no se hayan detectado colisiones debido a la longitud de bits. El uso de esta familia de algoritmos está recomendado por el NIST (National Institute of Standards and Technology) a partir del 2010.