En apasionante mundo de la esteganografía

En el post de hoy, vamos a hablar sobre la esteganografía. Este es un tema que me gusta mucho por lo que lo tocaremos de vez en cuando en el blog.

La palabra esteganografía procede del griego esteganos (oculto) y graphos (escritura). La esteganografía es el estudio y uso de las técnicas mediante las cuales se oculta un mensaje u objecto dentro de otro, de modo que no se perciba su existencia.

De esta forma conseguiremos en un canal publico o de múltiple acceso un método de ocultación de mensajes, de modo que la comunicación dentro del canal es oculta e inadvertida para el resto de los observadores.

A diferencia de la criptografía, la cual cifra el mensaje para que no se pueda leer sin la clave, la esteganografía solo oculta el mensaje a los observadores. Sin embargo, la criptografía y la esteganografía pueden complementarse, de modo que el nivel de seguridad de la información sea mayor.

Esta técnica es casi tan antigua como la escritura, tenemos múltiples referencias a lo largo de la historia, por ejemplo, en la segunda guerra mundial, era común utilizar el sistema Null Cipher, el cual consiste en escribir un mensaje normal y elegir cierta parte del mensaje para ocultar un mensaje real, como por ejemplo la primera letra de cada palabra.

Como viene ocurriendo ya desde hace ya muchos años, al igual que existen métodos antiguos para la gestión de la información, actualmente se utilizan con tecnologías digitales. La esteganografía moderna, se utiliza sobre medios digitales, ya sean archivos de texto, archivos de audio, imágenes, vídeo, archivos ejecutables…

En casi cualquier objeto digital se puede ocultar un mensaje secreto, pero uno de los objetos más utilizados son los archivos multimedia, ya que, al poseer un tamaño mayor, se pueden utilizar mensajes mayores sin deteriorar el objecto principal.

Los algoritmos utilizados en la esteganografía se pueden clasificar en dos tipos:

  • Esteganografía pura: este algoritmo es el más sencillo, el cual el cual solo consiste en la incorporación del mensaje u objecto dentro del objecto portador. Por lo tanto, la seguridad solo radica en la ocultación del mensaje.
  • Esteganografía de clave secreta: este algoritmo utiliza una clave secreta, normalmente conocida como estego-clave. Esta clave no funciona como en los algoritmos de cifrado, es decir no cifra el mensaje, pero si que nos permite parametrizar como se oculta el mensaje u objecto dentro del portador, por ejemplo, puede indicar el lugar dentro del portador donde se va a comenzar a ocultar el mensaje u objecto. La seguridad radica pues en que todos pueden conocer el algoritmo, pero solo el emisor y el receptor podrán leer el objecto oculto.

Existen varias técnicas digitales, pero hoy veremos la técnica más usada y popular para la esteganografía, la técnica de sustitución del bit menos significativo. Consiste en hacer uso del bit menos significativo de los pixeles de una imagen y alterarlo para ocultar el mensaje. Con esta técnica la distorsión de la imagen se mantiene mínima mientras que se esconde el mensaje a lo largo de los pixeles. Normalmente esta técnica funciona mejor cuando la imagen es muy grande y posee mucha información, como un gran rango dinámico, por ejemplo.

Lo mejor de esta técnica es que al solamente alterar los bits de los pixeles de la imagen , el tamaño de dicha imagen no aumente tras aplicar esta técnica de esteganografía. Pero no todo iba a ser bonito, en este caso la imagen debe ser de un tamaño mayor que el mensaje a contener. De no disponer de imágenes más grandes, entonces podríamos utilizar los dos bits menos significativos de un pixel, pero entonces igual ya empieza a apreciarse un deterioro en la imagen.

Hagamos la prueba, vamos a utilizar esteganografía en imágenes para ocultar un mensaje. Si queremos ocultar un mensaje en una imagen y a su vez hacerla pública en las redes sociales, por ejemplo, una muy buena opción sería utilizar memes. En el caso de detección de esteganografía en imágenes nos adentraremos otro día, por el momento vamos a realizar una prueba sencilla con un meme.

En este caso el meme seleccionado es el siguiente:

Nota: creo que es muy adecuado tratándose de este tema :D

Bien, la imagen original ocupa 33,4 KB


El programa que vamos a utilizar para realizar el proceso de esteganografía será OpenStego. El único inconveniente que tiene este programa de esteganografía es que necesita Java para funcionar.

Esta es la interfaz del programa:

Para ocultar un fichero de texto, debemos de indicar los siguientes parámetros y la imagen sobre la que se va a ocultar. El proceso es sencillo para el ocultamiento puro, pero el programa además nos permite proporcionar una estego-clave:

Cuando lo tengamos todo listo presionamos el botón Hide Data y listo. El resultado será una imagen con formato .bmp que es un formato que indica que es una imagen de mapa de bits. Típicamente este formato está muy ligado a la esteganografía, por lo que es una pista de que esa imagen puede ocultar información.

A continuación, se muestran las siguientes sin y con esteganografía:

Sin esteganografía


Con esteganografía

Como podemos observar, la diferencia es nula. Ahora es vuestro turno para convertiros en espías modernos ;)

La esteganografía es un campo muy interesante, por lo que intentaré escribir más sobre este tema en futuras entradas del blog.

Un saludo a todos :)

 

Comentarios

Entradas populares de este blog

Realizando hash con PowerShell

Cracking hashes con Hashcat - 4

Cracking hashes con Hashcat - 2