Páginas

08 enero, 2014

Firmar una fotografía digitalmente en sus metadatos

Seguramente todos conocemos la forma de firmar fotografías con una marca de agua digital ya sea central, en algún lateral de la imagen o de alguna otra forma.
Pero a parte de este tipo de firmas, nunca está de más firmarlas digitalmente en sus metadata. Hace ya un tiempo que había hablado de los metadatos y de la importancia que conllevan.

Pues bien, existen múltiples manera de poder firmar estos ficheros, aquí expondré tres posibles formas de hacerlo, cada una de ellas totalmente válidas y correctas.

Como ya sabremos los metadatos más comunes en una imagen son denominados EXIF (Exchangeable Image File Format) los cuales pueden contener multitud de información relevante a los parámetros fotográficos en los que a sido tomada una fotografía (apertura de diafragma, velocidad de obturación, sensibilidad de película = valor ISO, distancia focal, etc.), como también información más general, así como fecha y hora, autor de la obra, comentarios, etc.

Estos metadatos podremos visualizarlo de forma manual y tradicional examinando las propiedades del fichero o si queremos verlos de forma más sofisticada y "profesional" podemos recurrir a estas tools gratuitas: Exif Reader y MetaStripper.

Método 1: En la propia Cámara fotográfica.

Una de los métodos es hacerlo a través de la propia cámara fotográfica si nos permite esta característica. En mi caso, dispongo de una 'Canon 550D' la cual si me lo permite, por lo que adjuntaré unas imágenes de los pasos a seguir.

Los menús entre las mismas marcas comerciales suelen ser similares, dependiendo la versión de firmware que se tenga y de más.

[1] - Con la cámara encendida y dentro del Menú, en mi caso me voy a la sección de Copyright.

Figura 1: Display de una Canon 550D, panel de "Información de Copyright".

[2] - En esta sección podremos editar tanto el nombre del 'Autor' como los 'Detalles de Copyright' que queramos reflejar en los metadatos de nuestra imagen.

Figura 2: Panel de información de Copyright, editar nombre y detalles de Copyright.

[3] - Ahora como vemos después de editar y guardar los cambios realizados, se nos muestra de este modo la información, esto repercutirá en el momento de examinar los metadatos veremos reflejada de forma nativa esta información en los detalles de la fotografía.

Figura 3: Sección de 'Autor' y 'Copyright' editado y cambiado.

Método 2: Con "Adobe Photoshop Lightroom 5".

Esta sería otra forma muy práctica y cómoda también de firmar una imagen en su metadata, simplemente tendríamos que 'Editar' los metadatos actuales y añadirle los valores correspondientes que deseemos, esto se encuentra en la columna de la izquierda, en mi caso solo mostraré los que estamos tratando como son el 'Copyright' y el 'Creador o Autor'.

Un punto interesante de Lightroom 5, es que en este apartado nos permite "Crear" un plantilla de metadata para nuestras imágenes, de modo que podemos crear dicha plantilla con solamente estos datos y de manera automática en futuras fotografías cargar estos metadatos más rápidamente. 

Figura 4: Edición de metadatos de 'Copyright' y 'Creador o Autor' en "Adobe Photoshop Lightroom 5".

Método 3: Editar metadata del propio fichero de imagen.

Como último método expondré el que particularmente voy usando y que me parece el más rápido, limpio y sencillo a la vez. Que es hacerlo directamente en propio fichero de imagen.

[1] - Entramos en las propiedades del fichero, con el fichero seleccionado: Botón derecho -> Propiedades o simplemente Alt + Enter.

[2] - En la pestaña "Detalles", es donde veremos toda la información metadata relevante a lo que nos interesa. En la sección 'Origen', editamos los campos de texto 'Autores' y 'Copyright'.

Figura 5: Edición de metadatos (Autor y Copyright) en los 'detalles' del fichero.

[3] - Para darle un toque de protección añadida y así evitar accidentalmente el intento de modificación del fichero/imagen; en la pestaña "General", dentro de la sección de 'Atributos' marcamos el checkbox de "Sólo lectura" y Aceptamos.

Con esto evitaremos que se nos modifique inesperada por medio de algún software de por medio u otro/s.

Figura 6: Protección de Sólo lectura en los atributos del fichero de imagen.

Espero que este artículo aclare algunas que otras dudas y se de utilidad para quien lo necesite.

Saludos!

25 noviembre, 2013

Descifrando msgstore.db.crypt de Whatsapp

En sus comienzos, Whatsapp guardaba los ficheros de bases de datos donde se almacenaban las conversaciones que tenemos con el resto de nuestros contactos, en formato SQLite sin cifrar. Es decir, que simplemente con cargarlo en SQLite se podría ver las conversaciones, teléfonos y de más, en texto plano. De modo que en caso de perdida o robo del terminal nos podrían ver las conversaciones de forma muy sencilla.

Hace ya casi año y medio que Whatsapp debido a la inseguridad en estos ficheros y por protección de privacidad para los usuarios; Whatsapp lanzó una actualización en la que corrige este "descuido" encriptando dichos ficheros, dificultando así la simple visualización en plaintext de las conversaciones realizadas.

Este cifrado dificulta la visualización a primera vista, pero no la impide. El cifrado (AES-192-ECB) que utiliza aplicación en los ficheros de backup siempre usa la misma key (346a23652a46392b4d73257c67317e352e3372482177652c) y es lo mismo para todos los dispositivos, es decir, que no se crea nada único por cada dispositivo que tenga instalado Whatsapp.

En el caso de los teléfonos IOS este fichero está en la ruta: [ID de App]/Documents/ChatStorage.sqlite.
En el caso de los teléfonos Android en: ../whatsapp/databases/msgstore.db.crypt.
  • msgstore.db.crypt (conversaciones actuales).
  • msgstore-YYYY-MM-DD.X.db.crypt (backups de conversaciones por fechas).
Para descifrar el fichero/s en cuestión de las conversaciones que queramos visualizar. Simplemente tendremos que aplicar el siguiente comando con son sus respectivos argumentos.

Para ello descargamos gratuitamente el binario (en mi caso) para Windows de OpenSSL, la cual es una herramienta que permite cifrar y descifrar ficheros mediante líneas de comandos.

Una vez los instalamos se nos instalará (por defecto) en la carpeta la raíz del sistema (C:\).
Copiamos ahora los ficheros de conversaciones que queramos del origen de Whatsapp a una carpeta cercana a la instalación de OpenSSL (da igual donde estén, aconsejo simplemente por comodidad a la hora de mapear el directorio en el comando).

[1] - Abrimos una consola y nos situamos en el directorio donde está el ejecutable OpenSSL.exe (C:\OpenSSL-Win32\bin).
openssl enc -d  -aes-192-ecb -in copias\msgstore-entrada.db.crypt -out copias\msgstore-salida.db.sqlite -K 346a23652a46392b4d73257c67317e352e3372482177652c
Paso a explicar los argumentos, aunque creo que son claros:
  • -d: [Decrypt] argumento para empezar a desencriptar.
  • -aes-192-ecb: El tipo de encriptación del fichero.
  • -in: [Input] Especificar el fichero de entrada a descifrar (en este caso).
  • -out: [Output] Especificar el fichero de salida ya descifrado (en este caso).
  • -k: [Key] es la clave necesaria utiliza por la aplicación.
En el caso de ejemplo que se muestra arriba en la linea de comando, tendríamos que referenciar el mapeado de nuestros ficheros tanto de entrada como de salida, en mi caso ambos estaban en una carpeta dentro de la ubicación de OpenSSL llamadas "copias".

[2] - Una vez tenemos descifrado el fichero, podremos abrirlo simplemente un gestor de SQLite, por ejemplo SQLite Administrator.

Figura 1: Fichero de conversaciones de Whatsapp (ya descifrado) cargado en SQLite (tabla messages)

En SQLite, podremos filtrar por los campos de la tabla messages e ir a un número de teléfono o a un contexto de conversación en concreto, eligiendo correctamente los campos de filtro adecuados.

Saludos!

Entradas Populares