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:
Documentação GPG oficial (em inglês)
GnuPG para uso diário (um mini how-to...) (em inglês)
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.
gpg --gen-revoke [ID_DA_CHAVE] > ~/.gnupg/revocation-[ID_DA_CHAVE].crt
Passo 3: Disponibilize publicamente sua chave pública
gpg --send-key 1A2B3C4D5E6F7G8H
Alguns servidores públicos de chaves:
http://keyring.debian.org (somente desenvolvedores(as) Debian pode fazer o upload ou enviar atualizações de chaves para este servidor)
Passo 4: Imprima sua chave
A marca impressa de sua impressão digital (fingerprint) contém as seguintes informações:
- Seu primeiro nome
- Seu sobrenome
- Seu endereço de e-mail (aqueles usados com sua chave)
- O método de criptografia e o ID da chave (por exemplo, 4096R/1A2B3C4D5E6F7G8H)
- A própria impressão digital
Você pode usar essa função:
gpg -v --fingerprint 1A2B3C4D5E6F7G8H
É comum fazer diversas impressões em uma folha de papel. Pode ser no tamanho de um cartão de visitas, por exemplo. Você também pode usar o gpg-key2ps, que é parte do pacote signing-party, para criar essas impressões:
gpg-key2ps -p a4 1A2B3C4D5E6F7G8H > out.ps
Alternativamente, você pode imprimir em uma coluna para evitar problemas de impressão (para chaves muito amplas):
gpg-key2ps -1 -p a4 1A2B3C4D5E6F7G8H > out.ps
Se for a uma festa de assinatura de chaves, você terá que enviar essas informações antecipadamente, e uma lista será impressa para cada participante.
DICA: leia o arquivo out.ps, você pode usar evince, okular, ghostscript ou outro visualizador PostScript.
DICA2: alguns sites web também pode ser usados para gerar o PDF de uma impressão digital OpenPGP, como: http://openpgp.quelltextlich.at/slip.html ou http://keysheet.net
DICA3: se quiser um arquivo pdf em vez do arquivo postscript, faça um pipe da saída de gpg2ps para ghostscript, por exemplo:
gpg-key2ps -p a4 1A2B3C4D5E6F7G8H | gs -sDEVICE=pdfwrite -sOutputFile=out.pdf
Alternativamente, você pode apresentar sua fingerprint na tela do seu notebook, dessa forma:
LANG=C gpg --list-secret-keys --fingerprint --keyid-format long | grep -Po 'fingerprint = \K.*' | sed 's/$/\n/; s/ /\n/' | 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
- obterá sua chave do servidor
gpg --recv-keys 00AA11BB22CC33DD
- verificará se a informação está correta (a impressão digital - fingerprint)
gpg --fingerprint 00AA11BB22CC33DD
- assinará
gpg --sign-key 00AA11BB22CC33DD
- enviará de volta para o(a) dono(a) da chave como um e-mail criptografado (não envie diretamente ao servidor). O envio criptografado é preferível já que é possível verificar se a pessoa pode descriptografar a mensagem recebida.
gpg --armor --export 00AA11BB22CC33DD | gpg --encrypt -r 00AA11BB22CC33DD --armor --output 00AA11BB22CC33DD-signedBy-1A2B3C4D5E6F7G8H.asc
Alternativamente, a ferramenta caff do pacote signing-party automatiza todo o processo:
caff 00AA11BB22CC33DD
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 1A2B3C4D5E6F7G8H-signedBy-00AA11BB22CC33DD.asc | gpg --import
A seguir, você terá que enviar a chave atualizada para o servidor:
gpg --send-key 1A2B3C4D5E6F7G8H
Além do Debian
Quem tiver interesse em expandir a rede de confiança (web of trust) para além do Debian deve visitar: