O que determina o algoritmo hash de clearsign usado pelo GnuPG?

3

Ao usar o GnuPG para limpar o sinal de um texto, há uma parte hash na mensagem assinada. Tomemos o exemplo:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

abc
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEZZvqE5j3koIxs9Xim0+E4a5Vo2cFAlkRdvQACgkQm0+E4a5V
o2ew2QgAzHuvZ7Hlb6+3qRLjc9Yhdi+6tBmNWXbWpKoAQxpzx6jKQp/FSpQeGWuj
RxcYnqU3pk4ycMLtaCFcfnHEW5N0B95eXGcurgMGz7A6xhy0hy25x8WBdeKVAQ+2
PLA2ytJLUn2L1S3ueqJWcdVUBRaiczOOsYvvO
...
...

-----END PGP SIGNATURE-----

Mas o algoritmo de hash é diferente para diferentes chaves (ou servidores), às vezes SHA1, às vezes SHA256, SHA512.

O que determina isso, a chave ou o cliente GnuPG? Não consigo encontrar informações sobre isso, quando você usa gpg create new keys, não há opção para especificar o algoritmo de hash.

update: para esclarecer minha dúvida, adicionei mais informações abaixo.  o comando usado para gerar a saída de exemplo acima é:

gpg --clearsign

(A versão gpg é gpg2 no meu sistema.)

então, eu digitei um texto aleatório e lá vem o resultado acima. Gostaria de saber como gerar uma saída com valores específicos de "hash:"? digamos, SHA1?

    
por social_loser 09.05.2017 / 10:19

3 respostas

0

O algoritmo hash é escolhido pela implementação do OpenPGP, no seu caso o GnuPG. Qual deles é selecionado

Para criptografar mensagens, adicionalmente, as preferências do destinatário armazenadas na chave pública são consideradas.

    
por 11.05.2017 / 16:43
1

O que deve estar acontecendo nesse caso é que você gere um hash para a mensagem e use uma chave para criptografá-la. O outro lado usa a chave oposta para descriptografar o hash, constrói o hash da mensagem e o compara com o hash que você anexou.

É importante para a contraparte saber que tipo de hash você usou, mas não há correlação direta entre as chaves e o hash.

    
por 09.05.2017 / 12:43
0

resposta curta é adicionar a seguinte opção ao comando gpg

--s2k-digest-algo SHA256

É claro que o SHA256 pode ser alterado para SHA512 ... consulte o algoritmo disponível em gpg --version

Amostra:

$ gpg -a --yes --clearsign --s2k-digest-algo SHA256 --output dists/xenial/InRelease --local-user [email protected] --detach-sign dists/xenial/Release

$ grep -i hash dists/xenial/InRelease
Hash: SHA256
    
por 29.03.2018 / 11:51