Como verificar o certificado HKPS do sks-keyservers?

1

Estou tentando entender como o PGP deve ser usado com segurança, mas informações surpreendentes e úteis sobre o assunto são surpreendentemente difíceis de encontrar.

Assim, os servidores de chaves do SKS fornecem o seu certificado HKPS juntamente com essas informações:

  1. Download de certificado link
  2. Download de assinatura OpenPGP link
  3. CRL baixe o link (lista de revogação de certificados ??)
  4. Impressão digital do certificado: 79:1B:27:A3:8E:66:7F:80:27:81:4D:4E:68:E7:C4:78:A4:5D:5A:17
  5. Identificador da chave do assunto X509v3: E4 C3 2A 09 14 67 D8 4D 52 12 4E 93 3C 13 E8 A0 8D DA B6 F3

Tudo o que tenho ao meu lado é gpg (GnuPG) 2.2.10 e acesso à internet.

Minhas perguntas são:

  • Como cada informação deve ser usada?
  • Como descubro, cuja chave pública devo fazer o download de um servidor de chaves separadamente (para que eu não confie apenas em seu site)?
por CBlew 01.10.2018 / 08:50

1 resposta

0

Primeiro, observe que você pode ignorar todo o processo, porque o certificado da CA do pool SKS é empacotado com distribuições recentes do GnuPG - normalmente localizadas em /usr/share/gnupg/sks-keyservers.netCA.pem .

Em segundo lugar, observe que o uso do HKPS não autentica os dados retidos pelo pool. É apenas uma medida de privacidade (para evitar que todo seu chaveiro seja revelado por --refresh-keys). Mas os keyblocks PGP reais recuperados dos servidores de chaves ainda precisam ser verificados da mesma maneira que você sempre faria. Ou seja, você ainda deve verificar a impressão digital de cada chave importada, ou confiar em tofu.db do Web-of-Trust ou do GnuPG.

Então, quando se trata de:

How do I figure out, whose public key I should download from a keyserver separately (so that I don’t trust their website alone)?

Se alguém pudesse ter comprometido o site para fazer o upload de um CA.pem falso, eles poderiam ter feito o upload de uma falsa assinatura CA.em.asc ao lado dele. E se alguém pudesse inserir uma chave pública falsa no site, poderia ter carregado a mesma chave para os servidores de chaves.

Em outras palavras, o download da chave de alguém separadamente de um servidor de chaves não oferece segurança adicional. O servidor de chaves não impede que alguém faça o upload de chaves falsas com o mesmo nome & o email. Tudo ainda se resume a verificar a impressão digital da chave ou a verificação da Web-of-trust. Se você não tiver uma impressão digital para verificar, você pode obter uma perguntando ao proprietário.

(Para saber o que pessoa gerencia o SKS Pool, eu diria que os meios técnicos não são suficientes. Minha abordagem seria coletar informações de diversas fontes, como perguntar a outras pessoas ou verificar a web. archive.org, ou perguntando no canal IRC do GnuPG (se você confia em randoms no IRC). Se você continuar vendo a mesma pessoa do "Kristian Fiskerstrand" em todos os lugares, essa é provavelmente a correta.

Se você não tiver nenhuma forma de contato preexistente com o proprietário do site, sua única opção é confiar que o site está fornecendo informações legítimas. (Felizmente, sua conexão com ele é autenticada por HTTPS e WebPKI, para que você possa descartar a maioria dos ataques MITM - deixando apenas o comprometimento do servidor.)

Você pode verificar vários instantâneos no tempo do site em web.archive.org (para ver se a mesma chave está em vigor nos últimos meses ou anos).

How is each piece of information supposed to be used?

A impressão digital do certificado e / ou o hash do SPKI têm praticamente o mesmo propósito de quando os sites oferecem hashes SHA1 simples ao lado dos downloads. (Na verdade, a impressão digital é simplesmente um hash SHA1 do certificado menos sua codificação Base64.) Você pode usá-los se confia no site ... mas é redundante porque você obtém o certificado CA em si o mesmo site. Isso pode evitar alguns erros acidentais, no entanto.

Para ver a impressão digital do certificado (SHA1):

openssl x509 -in $file -noout -fingerprint -sha1
certtool --fingerprint < $file
cat $file | sed "/^-/d" | base64 -d | sha1sum

Visualizar o identificador de chave de assunto X.509v3 exige que você preste atenção à diferença entre calcular o hash SPKI (como visto em "Outras Informações") em vez de olhar o que está incorporado no X.509 extensões (como visto em "Extensões"):

certtool -i < $file | grep -C3 "Public Key ID"

A CRL (lista de certificados revogados) é usada pelo dirmngr do GnuPG para garantir que os certificados de servidor de chaves comprometidos não possam ser reutilizados até que eles expirem. A CRL é assinada pela CA, e eu acho que o dirmngr automaticamente baixa e atualiza para que você não precise.

A assinatura é feita pelo proprietário do site e pode ser usada para verificar o arquivo CA.pem se você já tiver outros meios de verificação para a chave PGP do proprietário. Simplesmente baixá-lo do mesmo site não acrescenta muito.

Para verificar a assinatura:

gpg --verify sks-keyservers.netCA.pem.asc
    
por 01.10.2018 / 10:17