Introducción a la esteganografía - Ocultar información dentro de imágenes
Qué es la esteganografía - Diferencias con la criptografía y conceptos fundamentales
La esteganografía (Steganography) es la técnica de ocultar información secreta dentro de medios aparentemente normales (como imágenes). A diferencia de la criptografía, el objetivo de la esteganografía no es hacer la información ilegible, sino hacer que su propia existencia sea imperceptible.
Diferencia con la criptografía:
- Criptografía: La información es visible pero ilegible. El atacante sabe que existe comunicación secreta
- Esteganografía: La información es invisible. El atacante no sabe que existe comunicación secreta
- Mejor práctica: Primero cifrar y luego ocultar, doble protección
Conceptos fundamentales:
- Portador (Cover): El medio original usado para ocultar información (imagen)
- Secreto (Secret): La información a ocultar
- Estego-imagen (Stego): La imagen con información incrustada
- Capacidad: La cantidad máxima de información que se puede incrustar
- Imperceptibilidad: La diferencia visual entre la estego-imagen y la original es indetectable
Método LSB (Bit Menos Significativo) - Técnica básica de incrustación
LSB es el método de esteganografía más simple e intuitivo, que reemplaza el bit menos significativo de los valores de píxel con bits del mensaje secreto.
Principio: Cambiar el bit más bajo de un valor de píxel de 8 bits solo causa un cambio de brillo de ±1, imperceptible para el ojo humano. Ejemplo: valor de píxel 200 (11001000) tras incrustar 1 bit se convierte en 201 (11001001).
Proceso de incrustación:
- Convertir el mensaje secreto en un flujo de bits
- Recorrer secuencialmente los píxeles de la imagen portadora
- Reemplazar el LSB de cada píxel con un bit del mensaje
- Registrar la longitud incrustada para la extracción
Capacidad: Con 1 bit por píxel, una imagen RGB de 1000×1000 puede incrustar 3.000.000 bits ≈ 375KB. En la práctica se limita al 10-20% de la capacidad para mantener la imperceptibilidad.
Implementación Python:
def embed_lsb(image, message_bits): flat = image.flatten() for i, bit in enumerate(message_bits): flat[i] = (flat[i] & 0xFE) | int(bit) return flat.reshape(image.shape)
Limitaciones: No es robusto ante compresión JPEG (la compresión altera los LSB); detectable por análisis estadístico (altera la distribución estadística de valores de píxel); solo aplicable a formatos sin pérdida (PNG, BMP).
Esteganografía en dominio DCT - Métodos resistentes a compresión JPEG
La esteganografía en dominio DCT incrusta información en los coeficientes DCT del JPEG, proporcionando robustez natural ante la compresión JPEG.
Flujo de compresión JPEG: Imagen → bloques 8×8 → transformada DCT → cuantización → codificación de entropía. La esteganografía incrusta información en los coeficientes DCT cuantizados.
Método JSteg: Reemplaza el LSB de coeficientes DCT cuantizados distintos de cero y uno con bits secretos. Omite el coeficiente DC y los coeficientes AC con valor 0 o 1 (modificarlos produciría cambios visuales evidentes).
Algoritmo F5: Usa codificación matricial para mejorar la eficiencia de incrustación. Cada incrustación de k bits de información solo requiere modificar 1 coeficiente (en lugar de k). Reduce la cantidad de modificaciones al portador, mejorando la seguridad.
Ventajas:
- La imagen con datos incrustados sigue siendo un archivo JPEG válido
- El guardado/transmisión normal de JPEG no destruye la información oculta
- La recompresión agresiva de redes sociales puede destruir la información (se necesitan métodos más robustos)
Marcas de agua digitales - Diferencias con la esteganografía y aplicaciones
Las marcas de agua digitales usan técnicas similares a la esteganografía, pero con propósitos diferentes: la esteganografía oculta el contenido de la comunicación, las marcas de agua marcan la propiedad del contenido.
Diferencias clave:
- Esteganografía: El portador no es importante, el mensaje secreto sí. Ser descubierto significa fracaso
- Marca de agua digital: El portador (la obra) es importante, la marca es una etiqueta adicional. Necesita resistir ataques
Tipos de marcas de agua:
- Marca visible: Texto/logo semitransparente superpuesto. Simple pero fácil de recortar
- Marca invisible: Incrustada en el dominio de frecuencia, invisible al ojo. Alta robustez
- Marca frágil: Cualquier modificación destruye la marca, usada para verificación de integridad
Requisitos de robustez: Las marcas de agua digitales necesitan resistir operaciones comunes de imagen: compresión, escalado, recorte, rotación, filtrado. Normalmente se incrustan en coeficientes DCT/DWT de frecuencia media, equilibrando imperceptibilidad y robustez.
Aplicaciones: Protección de derechos de autor (probar propiedad), rastreo de contenido (identificar fuentes de filtración), monitoreo de emisiones (confirmar transmisión), verificación anti-falsificación.
Estegoanálisis - Detectar información oculta
El estegoanálisis (Steganalysis) es la técnica para detectar si una imagen contiene información oculta mediante esteganografía, siendo el adversario de la esteganografía.
Análisis visual:
- Visualización del plano LSB: Extraer el plano de bits más bajos; patrones de ruido aleatorio pueden indicar incrustación
- Mejora de contraste: Amplificar diferencias mínimas para hacer visibles las huellas de incrustación
Análisis estadístico:
- Test chi-cuadrado: La incrustación LSB tiende a igualar las frecuencias de pares de valores de píxel adyacentes (2k, 2k+1)
- Análisis RS: Observar cambios regulares en grupos de píxeles al invertir LSBs
- SPA (Sample Pair Analysis): Analizar características estadísticas de pares de píxeles
Estegoanálisis con aprendizaje profundo:
- Redes especializadas como SRNet y Zhu-Net pueden detectar métodos modernos de esteganografía
- Usan preprocesamiento con filtros de paso alto para resaltar huellas de incrustación
- Entrenadas en conjuntos masivos de pares de imágenes estego/no-estego
- La precisión de detección puede alcanzar 90%+ (para métodos conocidos)
Aplicaciones prácticas y consideraciones éticas
La esteganografía tiene aplicaciones tanto legales como ilegales, y su uso requiere considerar aspectos éticos y legales.
Aplicaciones legítimas:
- Protección de derechos de autor: Incrustar marcas de propiedad invisibles en obras
- Autenticación de contenido: Verificar que las imágenes no han sido manipuladas (fotoperiodismo)
- Comunicación encubierta: Transmitir información en entornos de censura (activismo por derechos humanos)
- Rastreo de filtraciones: Incrustar identificadores únicos en cada copia de un documento para rastrear la fuente de filtración
Riesgos de seguridad:
- El malware puede transmitir comandos a través de imágenes esteganográficas (comunicación C&C)
- Robo de datos: Ocultar datos sensibles en imágenes para exfiltrarlos
- Evasión de censura de contenido: Ocultar contenido prohibido
Recomendaciones de defensa:
- Recodificar imágenes subidas (destruye información esteganográfica)
- Desplegar herramientas de estegoanálisis para monitorear imágenes sospechosas
- Limitar formatos y tamaños de imágenes subidas