O que é um ID de chave do OpenPGP / GnuPG?

25

Entendo a utilidade do próprio bloco de chaves e de um hash da chave, mas não sei por que informações adicionais seriam necessárias; portanto, não posso começar a adivinhar a utilidade de uma parte adicional de informações.

Especificamente,

  • O que isso significa,
  • onde é usado e
  • (como) pode ser determinado devido ao bloco de chave pública?

Ele tende a ser mencionado tangencialmente e de passagem, o que leva a confusão, já que a caminhada espacial reconhece claramente a diferença entre impressão digital e ID , enquanto alguma documentação GPG divulgada pelo Fedora inclui a frase

Para KEYNAME, substitua o ID da chave ou a impressão digital do seu par de chaves principal,

o que faz parecer que os dois compartilham o mesmo objetivo; mas isso não faz sentido, porque se esse fosse o caso, por que você precisaria dos dois?

Tiro Parthian
fonte
O utilitário gpg permite especificar como uma conveniência para você. Se você especificar uma impressão digital, ela procurará a impressão digital e, se você especificar o ID, procurará um ID que seja igual ou contenha a sequência especificada. O ID geralmente é um identificador legível por humanos para a chave. A impressão digital em geral é descrita em en.wikipedia.org/wiki/Public_key_fingerprint . Qual é o problema que você está realmente tendo?
Jason C
O @JasonC Spacewalk quer um ID, uma impressão digital e um URL para o bloco de chaves, mas os repositórios (por exemplo, EPEL ) fornecem apenas o bloco de chaves. Agora, eu sei que posso obter a impressão digital apenas pegando um hash do bloco de chaves, mas não sei se devo obter o ID de outro lugar, escolher um e carregá-lo no banco de dados antes de informar caminhada espacial, ou apenas faça uma caminhada espacial. Basicamente, é um problema de caminhada espacial que fica muito mais fácil quando eu sei mais sobre como as IDs de GPG são usadas.
Tiro parta
@JasonC Mais sucintamente: baixarei RPMs assinados e tudo o que tenho é o bloco de chaves, portanto, preciso saber se decido sobre um ID ou se o emissor decide sobre um ID.
Tiro parta
Você seguiu as instruções de instalação EPEL / Spacewalk de fedorahosted.org/spacewalk/wiki/HowToInstall#EPELrepository ou wiki.centos.org/HowTos/PackageManagement/... e é Spacewalk realmente deixando de gerenciar pacotes de EPEL? O access.redhat.com/site/solutions/308983 é relevante?
Jason C
1
Se funcionar sem você preenchê-lo, ele saberá gerenciar sem você especificar, e preenchê-lo não será útil. No entanto, consulte web.archive.org/web/20130821232554/http://centosforge.com/node/…, que mostra como obter uma impressão digital e um ID para Spacewalk. Instruções semelhantes em darkoperator.com/blog/2011/12/16/… . Mais informações em google.com/search?q=spacewalk%20package%20key%20id
Jason C

Respostas:

29

Do RFC 4880 :

Uma impressão digital V4 é o hash SHA-1 de 160 bits do octeto 0x99, seguido pelo tamanho do pacote de dois octetos, seguido pelo pacote de chave pública inteiro que começa com o campo version. O ID da chave é os 64 bits de baixa ordem da impressão digital.

Para chaves V3, o cálculo é semelhante, mas o comprimento da chave é omitido.

Em outras palavras, a impressão digital é calculada a partir de uma constante, o comprimento do pacote e, finalmente, uma parte do pacote de chave pública. Mais explicações sobre o que está incluído (e, portanto, como calculá-lo) no RFC vinculado.

O ID da chave (longa) é representado pelos 64 bits mais baixos e é usado, pois a impressão digital completa é um valor longo e não útil. Ainda mais frequentemente, é utilizado o ID da chave curta formado pelos 32 bits de ordem mais baixa. Esses IDs de chave curta são geralmente considerados com uma chance muito alta de colisões e uso de pelo menos o ID longo, se não for recomendada a impressão digital completa.

Recapitulado em poucas palavras:

A impressão digital é o valor do hash calculado no pacote de chave pública. Os IDs principais fazem parte da impressão digital:

Fingerprint: 0D69 E11F 12BD BA07 7B37  26AB 4E1F 799A A4FF 2279
Long key ID:                                4E1F 799A A4FF 2279
Short key ID:                                         A4FF 2279

Às vezes, os IDs são prefixados por 0xserem valores hexadecimais.

Jens Erat
fonte
1
Link muito útil para informações sobre colisões, obrigado. Você pode alterar a resposta para dizer que mesmo chaves longas são perdoáveis ​​e, portanto, não são recomendadas.
Zkilnbqi 03/04
Embora os IDs de chave curta sejam criados com muita facilidade, os IDs de chave longa são 2 ^ 32 vezes mais difíceis de colidir e ainda são considerados adequados. Até as impressões digitais podem ser falsificadas, elas são ainda mais difíceis de falsificar (devido ao grande número possível de impressões digitais).
Jens Erat #
1
Fiquei convencido pelo link que você incluiu na sua resposta. Agora, minha assinatura diz "[email protected] pgp.mit.edu ID a partir de 22/03/2015" Faz muito mais sentido. Se alguém quiser enviar uma mensagem criptografada ou verificar se você assinou uma, será necessário encontrar sua chave pública no servidor de chaves de qualquer maneira, para que não haja vantagem em usar o ID da chave.
Zkilnbqi 04/04