Criptografía y Análisis Forense: Fundamentos y Aplicaciones en Seguridad Informática
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 23,43 KB
T.4 Criptografía
La criptografía es la disciplina fundamental en la seguridad de la información, ya que se encarga del estudio de técnicas que permiten proteger los datos frente a accesos no autorizados. En un entorno donde la información es un activo de gran valor, la criptografía busca garantizar propiedades como la confidencialidad (que solo los usuarios autorizados puedan acceder a los datos), la integridad (que los datos no sean alterados sin autorización), la disponibilidad (que los datos estén accesibles cuando se necesiten), la autenticación (que se pueda verificar la identidad de los participantes) y el no repudio (que un emisor no pueda negar la autoría de un mensaje). A lo largo de la historia, la criptografía ha evolucionado considerablemente. Se distinguen dos grandes períodos: la criptografía clásica y la criptografía moderna.
Criptografía Clásica
La primera abarca técnicas históricas, generalmente manuales, como las sustituciones de letras o las transposiciones, y tiene un valor más formativo que práctico hoy en día. En cambio, la criptografía moderna se basa en el uso de algoritmos matemáticos y computacionales robustos, y se aplica de forma activa en sistemas y servicios contemporáneos.
La criptografía clásica constituye la primera etapa del desarrollo de esta disciplina. Se basa en métodos manuales o mecánicos utilizados durante siglos para cifrar mensajes. Aunque actualmente no se utilizan en sistemas reales por su escasa resistencia a los ataques modernos, son fundamentales para entender los principios básicos de la criptografía. Existen dos grandes tipos de técnicas clásicas: las de sustitución y las de transposición.
- En las técnicas de sustitución, cada letra del texto original se reemplaza por otra según una regla fija o variable.
- En las de transposición, el contenido del mensaje se mantiene, pero el orden de los caracteres se altera siguiendo un patrón determinado.
Una de las técnicas de transposición más antiguas es la scitala, utilizada por los espartanos. Consistía en una tira de cuero enrollada alrededor de un bastón de diámetro conocido. El mensaje se escribía sobre la tira colocada en el bastón, y solo podía leerse correctamente si se volvía a enrollar sobre otro bastón del mismo tamaño. Este método garantizaba que, aunque se interceptara la tira, no se pudiera interpretar el mensaje sin la herramienta adecuada.
Otra técnica interesante es el cuadro de Polybios, un sistema de sustitución que asigna a cada letra una pareja de coordenadas numéricas dentro de una matriz de 5x5. Esto permite representar las letras del alfabeto con números, lo cual fue útil, por ejemplo, para transmitir mensajes mediante señales luminosas o de humo.
El cifrado de César, atribuido a Julio César, es un método de sustitución monoalfabética donde cada letra del mensaje original se desplaza un número fijo de posiciones en el alfabeto. Es simple y fácil de romper, pero representa un punto de partida importante en la criptografía.
El cifrado de Vigenère mejora la técnica anterior introduciendo una clave compuesta por varias letras. Esta clave se repite a lo largo del mensaje y determina el desplazamiento aplicado a cada letra, lo que lo convierte en un cifrado polialfabético. Su uso prolongado en la historia se debe a su mayor resistencia frente al análisis de frecuencias, aunque actualmente puede romperse con herramientas estadísticas.
El cifrado de Playfair utiliza una matriz 5x5 construida con una palabra clave para cifrar pares de letras (dígrafos). La regla de sustitución depende de la posición relativa de las letras dentro de la matriz. Fue adoptado por los británicos durante la Primera Guerra Mundial.
El cifrado de Vernam, también conocido como One-Time Pad en su versión perfecta, aplica una operación lógica XOR entre el texto original y una clave completamente aleatoria de igual longitud. Si se usa correctamente (clave aleatoria, usada una sola vez y no repetida), es teóricamente irrompible. Sin embargo, su implementación práctica es compleja debido a la necesidad de compartir claves tan largas como los propios mensajes.
Por último, la máquina Enigma representa una evolución significativa de la criptografía clásica hacia la mecánica. Utilizada por el ejército alemán durante la Segunda Guerra Mundial, combinaba sustituciones y transposiciones mediante un complejo sistema de rotores que cambiaban la configuración del cifrado con cada pulsación de tecla. Su ruptura por parte de los Aliados, en particular gracias a los trabajos de Alan Turing y su equipo, marcó un hito en la historia de la criptografía y de la informática.
Criptografía Simétrica
La criptografía simétrica, también conocida como criptografía de clave secreta, es un esquema criptográfico en el que la misma clave se utiliza tanto para cifrar como para descifrar la información. El objetivo es garantizar la confidencialidad de la información que se transmite a través de un canal inseguro. Un sistema de cifrado simétrico incluye:
- El texto claro (mensaje original).
- Un algoritmo de cifrado (realiza sustituciones y transformaciones).
- Una clave secreta (conocida solo por emisor y receptor).
- El texto cifrado (mensaje ilegible que se transmite).
La clave es el elemento más crítico del sistema: si un atacante la conoce, podrá descifrar todos los mensajes. Por tanto, el principal reto es su distribución segura. La seguridad del sistema se basa en que, aunque el atacante conozca el algoritmo y el texto cifrado, no podrá recuperar el mensaje si no tiene la clave.
La criptografía simétrica puede clasificarse en dos tipos: cifradores de flujo (stream ciphers) y cifradores de bloque (block ciphers).
- Los stream ciphers procesan la información bit a bit o byte a byte. Un ejemplo basado en el cifrado de Vernam es RC4. Utilizan una clave corta y un generador determinístico para producir una secuencia cifrante pseudoaleatoria. Cada bit o byte del texto claro se combina con un elemento de la secuencia para obtener el texto cifrado.
- Los block ciphers procesan bloques de datos de longitud fija. Cada bloque se transforma de forma independiente, y si el mensaje no es múltiplo del tamaño del bloque, se aplica un padding. Son apropiados para cifrar grandes cantidades de datos.
Los modos de operación definen cómo se aplican los cifradores de bloque a mensajes mayores:
- ECB (Electronic Code Book): cifra cada bloque de forma independiente. Es rápido, pero no oculta patrones si hay datos repetitivos.
- CBC (Cipher Block Chaining): encadena los bloques para ocultar patrones. Requiere un vector de inicialización (IV).
- CFB (Cipher Feedback): convierte un cifrador de bloques en uno de flujo, también usa IV.
- OFB (Output Feedback): similar al CFB, pero la secuencia de claves es independiente del texto claro. Permite preprocesamiento.
El cifrado por bloques está fuertemente influenciado por el esquema Feistel, ideado por Horst Feistel, base de muchos algoritmos como DES. Este esquema divide el bloque en dos mitades (L y R), aplica una función F sobre una mitad y mezcla el resultado con la otra mediante XOR, intercambiando los papeles en cada ronda. Este mecanismo proporciona difusión y confusión:
- Difusión: disipa la estructura estadística del texto claro en el texto cifrado.
- Confusión: complica la relación entre el texto cifrado y la clave, dificultando su deducción.
Entre los algoritmos simétricos más conocidos están:
- DES (Data Encryption Standard): bloque de 64 bits, clave de 56 bits, 16 rondas Feistel. Obsoleto por vulnerabilidad frente a fuerza bruta.
- 3DES (Triple DES): aplica DES 3 veces con diferentes claves. Efectivamente ofrece una seguridad de 112 bits. Es más seguro, pero lento.
- AES (Advanced Encryption Standard): reemplazo de DES. Opera sobre bloques de 128 bits, clave de 128, 192 o 256 bits, con 10, 12 o 14 rondas. No usa estructura Feistel, sino sustituciones y permutaciones en una matriz de estado de 4x4 bytes. Sus fases son: sustitución de bytes, desplazamiento de filas, mezcla de columnas y suma de la clave de ronda. Solo la fase de suma de clave introduce seguridad criptográfica; las otras solo desordenan los bits. AES es eficiente, seguro y fácilmente implementable en hardware y software. Su estructura permite una reversibilidad clara para descifrado.
Distribución de claves: en los sistemas simétricos, ambas partes deben compartir la misma clave. Las formas de distribuir claves incluyen:
- Envío físico.
- Intervención de una tercera parte.
- Uso de claves anteriores para cifrar la nueva.
- Uso de una tercera parte segura con conexión cifrada: este es el método más usado actualmente mediante un KDC (Key Distribution Center), que genera y distribuye claves de sesión cifradas con claves maestras precompartidas.
Criptografía Asimétrica
La criptografía asimétrica, también conocida como criptografía de clave pública, representa un avance significativo en la seguridad de la información. Su principal característica es el uso de un par de claves: una clave pública, que puede compartirse libremente, y una clave privada, que debe mantenerse en secreto. Ambas claves están matemáticamente relacionadas, de modo que lo que una cifra solo la otra puede descifrar, y viceversa. Este enfoque soluciona uno de los principales problemas de la criptografía simétrica: la distribución de claves. En lugar de compartir una clave secreta por un canal seguro, el receptor publica su clave pública. Cualquier emisor puede usar su clave para cifrar un mensaje, que solo podrá ser descifrado por el receptor con su clave privada.
Un ejemplo fundamental de aplicación es el intercambio de claves de Diffie-Hellman (D). Este protocolo permite que dos partes generen de forma conjunta una clave secreta compartida, incluso si se comunican a través de un canal inseguro. Cada parte genera un valor privado y otro público utilizando un generador y un número primo grande. A través de una fórmula de exponenciación modular, ambas partes llegan al mismo valor final, sin haberlo intercambiado directamente.
Otro algoritmo significativo es RSA, que permite tanto cifrado como firma digital. Su seguridad se basa en la dificultad de factorizar números grandes. Cada usuario selecciona dos números primos p y q y calcula n = p·q. Se define un valor e como exponente de cifrado (generalmente 65537) y se calcula el exponente de descifrado d, que es el inverso multiplicativo de e módulo (p−1)(q−1). La clave pública es (e, n) y la privada es (d, n). Para cifrar, se eleva el mensaje M a la e y se toma módulo n: C = M^e mod n. Este sistema también puede utilizarse para firmar digitalmente. En este caso, el emisor aplica un hash al mensaje y luego cifra ese hash con su clave privada. Cualquiera puede verificar la firma descifrando con la clave pública del emisor y comparando con el hash del mensaje recibido. El hash del mensaje es una función hash, que garantiza que incluso un pequeño cambio en el texto genera un valor totalmente diferente. La firma digital asegura:
- Integridad del mensaje.
- Autenticidad del emisor.
- No repudio, ya que solo el emisor tiene la clave privada usada para firmar.
La comunicación asimétrica respecto a la criptografía simétrica es la diferencia en rendimiento: la criptografía asimétrica es mucho más lenta, lo que la hace poco práctica para cifrar grandes volúmenes de datos. Por eso se utiliza principalmente para:
- Cifrar claves de sesión.
- Firmar documentos o intercambios de claves.
- Autenticación de usuarios y servicios.
Entre sus ventajas se encuentran:
- No requiere compartir secretos con todos los interlocutores.
- Facilita la escalabilidad y autenticación.
Pero también tiene desventajas:
- Requiere mayor capacidad computacional.
- Es vulnerable si no se asegura la autenticidad de las claves públicas (posibles ataques de hombre en el medio, MITM).
En la práctica, la criptografía asimétrica se complementa con certificados digitales emitidos por autoridades de certificación (CA), que garantizan la identidad del propietario de una clave pública. Estos certificados evitan que un atacante suplante una identidad ofreciendo una clave pública falsa.
Criptografía Híbrida
La criptografía híbrida es un sistema que combina técnicas de criptografía simétrica y asimétrica con el fin de aprovechar las ventajas de ambas. Su objetivo es garantizar una comunicación segura, eficiente y escalable en contextos como Internet, donde es habitual el intercambio de datos entre usuarios que no han tenido contacto previo.
La criptografía asimétrica permite intercambiar claves de forma segura incluso en canales inseguros, pero es computacionalmente costosa. En cambio, la criptografía simétrica es muy eficiente para cifrar grandes volúmenes de datos, pero requiere que ambas partes compartan previamente una clave secreta. La criptografía híbrida resuelve esta dicotomía utilizando criptografía asimétrica para intercambiar una clave de sesión simétrica, y luego usando esa clave simétrica para cifrar los datos reales.
El proceso de un sistema híbrido típico incluye los siguientes pasos:
- El emisor genera una clave simétrica aleatoria (clave de sesión).
- Esta clave se cifra utilizando la clave pública del receptor, mediante un algoritmo como RSA.
- La clave cifrada se envía al receptor junto con el mensaje cifrado (que ha sido cifrado con la clave de sesión).
- El receptor utiliza su clave privada para descifrar la clave de sesión.
- Una vez recuperada, usa la clave de sesión para descifrar el mensaje.
Este enfoque garantiza que solo el receptor pueda acceder a la clave de sesión y, por tanto, al contenido del mensaje. Al mismo tiempo, permite un cifrado rápido del mensaje gracias al uso de algoritmos simétricos como AES. La criptografía híbrida se utiliza de forma masiva en protocolos de comunicación seguros como TLS/SSL, que protegen conexiones web mediante HTTPS. Durante el proceso de "handshake" (intercambio inicial), el servidor y el cliente utilizan criptografía asimétrica para acordar una clave simétrica común. A partir de ahí, toda la sesión se cifra usando dicha clave y un algoritmo simétrico, permitiendo así un equilibrio entre seguridad y rendimiento.
Además del intercambio de claves, la criptografía híbrida también permite el uso de autenticación mediante certificados digitales, que ayudan a verificar la identidad de las partes involucradas en la comunicación. Las ventajas principales de este modelo son:
- Alta seguridad: se protege la clave de sesión con criptografía asimétrica.
- Alta eficiencia: el cifrado de datos usa algoritmos rápidos.
- Escalabilidad: es adecuado para entornos dinámicos como la web.
Funciones Hash Criptográficas
Las funciones hash criptográficas son herramientas fundamentales en la seguridad informática. Su función principal es generar un resumen de longitud fija (también llamado huella digital o digest) a partir de un mensaje de cualquier tamaño. Este resumen permite verificar si el contenido ha sido modificado, sin necesidad de comparar los mensajes completos. Son ampliamente utilizadas para comprobar la integridad de datos, firmar digitalmente y autenticar mensajes.
Una función hash segura debe cumplir las siguientes propiedades:
- Unidireccionalidad: debe ser fácil calcular el hash a partir de un mensaje, pero computacionalmente inviable hacer el proceso inverso.
- Resistencia a colisiones: debe ser muy difícil encontrar dos mensajes distintos que generen el mismo hash.
- Resistencia a la segunda imagen: dado un mensaje y su hash, debe ser difícil encontrar otro mensaje con el mismo hash.
Estas propiedades garantizan que cualquier modificación, incluso mínima, en el mensaje original se refleje como un cambio drástico en el hash resultante. Por eso, si al verificar dos hashes obtenemos valores distintos, sabemos que el mensaje fue alterado.
El tema presenta varios algoritmos de funciones hash criptográficas:
- MD5 (Message Digest 5): genera resúmenes de 128 bits. Fue muy usado durante años, pero hoy está considerado inseguro debido a que se han descubierto colisiones prácticas (dos entradas distintas que generan el mismo hash).
- SHA (Secure Hash Algorithm): es una familia de funciones hash desarrolladas por el NIST.
- SHA-1: produce hashes de 160 bits. Como MD5, se ha demostrado vulnerable y su uso está desaconsejado.
- SHA-2: incluye versiones como SHA-224, SHA-256, SHA-384 y SHA-512. Se basan en funciones de compresión iteradas, son más seguras y todavía utilizadas ampliamente.
- SHA-3: utiliza un diseño distinto (sponge construction) y fue aprobado en 2015. Aún no ha reemplazado completamente a SHA-2, pero es una alternativa preparada frente a ataques futuros.
Además, se estudia HMAC (Hash-based Message Authentication Code), una construcción que combina una función hash con una clave secreta para proporcionar tanto integridad como autenticación del mensaje. HMAC se utiliza en protocolos de red como TLS, IPsec y SSH para garantizar que los datos no han sido modificados y provienen de una fuente confiable.
Otro uso crítico de las funciones hash es en la firma digital. Para firmar digitalmente un mensaje, se calcula primero su hash y luego se cifra con la clave privada del emisor. Esto produce una firma digital que puede ser verificada por el receptor usando la clave pública del emisor. Si el hash obtenido del mensaje coincide con el desencriptado desde la firma, se asegura que el mensaje no ha sido alterado y que proviene realmente del firmante.
T.5 Análisis Forense Informático
El análisis forense informático es el proceso de extracción, preservación y análisis de datos en sistemas informáticos con el objetivo de obtener evidencias digitales válidas para procesos legales. Este tipo de análisis puede ser realizado por analistas forenses cualificados y, si se trata de un procedimiento judicial, por peritos certificados. Su valor reside en la capacidad de proporcionar pruebas digitales que expliquen incidentes relacionados con dispositivos electrónicos.
Existen dos enfoques: el análisis ante incidentes de seguridad (como intrusiones, espionaje industrial o robos de información) y el análisis aplicado a delitos (delitos de sangre, secuestros, etc.). El objetivo es identificar lo ocurrido, cuándo, cómo y quién lo llevó a cabo, así como recuperar información útil del sistema. Se pueden analizar sistemas operativos (Windows, MacOS, Unix), redes (Ethernet y WiFi) y dispositivos móviles (Android, iOS), utilizando distintas técnicas en función del tipo de dispositivo.
Existen dos tipos de análisis: en caliente (sistema encendido, con acceso a memoria volátil, pero riesgo de contaminar evidencias) y post mortem (sistema apagado, se evita alterar el sistema, pero se pierde acceso a datos volátiles).
El proceso forense incluye cuatro fases:
- Preservación (asegurar las evidencias sin alterarlas),
- Adquisición (recogida de datos),
- Análisis (evaluación de la información obtenida),
- Informe (documentación detallada y metódica del proceso).
La evidencia digital puede clasificarse en tres tipos:
- Información almacenada (ficheros, documentos),
- Información generada (procesos, logs),
- Información híbrida (como la caché).
Además, los datos pueden ser volátiles (como servicios en ejecución), transitorios (memoria), frágiles (archivos temporales), o no volátiles (discos duros, documentos). La volatilidad se refiere a la facilidad con la que los datos pueden desaparecer: los más volátiles son los procesos en ejecución y conexiones, mientras que los sistemas de ficheros tienen mayor persistencia.
La cadena de custodia garantiza la integridad de la evidencia, documentando su recorrido, tratamiento y responsables desde su recogida hasta su presentación en juicio. Es imprescindible para validar la autenticidad de las pruebas.
Dos principios clave del análisis forense:
- Principio de Locard: todo contacto deja un rastro, por tanto, cualquier acción en un sistema genera huella digital.
- Principio de Heisenberg: cualquier observación modifica el sistema; en informática, el análisis puede alterar el estado del dispositivo. Por eso se trabaja con copias/clones.
La segunda parte del tema trata sobre OSINT (Open Source Intelligence), que es la inteligencia obtenida a partir de fuentes de acceso público. Su propósito es transformar grandes volúmenes de información accesible en conocimiento útil mediante un proceso metódico. El proceso OSINT incluye:
- Requisitos: establecer objetivos y condiciones del análisis.
- Identificación de fuentes: seleccionar fuentes fiables y relevantes.
- Adquisición: recopilar la información disponible en las fuentes escogidas.
- Procesamiento: convertir los datos recopilados en un formato uniforme y útil.
- Análisis: detectar patrones y generar conocimiento procesable.
- Presentación: mostrar los resultados de forma clara y utilizable.
Las fuentes de OSINT incluyen motores de búsqueda generales y especializados, archivos web, redes sociales, metadatos de documentos, información sobre dominios web y APIs de servicios como Facebook o Twitter. Sin embargo, muchas de estas herramientas no entran en el examen, aunque se mencionan como ejemplo. Se destacan dos herramientas:
- Palantir: usada por agencias como la CIA o el FBI para prevenir terrorismo y fraude mediante análisis de grandes volúmenes de datos.
- Maltego: permite representar gráficamente relaciones entre entidades, como personas, organizaciones o documentos.
En conjunto, este tema proporciona los fundamentos del análisis forense y la inteligencia en fuentes abiertas, cubriendo tanto el ámbito legal y técnico del tratamiento de evidencias como los métodos actuales para la recolección e interpretación de información pública.