Los metadatos se borran o falsifican. OIM firma con ECDSA los bytes de la imagen: si alguien la altera, deja de mostrarse. Así funciona la firma digital de imágenes y cómo se verifica su autoría.
Una captura de pantalla de un extracto bancario, un gráfico con las ventas del trimestre, el cartel oficial de un evento. Todos los días recibimos imágenes y damos por hecho que dicen la verdad. Pero cambiar una cifra o un nombre en una imagen lleva segundos, y el resultado es indistinguible del original.
La respuesta habitual es la etiqueta: «hecho por», «fecha», «cámara». El problema es que esas etiquetas se pueden borrar o reescribir sin tocar un solo píxel, y casi todas las redes sociales las eliminan al subir la foto. Una etiqueta que cualquiera puede cambiar no demuestra nada.
Un ejemplo: el gráfico que circula sin su fuente
Imagina un gráfico de ventas que alguien recibe por mensajería. Dice que las ventas subieron un 12 %. Antes de compartirlo, quiere saber si la cifra es la que publicó la empresa. Con una etiqueta de texto, no hay forma de comprobarlo: el texto se puede editar.
Con una firma, la comprobación es distinta. El visor recalcula el sello sobre el contenido que tiene delante. Si la cifra dice 12 % pero se publicó como 21 %, la firma no cuadra y la imagen no se muestra. No hace falta confiar en quien la envió.
Un sello que se rompe si se toca
Cada archivo OIM se firma al exportarlo. La firma funciona como el lacre de una carta: no impide abrirla, pero si alguien la abre y la vuelve a cerrar, se nota.
Lo importante es qué cubre el sello. No es una etiqueta pegada al lado: abarca los datos de la obra, sus textos, capas y animaciones, y también la imagen base. Cambiar un número, un color o un píxel rompe la firma. Si se recomprime el PNG sin cambiar ningún píxel, el archivo tampoco es ya el que OIM produjo, porque cambia el flujo interno de la imagen.
Comprobarlo no depende de nadie
Muchos sistemas de verificación funcionan preguntando a un servidor central si el archivo es válido. Eso tiene dos debilidades: si el servidor cae, nadie puede comprobar nada, y además el servidor se entera de quién mira cada archivo y cuándo.
En OIM la comprobación la hace el propio visor, en el dispositivo del lector, al abrir el archivo. Usa las claves públicas que ya lleva dentro. Solo pide claves al directorio cuando el archivo se firmó con una clave que no lleva, o cuando la clave incrustada falla y reintenta con la publicada.
Si la firma no cuadra, la imagen no se muestra.
Qué estados puede tener una obra
Cada documento declara quién puede volver a editarlo. Son tres:
solo_autor(el valor por defecto): solo la cuenta que lo creó puede publicar nuevas versiones con ese identificador.publico: cualquiera puede abrirlo, modificarlo y volver a exportarlo, con el mismo identificador.sellado: la obra queda cerrada para todos, también para su autor. No tiene vuelta atrás.
Si un archivo declara un valor desconocido, el visor lo trata como solo_autor. Nunca cae en publico.
La confianza no debería ser una promesa. Debería poder comprobarse.
Qué gana cada parte
- Quien publica sabe que su pieza no circulará alterada con su nombre.
- Quien lee sabe que lo que ve es lo que se publicó.
- Quien quiere comprobarlo puede hacerlo: el método es público y la firma usa un estándar abierto (ECDSA sobre la curva P-256).
Lo que la firma no hace
Conviene decirlo claro: la firma demuestra que el archivo no ha cambiado desde que se firmó. No demuestra que su contenido sea cierto. Es una garantía de origen e integridad, no un detector de mentiras. Pero es justo la pieza que faltaba para saber, al menos, de dónde viene una imagen.
Cómo empezar
- Carga el player y declara la imagen. Si el archivo está firmado, el visor verifica la firma sin que tengas que hacer nada más:
<script src="https://cdn.oim.media/player/v1/oim-player.js"></script>
<oim-player src="grafico-ventas.oim.png" lang="es"></oim-player>
- Para comprobar el resultado en tu propio código, la documentación incluye ejemplos de verificación en navegador y en Python. Empieza por la guía de inicio rápido.
Si tu imagen también usa colores de marca que cambian con el tema, lee imágenes que se adaptan al modo oscuro sin duplicar.
Preguntas frecuentes
¿La firma demuestra que una foto es real?
No. Demuestra que el archivo es el que se firmó y no ha cambiado. Si la foto muestra algo falso antes de firmarse, la firma lo protege igual.
¿Qué pasa si recomprimo el PNG?
El sello se rompe, aunque no cambies ningún píxel. Por eso conviene distribuir el archivo tal cual salió de OIM.
¿Puede otra persona modificar mi .oim?
Depende de su estado. Con solo_autor, solo tu cuenta puede publicar una nueva versión. Con sellado, nadie puede hacerlo.
¿Hace falta conexión para verificar una firma?
El visor guarda las claves que ha descargado en el navegador (IndexedDB).
Otras lecturas
- Qué es un .oim: la imagen interactiva en un PNG, para entender el contenedor que se firma.
- Imágenes multilingües: un PNG para diez idiomas, para ver qué protege la firma en una pieza con varios textos.