
Una herramienta de lo más sencilla para firmar archivos y verificar firmas digitales.
Una herramienta increíblemente sencilla para firmar archivos y verificar firmas.
Minisign es una herramienta para firmar archivos y verificar firmas. Está diseñada para ser:
Minisign utiliza el sistema de firmas de clave pública Ed25519 con firmas pequeñas y rápidas.
Para obtener documentación completa, consulte el sitio web de la documentación de Minisign o la página man incluida.
Minisign está disponible en varios gestores de paquetes:
| Plataforma | Comando |
|---|---|
| macOS (Homebrew) | brew install minisign |
| Windows (Scoop) | scoop install minisign |
| Windows (Chocolatey) | choco install minisign |
Dependencias:
Opciones de compilación:
zig build -Doptimize=ReleaseSmall
zig build -Doptimize=ReleaseSmall -Dstatic
zig build -Doptimize=ReleaseSmall -Dwithout-libsodium
El binario resultante se puede encontrar en zig-out/bin/minisign.
Para una ejecución más rápida a costa de un mayor tamaño del binario, puedes reemplazar ReleaseSmall por ReleaseFast en cualquiera de los comandos anteriores.
Dependencias:
Compilación:
mkdir build
cd build
cmake ..
make
make install # with appropriate permissions
Configuración alternativa para binarios estáticos:
cmake -D STATIC_LIBSODIUM=1 ..
o:
cmake -D BUILD_STATIC_EXECUTABLES=1 ..
minisign -G
Esto crea:
minisign.pub por defecto)minisign.key por defecto)minisign -S -m file.txt
Esto crea un archivo de firma llamado file.txt.minisig.
Para añadir un comentario de confianza que será verificado:
minisign -S -m file.txt -t "Trusted comment here"
minisign -Vm file.txt -p minisign.pub
o con una clave pública directamente:
minisign -Vm file.txt -P RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3
Los tarballs y binarios precompilados del proyecto se pueden verificar con la siguiente clave pública:
RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3
Minisign está disponible como imagen de Docker:
docker run -i --rm jedisct1/minisign
Ejemplo de cómo generar una clave por primera vez y luego firmar un archivo local:
docker run -i --rm -v .:/minisign jedisct1/minisign \
-s minisign.key -G
docker run -i --rm -v .:/minisign jedisct1/minisign \
-s minisign.key -S -m files_to_sign
-s minisign.key crea y utiliza la clave secreta; la clave pública se llamará minisign.pub.
Importante: crea una copia de seguridad y no hagas commit ni compartas el archivo de clave privada generado minisign.key.
Ejemplo de cómo verificar una firma usando la imagen de Docker:
docker run -i --rm -v .:/minisign jedisct1/minisign \
-Vm file_to_verify -p minisign.pub
-p minisign.pub puede omitirse si se ha generado el nombre predeterminado.
La imagen se puede verificar con la siguiente clave pública cosign:
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExjZWrlc6c58W7ZzmQnx6mugty99C
OQTDtJeciX9LF9hEbs1J1fzZHRdRhV4OTqcq0jTW9PXnrSSZlk1fbkE/5w==
-----END PUBLIC KEY-----
Minisign es compatible con signify, la herramienta de firma de OpenBSD. Las firmas creadas con signify se pueden verificar con minisign, y viceversa.
Esta implementación utiliza firmas deterministas, a menos que libsodium se haya compilado con la macro ED25519_NONDETERMINISTIC definida. Esto añade ruido aleatorio al cálculo de los nonces de EdDSA.
Otras implementaciones pueden optar por utilizar firmas no deterministas por defecto. Seguirán siendo totalmente interoperables con las implementaciones que usan firmas deterministas.
minizign es ahora la implementación recomendada. Aquí es donde se van a implementar las nuevas funciones.
Otras herramientas y librerías: