Como o GnuPG pode confiar no keyserver.ubuntu.com?

5

Eu entendo que a validade de qualquer certificado OpenPGP é baseada no certificado que está sendo verificado por uma parte confiável dentro de uma rede de confiança.

No entanto, para a maioria das pessoas que não usam o GnuPG todos os dias, eles simplesmente obtêm as chaves de keyserver.ubuntu.com uma vez e confiam que são precisas. Por exemplo. ao seguir o guia "como verificar" no Ubuntu.com:

gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys "8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092" "C598 6B4F 1257 FFA8 6632 CBA7 4618 1433 FBB7 5451"

Embora essa comunicação aconteça HTTP simples não criptografado , acredito que o certificado que recebemos do servidor de chaves será assinado pelo próprio servidor de chaves, e assim, enquanto tivermos conhecimento de um certificado confiável para o servidor de chaves, poderemos confiar na resposta.

Mas como, com base na execução deste comando apenas uma vez, podemos confiar no servidor de chaves, pois não acredito que o GnuPG tenha criado um arquivo trustdb ainda? O GnuPG possui uma lista interna de certificados em que ele confia, incluindo o de keyserver.ubuntu.com ? Em caso afirmativo, como posso encontrar essa lista para verificar se esse é o caso?

Na ausência dessa lista confiável, não seria possível que todas as minhas comunicações fossem interceptadas pelo mesmo man-in-the-middle (MITM), que poderia então me fornecer um certificado falso de keyserver.ubuntu.com ao mesmo tempo que me alimentando com um pacote assinado (por exemplo, o sistema operacional ISO)?

    
por Robin Winslow 31.08.2016 / 09:16

1 resposta

4

O parâmetro para receber chaves é a impressão digital completa de duas chaves:

  • 8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092
  • C598 6B4F 1257 FFA8 6632 CBA7 4618 1433 FBB7 5451

A impressão digital é calculada a partir da chave pública (I discutido IDs de chave OpenPGP no Superusuário , se você quiser mais referência ). O GnuPG perceberá que a chave errada foi retornada, se a impressão digital calculada da chave recebida não corresponder à impressão digital solicitada. Com outras palavras: você pode não confiar nos servidores principais (eles são operados por indivíduos aleatórios, que podem ter objetivos maliciosos), mas você não precisa, todas as informações recebidas dos principais servidores devem ser validadas de qualquer maneira. A gama de impressões digitais possíveis é muito, muito grande: não é possível encontrar uma colisão (a mesma impressão digital para outra chave), mesmo se você tiver vastos poderes de computação, como agências, como por exemplo a NSA pode ter. Não confie em IDs de chaves curtas, no entanto.

Pela mesma razão, você pode não confiar nos resultados de um servidor de chaves ao pesquisar endereços de e-mail ou IDs de usuário. Não apenas os principais operadores de servidores podem retornar informações maliciosas, mas os servidores de chaves também não verificam nada (todos podem fazer upload de chaves para endereços de e-mail arbitrários). Você sempre tem que validar chaves por conta própria. Não há nada como as chaves confiáveis por padrão no GnuPG, nem mesmo as chaves do mantenedor do GnuPG. Se você confiar na fonte que lista as impressões digitais da chave do Ubuntu, você pode assiná-las para que o GnuPG saiba que você verificou essas chaves.

Há também HKPS (HKP sobre HTTPs), mas isso não muda nada considerando a verificação em falta das principais informações do servidor; O HKPS foi introduzido apenas para que um homem no meio não possa registrar as chaves que você recupera dos principais servidores.

    
por Jens Erat 31.08.2016 / 09:52