# - ENTRADA 052 -
## Autenticación con Signify

> Miren, Sr. y Sra. Cohen, esto tiene que filtrarse hoy, ¡apáñenselas!

```
--- Fecha: mie 25 feb 2026 22:43:51 CET ---
```

Signify es una herramienta para verificar archivos criptográficamente, creada en 2014 por Ted Unangst para OpenBSD.
Solo admite un único algoritmo, Ed25519, una variante de la curva elíptica Curve25519 utilizada para el intercambio de claves Diffie-Hellman, creado por DJB y su equipo.
Es rápido, inmune a los ataques de sincronización por diseño, produce firmas deterministas, utiliza claves pequeñas y produce firmas pequeñas... parece una buena elección.

Las principales ventajas de Signify son que tiene un código base pequeño (73 Kb) y no se basa en GnuPG. Las cadenas que crea son cortas, de 128 bits con 56 carácteres en base64, que caben en cualquier lado, porque la criptografía de curva elíptica requiere un tamaño de clave mucho menor que RSA o DSA para obtener una seguridad equivalente. Por eso no hay servidores de claves para signify ni las arriesgadas redes de confianza.

Como en todo con las técnicas de cifrado asimétrico, hay que crear dos claves (pública y privada). Crearé el par de claves a las que llamaré signkey.pub para la pública y signkey.sec la privada:

* signify -G -p signkey.pub -s signkey.sec

Pedirá una contraseña, que ha de ser todo lo robusta que puedas y que será necesaria para firmar.
Si quiero añadir un comentario (dirección, email, teléfono...) para las claves, lo añadiré entre comillas con la opción -c

* signify -G -p signkey.pub -s signkey.sec -c "Añade un comentario"

> NOTA: Como siempre aclaro, guarda segura tu clave privada y no la compartas con nadie.


## Firmar

Signify es bastante completo, pero las opciones más usadas son las siguientes:

------[ Opciones ]-------------------------------------

-G, Generar par de claves
-p, Clave pública generada por -G y utilizada por -V para verificar una firma.
-S, Firmar el archivo de mensaje especificado y crear una firma.
-s, Firmar un archivo con la clave privada
-V, Verificar que el mensaje y la firma coincidan.
-c, Añadir un comentario durante la generación

Para firmar un archivo:

* signify -S -s signkey.sec -m archivo.txt

Esto creará un archivo de firma del mismo nombre con extensión .sig


## Verificar

Te llega un archivo, que ha sido creado con la clave privada de Antonio, y tienes su clave pública porque te la pasó cifrada con Age:

* signify -V -p signkey.pub -m archivo.txt
Signature Verified

Si el archivo ha sido modificado o no es el correcto, el mensaje será "signify: signature verification failed"


## Crear código QR para tu clave pública

Desde la expansión de los códigos QR, la gente encuentra fácil usarlos para difundir claves públicas, aunque personalmente prefiero un texto escrito fácil de copiar/pegar. Para el ejemplo usaré el programa qrencode:

* qrencode -r signkey.pub -o signkey.pub.png

Ahora puedes pasarle el QR a quien quieras para que pueda verificar lo que firmes.


## Rotación de claves

Como las claves generadas por Signify no tienen caducidad, se suele usar la rotación de claves como medida de seguridad adicional. En OpenBSD, de donde procede Signify, generan un nuevo par de claves para el lanzamiento siguiente.
Las claves no se eliminan, si no que se incluyen con las demás, eliminando automáticamente la clave defectuosa en caso de robo, sin necesidad de tediosas revocaciones, aunque cuesta más avisar si el robo sucede.
Aun así, el factor humano siempre seguirá siendo uno de los puntos más débiles de un sistema seguro, a pesar de los esfuerzos por hacer que el cifrado y la verificación funcionen.


## Consideraciones técnicas

La clave pública en Signify siempre va a empezar por RW (desconfía de la clave si no es así). Son los bytes llamados «Ed» que identifican el algoritmo Ed25519 que está incrustado en la clave, y están por si alguna vez los desarrolladores necesitan cambiar los algoritmos.
Después vienen 8 bytes aleatorios que se utilizan para detectar discrepancias accidentales en la firma de la clave.
Luego vienen los 32 bytes de la clave real. Una firma tiene exactamente el mismo formato, y aunque la longitud es de 64 bytes, base64 la alarga un poco más. 

Tienes más info aquí:

=> https://www.openbsd.org/papers/bsdcan-signify.html Projecto Openbsd


Tags #signify #cifrado


=> /blog/index.gmi ◄ Listado de noticias
=> /index.gmi ◄◄ Inicio