Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Ciberseguridad / Esteganografía y encriptación de imágenes en Linux

Esteganografía y encriptación de imágenes en Linux

Autor jc mouse jueves, agosto 22, 2019

En un post anterior conocimos una herramienta Open Source con un conjunto de herramientas para el trabajo con imágenes en Linux (y otros sistemas operativos), dicha utilidad se llama ImageMagick. En dicho post conocimos solo una pequeñisima parte del poder total de ImageMagick, pues bien, en esta oportunidad conoceremos dos operadores que tienen que ver con la ciberseguridad, estos son la esteganografia y la encriptación de imágenes.

ESTEGANOGRAFIA

La esteganografia es el proceso por el cual se ocultan mensajes u objetos, dentro de otros objetos de modo que no se perciba tal hecho. Es decir, el mensaje permanece oculto en el objeto que lo contiene pero este se observara idéntico al objeto original utilizado para ocultar el mensaje.

Ejemplo:

Lo primero que necesitamos es una imagen con un mensaje a ocultar. Crearemos una con ImageMagick:

$ convert -gravity center -size 500x120 \
label:'El problema de AYUDAR mucho a la GENTE\nes que el día que dejas de hacerlo\nEL MALO eres tu.' \
mensaje.png

La imagen que creamos tiene una dimensión de 500×120 (OJO: dato importante) y esta con formato PNG, el archivo creado se llama «mensaje.png».

mensaje secreto

Ahora necesitamos una imagen que sirva de contenedor, no se debe usar imágenes JPG o GIF u otra con perdida de calidad, de preferencia utiliza archivos PNG.

Para este ejemplo utilizaremos una imagen con una dimensión de 500×500 en formato PNG que se llama «KoeNoKatachi.png». Observemos que tiene un peso de 395.8 Kb, cuando procedamos a ocultar el mensaje, este aumentara de tamaño.

Koe No Katachi anime

Ya que tenemos las dos imágenes listas, procedemos a ocultar el mensaje con el comando –stegano:

$ composite mensaje.png KoeNoKatachi.png -stegano +6+9 mensajeoculto.png

donde +6+9 es un offset que sumado a las dimensiones del mensaje se convertirá en la clave para leer el mensaje oculto. Tu puedes colocar el que te guste +7+12, +1+100, etc.

Antes de leer el mensaje oculto, veamos como se altero nuestra imagen contenedor al agregar la imagen con el mensaje, para esto utilizamos:

$ compare KoeNoKatachi.png mensajeoculto.png comparacionimagenes.png

La imagen resultante nos muestra como nuestro mensaje se distribuyo por toda la imagen del contenedor y esto es así porque utilizamos una imagen relativamente pequeña en comparación con las dimensiones de la imagen del mensaje.

comparación de imágenes

Si tanto el mensaje como el tamaño de la imagen fueran más pequeñas en comparación con el contenedor, este se vería menos afectado como se ve en la imagen de arriba donde comparamos mensajes. Al contrario si la imagen contenedor es más pequeña que la imagen del mensaje, la imagen resultante se distorsionara y el objetivo de la esteganografia se perderá.

Ya para terminar esta sección, mostramos el comando para leer el mensaje oculto, este es:

$ convert -size 500x120+6+9 stegano:mensajeoculto.png mensajerecuperado.png

donde podemos ver que las dimensiones del mensaje oculto + el offset que usamos para ocultar el mensaje «500×120+6+9», funcionan como la llave para extraerlo.

esteganografia ubuntu

ENCRIPTACIÓN

La encriptación al igual que la esteganografia también intenta ocultar mensajes u objetos pera la gran diferencia es que la criptografía solo cifra los mensajes, manteniéndolos visibles pero irreconocibles, es decir, aparecen como una secuencia de caracteres ilegibles; para ver su contenido original es necesario conocer una clave.

Los operadores «-encipher» y «-decipher» son los que cifrarán y descifraran respectivamente los datos de la imagen. Al igual que con la esteganografia se recomienda no usar formatos de imagen JPG o Gif o cualquier otro con perdida de calidad.

$ convert KoeNoKatachi.png -encipher palabraclave.txt -depth 8 png24:mensajeoculto.png

Encriptacion de imágenes en linux

donde:

  • -encipher: es el comando para encriptar la imagen
  • palabraclave.txt: Es un archivo con una «palabra clave» dentro.
  • -depth: 8 La imagen encriptada se guarda en un formato de archivo de imagen de 8 bits
  • png24: Garantizar que el resultado no sea una paleta o una imagen «png8:»

La imagen resultante de la encriptación es irreconocible y solo  quien conozca la «palabra clave» original podrá restaurar los datos de la imagen.

$ convert mensajeoculto.png -decipher  palabraclave.txt -depth 8 png24:mensajerecuperado.png

enjoy!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Cargar fuente TTF

Cargar fuente TTF

Necesitamos: Android Studio 2 tipos de fuente TTF Agregar Archivo de fuente al proyecto Paso 1: Crear carpeta assets Cli...

MVC Java y Base de Datos Tutorial

MVC Java y Base de Datos Tutorial

En post pasados [Ejemplo práctico de MVC java Swing con Netbeans, 3 en raya java con MVC y Netbeans , MVC: Modelo, Vista...

BootChess – Ajedrez en 487 bytes

BootChess – Ajedrez en 487 bytes

Desde que se crearon los videojuegos para computadora, el espacio de almacenamiento y memoria han sido siempre un proble...

ANSI: Colorear consola de salida de Netbeans

ANSI: Colorear consola de salida de Netbeans

Cuando realizamos proyectos java desde Netbeans, usamos System.out.println para imprimir datos en consola (para depurar,...

native2ascii: Convertir caracteres Non-Unicode a Unicode

native2ascii: Convertir caracteres Non-Unicode a Unicode

El JDK (Java Development Kit) tra una herramienta llamada native2ascii la cual permite convertir un fichero de una codif...

Creación de GUI con Matlab GUIDE

Creación de GUI con Matlab GUIDE

En este videotutorial se vera la creación de Interfaces Gráficas de Usuario (GUI) utilizando MatLab GUIDE herramienta vi...

Comparte lo que sabes

Categorias

Últimas entradas

Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...

Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...

En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...

Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...

Herramientas

Generador de Enlaces a Whatsapp