Assinatura de chaves

Introdução

O objetivo desta página é explicar como criar e assinar uma chave OpenPGP.

Em seguida é preciso se conectar com sua rede de confiança (web of trust), veja a página de coordenação de assinaturas de chaves.

Como fazer

Tutoriais explicando como usar o GnuPG:

Se quiser que sua chave OpenPGP seja assinada ao menos uma vez (mas o ideal é mais que uma) por um(a) Desenvolvedor(a) Debian, siga os passos abaixo.

Passo 1: cria um par de chaves RSA

gpg --full-gen-key

Veja também criando um par de chaves (em inglês).

/!\ Note que devido a vulnerabilidades encontradas no algoritmo de hash SHA1, o Debian requer chaves RSA mais fortes que tenham ao menos 4096 bits e preferencialmente SHA2, embora Ed25519 seja até melhor.

Veja também Boas práticas OpenPGP, documentação sobre subchaves (em inglês) e migração a partir de uma chave SHA-1 (em inglês).

Passo 2: Gere um certificado de revogação

Também gere um certificado de revogação se ainda não o tem. Durante todo o resto da página, assume-se que sua fingerprint será definida pela variável ${minhaFingerPrint}

gpg --gen-revoke ${minhaFingerPrint} > ~/.gnupg/revocation-${minhaFingerPrint}.crt

Passo 3: Disponibilize publicamente sua chave pública

gpg --send-key ${minhaFingerPrint}

Alguns servidores públicos de chaves:

Passo 4: Imprima sua chave

A marca impressa de sua impressão digital (fingerprint) contém as seguintes informações:

Para descobrir sua fingerprint, você pode usar essa função:

gpg -v --fingerprint ${minhaFingerPrint}

Normalmente, você faz várias impressões em uma folha de papel, chamada de _keysheet_ (folha de chaves). Cada impressão pode, por exemplo, ser do tamanho de um cartão de visita.

Use um site web para gerar um PDF

Existem vários sites que você pode usar para gerar PDFs prontos para imprimir da sua chave; por exemplo http://openpgp.quelltextlich.at/slip.html ou http://keysheet.net.

Use gpg-key2ps para gerar um PDF

Você também pode usar o gpg-key2ps, que é parte do pacote signing-party, para criar sua _keysheet_:

gpg-key2ps -p a4 ${minhaFingerPrint} | gs -sDEVICE=pdfwrite -sOutputFile=out.pdf

Alternativamente, você pode imprimir em uma coluna para evitar problemas de impressão (para chaves muito extensas):

gpg-key2ps -1 -p a4 ${minhaFingerPrint} | gs -sDEVICE=pdfwrite -sOutputFile=out.pdf

Se você for a uma festa de assinatura de chaves, terá que enviar essas informações com antecedência e, em seguida, uma lista será impressa para cada participante.

Exiba sua chave na sua tela em vez de imprimi-la

Alternativamente, você pode exibir suas fingerprints na tela de seu laptop, dessa forma:

LANG=C gpg --list-secret-keys --fingerprint --keyid-format long | grep -Po 'fingerprint = \K.*' | sed 's/$/\n/; s/  /\n/' | /usr/games/sm -i -

Passo 5: Distribua a impressão digital de sua chave

As pessoas que assinarão sua chave precisarão ver alguma forma de identificação emitida pelo governo (passaporte ou similar).

Forneça uma impressão ao menos para um(a) desenvolvedor(a) Debian.

Leia a página oficial de assinatrua de chaves do Debian.

Um(a) participante CAcert precisará ver duas identificações.

Passo 6: Assine digitalmente sua chave

O(A) desenvolvedor(a) Debian fará, com sua chave ${ddSignersFingerprint} key, o seguinte:

gpg --recv-keys ${minhaFingerPrint}

gpg --fingerprint ${minhaFingerPrint}

gpg --sign-key ${minhaFingerPrint}

gpg --armor --export ${minhaFingerPrint} | gpg --encrypt -r ${minhaFingerPrint} --armor --output ${minhaFingerPrint}-signedBy-${ddSignersFingerprint}.asc

Alternativamente, a ferramenta caff do pacote signing-party automatiza todo o processo:

caff ${minhaFingerPrint}

Passo 7: Envie sua chave assinada ao servidor

Algum tempo depois de ter participado da assinatura de chaves, você receberá sua chave assinada através de um anexo de e-mail. Importe as assinaturas:

gpg -d ${minhaFingerPrint}-signedBy-${ddSignersFingerprint}.asc | gpg --import

A seguir, você terá que enviar a chave atualizada para o servidor:

gpg --send-key ${minhaFingerprint}

Além do Debian

Quem tiver interesse em expandir a rede de confiança (web of trust) para além do Debian deve visitar:

Veja também


CategoryCommunity CategoryDeveloper