La esteganografía es el arte o el estudio y aplicación de técnicas que permiten ocultar mensajes dentro de otros, y solo mediante métodos de lectura o software específicos pueda revelarse el contenido oculto. En el caso de la criptografía informática, por ejemplo podemos ocultar un mensaje en una imagen y quien vea la imagen no sabrá que lleva un mensaje oculto.
La esteganografía es muy utilizada en seguridad informática, se utiliza para ocultar información que se envía por internet y es utilizada por organizaciones gubernamentales, empresas, organizaciones criminales.
La estenografía no solo se trata de ocultar un mensaje en una imagen sino que puede ser cualquier elemento un vídeo un audio, un código, que solo podrá descifrar quien sepa que lleva un mensaje oculto o bien aplique algunas técnicas para ver si existe algún mensaje oculto, mediante algunas de las técnicas que veremos en este tutorial.
Tipos de esteganografía y técnicas de criptografía
Esteganografía Clásica es una técnica que no utiliza ninguna seguridad, por tanto cualquier persona puede leer el mensaje oculto. Las técnicas son sencillas para aplicarlas.
Para este tutorial utilizaremos Linux donde tenemos el comando cat que nos permite concatenar varios archivos, el archivo resultante puede verse después en cualquier sistema operativo. Por ejemplo crearemos un archivo de texto con un mensaje que vamos a ocultar
Luego buscamos una imagen para ocultar el mensaje:
A continuación abrimos una ventana de terminal y vamos al directorio donde se encuentran ambos archivos y escribimos el siguiente comando:
cat archivos_a_adjuntar >> archivo_portador
cat texto.txt >> foto.jpgEl resultado será la misma foto sin ninguna modificación, pero con el archivo oculto. Esta técnica no tiene ninguna seguridad.
Ahora para revelar el mensaje podemos aplicar algunas de las siguiente técnicas.
Una es utilizar el comando strings que muestra cadenas de caracteres imprimibles que contengan los archivos se utiliza para buscar textos en archivos.
Desde la ventana de terminal escribimos el comando:
strings foto.jpgEl resultado junto con caracteres inteligibles será el mensaje:
También podemos utilizar un visor o editor de archivos en formato hexadecimales para mirar dentro del código y ver que podemos encontrar. Podemos instalar los software Bless Editor o Ghex que vienen en los repositorios de Linux mediante el comando:
sudo apt-get install blessLuego abrimos desde el programa el archivo foto.jpg y podremos analizar el código hexadecimal y ver el mensaje:
Otro ejemplo que podemos hacer con el comando cat es el siguiente:
Supongamos que tenemos una planilla de cálculos con datos contable y un informe que queremos ocultarlo en una imagen, lo que haremos será primero comprimir los archivos a ocultar.
A continuación desde la ventana de terminal escribimos el siguiente comando:
cat documentos.zip >> mona.jpgAsí adjuntaremos el archivo zip en la imagen, la imagen se ve igual y no muestra ninguna modificación, salvo la diferencia de tamaño la original es 26 kb y la que tiene archivos ocultos 39 kb.
A continuación haremos el proceso inverso, es decir, obtener los archivos ocultos, para ellos descomprimimos cualquier archivo zip que contenga la imagen mediante el siguiente comando:
unzip mona.jpg
Ahora podemos añadir mas seguridad si utilizamos una contraseña al comprimir:
En este caso tendremos un problema ya que unzip no puede descomprimir un archivo con contraseña. Podemos utilizar otro software como 7zip, lo podemos instalar mediante los siguiente comandos:
sudo apt-get install p7zipLuego utilizando este software podremos descomprimir si conocemos la clave, escribimos el siguiente comando:
7za e mona.jpg
Steghide - Aplicación para esteganografía
Steghide permite ocultar archivos de datos en imágenes o archivos de audio. Sus características incluyen revisión automática se pueden adjuntar datos a archivos de tipo jpg o wav.
Es multiplataforma se puede descargar desde su pagina oficial o podemos instalarlo desde los repositorios de Linux mediante el siguiente comando:
sudo apt-get install steghideEste programa no tiene interfaces gráficas, por lo que se ejecuta en forma de comandos, supongamos tenemos varios archivos pdf y una imagen. Lo comprimimos en archivo zip. La imagen desde tener una tamaño mucho mas grande que el archivo a adjuntar.
A continuación aplicamos el siguiente comando:
steghide embed -ef viajes.zip -cf playas.jpgDonde significa esto:
- embed es adjuntar
- -ef el archivo a ocultar
- -cfr el archivo de imagen
Una vez ejecutado nos solicita asignar un salvoconducto que es un texto o una contraseña para proteger el archivo.
Luego si deseamos extraer los datos del archivo utilizamos el siguiente comando:
steghide extract -sf playas.jpgNos solicitará nuevamente la clave para que nos muestre el archivo que ocultamos, recordemos que el archivo viajes.zip también tiene clave.
SilentEyes - Aplicación para esteganografía
SilentEye es una aplicación multiplataforma para ocultar archivos dentro de imágenes con técnicas de estenografía. Proporciona una interfaz gráfica y un poderoso algoritmo para esteganografía y criptografía proceso, puede extender sus funcionalidades mediante el uso de un sistema de plugins. Podemos descargarSilentEyesdesde la pagina oficial según el sistema operativo que utilicemos.
Una vez instalado abrimos el programa y deberemos abrir la imagen que utilizaremos para ocultar información. Por ejemplo:
Aquí podemos aplicar Encode para encriptar y decode para descodificar la imagen. Aplicaremos primero la codificación de la siguiente manera, vamos al botón Encode.
Aquí indicamos la calidad de la imagen resultante, la carpeta destino de la imagen resultante y podemos escribir un mensaje o adjuntar un archivo, SilentEyes nos calcula que cantidad de bits u octetos tenemos libre para adjuntar archivos dentro de la imagen. Podemos añadirle clave si seleccionamos la opción Enable encryption.
Es importante tener en cuenta que los datos se ocultan dentro de un archivo deben ser en conjunto de un tamaño considerable menor que el tamaño del archivo de transporte.
El resultado será la misma imagen en formato bmp, pero con los datos ocultos añadidos.
SilentEye es muy sencillo ya que permite arrastrar y soltar la imagen de codificación y decodificación, la ventana de codificación le permite elegir el formato de codificación, la calidad de imagen de salida, los colores de píxeles utilizados y otros ajustes.
Aplicaciones esteganografía para Android
Existen varios software que podemos utilizar para realizar esteganografía desde nuestro dispositivo Android donde tomando una foto o un imagen que tengamos en el teléfono podemos adjuntar un mensaje o un archivo en forma oculta. Algunas herramientas son Steganography Master.
Steganography Master permite codificar un mensaje en una imagen y luego guardarlo o enviarlo a otra persona. El mensaje sólo puede ser decodificado utilizando la misma aplicación, podemos añadirle una contraseña al la imagen resultado para que solo quien conozca la clave pueda decodificar la imagen y ver el mensaje original.
Website para realizar esteganografía
Una herramienta online muy interesante para crear esteganografía es http://pixelator.io, podemos tanto codificar como decodificar en forma online.
Añadimos primero la imagen que será Cover o encubierta la que se ve y luego los archivo o una carpeta completa para codificar.
Hasta aquí hemos visto algunas técnicas sencillas de esteganografía, podemos utilizar estas herramientas para enviar información a nuestros contactos de una forma más segura sin que nadie sospeche que dentro de una imagen o un vídeo en realidad hay otros archivos.
Me ha encantado este tutorial Sergio. Gracias por asiduamente ir colaborando temas de seguridad. son muy buenos.