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
Tinta invisible

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

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
Polygraphi (1516) -Tritheim Johannes Heidenberg Segunda publicacin relacionada con este tema de Tritheim.

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

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
La cryptographie militaire (1883) - Auguste Kerckhoffs

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

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 0012A040 ++++++++ ........ ======== 0012A040 0012A050 ++++++++ ........ ======== 0012A050 0A ++ .. == 0A 0E ++ .. == 0E 52 ++ .. == 52 07 ++ .. == 07 2A ++ .. == 2A A5 ++ .. == A5 0A ++ .. == 0A 2C ++ .. == 2C D6 ++ .. == D6 0E ++ .. == 0E 33 ++ .. == 33 3F ++ .. == 3F 05 ++ .. == 05 45 ++ .. == 45 93 ++ .. == 93 05 ++ .. == 05 44 ++ .. == 44 CA ++ .. == CA 0A ++ .. == 0A 50 ++ .. == 50 1E ++ .. == 1E 0B ++ .. == 0B 1F ++ .. == 1F 60 ++ .. == 60 0B ++ .. == 0B 1E ++ .. == 1E 88 ++ .. == 88 11 ++ .. == 11 26 ++ .. == 26 0D ++ .. == 0D 12 ++ .. == 12 00 ++ .. == 00 1D ++ .. == 1D 13 ++ .. == 13 00 ++ .. == 00 27 ++ .. == 27 1A ++ .. == 1A 00 ++ .. == 00 0C ++ .. == 0C 0E ++ .. == 0E 1A ++ .. == 1A 1E ++ .. == 1E 11 ++ .. == 11 3D ++ .. == 3D 28 ++ .. == 28 17 ++ .1 == 18 4D ++ .1 == 4E 43 ++ .1 == 44 ................

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

.*,3EDP..&....=N R..?...`...'..(c

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 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........... ................ 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