Ir al contenido principal

Breve historia de la esteganografía -4: En la era digital.

Esteganografía digital
A partir de 1985 con el advenimiento de los ordenadores personales nació la esteganografía moderna. Desde el principio surgió la tentación de utilizar los contenidos compartidos para camuflar información. Paralelamente nació la necesidad de enviar y recibir información de forma segura a través de los canales digitales. La era moderna de la esteganografía utiliza recursos como imágenes, archivos de audio o video para ocultar información. Los campos de aplicación de la disciplina se expanden, además de los conflictos bélicos se tiene en cuenta técnicas de espionaje industrial, filtrado de información de carácter privado, implementación de software espía y las marcas de agua digitales para garantizar los derechos de autor.


Recientemente la Esteganografía ha ganado bastante interés a partir de los ataques del 11 de septiembre al World Trade Center en los Estados Unidos, donde se presume el uso de Esteganografía para la transmisión de mensajes entre terroristas. A modo de ejemplo introductorio (con fines puramente didácticos) presentamos dos imágenes aparentemente iguales del trágico atentado. La original (derecha) es inocua; pero la otra (izquierda) contiene en su interior un pequeño archivo de texto (Juramento.txt) con un mensaje supuestamente de Bin Laden: "Juro por Dios que Estados Unidos no conocerá nunca más la seguridad antes de que Palestina no la conozca y antes de que todos los ejércitos occidentales ateos no salgan de las tierras santas". Las fotos no se diferencian aparentemente en nada; solo su tamaño (19 y 20 KB respectivamente)  y solo su codificación interna nos permitirían vislumbrar que hay información escondida. (La segunda imagen se ha creado con el programa español Fileinyector y la información está protegida mediante la contraseña: "Al·lahu-àkbar")

Existen numerosos métodos y algoritmos utilizados para ocultar la información dentro de archivos multimedia que describimos sencillamente a continuación:

Enmascaramiento y filtrado
Esta técnica consiste en insertar un mensaje (un grupo de bits que contiene información sobre el autor o propietario intelectual) en el interior de un objeto digital. También es conocido como "marca de agua" y puede incluir muchas más informaciones: fecha, hora, coordenadas GPS, características técnicas, etc. De igual manera puede añadirse así información "secreta" que queramos ocultar, pues la marca de agua no es perceptible sin herramientas especiales para ver el contenido digital completo del archivo.

En la red existen diversas herramientas de software gratuíto (pero con limitaciones) como OpenStego o profesional de pago como Digimark que te permiten incluir información adicional en la marca de agua de una imagen incluso protegida mediante contraseña.

Si quieres tener acceso a los "metadatos" enmascarados en cualquiera de tus fotografías puedes acceder a este visor de metadatos on line  Exif-viever donde obtendrás centenares de datos técnicos ocultos en tus fotos.


Algoritmos y transformaciones
Esta técnica oculta datos basados en funciones matemáticas que se utilizan a menudo en algoritmos de la compresión de datos. La idea de este método es ocultar el mensaje en los bits de datos menos importantes. 

La compresión es un caso particular de la codificación e un archivo, cuya finalidad es que el código resultante tenga menor tamaño que el original. Se basa fundamentalmente en buscar repeticiones en series de datos para almacenarlos como un dato único asociado a el número de repeticiones. Así, por ejemplo, si en un fichero aparece una secuencia como "AAAAAA", ocupando 6 bytes se podría almacenar simplemente "6A" que ocupa solo 2 bytes. Hemos utilizado un algoritmo RLE.

Para aclarar esta técnica vamos a dividir la información de un fichero en tres tipos de datos:

Redundante: repetitiva o predecible.
Irrelevante: no podemos apreciarla y su eliminación por tanto no afectará al contenido del mensaje. Por ejemplo, si las frecuencias que es capaz de captar el oído humano están entre 16/20 Hz y 16 000/20 000 Hz, serían irrelevantes aquellas frecuencias que estuvieran por debajo o por encima de estos valores (es fundamento de la comprensión de sonido MP3).
Básica: la relevante. La que debe ser transmitida ineludiblemente para que se pueda reconstruir la señal.


Teniendo en cuenta estos tres tipos de información, se establecen tres tipologías de compresión de la información:
Sin pérdidas reales: Mantiene la información básica e irrelevante, pero elimina la redundante.
Subjetivamente sin pérdidas: además de eliminar la información redundante se elimina también la irrelevante.
Subjetivamente con pérdidas: elimina cierta cantidad de información básica, por lo que el mensaje se reconstruirá con errores perceptibles pero tolerables (por ejemplo comprensión de vídeos MPEG4).



Inserción sustituyendo el bit menos significativo (LSB: Least Significant Byte)

Este es el método moderno más común y popular usado para esteganografía, también es uno de los llamados métodos de sustitución. Consiste en hacer uso del bit menos significativo de los píxeles de una imagen y alterarlo.

LSB es el bit (un número binario) que tiene el menor valor (el situado más a la derecha). En ocasiones, se hace referencia al LSB como el bit del extremo derecho poque el que ocupa último lugar a la derecha del "byte".


Least significant bit.svg
Para comprender esta técnica hay que recordar que todo en nuestro procesador funciona en un sistema binario como combinaciones de ceros (0) y unos (1). También debemos entender bien la diferencia entre "bit" y "byte"
Bit ---> Es la mínima expresión que representa información, en nuestro ejemplo el (1) en azul de la derecha o cualquiera de los otros siete.
Byte ---> Es la unidad estándar de información, consta de 8 bit's (El octeto de arriba: 10010101).

Veamos, por ejemplo, como se aplicaría este procedimiento esteganográfico de sustitución en los bytes de una imagen. 
Primero hay que recordar que la mayoría de nuestras fotografías se codifican como una enorme tabla de filas y columnas en las que cada casilla está ocupada por un rectángulo de color. Eso nos da una matriz larguísima con las posiciones de cada casilla asociadas a su color (los famosos pixels)


Un píxel esta conformado por una tripleta de datos (bytes) conocidos como  RGB (Red, Green, Blue), esta tripleta de datos es la que conforman el color final del píxel.
Podemos comparar un un píxel con un vaso donde mezclamos pintura, pero donde solo tenemos 3 tipos de pinturas primarias, la roja, la verde y la azul, al mezclar en el vaso distintas proporciones (de 0: nada -255:el máximo) de esos colores vamos a obtener toda una paleta de colores. El color blanco esta compuesto de todos los colores, por tanto en RGB se consigue con la tripleta (255, 255, 255) y en contraposición, el color negro es la ausencia de color o de luz (0,0,0).

Operando sobre el último bit obtendremos un nuevo pixel casi idéntico original pero con una leve modificación que nos camufla un bit de nuestra información secreta. Veamos estos tres pixes de ejemplo: 

Ocurre que la diferencia entre un byte original (PIXEL 1) y el sustituido (PIXEL 1') no es perceptible para el ojo (sólo hay una diferencia de 1/255 más de cantidad de luz verde (G->28 a G->29), pero nos aporta ya un bit de información de nuestro mensaje. La distorsión de la imagen en general se mantiene al mínimo, mientras que el mensaje es esparcido a lo largo de sus píxeles.

Como se aprecia no cambiaremos el tamaño del archivo (el algoritmo se basa en la sustitución no en la adición de información). Como contrapartida se trata de un método que permite una fácil extracción de la información a todo el mundo, a no ser que a su vez, se encripten los datos. 
La misma técnica puede aplicarse a vídeo y audio, aunque no es lo más común.
Hay que advertir que una vez aplicado este método no se debe editar de nuevo la imagen pues al hacerlo los programas de edición vuelven a codificar y comprimirla con lo que cambiaría nuestra información oculta de bits y no sería recuperable. 


Herramientas informáticas de esteganografía y estegoanálisis
He consultado multitud de páginas y los programas a propósito son muy numerosos. Hay variedad de herramientas de esteganografía digital de uso libre y también de pago.

Personalmente he probado algunas. Una de estas herramientas es FileInyector una pequeña y sencillísima herramienta española que permite inyectar archivos de cualquier tipo dentro de las imágenes (jpg, bmp, gif) . La interfaz es antigua, pero los pasos a seguir son muy sencillos: sólo hay que elegir la imagen, el archivo a inyectar y la contraseña por si quisiéramos protegerlo. Si deseas mantener el tamaño del archivo solo admite formato bmp. La imágenes introductoria en la entrada de las Torres Gemelas están tratadas con este programa.

He probado el VSL: Virtual Steanographic Laboratory  (más versátil y con una interfaz gráfica) donde se pueden ocultar ficheros en imágnes con bastante facilidad. Funciona con java, está en inglés y no permite contraseña. Tiene una buena colección de algoritmos de encriptación (entre otros el LSB ya tratado) y desencriptación y un módulo de distorsión que funciona pero que creo no es reversible.(Probándolo encontré que hay imágenes que no pueden soportar excesiva carga inyectada -archivos grandes-.Depende de la fotografía, todo tiene un límite).

Una aplicación clásica que ya conocí y utilicé hace muchos años es Camouflaje. Hoy día la web de soporte ya o existe pero aún se puede descargar el programa de diferentes lugares. El programa protege nuestos archivos incrustados mediante contraseña, pero la podemos reventar con ayuda de otros desarrolladores que interceptaron su funcionamiento (Camouflage Pasword Finder).

También existen herramientas para detectar este tipo de archivos ocultos en lo que se llama el estegoanálisis. En esta página se proporciona un extenso recopilatorio de herramientas agrupadas en tablas por categorías.

Comentarios

Entradas populares de este blog

Breve historia de la esteganografía - 1: Los primeros esteganógrafos de la historia.

Espoleado por una provocación criptográfica llamada código Voynich, reto de la criptología, me animo a continuar este ensayo sobre la técnica de ocultar a ojos indeseados un mensaje.

Hablaré primero de la esteganografía, término que proviene del griego "steganos" (secreto) y "grafía" (escrito). Este procedimiento intenta ocultar la existencia misma del mensaje oponiéndose a la criptografía que no oculta la presencia de un mensaje que puede percibirse perfectamente, pero que está deforma de tal manera que resulta incomprensible.


En esta primera entrada trataremos la esteganografía clásica (la más usada hasta la aparición de losa medios digitales)


Los primeros esteganógrafos de la historia
La esteganografía ha estado presente en nuestra civilización desde tiempos inmemoriales y ha sido tradicionalmente empleada por las agencias militares y de inteligencia, los criminales y la policía, así como por civiles que desean comunicarse en secreto. Los libros de historia ya nos…

El día de π

NOTA INTRODUCTORIA: Esta entrada se publicó originalmente en su día exactamente en la fecha y hora PI con 7 decimales (notación americana): 3/14/15 9:26. Hoy presento una edición corregida y aumentada de la misma.


Hoy es el día dedicado al número PI;  y exactamente, en el segundo 53 de las 9 y 26 minutos de la mañana, se producirá el momento mágico en que muchos relojes marcarán la hora Pi (en formato de fecha americana) y con nueve decimales:  3/14/15/9/26/53 mes 3/ día 14/ año 15 / hora 9/ minuto 26 / segundo 53
Por ese motivo en colegios y universidades de EEUU se celebra, desde hace ahora 30 años, este día. Si conoces además que el 3/14 es el aniversario del nacimiento de Einstein, te resultará aún más sugerente esta fecha.



Esta letra griega, caracter intruso en el mundo de los dígitos, se adoptó como símbolo matemático de un valor irreproducible en 1706 por William Jones y fue popularizado por Leonhard Euler ("Introducción al cálculo infinitesimal"). Anteriormente fue con…