Está en la página 1de 8

SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.

PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

1. Introducción.

La  esteganografía  es  el  arte   de  escribir  de  forma  oculta.  Esta   palabra,  de  origen  griego, 
proviene de los términos esteganos (secreto, oculto) y graphos (escritura), es decir, escritura oculta. 
La esteganografía y la criptografía persiguen el mismo fin: enviar mensajes de forma secreta, pero 
ambas disciplinas son diferentes. En la criptografía se trata de ocultar el significado de un mensaje, 
mientras que en la esteganografía se trata de ocultar el mensaje en sí, que además puede estar cifrado, 
o no.

El uso de la esteganografía data de hace miles de años, y ya Herodoto (485 a.c. ­ 425 a.c.) 
narra   cómo   Demeratus,  rey   de  Esparta  utilizó  la   esteganografía  para  avisara  a  su   ciudad  de  un 
próximo ataque de Xerxes, rey de los persas. En aquellos tiempos se escribía sobre tablillas enceradas, 
marcándolas con un punzón... Demeratus hizo grabar un mensaje directamente en la madera de las 
tablillas y luego las hizo cubrir de cera, de manera que parecieran “tablas en blanco” sin utilizar...

Desde la antigüedad hasta hoy, la esteganografía se ha utilizado constantemente, y el único 
límite que ha tenido es el de la imaginación humana... ejemplos por todos conocidos son la tinta 
invisible, los mensajes escondidos en dobles fondos, o los microfilms escondidos en el tubo de pasta 
de dientes de un super­espía...

Hoy, la esteganografía cobra sentido de nuevo, ya que es posible ocultar información relevante 
en ficheros que aparentemente tienen sólo otros contenidos, como los ficheros gráficos o de sonido. 
Pero no  nos quedemos aquí, expliquemos por qué es esto posible, veamos cómo se puede  hacer 
teóricamente y pongámoslo en la práctica...

2. Esteganografía digital.

Hay gran variedad de tipos de ficheros de ordenador, pero en el fondo, el contenido de todos 
ellos es el mismo: una sucesión de bits (ceros y unos). Las diferencias que existen entre los ficheros 
hay que verlas desde un punto de vista más alto, desde un nivel de abstracción mayor y radica en el 
significado que contienen los bits.

Los   distintos   tipos   de   ficheros   organizan   su   contenido   de   forma   diferente,   para   poder 
almacenar un tipo de información distinta... así tenemos ficheros que contienen texto, imágenes, datos 
de contabilidad, documentos complejos, sonido, hojas de cálculo, vídeo, planos, páginas de Internet, 
etc... Hoy en día se puede guardar cualquier tipo de información en un fichero. 

La esteganografía digital trata de esconder los datos de un fichero (bits) dentro de otro fichero 
(que contiene más bits). O sea, que de lo que trata esta disciplina es de “esconder bits dentro de un 
montón de bits”. Pero claro, si modificamos un fichero añadiéndole más bits escondidos... estaremos 

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 1.


SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.
PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

modificando el contenido del fichero y la información que éste almacena... y ese cambio será visible... 
¿o quizás no?

La   esteganografía  moderna   trata   de   esconder  bits   dentro   de  un   fichero,  pero   sin   que  un 
observador que disponga del fichero final pueda sospechar que dicho fichero, además del significado 
evidente que contiene, almacena otra información oculta...

3. ¿Cómo se puede ocultar una serie de bits en otra serie de bits?

El tipo de fichero que se desea esconder no es relevante en absoluto, puede ser cualquiera. Nos 
da igual que sea un pdf, un ejecutable, o un archivo de sonido... ¡al fin y al cabo se esconderán los bits 
que lo componen! Otra cuestión muy diferente es de qué tipo es el fichero “anfitrión”, el que va a 
guardar la información secreta... ya que al hacerlo no debemos destruir el contenido original del 
fichero.

La cuestión es ¿cómo podemos ocultar una serie de bits en un fichero? Tenemos dos opciones:

1. Añadir  los   bits  del  fichero  a   ocultar  a  un  fichero  ya existente.  Esta  opción  supone 
aumentar el tamaño del fichero ocultador, sumándole el tamaño del fichero oculto.

Para hacerlo, si no queremos que el engaño sea visible, debemos conseguir que el fichero 
ocultador siga pareciendo normal. Por lo tanto, sólo podremos insertar bits ocultos en 
huecos   del   fichero   ocultador.   Los   huecos   pueden   ser   creados   artificialmente...   por 
ejemplo, en un fichero ejecutable podemos abrir un hueco de 100 bytes y antes del hueco 
colocar un salto incondicional al byte justamente posterior al hueco. Pero no todos los 
tipos de ficheros admiten huecos...

Esta   técnica  se   usa  sobre   todo   con  ficheros   ejecutables.  Sin  embargo,   hay   que   tener 
cuidado  de   que  el   porcentaje   de  huecos  no   sea  muy   elevado,  ya   que   podría  resultar 
evidente que el tamaño del fichero es demasiado grande para lo que hace el programa...

Este sistema tiene como gran desventaja que los huecos artificiales en el código pueden ser 
fácilmente descubiertos por un analizador de código apropiado que los detecte, con lo que 
el sistema no es muy seguro.

2. Modificar los bits de un fichero ya existente, en función de los bits a ocultar, de forma 
que después podamos recuperar los bits ocultos. En términos teleco­frikis, podríamos decir 
que es como “modular” un fichero portador con un fichero de datos.

La desventaja de este sistema es obvia: modifica el contenido del fichero original. Pero si 
lo pensamos bien, eso quizás no sea un problema...

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 2.


SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.
PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

Este sistema se utiliza con ficheros de imágenes (mapas de bits) o con ficheros de sonido. 
En estos tipos de archivo, se almacenan digitalizados valores que en sí son analógicos. De 
tal manera, por ejemplo, que un fichero de mapa de bits almacena, para cada punto de la 
pantalla, un valor numérico que representa una referencia del color exacto de dicho punto. 
En el caso del sonido, almacenan, para cada instante, el valor numérico que representa el 
tono exacto del sonido.

Como   un   fichero   de   imágenes   puede   codificar   millones   de   colores,   si   variamos   la 


referencia del color de un pixel en una unidad, entre más de 17 millones de valores, la 
diferencia de color es inapreciable por el ojo humano. Lo mismo ocurre con los ficehros 
de sonido: Si en un instante variamos la referencia del tono de sonido en una unidad, frente 
a los millones de valores posibles, la diferencia del tono no será apreciable por el oído 
humano.

Es decir, por este sistema, se consigue que el fichero resultante  aparentemente  no tenga 


nada raro, es un fichero perfectamente normal, sin nada destacable. Sólo si un atacante 
dispusiera  de  la   imagen  original,  además  de  la   imagen  con  el   archivo   oculto,  podría 
detectar los cambios a nivel binario.

Pero una de las máximas de este sistema es que los ficheros “ocultadores” originales 
NUNCA deben ser transmitidos y es mejor ni siquiera guardar copia de ellos. Si no se 
tiene   la   imagen   original   para   compararla   con   la   imagen   esteganografiada...   ¡Es   casi 
imposible detectar que esta última oculta algo!

La única debilidad de este sistema radica en la posibilidad de que el atacante conozca el 
algoritmo esteganográfico. Si así fuera, podría ejecutar el algoritmo inverso sobre archivos 
de   imagen   o   de   sonido,   en   busca   de   “información  secreta”.   Si   bien   este   ataque   es 
estadísticamente  muy   complejo   si   el   algoritmo   esteganografiador   es   suficientemente 
bueno, ya que las posibilidades de ocultación son enormes.

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 3.


SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.
PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

Veamos un resumen de todo lo explicado en la siguiente tabla:

TIPOS DE ESTEGANOGRAFÍA DIGITAL.
Modificar los bits de un fichero ya  
Añadir los bits del fichero a ocultar a 
existente, en función de los bits a 
un fichero ya existente.
ocultar.
➔ Se puede ocultar cualquier tipo de fichero.
➔ Los ficheros a ocultar pueden ser previamente encriptados.
➔ Es posible la esteganografía recursiva (un fichero oculto dentro de un fichero, que a su 
Características vez está oculto  dentro de un fichero, que a su vez está oculto  dentro de un fichero...)
➔ Como ficheros ocultadores se suelen  ➔ Como   ficheros   ocultadores   se   suelen 
usar  ejecutables. usar  imágenes y sonido.

➔ El  fichero resultante es  perfectamente 
normal, lógico y coherente.
➔ No  se  aumenta  el  tamaño  del  fichero 
ocultador.
➔ Sin   conocer   el   algoritmo 
esteganografiador, es casi imposible ni 
No   se   modifica   el   contenido   del 
Ventajas

siquiera   detectar   que   el   fichero 
fichero ocultador
resultante esconde algo.
➔ Conociendo el algoritmo ocultador, es 
estadísticamente muy difícil obtener el 
fichero   oculto.   (Si   el   algoritmo   está 
bien diseñado).
➔ Es bastante resistente frente a ataques.
➔ Si un atacante consiguiera el fichero ocultador original y el fichero ocultador con la 
información añadida, podría obtener la información oculta fácilmente.
➔ Hay   que   crear   huecos   artificiales 
donde   esconder   la   información 
Inconvenientes oculta.
➔ Aumenta   el   tamaño   del   fichero  ➔ Modifica   el   contenido   original   del 
ocultador. fichero ocultador.
➔ Es fácilmente detectable. (Se pueden 
encontrar los trozos de código inútil).
➔ Es débil frente a ataques.

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 4.


SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.
PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

4. La Esteganografía Digital en la práctica

Todo esto es muy bonito y muy interesante... ¿pero cómo lo podemos aplicar? Evidentemente 
hay   dos   maneras...   Puedes  implementar   tus   propios   algoritmos   esteganográficos   para   ocultar   la 
información (pero este recurso está limitado a unos pocos...), o también puedes utilizar programas 
esteganográficos ya existentes.

Voy a explicar aquí la utilización de un programa de esteganografía sumamente sencillo. Se 
llama  steghide  y   funciona  bajo   linux.   Hay   otras  aplicaciones  para  linux  y   para  las  plataformas 
Windows... Al final encontrarás enlaces a algunas de ellas.

Steghide es un paquete disponible en el repositorio de Debian Etch. Se instala con el comando:
prompt# apt­get install steghide

Una vez hecho esto, ya estará disponible como un comando más del sistema.

Para hacer una demostración, he escogido varios ficheros:

✔ He elegido ocultar la hoja de datos técnicos del punto de acceso Linksys WAP54G, en 
formato pdf. Es el fichero WPA54G.pdf.

✔ Como  fichero   “ocultador”,  he   elegido  una   preciosa  foto   de   la   escultura   que   hay   en 
Córodba en mitad del río, llamada estatua.jpg.

✔ He  ocultado  la  hoja   de cálculo  en  la  imagen,  usando steghide,  obteniendo   el  fichero 
esteganografiado estatua2.jpg. Aparentemente contiene sólo la fotografía de la estatua en 
el río, aunque internamente incluye también el fichero pdf.

Para esteganografiar, hay que ejecutar el comando steghide indicando el archivo a ocultar, el 
archivo ocultador y el nombre del archivo esteganografiado resultante. Al ejecutar, el programa pide 
una contraseña (a la que llama salvoconducto).
prompt$   steghide   embed   ­ef   WAP54G.pdf   ­cf   estatua.jpg   ­sf 
estatua2.jpg

Para  invertir   el   proceso,  hay  que  ejecutar  el  comando  steghide,  indicando  el  nombre  del 
archivo esteganografiado y un nombre del archivo para el “secreto” extraído. Al ejecutar, el programa 
pide la contraseña. Si no es correcta, no extraerá la información oculta.
prompt$ steghide extract ­sf estatua2.jpg ­xf WAP54G.pdf

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 5.


SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.
PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

A continuación muestro las consolas relativas a los dos procesos:

Pantalla­1: Proceso de “esteganografiar”: oculta el fichero “WPA54G.pdf” dentro del fichero “estatua.jpg”, 
produciendo el fichero “estatua2.jpg”. (Se usó como contraseña “estudiaenlinea”).

Pantalla­2: Proceso de “desesteganografiar”: Obtiene el fichero “WAP54G.pdf” a partir del fichero “estatua2.jpg”. (Se 
usó como contraseña “estudiaenlinea”).

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 6.


SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.
PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

Y por si quedara duda, os muestro las dos imágenes, la original y la que tiene el fichero 
oculto... ¿Cuál es cuál?

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 7.


SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.
PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

5. Archivos incluidos en esta práctica.

Adjunto a este documento incluyo los siguientes ficheros:

✔ WAP54G.pdf. Es el fichero pdf que se oculta.

✔ estatua.jpg. Es el fichero “portador”, antes de incluir la información oculta.

✔ estatua2.jpg. Es el fichero esteganografiado, es decir es la imagen con el fichero oculto 
incluido. A partir de él se puede obtener el fichero WAP54G.pdf ejecutando el comando 
descrito anteriormente y usando como contraseña “estudiaenlinea”.

6. Enlaces interesantes sobre el tema.

✔  http://steghide.sourceforge.net/  Página oficial de Seteghide. (In English).

✔  http://steghide.sourceforge.net/documentation/manpage_es.php   Documentación   de 


Setghide. (En castellano).

✔  http://www.fbi.gov/hq/lab/fsc/backissu/july2004/research/2004_03_research01.htm  
Impresionante documento del FBI que explica la esteganografía en general y la digital en 
particular. Muy bueno. (In English).

✔  http://www.nakasoft.net/_about.htm   Página   oficial   de   NakaSoft,   creadores   de  Xiao  


Steganography, aplicación esteganográfica para Windows. Es Freeware. (En castellano).

•  http://www.nakasoft.net/xiao/esp/  Página de Xiao Steganography. Incluye el programa 
y vídeos explicativos.

✔  http://lifehacker.com/software/encryption/hide­files­in­jpeg­images­207905.php   Explica 
cómo hacer esteganografía con WinRar, si bien ,se consiguen ficheros muy débiles frente 
a ataques. (In English).

✔  http://openstego.sourceforge.net/  Página principal de OpenStego, utilidad esteganográfica 
para Linux y Windows. Es Freeware. (In English).

•  http://www.dragonjar.org/openstego­solucion­libre­para­esteganografia.xhtml   Tutorial 
de OpenStego. (En castellano).

✔  http://www.invisiblesecrets.com/   Página principal del software “Invisible Secrets”, para 
plataformas Windows. Es de pago. (In English).

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 8.

También podría gustarte