Top

Cargando cosas bonitas...

Recargar...

Esteganografía Básica


Aquí os dejo un resumen de algunos de los truquillos que he aprendido para insertar información secreta en archivos digitales. Esto se conoce como esteganografía, no confundir con criptografía .

El estego-mensaje no tiene que estar necesariamente cifrado, aunque muchas veces así sea. El objetivo es insertar (embeber) en un archivo portador del formato que queramos (audio, video, texto…) el mensaje oculto, de manera que alguien que tuviera el archivo portador podría no saber ni siquiera de la existencia del mensaje insertado. Hay dos tipos de técnicas esteganográficas principales:

+ Esteganografía pura: No requiere una clave. Se basa en la idea de que, en un canal inseguro pinchado, el que lo tenga en escucha desconoce el algoritmo de inserción empleado. No es muy recomendable dado que, para empezar, existen programas para reconocer algoritmos de inserción que hayan sido empleados sobre archivos.

+Esteganografía con clave: En esta vertiente el algoritmo de inserción se parametriza con una clave previamente conocida por ambas partes de modo que si un tercero se hiciera con el archivo, tendría más dificultades para extraer la información al desconocer la clave. (Para eso se puede usar bruteforce y un diccionario). Este es el tipo más común.

 

La herramienta que voy a mostrar es steghide (sudo apt-get install steghide). Es bastante común y su uso es sencillo:

Para esconder por ejemplo un archivo de texto llamado “contraseñas.txt” en una imagen llamada “wallpaper4.jpg” habría que hacer:

~$ cd <carpeta que los contenga>

~$ steghide  embed  -ef  contraseñas.txt  -cf  wallpaper.jpg

Tan simple como esto

Y para extraerlo de nuevo:

~$ steghide extract -sf wallpaper.jpg -xf archivo

Donde nos volverá a pedir el passphrase

En este caso encontraremos el .txt en /Desktop

Pero, ¿cómo funcionan estos programas que insertan información oculta? Los algoritmos tienen sus diferencias pero la idea principal es esta:

Si el mensaje que nosotros queremos ocultar es, en bits: 00100001 debemos sustituir el bit menos significativo a 8 bytes del archivo portador. Una vez el algoritmo escoge estos 8 bytes tenemos:

01110011 01101111 01100010 01100001 01100100 01101111 00001101 00001010

Y a su LSB (less-significant bit o bit menos significativo, el que esté más a la izquierda en cada byte) es sustituido por el que le corresponda del mensaje a ocultar. Quedando:

01110010 01101110 01100011 01100000 01100100 01101110 00001100 00001011

El receptor extraería esos bits y los volvería a juntar de cierta manera. Nótese que el archivo original y el final no tienen por qué sufrir ninguna modificación, al fin y al cabo, se podrían escoger bytes cuyos less-significant bits coincidieran con cada bit a ocultar. Por eso buscar la imagen original en Internet podría ser inútil, de todos modos una buena herramienta para ello es tineye.

Una posible manera de encontrar información oculta es con StegDetect

Su uso es sencillo. Como dice en el ejemplo del GitHub:

for img in find /path/to/images/ -iname "*jpg"; do ./stegdetect -tF $img; done

Si en cambio preferís ocultar vuestra información en un archivo de audio podéis usar por ejemplo MP3Stego 

También podéis guardarlos en textos con pleno sentido sintáctico y semántico con el Proyecto Stelin

Un saludo, Zildj1an


Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *