Como preparar-se para uma festa de assinatura de chaves GPG

De Eriberto Wiki
Ir para: navegação, pesquisa
Esta página é um resumo de alguns dos procedimentos encontrados no artigo Usando o GnuPG.



Twitter.png

by (C) João Eriberto Mota Filho <eriberto (a) eriberto pro br>

Artigo criado em: 30 de abril de 2007.

Última atualização: veja o rodapé desta página.

Tiny URL ou bit.ly: http://tiny.cc/festa_gpg



O que é o GPG?

O GPG é uma variante do PGP.

O PGP (Pretty Good Privacy ou Privacidade Muito Boa) é um sistema de criptografia assimétrica e assinatura digital, desenvolvido em 1991 por Philip Zimmermann. No início, o PGP possuia restrições quanto ao uso. Assim sendo, o Projeto GNU desenvolveu o GnuPG (GNU Privacy Guard), também conhecido como GPG, que é totalmente compatível com o PGP.

O GnuPG segue as especificações do protocolo OpenPGP, definido pela RFC 2440.

O site do PGP é o http://www.pgp.com. O site do GnuPG (GPG) é o http://www.gnupg.org.

Para que eu poderei usar o GPG na prática?

Com o mesmo par de chaves, você poderá, tanto no GNU/Linux quanto no MS Windows:

  • Assinar e-mails, com um clique, assegurando para o destinatário que a mensagem enviada realmente partiu de você e que não foi alterada no meio do caminho (assinatura digital).
  • Criptografar e-mails com um clique, garantindo que somente uma determinada pessoa possa ler o seu conteúdo.
  • Assinar um arquivo, garantindo que ele foi produzido por você.
  • Criptografar arquivos com um clique ou um comando simples.
  • Outras possibilidades.


O que é uma festa de assinatura de chaves GPG (ou PGP)?

Uma festa de assinatura de chaves GPG é um evento no qual as pessoas se reúnem para trocar as informações necessárias para realizar a assinatura mútua de chaves. Assim, cada participante terá condições de assinar chaves alheias e de obter assinaturas na sua própria chave. Este artigo irá descrever os procedimentos necessários para que uma pessoa possa participar de uma uma festa de assinatura.

Como preparar-se para uma festa de assinatura de chaves?

Preliminares

Os procedimentos preliminares para participar de uma festa de assinaturas são:

  • Criar um par de chaves GPG (PGP);
  • Disponibilizar a chave pública em servidor público PGP;
  • Comparecer ao evento portando os documentos e os dados necessários para a assinatura da sua chave pública por outras pessoas.


Criação do par de chaves GPG

Inicialmente, você vai precisar do GnuPG instalado na sua máquina. No Debian, por exemplo, você poderá utilizar o comando:

# apt-get install gnupg
Exclamacao36.png Muitas distribuições já instalam o GnuPG por default. Para verificar a presença do mesmo, utilize o comando $ gpg -h.

A seguir, como usuário comum, emita o comando:

$ gpg --gen-key

Observações importantes:

  • Ao criar as chaves, escolha a opção DSA and Elgamal. Essa opção irá permitir a assinatura e a criptografia de mensagens, arquivos etc.
  • Opte pela não expiração das chaves para que ela seja "eterna". Chaves pessoais, geralmente, não são criadas com prazo de validade. No entanto, se preferir, insira uma data de expiração. Essa data poderá ser modificada de tempos em tempos na própria chave.
  • O item Comment poderá ser deixado em branco mas, geralmente, é preenchido com um nickname que você use no mundo virtual.
  • Não utilize acentos ao inserir o seu nome.
  • Ao criar o par de chaves, será pedida uma passphrase (frase senha). Não utilize uma senha comum, com 6 ou 8 caracteres. Use uma frase retirada de uma música ou expressão que seja fácil de lembrar. A passphrase poderá ser alterada posteriormente.
  • Ainda, em qualquer processo de criptografia assimétrica, a utilização da chave privada sempre irá requerer o uso de uma passphrase.


Disponibilização da chave pública em servidor na Internet

Inicialmente, liste o conteúdo do seu chaveiro digital com o comando a seguir:

$ gpg --list-keys

A sua chave recém criada deverá ser mostrada. Na primeira linha encontra-se o número da chave. Exemplo:

pub   1024D/8C45C1CC 2006-10-26
uid                  Joao Eriberto Mota Filho <eriberto@eriberto.pro.br>
sub   2048g/9E8E4B41 2006-10-26

No caso, estamos tratando da chave 8C45C1CC ou, simplesmente, 8c45c1cc. Este número é importantíssimo, pois sempre será utilizado quando quisermos nos referir à chave em questão.

Há vários servidores de chaves públicas na Internet. A maioria dos grandes servidores sincronizam chaves entre si. Alguns bons exemplos de servidores são:

Exclamacao36.png Para ver a relação dos servidores existentes, consulte o endereço http://sks-keyservers.net/status.
Exclamacao36.png Para ver uma das minhas chaves públicas, entre em qualquer um dos citados servidores e digite eriberto no campo de busca (Search String). Depois, clique em Enviar dados. Vão aparecer alguns "eribertos". Clique sobre 8C45C1CC e verá a chave. Para ver quem assinou esta chave, clique sobre o meu nome completo, na linha que contém 8C45C1CC (tela anterior, se você clicou na chave).

Para inserir uma chave pública em um servidor, bastará enviar tal chave por intermédio de um comando. Exemplo:

$ gpg --keyserver subkeys.pgp.net --send-key <nr_da_chave>

No meu caso, ficaria assim:

$ gpg --keyserver subkeys.pgp.net --send-key 8c45c1cc
Exclamacao36.png É bom relembrar que a chave, ao entrar em qualquer servidor público, será repassada para os demais servidores.

Toda chave pública possui um fingerprint, que é um hash de tal chave. Para ver o fingerprint da sua chave pública, emita o comando:

$ gpg --fingerprint <nr_da_chave>

Repare que os dois últimos blocos do fingerprint da chave correspondem ao número da mesma.


Documentos e dados necessários

Ao comparecer à festa de assinatura, você deverá estar portando:

  • Um documento oficial com foto (carteira de identidade ou de motorista).
  • Tiras de papel ou cartões contendo:
    • O seu nome completo;
    • O seu e-mail;
    • O fingerprint da sua chave pública.
Exclamacao36.png Note que não haverá a necessidade de estar portando a sua chave pública na festa de assinatura. Na verdade, a festa só serve para a troca de informações. A assinatura propriamente dita ocorrerá fora da festa (em casa, por exemplo).


Situações extraordinárias: criação das chaves em eventos e transmissão pela Internet

Caso você esteja, neste momento, em um evento ou local público e necessite criar um par de chaves, proceda da seguinte forma:

  • Logue em uma máquina como um usuário comum. De preferência, crie uma conta exclusiva para você.
  • Crie o seu par de chaves.
  • Anote o número da chave e o fingerprint.
  • Se puder fazer isso no local do evento, realize o upload da chave para um servidor público. Caso contrário, faça o upload na primeira oportunidade, de preferência no mesmo dia.
  • Comprima o diretório .gnupg que será criado no diretório home do seu usuário. Esse diretório contém o seu par de chaves (cuidado com a privada!). Exemplo:
$ tar -cvzf gnupg.tar.gz .gnupg
  • Copie o arquivo para a sua pendrive para poder levar para casa. Se não tiver uma pendrive, criptografe o arquivo para transmiti-lo pela Internet. Utilize o OpenSSL. Exemplo:
$ openssl enc -des3 -in gnupg.tar.gz -out gnupg.tar.gz.des3
Exclamacao36.png Será pedida um frase senha no momento da criptografia. Utilize uma senha que você não vá esquecer e que não seja fácil para alguém advinhar. Pode até ser a mesma senha da chave GPG.
  • Se não tiver pendrive, transmita o arquivo criptografado, por e-mail, para o seu endereço de e-mail.
  • Se você criou um usuário para esta operação, remova o usuário e todos os seus arquivos com o comando:
# userdel -r usuário
  • Caso você não possa remover o usuário do computador, remova todos os dados críticos com o comando:
$ rm -rf .gnupg gnupg.tar.gz*
  • Se enviou o par de chaves por e-mail, ao chegar em casa, decriptografe o arquivo com o comando:
$ openssl enc -d -des3 -in gnupg.tar.gz.des3 -out gnupg.tar.gz
  • A seguir, descompacte, na raiz do diretório home do usuário, o arquivo gnupg.tar.gz. Exemplo:
$ tar -xvzf gnupg.tar.gz
Exclamacao36.png Com os procedimentos anteriores, você criará a transmitirá a sua chave, com segurança, em ambiente hostil. No entanto, como qualquer erro poderá ser fatal, evite os procedimentos descritos. Tente trazer a sua chave de casa ou criá-la no seu notebook.


O que fazer no momento da festa de assinatura de chaves?

O princípio da relação de confiança

O uso do PGP baseia-se em uma relação de confiança. Assim sendo, geralmente, uma chave pública deverá ser assinada pela chave privada de várias pessoas conhecidas. Esse processo deverá ser presencial, para garantir que não haja quebra da cadeia de confiança. Um exemplo clássico: uma pessoa envia a sua chave, por e-mail, para que outra assine. Como garantir que o receptor terá a certeza de que o emissor seja realmente a pessoa que ela diz ser? Ou pior: imagine que a pessoa que enviou a chave é quem realmente diz ser mas alterou dados para fraudar uma chave. Tudo é possível.

A certificação das informações alheias

Chaves alheias somente deverão ser assinadas se executados os seguintes procedimentos:

  • Faça um contato físico com a pessoa cuja respectiva chave você irá assinar. Repito: você deverá estar frente a frente com a pessoa.
  • Obtenha dessa pessoa os seguintes dados:
    • Nome completo, como consta na chave;
    • Endereço de e-mail, como consta na chave;
    • O fingerprint da chave a ser assinada.
  • Ainda, confira a identidade da pessoa, mesmo que a conheça há muito tempo, por intermédio de um documento com foto. Verifique se o nome completo é idêntico ao fornecido. Geralmente, utilizamos carteira de identidade ou de motorista.
Exclamacao36.png ATENÇÃO: não negligencie os passos mostrados neste item. Eles irão garantir que a pessoa é quem realmente diz ser e que o fingerprint apresentado realmente pertence a ela. Não assine chaves tendo como base uma mensagem de e-mail, conversas telefônicas, contato por MSN etc. Se você fizer isso, poderá comprometer seriamente a cadeia de confiança. Em assuntos que envolvem segurança, todo o cuidado é pouco!

O uso do cartão de visita

É muito comum as pessoas confeccionarem cartões de visita já contendo o fingerprint. Isso facilita bastante o contato pessoal, pois evita a necessidade de anotar os dados no momento do encontro (acredite, isso dá trabalho). A seguir, um exemplo de cartão de visita com os dados básicos (além de outros):

Cartão GPG


Note que o cartão mostrado não difere de um cartão de visita comum, do tipo que você entregaria a qualquer pessoa. O único dado extra é o fingerprint. Ainda, o telefone celular foi desfigurado, pois este realmente é o meu cartão.

Exclamacao36.png Lembre-se! São dados essenciais num cartão usado para assinar chaves PGP: o nome completo, o e-mail e o fingerprint da chave. Esses dados deverão ser verificados em um documento oficial que contenha foto.

Você não precisa usar exatamente um cartão, apesar de ser elegante. A idéia é facilitar as coisas na hora de trocar dados com outras pessoas. Então, você pode imprimir seus dados (em forma de tabela) em uma folha de papel e recortar os quadrados. Veja um exemplo disso a seguir:

Papéis GPG



Uma outra possibilidade seria usar o programa gpg-key2ps, disponível no pacote signing-party do Debian GNU/Linux, que faz as tiras, automaticamente, a partir do número da chave. O gpg-key2ps gera um arquivo postscript, que poderá ser lido e impresso com programas como o KGhostView (KDE). Você também poderá utilizar o programa flpsed para converter de postscript para PDF.


Assinando chaves alheias e usando o GnuPG

A assinatura das chaves alheias deverá ser feita fora da festa de assinaturas. Poderá ser feita em casa, por exemplo. Como o objetivo deste artigo já foi atingido, para obter informações mais avançadas sobre o uso do GPG e sobre o processo de assinatura de chaves, consulte o artigo Usando o GnuPG, neste mesmo wiki.

Veja também


Comentários, sugestões e controle de acessos

Por favor, deixe os seus comentários e sugestões sobre este artigo no meu Blog Técnico. Para isto, clique aqui.




Consulte também o contador abaixo, iniciado em 30 abr. 07, além do gráfico acima.