Suponha que eu queira publicar (ou enviar para alguém) um arquivo. Eu também quero que os destinatários dele possam verificar se quaisquer atualizações futuras dele vêm da mesma fonte/autor do original.
A solução óbvia é enviar o arquivo original com uma chave pública e uma assinatura GPG do arquivo. Quaisquer atualizações subsequentes também serão assinadas.
Entretanto, os verificadores teriam que importar a chave pública para seu chaveiro local.
Não há uma abordagem mais flexível e menos intrusiva? Talvez não GPG, mas outra coisa?
Por exemplo, algo assim seria o ideal:
toolname --verify --pub path/to/public.key --sig path/to/signature path/to/file-to-verify
Parece que o GPG pode fazer isso, mas apenas em 3 etapas peculiares:
gpg --no-default-keyring --keyring ./temp-keyring.gpg --import pub.key
gpg --no-default-keyring --keyring ./temp-keyring.gpg --verify signature.gpg path/to/file
rm ./temp-keyring.gpg
BSD
signify
. Você ainda tem que trocar a chave pública em algum momento, mas não há chaveiro etc.seria
signify
é bem fácil de usar. O uso relevante completo pode ser explicado em quatro exemplos, eu acho; vou apenas citar a página de manual de Ted Unangst e Marc Espie aqui:A
newkey.pub
chave pública é bem curta. Ela se parece com isso:e poderia ser facilmente incluído, por exemplo, em um código QR com sua assinatura à tinta, caso você precise de distribuição não digital.
Se você não especificar
-x
, então teria sidomessage.txt.sig
.Se você usar
sha256sum --tag file1 file2… > SHA256
, entãosignify -S -s path/to/private.key -m SHA256 -e
, e enviarSHA256.sig
:Os arquivos Gzip são especiais porque você pode incorporar a assinatura no próprio arquivo sem afetar os dados compactados.