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

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

Entendo que a validade de qualquer certificado OpenPGP se baseia na verificação desse certificado 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, elas simplesmente obterão suas chaves keyserver.ubuntu.comuma vez e confiarão que elas são precisas. Por exemplo, ao seguiro 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 esta comunicação aconteçasobre HTTP simples e não criptografado, acredito que o certificado que recebemos do servidor de chaves será assinado pelo próprio servidor de chaves e, portanto, desde que soubéssemos um certificado confiável para o servidor de chaves, poderíamos confiar na resposta.

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

Na ausência desta lista confiável, não seria possível que todas as minhas comunicações fossem interceptadas pelo mesmo intermediário (MITM), que poderia então estar me alimentando com um certificado falso ao keyserver.ubuntu.commesmo tempo que me alimentando com um pacote assinado forjado (por exemplo, o próprio ISO do sistema operacional)?

Responder1

O parâmetro para recebimento de 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 (Idiscutimos IDs de chave OpenPGP no superusuário, se você quiser mais referências). 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. Em outras palavras: você pode não confiar em servidores-chave (eles são operados por indivíduos aleatórios, que podem ter objetivos maliciosos), mas não é necessário, todas as informações recebidas dos servidores-chave devem ser validadas de qualquer maneira. A gama de impressões digitais possíveis é muito, muito grande: não é viá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).Porém, não confie em IDs de chaves curtas.

Pela mesma razão, você pode não confiar nos resultados de um servidor chave ao pesquisar endereços de e-mail ou IDs de usuário. Os operadores de servidores-chave não apenas poderiam retornar informações maliciosas, mas os servidores-chave também não verificariam nada (todos poderiam fazer upload de chaves para endereços de e-mail arbitrários).Você sempre tem que validar as chaves por conta própria.Não há nada como chaves confiáveis ​​por padrão no GnuPG, nem mesmo as chaves do mantenedor do GnuPG. Se você confia 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.

Também existe o HKPS (HKP sobre HTTPs), mas isso não muda nada, considerando a falta de verificação das principais informações do servidor; O HKPS foi introduzido apenas para que um intermediário não possa registrar quais chaves você recupera dos servidores de chaves.

informação relacionada