Como hemos visto en el artículo anterior sobre Criptografía, esta es una rama muy importante hoy en día para que se lleven a cabo tareas de forma segura. En esta segunda parte vamos a ahondar un poco más en averiguar cómo funcionan los dos algoritmos más usados. Además, comentaremos algunos tipos de ataques comunes en esta área.
Como hablamos en el artículo anterior, la Criptografía utiliza en sus procedimientos dos métodos de cifrado, que se diferencian principalmente por el tipo de clave que se utiliza en cada uno de ellos. Por una parte, tenemos el método de cifrado simétrico, que usa la misma clave para llevar a cabo proceso de cifrado y descifrado. Como vimos, este método se divide en cifrado en bloque y cifrado en flujo, de los cuales nos vamos a centrar en el cifrado en bloque.
El cifrado en bloque, como su nombre indica, cifra el mensaje original separándolo en bloques de un tamaño determinado. Este método tiene varios algoritmos de cifrado:
- DES (Data Encryption Standard): Se trata de un algoritmo de cifrado en bloque, creado por IBM y aceptado por el NIST (National Institute os Standars and Technology) en el año 1976. Este algoritmo cuenta con una clave de 64 bits, 56 son bits empleados por el propio algoritmo para la clave y el resto pueden ser usados para comprobar la paridad y corregir posibles errores o ser descartados, por lo que la longitud efectiva de la clave es de 56 bits. Hoy en día no es ya un estándar criptográfico ya que fue roto en el año 1999.
- 3DES (Triple - Data Encryption Standard): Dado que actualmente es relativamente sencillo romper el algoritmo DES, el 1998, IBM desarrolló el que sería su sucesor. Este algoritmo se basa sencillamente en emplear de forma ordenada 3 veces el algoritmo DES. En primer lugar, ciframos el texto claro con una clave, el resultado obtenido lo volvemos a cifrar, pero con una nueva clave, y el resultado de este lo ciframos nuevamente con otra clave diferente, dando así como resultado una clave de 192 bits, aunque solo 168 serían efectivos. Aun así, es un algoritmo que está desapareciendo poco a poco y siendo cada vez sustituido en más lugares por el AES, aunque aún se utiliza para realizar algunos pagos en línea.
- AES (Advanced Encryption Algorithm): Se trata realmente de un “concurso” que lanzó el NIST para seleccionar al sucesor del algoritmo DES y 3DES. El algoritmo que forma que ganó el AES es Rijndael, un algoritmo creado por dos criptógrafos belgas, Daemen y RijmenDaemen y Rijmen. Las características que debía tener el que se iba a convertir en el algoritmo usado por el Gobierno de EEUU para cifrar información sensible, por el sector privado de EEUU y, por ende, en el resto del mundo, eran las siguientes:
▪ Que fuese de dominio público
▪ Que fuese simétrico y soportase mínimo bloques de 128 bits
▪ Que las claves pudiesen ser de 128, 192 y 256 bits
▪ Que se pudiese implementar en hardware y software
Este algoritmo se basa en la combinación de varias sustituciones, variaciones y transformaciones, las cuales se repiten varias veces, cada una de ellas llamada “ronda”. En cada ronda se va calculando una clave a partir de la clave de cifrado, la cual se va incorporando en los cálculos. Se trata de un algoritmo en el cual el cambio de un solo bit ya sea en la clave o en bloque del texto claro, da otro bloque de texto cifrado completamente diferente, por lo que ni con el superordenador más potente de la actualidad podría romper una clave AES.
En el lado opuesto tenemos el método de cifrado asimétrico, en el que usa una clave pública y una privada para los procesos de cifrar y descifrar, las cuales son complementarias. Este método emplea diferentes algoritmos de cifrado:
❖ RSA (Rivest, Shamir y Adleman): es un algoritmo criptográfico que fue desarrollado en 1977 por 3 criptógrafos, cuyos apellidos dan nombre al algoritmo. Este algoritmo se considera de los más seguros actualmente, ya que consiste en mostrar los mensajes mediante números, el cual es el resultado de la multiplicación de dos grandes primos que previamente han sido elegidos aleatoriamente y que se mantienen en secreto. Al trabajar con dos claves diferentes, y estas ser complementarias, el mensaje que se cifra con la clave pública del receptor solo puede ser descifrado con la clave privada de ese receptor.
Una fortaleza con la que cuenta este algoritmo es que hay que lidiar con la factorización de números grandes. Para disminuir al máximo las posibilidades de que pudieran llegar al romper el algoritmo se intenta que la cantidad de claves privadas parejas sea el mínimo posible.
❖ Diffie-Hellman: se trata de los comienzos de los sistemas de clave pública, y consiste en poder compartir información secreta a través de canales inseguros, sin que aunque alguien la intercepte le sea, computacionalmente imposible averiguar la clave privada. En la siguiente ilustración podemos observar el procedimiento seguido para obtener la clave secreta, que habitualmente será usada para futuros cifrados.
Ilustración 1. Funcionamiento algoritmo Diffie-Helman. Autor: Javier Campos
Como hemos visto, existen algoritmos para poder mantener información confidencial y segura, pero a su vez también existen algunas técnicas o métodos que intentan romper la seguridad de estos algoritmos para acceder a la información.
Esta acción podemos llamarla criptoanálisis, que se trata del conjunto de técnicas que se encarga de intentar descifrar los mensajes cifrados sin llegar a conocer las claves necesarias. Algunos objetivos serían descubrir el mensaje original, alterar el mensaje original y que el receptor lo acepte creyendo que es el auténtico o iniciar una comunicación con la víctima y que esta catalogue al atacante como un emisor autorizado.
Vamos a comentar a continuación algunos de los ataques más comunes que se llevan a cabo.
- Ataques por fuerza bruta: consiste en probar de una en una todas las claves posibles hasta dar con la correcta. Normalmente estos ataques no son efectivos y a veces ni siquiera son realizables cuando hay demasiadas claves con las que probar.
- Ataques a texto cifrado: la persona que intenta descifrar el mensaje no conoce nada de su contenido original, y va a trabajar sobre el criptograma, intentando averiguar algo que comúnmente se repita a la hora de cifrar cierto tipo de documentos o información.
- Ataque Man-in-the-middle: consiste en colocarse entre el emisor y el receptor de la información e interceptarla. Se da en comunicaciones que utilizan por ejemplo Diffie-Helman, en el que el adversario cifra cada una de las partes de la comunicación con una clave diferente.
- Ataque de diccionario: con este ataque, se pretende obtener el texto claro desde el principio. Según el CCN-CERT consiste en “romper la seguridad de los sistemas basados en contraseñas (password) en la que el atacante intenta dar con la clave adecuada probando todas (o casi todas) las palabras posibles o recogidas en un diccionario idiomático. Generalmente se emplean programas especiales que se encargan de ello.”
Janira Pérez Sánchez, Sec2Crime