
Uma ferramenta extremamente simples para assinar arquivos e verificar assinaturas digitais.
Uma ferramenta extremamente simples para assinar arquivos e verificar assinaturas.
Minisign é uma ferramenta para assinar arquivos e verificar assinaturas. Ela foi projetada para ser:
O Minisign usa o sistema de assinatura de chave pública Ed25519 com assinaturas pequenas e rápidas.
Para documentação abrangente, consulte o site da documentação do Minisign ou a página de manual incluída.
O Minisign está disponível em vários gerenciadores de pacotes:
| Plataforma | Comando |
|---|---|
| macOS (Homebrew) | brew install minisign |
| Windows (Scoop) | scoop install minisign |
| Windows (Chocolatey) | choco install minisign |
Dependências:
Opções de compilação:
zig build -Doptimize=ReleaseSmall
zig build -Doptimize=ReleaseSmall -Dstatic
zig build -Doptimize=ReleaseSmall -Dwithout-libsodium
O binário resultante pode ser encontrado em zig-out/bin/minisign.
Para uma execução mais rápida ao custo de um binário maior, você pode substituir ReleaseSmall por ReleaseFast em qualquer um dos comandos acima.
Dependências:
Compilação:
mkdir build
cd build
cmake ..
make
make install # with appropriate permissions
Configuração alternativa para binários estáticos:
cmake -D STATIC_LIBSODIUM=1 ..
ou:
cmake -D BUILD_STATIC_EXECUTABLES=1 ..
minisign -G
Isso cria:
minisign.pub por padrão)minisign.key por padrão)minisign -S -m file.txt
Isso cria um arquivo de assinatura chamado file.txt.minisig.
Para adicionar um comentário confiável que será verificado:
minisign -S -m file.txt -t "Trusted comment here"
minisign -Vm file.txt -p minisign.pub
ou com uma chave pública diretamente:
minisign -Vm file.txt -P RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3
Os tarballs e binários pré-compilados do projeto podem ser verificados com a seguinte chave pública:
RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3
O Minisign está disponível como uma imagem Docker:
docker run -i --rm jedisct1/minisign
Exemplo de geração de uma chave pela primeira vez e, em seguida, assinatura de um arquivo 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 cria e usa a chave secreta; a chave pública será nomeada minisign.pub.
Importante: faça um backup e não faça commit nem compartilhe o arquivo de chave privada gerado minisign.key.
Exemplo de verificação de uma assinatura usando a imagem Docker:
docker run -i --rm -v .:/minisign jedisct1/minisign \
-Vm file_to_verify -p minisign.pub
-p minisign.pub pode ser omitido se o nome padrão tiver sido gerado.
A imagem pode ser verificada com a seguinte chave pública cosign:
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExjZWrlc6c58W7ZzmQnx6mugty99C
OQTDtJeciX9LF9hEbs1J1fzZHRdRhV4OTqcq0jTW9PXnrSSZlk1fbkE/5w==
-----END PUBLIC KEY-----
O Minisign é compatível com o signify, a ferramenta de assinatura do OpenBSD. Assinaturas criadas com o signify podem ser verificadas com o minisign, e vice-versa.
Esta implementação usa assinaturas determinísticas, a menos que o libsodium tenha sido compilado com a macro ED25519_NONDETERMINISTIC definida. Isso adiciona ruído aleatório ao cálculo dos nonces EdDSA.
Outras implementações podem optar por usar assinaturas não determinísticas por padrão. Elas permanecerão totalmente interoperáveis com implementações que usam assinaturas determinísticas.
minizign é agora a implementação recomendada. É nela que novos recursos serão implementados.
Outras ferramentas e bibliotecas: