Está en la página 1de 25

Introduccin a la Esteganografa

http://www.death-master.tk/

Introduccin
a la
Esteganografa
Autor:

Death Master
Dedico este texto a todas las vctimas de los atentados del 11 de Marzo en Madrid, as como a todos los
familiares, amigos, conocidos, y a todas esas personas annimas que arriesgaron la vida por gente a la que
ni siquiera conocan. Cosas as hacen que an tenga fe en el gnero humano. Va por vosotros!
Death Master, 2004 (GFDL)

Pgina 1

Introduccin a la Esteganografa

http://www.death-master.tk/

ndice de contenidos
ndice de contenidos..........................................................................................................................2
Introduccin.............................................................................................................................................3
Historia de la esteganografa.......................................................................................................4
Bases de la esteganografa...........................................................................................................9
Ficheros interpretados...................................................................................................................10
Ficheros ejecutables........................................................................................................................16
Esteganografa avanzada.............................................................................................................18
Esteganografa y criptografa....................................................................................................19
Ataques a la esteganografa.......................................................................................................20
Software esteganogrfico............................................................................................................21
Autopsia de un reto...........................................................................................................................22
Distribucin de este documento.............................................................................................24
Licencia......................................................................................................................................................25

Death Master, 2004 (GFDL)

Pgina 2

Introduccin a la Esteganografa

http://www.death-master.tk/

Introduccin
Un efecto esencial de la elegancia es ocultar sus medios.
Honor de Balzac
Este es ya el cuarto manual serio que publico.
Siempre he credo firmemente que el conocimiento ha de ser libre, pero nunca me pic la curiosidad de
escribir manuales que se publicaran y que la gente leyera (al fin y al cabo, qu poda aportar yo?). Casi por
casualidad, escrib FAQ de Software Libre y GNU/Linux despus de mucho tiempo observando la
desinformacin que haba en la red con respecto a ese tema. Conferencias de Seguridad zH'04 y
Criptosistemas Informticos vinieron despus, a raz de las conferencias de seguridad de la party de Zona
Hispana y unas charlas de criptografa en el IRC del foro de Hack X Crack respectivamente.
Y comenc a sorprenderme. Sorprenderme de ver que realmente tena muchas cosas que contar, de que
mis documentos eran publicados y difundidos en diversos medios de la red... pero sobre todo por el nmero
de personas que los descargaron. No tengo datos exactos, pues no tengo acceso a todos los servidores que
alojan los ficheros, y una visita a una pgina de descarga no asegura que se descargue el fichero, pero por
ejemplo Conferencias de Seguridad zH'04 ha tenido unas cinco mil (5.000) descargas en menos de cuatro
meses. Quiz no parezca mucho para gente con grandes sitios web, pero para m son unas cifras enormes,
ms tratndose de documentos PDF relativamente pesados, y no ligeras pginas HTML.
En este cuarto documento, pues, quiero tratar un tema que despierta mucha curiosidad en m, y que
actualmente est muy ligado a la criptografa (otra de mis grandes pasiones): la esteganografa.
Si hablamos rigurosamente de la definicin de esteganografa, veremos que, mediante distintas soluciones
tcnicas, lleva aplicndose siglos en la vida del ser humano (casi siempre ligado al espionaje o al secreto).
No obstante, aunque es bueno conocer su origen, nosotros nos vamos a centrar en sus aplicaciones
actuales en el campo de la informtica y las comunicaciones.
Para los que no conozcan absolutamente nada sobre esta tcnica, y antes de ver definiciones rigurosas,
podemos decir que la esteganografa es una forma cmoda de trabajar con meta-informacin, es decir,
informacin dentro de la informacin.
En otros tiempos la informacin que rodeaba a una persona era transportada por unos canales muy
definidos (correo, telfono...) y de forma limitada; pero eso es algo que en las ltimas dcadas ha cambiado
de forma radical. El actual desarrollo de la tecnologa computacional y las telecomunicaciones (cuyas
culminaciones son el ordenador personal e Internet respectivamente) han rodeado completamente nuestras
vidas de torrentes de informacin, vivimos de hecho rodeados de un continuo ruido de fondo.
Si nos paramos a pensar en la informacin que extraemos al visitar una web, y la cantidad real de
informacin que contiene, podemos ver que el vivir en un medio ruidoso nos hace en cierto modo
impermeables a la informacin no deseada, actuando como cribas humanas que separan el grano de la
paja en la Gran Telaraa Mundial.
Ese enorme ruido de fondo, ese enorme remanso de informacin que supone Internet, es el perfecto caldo
de cultivo para las tcnicas esteganogrficas. Cuanta ms informacin y cuanto ms fcilmente sea sta
ignorada, ms fcil es que la meta-informacin pase completamente desapercibida al resto del mundo, del
resto del impermeable mundo.

Death Master

Death Master, 2004 (GFDL)

Pgina 3

Introduccin a la Esteganografa

http://www.death-master.tk/

Historia de la esteganografa
Del griego (steganos, encubierto -con el sentido de oculto-) y (graphos, escritura) nace el
trmino esteganografa: el arte de escribir de forma oculta.
Aunque (criptos, oculto) y (steganos, encubierto) puedan parecer en un principio trminos
equivalentes, o al menos similares, son cosas completamente distintas. La criptografa es el arte de escribir
de forma enigmtica (segn la Real Academia Espaola), mientras que la esteganografa es el arte de
escribir de forma oculta. Puede que sigan pareciendo similares, pero las connotaciones toman mucho valor
al analizarlo detenidamente: la criptografa tiene su fuerza en la imposibilidad de comprender el mensaje,
mientras que la esteganografa la tiene en el desconocimiento de que el mensaje siquiera existe.
Aplicado al campo informtico, podemos dar los siguientes ejemplos: nosotros podramos robar un mensaje
cifrado con relativa facilidad, pero an sabiendo que contiene informacin importante seramos incapaces de
obtener informacin alguna de l (si la criptografa ha cumplido con su cometido). Respecto a la
esteganografa, nosotros podramos capturar el trfico completo de un individuo y tratar de analizarlo
completamente (y el ruido de fondo hoy en da es mucho), sin tener la certeza de que haya o no un
mensaje oculto. Espero que quede claro desde un principio que, en contra de lo que algunas personas
dicen, la esteganografa NO es un tipo de criptografa: son tcnicas distintas e independientes, si bien
pueden complementarse entre ellas (y de hecho lo suelen hacer).

Mtodos
Mtodos clsicos
La esteganografa da sus primeros pasos en la antigua Grecia. Se cuenta en Les Histries d'Herdot que
Demeratus quera comunicar a la ciudad de Esparta que Xerxes tena planes para invadir Grecia. Para evitar
ser capturado por espionaje en los controles, escribi sus mensajes en tablas que luego fueron cubiertas
con cera, de forma que parecan no haber sido usadas. sta es posiblemente una de las primeras
manifestaciones en la historia de mensajes esteganografiados.
Otro mtodo usado durante siglos consista en tatuar al mensajero (generalmente un esclavo) un mensaje
en la cabeza afeitada para despus dejarle crecer el pelo y enviar as el mensaje oculto.
Cifrado nulo (Null Cipher)
El mtodo de escritura de meta-informacin en un texto es usado desde hace siglos, y sigue siendo usado
hoy en da. sto es debido a que se trata posiblemente de uno de los mtodos ms sencillos de ocultar
informacin.
Consiste en escribir un texto aparentemente inofensivo donde, mediante algn mecanismo conocido por
el legtimo receptor de la informacin (actualmente hablamos de algoritmos y claves), subyace la
informacin realmente importante.
Veamos un ejemplo de un mensaje real enviado por un espa alemn durante la Segunda Guerra Mundial:
Apparently neutral's protest is thoroughly discounted
and ignored. Isman hard hit. Blockade issue affects
pretext for embargo on by products, ejecting suets
and vegetable oils.
Si de este inocente texto extraemos la segunda letra de cada palabra, obtendremos este otro mensaje:
Pershing sails from NY June 1
Aqu vemos lo fcil que es esconder informacin en textos, as como comprendemos la necesidad de gran
cantidad de informacin (ruido) para ocultar la autntica informacin de forma que no llame la atencin.

Death Master, 2004 (GFDL)

Pgina 4

Introduccin a la Esteganografa

http://www.death-master.tk/

Tinta invisible
Aunque el mtodo de escritura con tinta invisible es usado desde la edad media, es en la Segunda Guerra
Mundial cuando adquiere una importancia capital. Fue usado muy activamente por la resistencia en los
campos de prisioneros nazis.
Generalmente se usa de la siguiente forma: en primer lugar se escribe una carta completamente normal, y
despus se escribe, entre las lneas de esa carta, otro texto donde est la informacin importante. Era
habitual el uso de vinagre, zumos de frutas u orina, aunque hoy en da existen compuestos qumicos
especficos que sirven igualmente y no desprenden olores tan fuertes (que seran fcilmente detectados por
un perro entrenado). Al calentar el papel, la escritura oculta se hace visible.
Micropuntos
La tecnologa de los micropuntos fue inventada por los alemanes durante la Segunda Guerra Mundial y
fue usada de forma muy activa durante la poca de la guerra fra.
La tcnica se basa en esconder puntos minsculos en fotografas, tan pequeos que para el ojo humano
-e incluso para instrumentos pticos bsicos como lupas- resultan invisibles, pero que forman un patrn de
informacin significativa.
Debido a la naturaleza analgica de esta tcnica, resultaba fcilmente detectable para los servicios de
inteligencia, si bien advertir la presencia de mensajes esteganografiados no siempre significa que puedan
ser legibles. An as, descubrir la presencia de un mensaje esteganografiado se considera un fracaso de la
esteganografa que lo soporta, pues la imposibilidad de comprender su contenido conforma su capa de
cifrado.
Tcnicas actuales
Actualmente la esteganografa est irremisiblemente ligada a los ordenadores, que le han proporcionado el
medio necesario para ser efectiva, y del que durante siglos no pudo disponer. As mismo, est ntimamente
ligada a la criptologa en general y a la criptografa en particular.
Hoy en da se usan multitud de tcnicas esteganogrficas, pero todas se basan en los mismos principios de
ocultacin de informacin. Este punto, al ser el eje central del documento, lo veremos en detalle ms
adelante.
Ahora me gustara dejar una opinin personal sobre criptografa, esteganografa y la sociedad actual:
Como ya coment en el documento de Criptosistemas Informticos, a los gobiernos nunca les hizo
demasiada gracia la criptografa, esteganografa... y en general cualquier mtodo que pueda suponer datos
fuera de su control. Gracias a los ordenadores personales, y al software libre en gran medida, tcnicas antes
reservadas a unos pocos estn ahora al alcance de cualquiera... hasta de las peores personas.
Todo esto viene por la campaa de acoso y derribo que ciertos sectores norteamericanos emprendieron
contra la criptografa y esteganografa en general, especialmente contra PGP y su creador Philip
Zimmermann, al publicarse que esta clase de tcnicas fueron supuestamente utilizadas por la organizacin
terrorista AlQaeda para transmitir informacin previa a los atentados del 11 de Septiembre en Nueva York.
Seores: no hay medios culpables, sino personas culpables. No culpen a PGP de un atentado, no menos
que a Samuel Colt por inventar el revlver (eso sin entrar a analizar los usos positivos de PGP frente a los
dudosos usos positivos del revlver...) o a Albert Einstein por contribuir al desarrollo de la bomba de fisin.

Death Master, 2004 (GFDL)

Pgina 5

Introduccin a la Esteganografa

http://www.death-master.tk/

Publicaciones
Son realmente pocas las publicaciones que existen sobre esteganografa, en comparacin por ejemplo
con la criptografa. Si buscamos publicaciones en castellano, el nmero desciende muchsimo ms, hasta
casi el cero.
Al contrario que la criptografa, que existe de una manera importante desde antes del desarrollo del
computador y fue desarrollada especialmente en la Segunda Guerra Mundial, la esteganografa, pese a
haber sufrido un desarrollo similar durante ese mismo periodo de tiempo, nunca dispuso de medios que la
permitieran tomarse en cuenta hasta la aparicin de la moderna ciencia de la computacin. Es por eso que
las publicaciones referentes al tema son tan escasas, y generalmente se encuentran englobadas como una
parte de un texto criptogrfico (como coment al principio).
Veamos algunas de las principales publicaciones relacionadas con el tema por orden cronolgico:
Hypnerotomachia poliphili (1499) - Annimo
He elegido esta publicacin por lo que representa.
Hypnerotomachia poliphili es un libro publicado en 1499 por
Aldus Manutius. El libro versa sobre conocimiento general,
tratando temas como arquitectura, ingeniera, paisajes, creacin
de jardines, pintura, escultura... de todo menos esteganografa,
criptografa o cdigos de forma alguna.
Qu es pues lo que hace tan significativo este libro? Contiene
muchsimos datos escondidos en su interior. El ms famoso, y el
considerado como primer texto esteganografiado de forma
escrita se obtiene tomando la primera letra de cada uno de sus
captulos, formando:
Poliam frater Franciscus Columna peramavit
Que significa El Padre Francesco Colonna ama apasionadamente a Polia. Podemos ver la secuencia
completa de la frase en http://www.bk.tudelft.nl/dks/hp/hyptext1.htm#Decorated%20initials.
Por cierto, Francesco Colonna an viva cuando el libro fue publicado.
Steganographia (1499) - Tritheim Johannes Heidenberg
Se trata de la publicacin ms notoria de Tritheim.
En Steganographia se incluye un sistema de esteganografa bastante
avanzado, pero la temtica general del libro (magia y mtodos de
aprendizaje acelerados) hizo que nunca se tomara demasiado en serio el
texto.
No obstante, en este libro se trataba un mtodo de envo de mensajes sin
caracteres ni mensajero.
Podemos encontrar un profundo anlisis de este libro en:
http://www.esotericarchives.com/tritheim/stegano.htm.

Death Master, 2004 (GFDL)

Pgina 6

Introduccin a la Esteganografa

http://www.death-master.tk/

Polygraphi (1516) -Tritheim Johannes Heidenberg


Segunda publicacin relacionada con este tema de Tritheim.
En Polygraphi vuelve a tratar el tema de la escritura y su significado, aunque no
es un libro muy importante en el campo de la esteganografa.
No obstante, junto a Steganographia -del mismo autor-, sentar las bases de lo
que ser Schola Steganographica, el considerado como primer libro de
esteganografa y criptografa de la historia, y uno de los ms importantes.

Schola Steganographica (1665) - Gasparis Schott


Este libro es uno de los ms importantes en la
historia de la criptografa y la esteganografa.
En l se discuten los conocimientos de la poca
respecto a la escritura oculta o cifrada, algunos de
ellos tratados anteriormente, pero que en este
libro toman un profundo giro en el enfoque de
estudio: Schott se aleja de lo esotrico y lo
mgico para enfocar la esteganografa y la
criptografa desde el punto de vista de la tcnica
y la ciencia.
En el Whipple Science Museum de Cambridge
se conserva una copia completa e intacta (la de la
fotografa) que fue publicada junto a otra obra del
mismo autor (Technica curiosa).
Podemos ver fotografas, as como consultar informacin mucho ms detallada acerca de esta publicacin
en http://www.petitcolas.net/fabien/steganography/steganographica/index.html.
The Pigeon Post into Paris 1870-1871 (1871) - J.D. Hayhurst O.B.E.
Este texto trata el uso de micrografa y escritura oculta en los
mensajes enviados por palomas durante la guerra franco-prusiana
(1870-1871).
Segn el texto, las tcnicas de ocultacin de informacin fueron
decisivas en el desenlace de la contienda.
Podemos encontrar la versin completa del documento en:
http://www.cix.co.uk/~mhayhurst/jdhayhurst/pigeon/pigeon.html.

Death Master, 2004 (GFDL)

Pgina 7

Introduccin a la Esteganografa

http://www.death-master.tk/

La cryptographie militaire (1883) - Auguste Kerckhoffs


La cryptographie militaire es un estudio del uso de tcnicas criptogrficas,
esteganogrficas y en general de ocultacin de informacin en el ejrcito francs del siglo
XIX.
Cualquier estudioso de la criptografa ha odo al menos hablar de los Principios de
Kerckhoffs. Pues estos principios fueron enunciados en Enero de 1883 durante la
redaccin de este libro.
Si alguien est interesado en la lectura de este documento, puede encontrar la primera
parte del mismo (en el idioma original: francs) en PDF en la siguiente direccin:
http://www.petitcolas.net/fabien/kerckhoffs/crypto_militaire_1.pdf.
Le filigrane (1907) - Charles-Mose Briquet
Esta publicacin es un diccionario histrico de las marcas de agua, usadas a lo largo de la
historia para autentificar todo tipo de documentos. Hoy en da las marcas de agua siguen
usndose en la expedicin de papel moneda.
Podemos consultar el documento (en italiano) en la siguiente direccin:
http://linux.lettere.unige.it/briquet/.
The Codebreakers: The story of secret writing (1967) - David Kahn - [KAHN67] - Actualizado 1996
The Codebreakers es un libro de obligada lectura para los aficionados a la
criptografa, esteganografa y ocultacin de informacin en general.
Se trata de La Biblia de los cdigos, formando un texto de referencia histrica
incomparable. El autor barre un periodo de tiempo descomunal, desde los
primeros jeroglficos del 3000 A.C. hasta la poca de publicacin de la primera
edicin del libro (1967).
El hecho de que este libro fuera publicado antes de la existencia de la moderna
criptografa computacional no hace sino aumentar el valor intrnseco del texto,
pues nos muestra las entraas de la teora de cdigos. El libro tambin muestra
episodios histricos importantes relacionados con la ocultacin de informacin,
como el Telegrama Zimmermann de la I Guerra Mundial o el funcionamiento y
ruptura de las mquinas Enigma de la II Guerra Mundial.
El libro fue revisado en 1996 por el propio autor para contemplar la moderna criptografa de clave pblica y la
influencia de la informtica en la ocultacin de informacin. An as, no son muchos los cambios entre
ediciones, y podramos decir que el libro sigue siendo algo que pertenece a 1967.

Death Master, 2004 (GFDL)

Pgina 8

Introduccin a la Esteganografa

http://www.death-master.tk/

Bases de la esteganografa
El desarrollo de la informtica e Internet ha supuesto el marco perfecto para que la esteganografa alcance
su mayora de edad. Los avances en computacin nos proporcionan medios para calcular rpidamente los
cambios necesarios en la ocultacin de un mensaje, e Internet proporciona los medios necesarios para
transportar grandes cantidades de informacin a cualquier punto del planeta.
La esteganografa actual se basa en esconder datos binarios en la maraa de bits que supone un fichero.
Los bits que componen el mensaje a ocultar se introducen (bien sea aadindolos, o realizando
operaciones aritmticas con los originales) en el fichero ya existente, procurando que el fichero resultante
despus de realizar los cambios parezca el original.
Cmo logramos que el fichero resultante no parezca haber sido modificado? Depende de qu tipo de
fichero estemos modificando. Prcticamente cualquier tipo de fichero es bueno para ocultar datos en su
interior, pero hay algunos (imgenes y sonido principalmente) que resultan ideales para este cometido, por
motivos que ms adelante comentaremos. As mismo existen ciertos programas especializados en
ocultacin de informacin en sectores de disco no usados.
Sea cual sea el tipo de informacin que queramos esteganografiar, y sea cual sea el medio en el que
queremos hacerlo, hay ciertas reglas bsicas:
- Toda informacin (texto ASCII, hexadecimal, cdigo morse...) que queramos introducir, debe ser
primero convertida a binario. Si bien cualquier base numrica es vlida, la comodidad trabajando
con binario es mucho mayor.
- Nunca hay que permitir que un supuesto atacante obtenga el fichero original (anterior a la
modificacin), pues permitira, mediante comparacin, establecer pautas de cambios en la
informacin. Esto podra llevar en ltima instancia a desentraar el mensaje oculto.
- Las cabeceras de los ficheros -salvo excepciones- NO deben ser modificadas.
- No transmitir la clave o algoritmo esteganogrfico por un medio inseguro.
Aunque la esteganografa computacional clsica consiste en la modificacin binaria del fichero que sirve de
canal, existen ciertas tcnicas para casos particulares de ficheros que tambin son vlidas (aunque
complicadas de hacer a mano, con lo cual dependemos de algn tipo de software... cosa que no
queremos). Un ejemplo de estas tcnicas es la adicin de mensajes ocultos a los ficheros de sonido
mediante superposicin de capas de sonidos que no resultan audibles para el odo humano, pero que s
contienen informacin.
As mismo, tambin he encontrado documentacin de tcnicas basadas en ocultacin de mensajes en
ficheros de imagen creados con potentes programas de tratamiento grfico (como Gimp o Photoshop)
mediante el uso de capas transparentes donde se alojaba la informacin. Al igual que en el caso
anteriormente citado, no considero esta tcnica segura en absoluto.
As pues, yo tratar nicamente la esteganografa al nivel del bit (mediante editores hexadecimales).

Death Master, 2004 (GFDL)

Pgina 9

Introduccin a la Esteganografa

http://www.death-master.tk/

Ficheros interpretados
Antes de ver los tipos ms comunes de ficheros interpretados usados en esteganografa, vamos a echar un
vistazo a algunos detalles previos cuya comprensin es muy conveniente para entender la esteganografa.

Qu es un fichero interpretado?
Entre los ficheros que encontramos en nuestro disco duro encontramos principalmente dos grupos: ficheros
interpretados y ficheros ejecutables. Los ficheros ejecutables son los que mandan instrucciones al
procesador (a travs del sistema operativo y su ncleo o kernel), mientras que los ficheros interpretados
son aquellos usados para leer o escribir informacin, pero siempre mediante algn software.
Para entender esto ms fcilmente, pensemos en situaciones cotidianas. Al abrir una fotografa PNG JPG
con nuestro software de imagen favorito (Gimp, Photoshop...) estamos leyendo un fichero interpretado (la
fotografa) mediante un software que previamente ejecutamos (mediante el fichero ejecutable). En este
proceso, en primer lugar ejecutamos el fichero ejecutable que, a travs del SO, manda instrucciones al
procesador, y en segundo lugar ese software ya arrancado interpreta la informacin contenida en una
imagen y enva las instrucciones necesarias para poder ver en pantalla esa informacin ya procesada.
Existen unos ficheros denominados scripts que en determinados casos, pese a ser ficheros interpretados,
son capaces de ejecutar cdigo en el procesador (aunque siempre mediante un intrprete). Es el caso de,
por ejemplo, programas escritos en bash scripting (ejecutados por bash, sh...) o en perl (ejecutados por el
intrprete de perl). Aunque hay quien los considera ejecutables y quien no, nos es indiferente, porque en
cualquier caso no son muy tiles con fines esteganogrficos, debido a que en su mayora se trata de
ficheros de texto plano.

Estructura de un fichero
Antes de empezar a modificar ficheros es importante entender la estructura bsica de un fichero.
Aunque los usuarios de sistemas Windows no lo sepan, un fichero es lo que es debido a una informacin
que se encuentra embebida en su interior y que llamamos cabecera. Digo esto porque en sistemas como
Unix y compatibles (Linux, xBSD...), un fichero BMP es reconocido como tal aunque su nombre sea
foto.pepe; mientras que en los sistemas Windows simplemente se verifica la extensin del fichero, de
forma que carta.bmp se tratar de abrir con el visor de imgenes predeterminado an tratndose de texto.
Adems de la cabecera, el fichero contiene la informacin propiamente dicha (y en algunos casos otros
campos que no vienen al caso). Debido a que cada tipo de fichero tiene una estructura distinta, se
pueden dar casos anecdticos, como por ejemplo que un fichero pueda ser a la vez de dos tipos sin que
stos interfieran entre s. Un ejemplo es un fichero gif-zip. Cmo es posible esto? Pues por las
especificaciones de cada uno de los ficheros: un fichero gif define en su cabecera el tamao del mismo, de
forma que cualquier byte posterior al supuesto fin de la informacin es ignorado, y un fichero zip almacena la
informacin en unas tablas de forma que cualquier byte anterior al inicio de stas es ignorado. As, si
definimos una cabecera gif de, pongamos, 5000 bytes, y en el byte 5001 y posteriores ponemos las tablas
zip, tendremos un fichero que es gif y zip a la vez.
Por norma general, NO vamos a tocar nunca la cabecera del fichero. Nosotros siempre nos vamos a fijar
en el cuerpo del mismo para introducir nuestros datos. La forma en que introduciremos los datos, as como
el sitio donde lo haremos, depende del tipo de fichero. Es necesario saber cmo almacena la informacin
el fichero para no modificarlo de forma sensible. Para saber dnde colocar nuestros datos conviene
conocer la estructura del fichero (ya sabis... http://www.google.es/ es vuestro amigo :-P) o empezar a
modificar datos a partir de direcciones avanzadas, con lo cual nos aseguramos un margen prudente que
nos evite tocar la cabecera. Yo tratar de proporcionar informacin acerca de los principales estndares de
imagen que existen actualmente.

Death Master, 2004 (GFDL)

Pgina 10

Introduccin a la Esteganografa

http://www.death-master.tk/

Ficheros de imagen
Las imgenes es de lejos el tipo de fichero ms utilizado para esteganografiar mensajes ocultos.
Conviene puntualizar que hay distintos tipos de ficheros de imagen:
- Windows BitMaP (BMP): Es el formato grfico ms simple, y aunque tericamente es capaz de
realizar compresin de imagen, en la prctica jams se usa. Consiste simplemente en una cabecera
y los valores de cada pixel de la imagen (ocupando cada pixel 4, 8, 16, 24 32 bits segn la
calidad del color) empezando de abajo hacia arriba y de izquierda a derecha.
Su principal ventaja es la sencillez (es el formato ms indicado para realizar esteganografa). Su
mayor inconveniente es el inmenso tamao que ocupan.
- PC Paintbrush (PCX): Este tipo de fichero es una evolucin del mapa de bits tradicional. En
PCX se usa el algoritmo de compresin RLE. Mediante RLE cuando dos o ms pixels
consecutivos tienen el mismo color, el algoritmo guarda la informacin del color y el nmero de
pixels que lo usan (para la posterior visualizacin).
El criterio para almacenar el nmero de pixels usando el color es el siguiente: si el byte es menor o
igual que 192, corresponde a un nico pixel, pero si es superior a 192 el nmero de pixels repetidos
nos lo dan los seis bits menos significativos del byte (ponemos a cero los dos bits ms significativos)
y el color nos lo da el byte siguiente.
Como ventajas tiene la sencillez del algoritmo (aunque, como ya veremos, este formato de
compresin hace mucho ms tedioso la realizacin de esteganografa), y como inconveniente, la
escasa compresin que obtenemos en fotografas (que tienen mayor variedad de pixels), que al fin
y al cabo es el mayor uso de imagenes.
- Graphics Image Format (GIF): Es uno de los mejores formatos de compresin (sobre todo para
imgenes con grandes reas de un mismo color), adems de ser la opcin ms sencilla para
animaciones vectoriales (flash y otros mtodos ms caros y complejos aparte...). El formato
GIF89a adems soporta transparencias y entrelazado.
Usa el algoritmo de compresin LZW (usado en compresin de ficheros tambin), mucho ms
complejo que RLE. Su principal punto dbil es la limitacin a 256 colores (8 bits) de la paleta de
color, lo cual lo hace desaconsejable para cualquier tipo de fotografa o imagen realista.
Su principal ventaja es la enorme compresin (cosa que nos complica sobremanera la
esteganografa) y la capacidad de uso de transparencias y entrelazado, mientras que su mayor
defecto es la escasa paleta de colores.
- Joint Photographic Experts Group (JPEG): Este fichero es, con diferencia, el ms popular. El
algoritmo de compresin de JPEG se basa en un defecto del ojo humano que impide la
completa visualizacin de la paleta de 24 bits, por lo que elimina la informacin que el ojo humano
no es capaz de procesar. Esto nos da una importante reduccin de tamao, pero -muy importanteeste algoritmo S tiene prdida de informacin en el proceso de compresin. Dependiendo del
factor de compresin la prdida de imagen puede ser visible o no al ojo humano.
Una variante del JPEG original es el JPEG progresivo, que realiza entrelazado de datos para
visualizarlo en primer lugar con baja calidad e ir aumentando la misma en varias pasadas.
La principal ventaja que tiene JPEG es su calidad a la hora de representar fotografas (con su
paleta de 16 bits y su alta compresin), y su principal desventaja es la prdida de calidad e
informacin con grandes ratios de compresin.
JPEG es sin duda el ms usado en esteganografa, pero eso no significa que sea el ms sencillo.

Death Master, 2004 (GFDL)

Pgina 11

Introduccin a la Esteganografa

http://www.death-master.tk/

- Tagged Image File Format (TIFF): TIFF es un formato usado en imgenes de altsima
resolucin y calidad, principalmente en trabajos de imprenta o fotografa profesional. Se trata
bsicamente de un mapa de bits preparado para el estndar CMYK, y preparado para el uso de
muchos estndares y formatos de compresin diversos, que pueden ser usados en la misma
imagen.
La ventaja de este formato es la enorme calidad obtenida, y su principal desventaja el tamao
que ocupa. Debido a lo especfico de este tipo de fichero, no es prcticamente usado para
esteganografa.
- Portable Network Graphics (PNG): El formato PNG nace debido a los problemas de la patente
del algoritmo LZW (Lempel-Ziv-Welch), y con la intencin de sustituir a GIF como estndar. PNG
cubre prcticamente todas las caractersticas de GIF, con un mejor algoritmo de compresin, sin
prdida de informacin y con una paleta de color muy superior a los 256 bits de GIF (16 bits).
Adems, se trata del nico formato comprimido que incorpora la informacin del canal alpha,
logrando una altsima calidad en el uso de capas y transparencias.
PNG adems es uno de los primeros ficheros de imagen en contener informacin acerca del fichero
en forma de metadatos de texto (esto no os suena de nada? ;-P).
A pesar de todas sus ventajas (principalmente el tratarse de un formato libre), tiene un defecto: no
permite el uso de animaciones (al contrario que GIF). La organizacin W3C (autores de PNG) han
creado el formato MNG para animaciones.
Aunque son muchas las formas de representar una imagen en un ordenador, todas tienen un denominador
comn: tienen que representar colores mediante bits, bien sea cada punto, vectores o tablas.
Nuestro principal arma es la calidad de la imagen, por lo que segn la profundidad de color ser ms o
menos sencillo la realizacin de esteganografa. Con 4 y 8 bits (16 y 256 colores respectivamente) la
variedad no es muy alta, por lo que la diferencia entre colores contiguos es poca.
En profundidades de color ms comunes hoy da, como 16, 24 y 32 bits (65.535, 16.777.216 y
4.294.967.296 de colores respectivamente) la cosa es muy diferente. Si bien con 16 bits la diferencia entre
colores no es tanta, modificar un punto en una imagen de tamao medio (200*200 = 40.000 puntos) y con
una diferencia de color de 1 entre 65.535... nadie podr distinguir este punto. Con 24 y 32 bits ya la
diferencia es muchsimo mayor... Ya vemos por dnde vamos, no? }:-P
Efectivamente, vamos a aumentar o disminuir en una unidad el valor del color de un registro de color de
la imagen. Veamos cmo esconder 1 byte de informacin...
Esto es un fragmento de fichero de imagen BMP (tened listo el editor hexadecimal):
0012A000
0012A010
0012A020
0012A030
0012A040
0012A050
0012A060
0012A070

35
0A
22
1E
0E
52
45
15

3D
07
20
30
2A
A5
5E
08

33
0A
2B
63
2C
D6
3F
0D

33
0E
3B
58
33
3F
38
12

3A
05
37
7A
45
93
4A
0A

35
05
4A
A3
44
CA
11
0B

3B
0A
2A
94
50
1E
11
12

43
0B
2E
B3
1F
60
17
07

15
0B
3D
66
1E
88
0E
0D

1B
11
19
5D
26
0D
12
12

21
12
20
71
00
1D
15
0B

00
13
2A
01
00
27
0E
10

01
1A
18
04
00
0C
11
14

05
0E
17
08
1A
1E
19
11

02
11
21
06
3D
28
0C
12

05
17
25
07
4D
43
11
17

5=33:5;C..!.....
................
" +;7J*.=. *..!%
.0cXz...f]q.....
.*,3EDP..&....=M
R..?...`...'..(c
E^?8J...........
................

Supongamos que nosotros queremos esconder una letra, concretamente la letra L. Primero debemos
convertirla en bits, as que consultamos la tabla ASCII (http://www.asciitable.com/) y comprobamos que
el valor de L es...
Decimal
------076

Octal
----114

Hex
--04C

Binary
-----01001100

Value
----L

Ahora deberamos estudiar el fichero a modificar para analizar qu grupos conforman cada pixel, y deducir
cul es la cifra menos significativa. Como ejemplo tomaremos el ltimo valor del registro como tal.

Death Master, 2004 (GFDL)

Pgina 12

Introduccin a la Esteganografa

http://www.death-master.tk/

Ahora, sumaremos 1 a la cantidad existente cuando el bit de la letra L sea 1, y dejaremos el fichero como
est cuando sea 0:
0012A010
++++++++
........
========
0012A010

0A
++
..
==
0A

07
++
..
==
07

0A
++
..
==
0A

0E
++
..
==
0E

05
++
..
==
05

05
++
..
==
05

0A
++
..
==
0A

0B
++
..
==
0B

0B
++
..
==
0B

11
++
..
==
11

12
++
..
==
12

13
++
..
==
13

1A
++
..
==
1A

0E
++
..
==
0E

11
++
..
==
11

17
++
.1
==
18

................

0012A040
++++++++
........
========
0012A040

0E
++
..
==
0E

2A
++
..
==
2A

2C
++
..
==
2C

33
++
..
==
33

45
++
..
==
45

44
++
..
==
44

50
++
..
==
50

1F
++
..
==
1F

1E
++
..
==
1E

26
++
..
==
26

00
++
..
==
00

00
++
..
==
00

00
++
..
==
00

1A
++
..
==
1A

3D
++
..
==
3D

4D
++
.1
==
4E

.*,3EDP..&....=M

0012A050
++++++++
........
========
0012A050

52
++
..
==
52

A5
++
..
==
A5

D6
++
..
==
D6

3F
++
..
==
3F

93
++
..
==
93

CA
++
..
==
CA

1E
++
..
==
1E

60
++
..
==
60

88
++
..
==
88

0D
++
..
==
0D

1D
++
..
==
1D

27
++
..
==
27

0C
++
..
==
0C

1E
++
..
==
1E

28
++
..
==
28

43
++
.1
==
44

R..?...`...'..(c

3A
05
37
7A
45
93
4A
0A

35
05
4A
A3
44
CA
11
0B

3B
0A
2A
94
50
1E
11
12

43
0B
2E
B3
1F
60
17
07

15
0B
3D
66
1E
88
0E
0D

1B
11
19
5D
26
0D
12
12

21
12
20
71
00
1D
15
0B

00
13
2A
01
00
27
0E
10

01
1A
18
04
00
0C
11
14

05
0E
17
08
1A
1E
19
11

02
11
21
06
3D
28
0C
12

05
18
25
07
4E
44
11
17

5=33:5;C..!.....
................
" +;7J*.=. *..!%
.0cXz...f]q.....
.*,3EDP..&....=N
R..?...`...'..(D
E^?8J...........
................

................

.*,3EDP..&....=N

R..?...`...'..(D

Y as obtenemos el resultado:
0012A000
0012A010
0012A020
0012A030
0012A040
0012A050
0012A060
0012A070

35
0A
22
1E
0E
52
45
15

3D
07
20
30
2A
A5
5E
08

33
0A
2B
63
2C
D6
3F
0D

33
0E
3B
58
33
3F
38
12

0
1
0
0
1
1
0
0
'
L

Voil! Guardamos los cambios, y comprobamos personalmente que no se aprecia cambio alguno a
simple vista (en mi ejemplo, un fondo de pantalla de 1024*768 a 24 bits de profundidad). Pero si nosotros le
decimos a alguien que tenga la imagen original que compare a partir de la posicin 0012A000, podr
deshacer los cambios segn el patrn usado para introducirlos.
Qu hemos hecho? Hemos cambiado el color de tres puntos en la imagen de forma que sean los colores
inmediatamente contiguos en una paleta de ms de 16 millones de colores. El ojo humano no podra
distinguirlo nunca.
Tambin es posible representar los ceros restando uno a la cifra original y los unos dejndola inalterada, o
los ceros restando uno y los unos sumando uno... aunque lo ms recomendable es alterar lo mnimo posible
el fichero original.
En ficheros con compresin es ms difcil introducir cambios sin que el resultado se altere, debido a que
debemos respetar la estructura del algoritmo de compresin, cosa bastante complicada. An as, con
algo de prctica y paciencia es perfectamente posible introducir mensajes esteganografiados en imgenes
JPEG por ejemplo.
Ya en Internet, mediante correo electrnico o una pgina web, es muy fcil distribuir un documento con
informacin esteganografiada.

Death Master, 2004 (GFDL)

Pgina 13

Introduccin a la Esteganografa

http://www.death-master.tk/

Ficheros de sonido
Los ficheros de sonido son tambin utilizados a menudo en tcnicas esteganogrficas.
Echemos un vistazo a los tipos de ficheros de sonido ms comunes:
- Waveform Audio File Format (WAV): Se trata del formato de sonido desarrollado por
Microsoft para su sistema operativo Windows. Se compone de una cabecera de 43 bytes y un
conjunto arbitrario de bytes que contienen las muestras una tras otra, sin ningn tipo de
compresin y con cuantificacin uniforme. Al ser un formato realmente sencillo, es muy til para
realizar tratamiento digital de sonido.
Su principal ventaja es la sencillez del formato, y su mayor inconveniente la cantidad de
espacio requerido (una muestra de 10 segundos en calidad de CD -PCM, 44 KHz, 16 bit, estreoocupa 1,6 Mb).
- Motion Picture Experts Group - Audio Layer 3 (MP3): Sin duda el ms famoso de todos los
formatos de audio. Este formato utiliza un algoritmo de compresin con prdida de informacin,
basndose en las limitaciones del odo humano: somos sensibles a las frecuencias medias, pero
poco perceptivos con las altas o bajas; y adems percibimos mal los sonidos bajos que suenan a la
vez que sonidos muy fuertes (efecto de ocultamiento). As pues, eliminando los sonidos que no
omos, logra un ratio de compresin de hasta 12:1.
Su principal ventaja, sin duda, es la gran compresin y la poca prdida de calidad que tiene, y su
principal inconveniente es la prdida inevitable de informacin.
- OGG Vorbis (OGG): Este formato se desarrolla para constituir una alternativa totalmente libre a
mp3. Aunque es un formato an muy joven (an no hace dos aos de la finalizacin de la versin
1.0), tiene mucho que decir, pues tiene un sistema de compresin similar al de mp3, pero logrando
mayores ratios de compresin (ocupa menos) y una mayor calidad de sonido.
El principal obstculo para la implantacin de ogg es la estandarizacin de mp3: reproductores
porttiles, equipos de audio, reproductores DVD domsticos...
La principal ventaja de ogg es la mayor compresin y calidad con respecto a mp3, as como ser
100% libre de patentes. Su principal inconveniente, como en mp3, es la prdida de informacin
en el proceso de compresin.
La representacin de la informacin en los ficheros de sonido se realiza generalmente mediante el registro
consecutivo de las muestras que componen el sonido. Al igual que ocurra con los ficheros de imagen, el
sonido es representado siempre en forma de bits, y cada vez con una calidad mayor (mientras redacto
esto, estoy escuchando un mp3 de 128kbit y 44100Hz, lo cual supone una cantidad muy grande de
informacin...), de forma que para nuestros experimentos esteganogrficos podremos jugar con los bits
menos significativos de la informacin.
En el sonido ocurre una cosa muy curiosa: nos da prcticamente igual que la calidad sea alta o baja,
pues en calidades altas la cantidad de bits usados para representar el sonido es muy alta, y un cambio
nfimo no influye en el resultado; mientras que en los de calidad baja, aunque la modificacin sea ms
llamativa, al tratarse de un sonido de baja calidad (por ejemplo calidad de radio), cualquier modificacin
puede pasar inadvertida como ruido de fondo.
La forma de introducir los datos es la misma que ya hemos visto en el caso de ficheros de imagen.

Death Master, 2004 (GFDL)

Pgina 14

Introduccin a la Esteganografa

http://www.death-master.tk/

Otros ficheros interpretados


Como ya dijimos al principio, cualquier formato es bueno para esconder informacin. La prctica totalidad
del software disponible en el mercado que automatiza la esteganografa trabaja con imgenes y sonidos,
debido a que son los ms sencillos de usar para estos propsitos, pero nosotros podemos usar -casicualquier tipo.
Es importante que antes de modificar un fichero sepamos a grandes rasgos cmo se estructura, para evitar
daarlo o modificarlo tanto que llame la atencin.
Algunos formatos que tambin son buenos para la ocultacin de informacin son:
- Ficheros de vdeo: Motion Picture Experts Group -en cualquier versin- (MPEG), DivX (AVI),
XviD (AVI)...
Este tipo de ficheros son tambin tiles dada la ingente cantidad de informacin que almacenan,
pero a la vez son complicados de modificar sin estropearlos, debido a los complejos algoritmos
de compresin utilizados.
- Ficheros de texto formateado: Microsoft Word (DOC), OpenOffice.org (SXW)...
Los ficheros de texto formateado usualmente almacenan metadatos que nos resultan muy tiles
para esconder nuestra informacin (y en el caso de Microsoft Word, dieron algn susto al
gobierno del Reino Unido... }:-D). No obstante los metadatos tambin pueden ser ledos y una
modificacin puede ser detectada con relativa facilidad...
El caso de ficheros de texto plano, scripts o programas de lenguajes interpretados (TXT, SH, PL,
HTML, PHP) es distinto, pues NO es aconsejable usarlos en esteganografa, dado que prcticamente
todos son ficheros de texto plano que son ledos por su correspondiente intrprete. Esto hace que una e en
el texto sea una e limpia al abrir el fichero con un editor hexadecimal, y si la modificamos para que sea
una f, en el texto cambiar para ser una f igualmente.

Death Master, 2004 (GFDL)

Pgina 15

Introduccin a la Esteganografa

http://www.death-master.tk/

Ficheros ejecutables
Esconder datos en ficheros ejecutables? Es eso posible? S, aunque se trata de una tcnica compleja
que no siempre da buenos resultados.
Antes de entrar al meollo de la cuestin, conviene hacer una anotacin: si bien para comprender esta parte
no necesitaremos conocimientos especficos, si queremos realizar de forma seria esta tcnica debemos
tener ciertos conocimientos sobre virus informticos e ingeniera inversa (desensamblado, crackeo...), as
como tambin de programacin en lenguaje ensamblador (AT&T e Intel, segn trabajemos con ficheros
ELF o Win32 PE).
Para entender cmo funciona esta tcnica tenemos que echar un vistazo al modo de trabajo de los virus
que infectan ejecutables. Este tipo de virus hoy da no son muy comunes, pues han sido desplazados por los
omnipresentes gusanos, pero hace unos cuantos aos era el tipo de virus ms comn. Segn su tcnica de
infeccin podamos distinguir dos tipos de virus:
El primer tipo inyecta su cdigo al final del ejecutable e introduce en algn lugar libre del mismo una
instruccin de salto incondicional (JMP) hacia el rea que contiene el cdigo del virus. El principal efecto
es el aumento de tamao del fichero con respecto a la versin sin infectar (dada la inyeccin de cdigo).
El segundo tipo, mucho ms complejo de programar y mucho ms raro de encontrar, busca reas libres
en el ejecutable (debido al alineamiento) y distribuye su cdigo en esos huecos del fichero, uniendo
todo el cdigo mediante diversas instrucciones de salto. Los efectos de este complejo mtodo de
infeccin son principalmente que el fichero sigue ocupando el mismo espacio en disco y que las
compaas antivirus se muerden las uas a la altura del codo para crear rutinas de desinfeccin para estos
bichos.
Nosotros no queremos infectar nada, pero s pensamos que no estara mal poder ocultar informacin en
esos huecos libres que sabemos que existen...
- Porqu existen esos huecos?
Dependiendo del compilador que usemos, ste puede usar un alineamiento de entre 4 y 16 bytes.
Eso nos da un posible espacio de huecos libres de entre 0 y 15 bytes para utilizar como
queramos. La mayora de los compiladores de C (principal lenguaje de programacin) trabajan con
un alineamiento de 16 bytes.
- Cmo reconozco esos huecos libres?
Cada compilador tiene una forma de rellenar esos huecos. Por ejemplo, los compiladores de C de
Microsoft suelen usar la instruccin debug (INT 3) que en forma hexadecimal es 0xCC (CC); los
compiladores de C de Borland suelen usar la instruccin NOP que en forma hexadecimal es 0x90
(90); y otros compiladores como GCC (Gnu C Compiler) usan diversas instrucciones, lo que entre
otras cosas dificulta la infeccin del ejecutable.
- Puedo escribir en esos huecos sin ms?
NO, y este es uno de los principales motivos por el que esta tcnica es tan compleja. Si antes de
esos huecos se encuentra un salto incondicional, o una instruccin comparativa que ejecute
dos o ms saltos condicionales dependiendo del resultado de evaluar la expresin, o cualquier otra
cosa con la condicin de que el programa NO contine en ese hilo de ejecucin de forma lineal...
entonces s podemos usar esos huecos a nuestro antojo. En caso de que el programa contine
su hilo de ejecucin de forma normal, NO podremos usarlos.

Death Master, 2004 (GFDL)

Pgina 16

Introduccin a la Esteganografa

http://www.death-master.tk/

Esto diferencia la tcnica esteganogrfica en ejecutables de la infeccin por virus. A un virus le


interesa ejecutar cdigo, enviar instrucciones al procesador, de forma que los huecos que a nosotros
nos valen (los menos) al virus no le valen, y viceversa. Nosotros queremos que lo que
modifiquemos NO sea enviado al procesador como cdigo a ejecutar, porque en el mejor de los
casos el programa har cosas raras, y en el peor (la mayora) el ejecutable quedar inservible...
con lo cual no estamos cumpliendo los preceptos de la correcta esteganografa.
Si nosotros abrimos un fichero ejecutable y encontramos esto:
00000800

E5 00 F0 73 03 19 81
\-----------------/
|
|
|
|
|
|
+> {Cdigo

C3 90 90 90 90 90 90 90 55
...s...........U
|
\-----------------/ |
|
|
+> PUSH {Inicio de subrutina}
|
|
|
+> NOP {Huecos}
|
+> RETN {Final de subrutina}
del programa}

A primera vista podemos decir que este programa seguramente fue compilado con un compilador de
Borland. El ejecutable dispone de 7 bytes libres donde escribir lo que queramos. Pero para no inyectar
cdigo en el procesador (bueno, el que quiera ya sabe cmo :-P) debemos asegurarnos que el programa
anterior a esos bytes libres no contina en ese hilo de ejecucin... cosa que se sale de la temtica de
este documento. As pues, el que quiera saber ms de esteganografa en ejecutables primero debe
empaparse de ingeniera inversa. Al fin y al cabo ya sabemos cmo encontrar los bytes libres, y ya sabemos
cmo introducimos informacin...
Ahora el jarro de agua fra: la esteganografa en ejecutables tiene varios problemas serios...
A pesar de la complejidad de la esteganografa sobre ejecutables, no es mejor que sobre ficheros
interpretados... a decir verdad es peor. Porqu? Porque cualquiera con conocimientos en ingeniera inversa
puede ver que el cdigo del programa llegado a determinado punto no ejecuta instrucciones de un rea
que contiene instrucciones (muy probablemente instrucciones sin sentido, al tratarse de informacin), y
deducir que ese rea originalmente contena instrucciones vacas.
Adems existe otro problema: si el software usado realiza comprobaciones MD5, nuestro ejecutable
modificado ser considerado corrupto, y por tanto no vlido. Cualquier pretensin de pasar informacin
inadvertida se pierde.
Por ltimo, las compaas antivirus en sus productos modernos incluyen sistemas heursticos de
deteccin de virus, mediante los cuales reconocen patrones de conducta, no virus concretos. Nuestra
informacin esteganografiada en un ejecutable se parece bastante a un virus... por lo que quiz sea
detectada como un virus.
Como conclusin personal, dir que la esteganografa en ficheros ejecutables no es prctica, pues
implica tener conocimientos avanzados de ramas de la seguridad informtica muy complejas (virus,
lenguaje ensamblador, ingeniera inversa...), necesita mucho tiempo para llevarse a cabo, y conlleva
bastantes problemas prcticos en su ejecucin. An as, como dicen que el saber no ocupa lugar, aqu
queda. ;-)

Death Master, 2004 (GFDL)

Pgina 17

Introduccin a la Esteganografa

http://www.death-master.tk/

Esteganografa avanzada
La esteganografa es un arte complejo y con muchos matices. Sin llegar an a la combinacin de
esteganografa y criptografa, es posible el uso de determinadas tcnicas avanzadas que permiten
aumentar la eficacia de una informacin oculta mediante esteganografa. Veamos alguna:
Uso de mltiples claves
Esta tcnica es heredada directamente de la criptografa, pero con distinta forma de aplicacin. Consiste en
usar distintas codificaciones para cada porcin arbitraria del mensaje a ocultar. As, una frase de cinco
palabras puede tener una clave de codificacin para cada una de las palabras: en la primera restamos una
unidad en los ceros y sumamos una unidad en los unos, en la segunda realizamos lo mismo pero invirtiendo
el orden de los bits, en la tercera realizamos el XOR de los bits...
Naturalmente la clave ha de ser conocida por el destinatario.
Esteganografa en capas
Mediante esteganografa en capas establecemos una relacin lineal entre los elementos ocultos. As, la
codificacin de la segunda palabra o letra de un mensaje depende de la primera (puede depender del ltimo
valor de la cifra, del ltimo valor modificado, de la posicin...).
As establecemos un orden estricto de decodificacin que impide obtener completamente el mensaje sin
la primera parte, con lo cual nicamente debemos comunicar la clave para obtener esta parte y la pauta a
seguir para encadenar los fragmentos.
Adicin de ruido
Aunque en un mensaje esteganografiado TODO el fichero es considerado ruido, podemos aadir ruido en
el proceso de esteganografiado. As, adems de modificar los bits necesarios para inyectar nuestro
mensaje, podemos modificar unos cuantos bits aleatorios del mensaje de forma que an teniendo el
fichero original, un posible atacante deba conocer el sistema de codificacin usado.
Uso de distintas magnitudes
Aunque lo habitual es variar en 1 bit el byte del mensaje original, nada nos impide variarlo en ms bits.
As, podemos establecer claves complejas, como por ejemplo: ocultamos una frase de cinco palabras, y al
ocultar la primera de las palabras sumamos 1 bit en la codificacin de la primera letra, 2 bits en la
codificacin de la segunda, 3 bits en la tercera... hasta que vuelva a aparecer una modificacin de 1 bit, que
significar el inicio de otra palabra.
Mientras trabajemos con ficheros que usen mucha informacin (imgenes de 24 bits o ms por ejemplo)
no se notar que variemos la escala en 1 10 unidades, y nos proporciona un tipo de clave ms compleja.
Otras tcnicas
Existen muchas otras tcnicas esteganogrficas que permiten aumentar la complejidad y seguridad, tantas
como queramos idear nosotros mismos. Lo ideal es que cada uno idee y use su propia tcnica.

Death Master, 2004 (GFDL)

Pgina 18

Introduccin a la Esteganografa

http://www.death-master.tk/

Esteganografa y criptografa
Como ya comentamos al principio del presente documento, la esteganografa hoy da est ntimamente
ligada a la criptografa. Teniendo unos conocimientos bsicos de criptografa y esteganografa podemos
ocultar nuestros datos con un grado de seguridad sorprendentemente alto (NOTA: Para los interesados en
la criptografa, tengo publicado un documento sobre el tema en mi web).
Mediante tcnicas criptogrficas como las usadas por PGP (Pretty Good Privacy) podemos hacer
nuestros datos completamente ilegibles, pero un fichero cifrado con PGP tiene una estructura muy
especfica que lo hace reconocible de inmediato. En ciertos pases el gobierno controla a la poblacin
hasta el extremo de controlar la informacin que emiten a la red (por ejemplo en China), por lo que cualquier
dato cifrado sera interceptado de inmediato. Podemos comparar la criptografa a tener alarma en casa:
nuestra seguridad aumenta muchsimo, pero todos los que vean las medidas de seguridad sabrn que
tenemos cosas importantes que guardar (por norma general se cifran nicamente los contenidos muy
importantes).
Mediante tcnicas esteganogrficas podemos hacer que cualquier informacin pase inadvertida
(subyaciendo en informacin inofensiva), pero la seguridad intrnseca de la esteganografa para datos
importantes no es mucha.
Mediante la combinacin de estas dos tcnicas estableceremos dos capas en la seguridad de la
informacin: la primera capa, ms externa, es la esteganogrfica; y la segunda, interna, la criptogrfica.
Cada una de las capas tiene un cometido en esta peculiar simbiosis: la capa criptogrfica se encarga de la
seguridad de los datos (pues aunque la esteganografa sea un medio de proteger datos, no es comparable
al cifrado) mientras que la capa esteganogrfica protege la integridad de la capa criptogrfica.
Aunque nada nos impide realizar nuestros cifrados a mano, para usar algoritmos y claves complejas es casi
imprescindible el uso de software especializado. Yo sin duda recomiendo cualquier implementacin de
openPGP, especialmente GnuPG que es software libre, y cuyo cdigo fuente puede ser revisado por
cualquiera que desconfe.
Si ciframos nuestros datos de forma que nos devuelva una armadura ASCII, ya tendremos todos los
caracteres que componen nuestro mensaje cifrado. Es muy recomendable que la clave que usemos para la
realizacin de criptografa orientada a esteganografa use el algoritmo DH/DSS (Diffie-Hellman / Digital
Standard Signature), pues el tamao de salida de datos es mucho menor. Con la armadura ASCII del
mensaje solamente necesitamos un poco de paciencia para esteganografiar los datos.

Death Master, 2004 (GFDL)

Pgina 19

Introduccin a la Esteganografa

http://www.death-master.tk/

Ataques a la esteganografa
No son muchas las investigaciones publicadas acerca de mtodos de ataque a la esteganografa, aunque es
de esperar que debido al auge que ha experimentado hoy en da gracias a tcnicas como las marcas de
agua, se publiquen ms investigaciones sobre debilidades y formas de aprovecharlas.
Los dos mtodos ms usados para detectar y atacar la esteganografa son:
Ataque visual
Consiste bsicamente en buscar de forma manual diferencias entre el fichero original y
esteganografiado, siempre y cuando dispongamos del fichero original. En caso de no disponer de l,
pueden buscar irregularidades en el fichero esteganografiado para tratar de encontrar signos de
existencia de datos ocultos, pero difcilmente podremos obtener informacin til ms all de la existencia
los mismos.

el
se
la
de

Esta tcnica es la ms rudimentaria a la hora de realizar anlisis esteganogrfico y no tiene mucha utilidad
real.
Ataque estadstico
Este tipo de ataque se basa en el mismo concepto que el criptoanlisis diferencial del que habl en
Criptosistemas Informticos.
El concepto de este tipo de ataques se basa en la comparacin de la frecuencia de distribucin de
colores de un fichero potencialmente esteganografiado con la frecuencia que podramos esperar en
teora de un fichero esteganografiado. Aunque los resultados son bastante buenos (ha demostrado en
muchas ocasiones ser efectiva), esta tcnica es extremadamente lenta.
Si la creacin de mensajes esteganografiados a mano ya es complicada, el ataque estadstico lo es mucho
ms, por lo que se automatiza mediante diversos programas. Pero a nuestro favor tenemos que los
programas especializados en deteccin y ruptura de mensajes esteganografiados suelen buscar pautas de
mensajes ocultos con algn tipo de software especializado en la creacin de los mismos. Si
esteganografiamos nuestros mensajes a mano, la posibilidad de que la informacin sea recuperada
ilcitamente es nfima.
Uno de los programas ms famosos para detectar la presencia de esteganografa en ficheros de imagen
JPG es Stegdetect (http://www.outguess.org/detection.php). Este software, mediante su mdulo Stegbreak,
realiza ataques de diccionario a los principales sistemas pblicos de esteganografa.
Conclusin
Dada la naturaleza de la esteganografa, resulta extremadamente resistente a cualquier tipo de ataque.
Los programas que aseguran detectar y recuperar datos ocultos mediante esteganografa lo hacen siempre
buscando mensajes ocultos con programas de dominio pblico. Si nosotros esteganografiamos nuestros
propios mensajes a mano o -si somos programadores- desarrollamos una herramienta privada, las
posibilidades de que nuestros datos sean comprometidos son prcticamente cero.
Para ms informacin sobre anlisis estadsticos en esteganografa conviene leer los estudios publicados
por Stefan Hetzel.

Death Master, 2004 (GFDL)

Pgina 20

Introduccin a la Esteganografa

http://www.death-master.tk/

Software esteganogrfico
Actualmente existen muchos programas especializados en ocultacin de mensajes de texto mediante
esteganografa, en la mayora de los casos en archivos de imagen o sonido.
Antes de empezar a esteganografiar como locos, un par de consejos:
En primer lugar, NO considero buena idea el uso de ningn tipo de software para ocultar datos
importantes, puesto que en la esteganografa no existen las claves como en la criptografa, sino que la
clave es la tcnica usada para esteganografiar. Si usamos un software que tiene su propia tcnica,
estamos permitiendo implcitamente que cualquiera con ese software pueda recuperar nuestros datos.
Como mucho, ciertos programas incorporan la opcin de establecer una contrasea y aadir algn cifrado
sencillo a los datos... nada que un ataque de diccionario no pueda solucionar (de hecho ya hemos hablado
de Stegbreak).
En segundo lugar, al igual que ocurre con la inmensa mayora de los programas de cifrado, existe la
posibilidad (s, soy un paranoico :-P) de la existencia de backdoors que comprometan totalmente la
informacin contenida. Por ello, yo solamente considero fiable al 100% el software libre, aunque en este
caso concreto, el que el cdigo sea pblico facilita an ms a un atacante el obtener nuestra informacin.
Dicho lo cual, pongo algunos de los principales programas de esteganografa que existen en la actualidad:

Steganos Security Suite:


(De pago // Propietario ; Sistemas Windows)
http://www.steganos.com/en/sss/
mp3stego:
(Freeware // Cdigo fuente disponible ; Sistemas Windows)
http://www.petitcolas.net/fabien/steganography/mp3stego/
Hydan:
(Freeware // Cdigo fuente disponible ; Sistemas Windows // Sistemas *NIX // etc)
http://www.crazyboy.com/hydan/
OutGuess:
(Freeware // Cdigo fuente disponible ; Sistemas Windows // Sistemas *NIX // etc)
http://www.outguess.org/
Snow:
(Freeware // Cdigo fuente disponible ; Sistemas Windows // Sistemas *NIX // etc)
http://www.darkside.com.au/snow/
Gifshuffle:
(Freeware // Cdigo fuente disponible ; Sistemas Windows // Sistemas *NIX // etc)
http://www.darkside.com.au/gifshuffle/
Securengine:
(De pago // Propietario ; Sistemas Windows)
http://securengine.isecurelabs.com/
JPEG-JSTEG:
(Freeware // Cdigo fuente disponible ; Sistemas Windows // Sistemas *NIX // etc)
ftp://ftp.funet.fi/pub/crypt/steganography/jpeg-jsteg-v4.diff.gz
Nicetext:
(Freeware // Cdigo fuente disponible ; Sistemas *NIX)
http://www.ctgi.net/nicetext/

Death Master, 2004 (GFDL)

Pgina 21

Introduccin a la Esteganografa

http://www.death-master.tk/

Autopsia de un reto
Ahora vamos a ver un ejemplo que nos va a hacer comprender mucho mejor cmo funciona la
esteganografa artesanal. Para realizarlo, voy a destripar paso a paso el segundo reto de esteganografa
que publiqu en HpN, hace casi un ao. El hilo original del reto es:
http://www.sfreedom.net/~hpn/foro/index.php?act=ST&f=6&t=746
En este hilo est el texto original del reto, as como un aadido con pistas concluyentes para la
resolucin del reto que publiqu para animar a la gente a intentarlo... y no se animaron. :-(
No voy a volver a escribir las pistas (el que est interesado puede visitar el enlace) sino que paso
directamente a la resolucin del reto. En primer lugar, descargamos los dos ficheros de audio:
Fichero original: http://www.clubhackers.com/death/orig.wav
Fichero esteganografiado: http://www.clubhackers.com/death/estega.wav
Se trata del fichero voice_input que uso en el juego Counter-Strike para rerme un rato (con un script, al
pulsar una tecla reproduce el fichero por el canal de audio). Debido a las caractersticas del cdigo de
streaming de sonido del motor del juego, la calidad del sonido debe ser PCM a 8.000 Hz, 16 bit y mono a
128kbps.
NOTA: Al escucharlo os reiris. Es una broma que tengo con un amigo mo del norte... Miguel, va por ti! :-P
Sabemos que buscamos un ao. Ahora hay que dar el primer paso, para lo cual compararemos el fichero
original con el esteganografiado y buscaremos diferencias:
- Observamos que hay varias diferencias dispersas entre los grupos 00001000 y 00010000. Ya tenemos el
rango de datos.
- Observamos que siempre existe un bit modificado en la posicin 0000x010 (y en 00010010), y tambin
que nunca hay un bit modificado ms all de la posicin 0000x070, por lo que deducimos que en el rango
0000x000 - 0000x070 estamos representando un byte.
As pues, procedemos a desentraar esos 10 bytes, obteniendo los siguientes valores:
(00001000-00001070) - 01001101
(00002000-00002070) - 01000100
(00003000-00003070) - 01000011
(00004000-00004070) - 01000011
(00005000-00005070) - 01001100
(00006000-00006070) - 01011000
(00007000-00007070) - 01011000
(00008000-00008070) - 01011000
(00009000-00009070) - 01001001
(00010000-00010070) 01011000

Ahora debemos tratar de comprender qu pueden significar esos bytes, para lo cual lo mejor es empezar
convirtindolos en base decimal y hexadecimal.

Death Master, 2004 (GFDL)

Pgina 22

Introduccin a la Esteganografa

http://www.death-master.tk/

(00001000-00001070) ............... 77 / 4D ............. 01001101


(00002000-00002070) ............... 68 / 44 ............. 01000100
(00003000-00003070) ............... 67 / 43 ............. 01000011
(00004000-00004070) ............... 67 / 43 ............. 01000011
(00005000-00005070) ............... 76 / 4C ............. 01001100
(00006000-00006070) ............... 88 / 58 ............. 01011000
(00007000-00007070) ............... 88 / 58 ............. 01011000
(00008000-00008070) ............... 88 / 58 ............. 01011000
(00009000-00009070) ............... 73 / 49 ............. 01001001
(00010000-00010070) ............... 88 / 58 ............. 01011000

Ahora consultamos la tabla ASCII para ver qu letras representan esos valores:
(00001000-00001070) M............... 77 / 4D ............. 01001101
(00002000-00002070) D............... 68 / 44 ............. 01000100
(00003000-00003070) C............... 67 / 43 ............. 01000011
(00004000-00004070) C............... 67 / 43 ............. 01000011
(00005000-00005070) L............... 76 / 4C ............. 01001100
(00006000-00006070) X............... 88 / 58 ............. 01011000
(00007000-00007070) X............... 88 / 58 ............. 01011000
(00008000-00008070) X............... 88 / 58 ............. 01011000
(00009000-00009070) I............... 73 / 49 ............. 01001001
(00010000-00010070) X............... 88 / 58 ............. 01011000

MDCCLXXXIX, que como ya habris supuesto, son nmeros romanos. Concretamente 1789, ao de la
Revolucin Francesa. Reto resuelto!
Hay que tener en cuenta que todos los pasos que doy como obvios (intuir dnde hay un byte, consultar la
tabla ASCII...) en caso de esteganografa real, deben ser proporcionados por el emisor del mensaje. En
este caso se daban pistas por tratarse de un reto.
Para el que le haya gustado, en HpN queda el primer reto de esteganografa, ms sencillo que ste. ;-)

Death Master, 2004 (GFDL)

Pgina 23

Introduccin a la Esteganografa

http://www.death-master.tk/

Distribucin de este documento


Este documento se distribuye en formato PDF realizado bajo OpenOffice.org 1.1.1.
Ficheros a distribuir:
Nombre: Estega.pdf
Descripcin: Documento principal.
Nombre: Estega.pdf.sig
Descripcin: Firma digital PGP del fichero Estega.pdf realizada por el autor.
Nombre: hash.txt
Descripcin: Contiene la cadena hash MD5 de los ficheros Estega.pdf y Estega.pdf.sig.
Datos adicionales:
El hash MD5 puede resultar til para comprobar la integridad del fichero descargado, pero no es garanta de
la inalterabilidad del documento, pues puede haber sido alterado junto a la cadena de hash.
Para comprobar la completa autenticidad e inalterabilidad del fichero, usar el sistema PGP para validar el
fichero .sig (MIME/PGP) de firma. Cualquier modificacin no autorizada del documento har que la firma del
mismo no sea vlida, y sta es imposible de falsificar.

Death Master
Autentificacin:
-----BEGIN PGP MESSAGE----qANQR1DBwUwDJoT5ygJgu7ABD/9qXlqVAydntKHiOo5FO0WiKcG3iPvTWjHUTpu5
QeA2tXtUjwbE+mBvH6qvycNRP3VhchJpym+DOr7pwlQFTykYdbrCKoWG9Wpc1N4w
MqFBjcbmZaVwwMKNcfbhuaTbi3sDwnbHZe+02auv+c2GZ9kByo9MzzteU7tPP7YP
BOCojF+SrbwpBuixEFEWs33FgRUTEPcL/MMSXCmhZqucZ4WE5CCNxVBbX99U49kG
LiTzVo4ua6AAy6FifSsr+TDvLq6tJIYCHpLcOuoOjlRncv9bEmJDmAfAbkyfNWtg
STJGWOesInr3Zh0wwnR/LvwcuUI7piUfuKkf7z+U/TRy2WwY60lAfWsH7mg6IWOS
AWMss1SF0yn+KtvP9r6mVJacHmKBRKtBKXIUj62UeyujmAWqAZZYDUSJv4l91EU+
CPONqJD7nnVHIw2jlOsCRxAb0velbmDc8/d0SWdwbkVPTJxjZHpzImMIPKvBck2D
DbIb9sNfptzYMT39qmBGfAw/d6cPactyMjI+N47QEekvCWEUnYHLfUszWNxBjVEj
aiCYp+Y039B3TfP9H6KlarRbindCj9fulXFAe857R/rImRHNdgKnpwYqMDiVwcPA
kqXT5wtFSIUXApkOOtbeQAsV07vBogWAACP3mN9M74ljz5zQYOLzIHwm7ata1Ge/
cMHY5tLChAGwnNeYku0ovZbWn4HHqBMz/114JKN6GOpYPYY1JgJ5WfuXFFINlo6t
pAHt9Ae31zaTozy6XBMp9mxGcneTJOwnU6sLRc4Z3kUnBpiNPuO95y6evyHGdFEx
TfH6bk7Gh9inN9uqLI6cq8boCew8dk4KmYQqKlNLdfbhaKl3y0qlM9T9S4FXC6OX
+W22FPTudD+SVssp3mNZFkwlYs8kbKR16izlqmCmy0XJz6aLKuxycjS56+PoLq7f
NBvDybrBlVBnbvQ1zXlhBWvZP3XwUCEV63kfPg+W+5ozDm4taS7qGFqAMn9m7HpJ
IdxzgwSxhBS3YboRnbIAe4T7Z7WJ5YBRYrpmXTxT9YNxlxv4IbWnPZNeYk1303xp
cM74vZRhD9q8kodRBmrpCSCHZwmJQHzDZ4MAG1GZX02POOi//7SthGXGAT5xF5my
GjNnBj+uD6keNdRC8eoxP5n01yEPXImmFZI/rgnZLpKvTATvL9tF3sSMvkXt8V0D
4k7NHfUoPhlYbrKVtZ/h/+lsBkgAeJsWKO4NiFhcTbA0NIpM4C3SqJI3KP7eOKwx
XJ2y1sifce9GdSXRx/Xxj5oUil4Rxzy/CX9EOwwLfwZXH3c7Xg+HVV70aubxWjoC
9UTFEAsV/KqbnT13lJOvGEJ3WHnd5I/S61hIzrXGQe6SGELDsqSRVOO8B40wH7YU
AD0t/HwnQp7x9Sux9gXb9ENiZ6GJaqK/bXtBHGInU4js3u0RVIy+rbw6EHCNM6EA
usQSt6Wx+YgOzcsZVXcXttCJWFxKElnvql+Cvl9DQyhBkt6TVBJtXcGRt2F1B5H2
NU2GzzKDrN5KdslPvoUWJt/kdK5nTxAatB+cjEQZXLwgxDd2wv5SChoV0iBbGnBW
pSmaK1h9/j2T8z74RYmC7TU55cfeX0Vuozf3lCO5+PAgIjj8hhEn7Ae9U1+OmOd7
9zmVBLYInweTARwTRgRiMmm2luSnni9/c7VYD073IiTWADsRZ+1HbJPhr/0GNaCr
gy9yZq85jxpS+bRIedKEus5+2LEpC+XYIjI71vjMqTpdNBvExgG4w9F4NarHr+pX
WXeuW5aw+fO9LMc1CoJQB6gLw/qCtmwigdmR
=/28t
-----END PGP MESSAGE-----

Death Master, 2004 (GFDL)

Pgina 24

Introduccin a la Esteganografa

http://www.death-master.tk/

Licencia
Introduccin a la Esteganografa http://www.death-master.tk/ Versin 1.0
Este documento ha sido liberado por su autor bajo la licencia GNU Free Documentation License (GFDL), y
su utilizacin, copia o reproduccin queda sujeta a los trminos de la citada licencia, que puede ser
consultada en el siguiente sitio web:
GNU Free Documentation License: http://www.gnu.org/copyleft/fdl.html
GFDL Version 1.2, November 2002
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.

Copyright (c) 2004 Death Master


Permission is granted to copy, distribute and/or modify this document under the terms of the GNU
Free Documentation License, Version 1.2 or any later version published by the Free Software
Foundation; with the Invariant Sections being Distribucin de este documento and Licencia, no
Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled
"GNU Free Documentation License".
Cualquier copia, modificacin, distribucin o utilizacin en general de este documento debe respetar la
autora original del mismo, correspondiente a Death Master.
Introduction to Steganography http://www.death-master.tk/ Version 1.0
This document has been freed by its author under the license GNU Free Documentation License (GFDL),
and its use, copy or reproduction is subject to the terms of the mentioned license that can be consulted in the
following website:
GNU Free Documentation License: http://www.gnu.org/copyleft/fdl.html
GFDL Version 1.2, November 2002
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.

Copyright (c) 2004 Death Master


Permission is granted to copy, distribute and/or modify this document under the terms of the GNU
Free Documentation License, Version 1.2 or any later version published by the Free Software
Foundation; with the Invariant Sections being Distribucin de este documento and Licencia, no
Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled
"GNU Free Documentation License".
Any copy, modification, distribution or general purpose use of this document should respect the original
responsibility of it, corresponding to Death Master.

* End Of File *

Death Master, 2004 (GFDL)

Pgina 25

También podría gustarte