CIPSGA - Comite de Incentivo a Produção do Software Gratuito e Alternativo

CIPSGA - Comitê de Incentivo a Produção do Software Gratuito e Alternativo

acessos desde 11/05/2000 |
Opções |
Inicio
Ajuda
Apoio
Apostilas
Associando-se
Contribuições
Cursos
Denuncias
Dicas
Downloads
Emails
Eventos
Licenças
Links
Textos
Upload
WebMaster
| TRADUÇÃO
Gnu Privacy Guard GnuPG (Mini Howto - Português-Brasil) Tradução: Renato Martini rmartini@cipsga.org.br Agosto de 2000 Copyright (c) 2000, Renato Martini. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License". Copyright (c) 2000, Renato Martini E garantida a permissão para copiar, distribuir e/ou modificar este documento sob os termos da GNU Free Documentation License, versão 1.1 ou qualquer outra versão posterior publicada pela Free Software Foundation; sem obrigatoriedade de Seções Invariantes na abertura e ao final dos textos. Uma copia da licença deve ser incluída na seção intitulada GNU Free Documentation License. Gnu Privacy Guard GnuPG Mini Howto (Português-Brasil) Renato Martini (português-Brasil) <rmartini@cipsga.org.br> Dindart Jean-François (francês) <dindart@labri.u-bordeaux.fr> Brenno J.S.A.A.F.de Winter (inglês) <brenno@dewinter.com> Michel Fisher v. Mollard (alemão) <fischer@math.uni-goettingen.de> Versão 0.1.0 de 10 de outubro de 1999 (francesa) Versão 0.1.0 de 18 de junho de 2000 (brasileira) Versão 0.1.1 de 14 agosto de 2000 (atualização brasileira) Este mini HOWTO apresenta as bases para a utilização do GNU Privacy Guard (GnuPG), uma implementação Open Source do OpenPGP. Para permanecer livre de toda licença de utilização, esta implementação não utiliza nem o algoritmo RSA, nem qualquer algoritmo patenteado. A versão original deste documento Foi escrita em alemão por Michael Fischer v. Mollard. Esta versão em português é baseada na tradução francesa, e cotejada com a versão inglesa do documento. ## Preambulo Copyright (c)2000 Renato Martini (versão portuguesa-Brasil) Copyright (c)1999 Dindart Jean-François (versão francesa) Copyright (c)1999 Brenno J.S.A.A.F. de Winter (versão inglesa) Copyright (c)1999 Michael Fischer v. Mollard (versão alemã original) Este documento é uma distribuição que pode ser livremente redistribuída e/ou modificada segundo os termos da GNU Library General Public License publicada pela Free Software Foundation, versão 2 ou superior. Este documento é redistribuído na esperança que seja útil, mas sem NENHUMA GARANTIA quanto a sua correção. Para obter mais detalhes quanto a estes termos consulte a GNU Library General Public License. Você pode obter uma cópia da GNU Library License escrevendo para a Free Software Foundation, Inc., 59 temple Place - Suite 330, Boston, MA 02111-1307, USA. No Brasil você pode contactar o Comité de Incentivo à Produção do Software Gratuito e Alternativo (CIPSGA), http://www.cipsga.org.br, ou enviando um e-mail para licenca@cipsga.org.br # 1. Alguns dados sobre criptosistemas ## 1.1 O que é um criptosistema? As missões essenciais de um criptosistema podem ser resumidas em três: * Integridade: a mensagem recebida é indistinguível da mensagem enviada, * Confidencialidade: a mensagem é imcompreensível a toda pessoa não autorizada, * Autenticação: a autenticidade da mensagem é verificável. Portanto, pode-se definir um criptosistema como um sistema que assegura a confidencialidade, a integridade a autenticação de mensagens que passam em canais de comunicações. Para certas utilizações, como o estabelecimento de contratos ou provas, um criptosistema pode também assegurar o não repúdio de mensagens, isto é, assegurar que seja impossível a qualquer um repudiar uma de suas mensagens. ## 1.2 O que é um criptosistema de chave pública? Até 1976, os criptosistemas baseavam-se em somente uma chave. Essa chave é utilizada ao mesmo tempo para criptografar e descriptografar, de maneira que qualquer um que possua essa chave é capaz de ler e escrever qualquer mensagem criptografada com essa chave. Tais criptosistemas possuem de fato duas pressuposições para sua utilização: o remetente e o destinatário devem trocar a chave criptográfica antes de poder trocar mensagens criptografadas. a troca da chave necessita da existência de um canal de transmissão protegido de toda escuta exterior para evitar que um intruso possa conhecer a chave para criptografar. Estas duas pressuposições sendo muito difíceis a serem satisfeitas na maior parte dos casos, Whitfield DIFFIE e Martin HELLMAN propõem em 1976 um novo princípio de criptosistema: a criptografia de chave pública. Os criptosistemas desse tipo utilizam duas chaves com papeis bem distintos. A primeira chave é chamada 'chave pública' já que ela é conhecida por todos. É a chave pública do destinatário de uma mensagem que é usada para criptografar uma mensagem. A segunda chave, chamada 'chave privada', é conhecida somente por seu proprietário e serve para descriptografar as mensagens criptografadas com sua chave pública. O caráter público da primeira chave permite a troca de mensagens entre duas pessoas sem comunicação direta prévia entre duas partes, nem canal de transmissão protegido. Se a chave privada vier a ser descoberta por um intruso, o segredo das mensagens criptografadas com essa chave privada e a chave pública correspondente é comprometido. Portanto, o maior cuidado deve ser contribuir para a preservação do segredo da chave privada. Em particular, essa chave JAMAIS deve ser comunicada através de um canal que não seja absolutamente seguro. Uma consequência é que, sobre um plano prático, a utilização do GnuPG através de uma conexão de rede deve ser excluída, por mais que esta rede seja acessível somente a poucas pessoas exteriores. É evidente então que a segurança é uma cadeia cujo o nível é igual àquele de seu nó mais fraco. ## 1.3 O que é uma assinatura digital? Contrariamente ao que seu nome nos faz pensar, uma assinatura digital é muito mais do que o similar digital da assinatura manuscrita. Por certo, a assinatura digital é função do remetente e do conteúdo da mensagem. Portanto, uma assinatura testemunha simultaneamente a autenticidade da origem suposta e a integridade de uma mensagem. Por exemplo, a utilização sistemática de assinaturas em arquivos instalados em seu sistema reduz consideravelmente os riscos de 'Trojan Horses'. Tecnicamente falando, uma assinatura digital é apenas uma chave hash calculada sobre toda a mensagem e que é criptografada com a chave secreta do remetente. Verificar a assinatura de uma mensagem, por conseguinte, ocorre simplesmente ao se recalcular a chave a partir do texto descriptografado e em compará-la com a assinatura descriptografada com a ajuda da chave pública do suposto remetente. Se as duas chaves são idênticas, a assinatura é dita válida, ou seja, que pode-se razoavelmente pensar que o remetente da mensagem é aquele que pretende sê-lo e que a mensagem não foi modificada no curso da transmissão. ## 1.4 Por que assinar uma chave pública? O calcanhar de Aquiles dos criptosistemas de chave pública reside na distribuição das chaves públicas. Por certo, se um intruso consegue fazer com que você aceite sua chave pública como a chave pública de um de seus interlocutores, ele poderá ler todas as suas mensagens e mesmo respondê-las fazendo-se passar por seu interlocutor! Se ele envia suas mensagens ao seu interlocutor utilizando-se da verdadeira chave pública de seu interlocutor, será cada vez mais difícil descobrir que um intruso leu todas as suas mensagens. A solução adotada pelo PGP, e portanto pelo GnuPG, consiste em assinar as chaves públicas. A idéia é que se você dispõe de uma chave pública na qual tem toda a confiança, então pode estender sua confiança em todas as chaves públicas assinadas por tal chave, certamente, após ter verificado a assinatura. Uma vez que você põe toda a confiança nessas novas chaves, você pode servir-se delas para verificar outras chaves, e por aí adiante. O problema se reduz agora em como ter confiança nesta primeira chave. A solução consiste em dispor de um canal de comunicação que assegure a integridade e a autenticação das mensagens para comparar a 'impressão digital' de uma chave pública que você recebeu com a 'impressão digital' calculada pelo proprietário da chave pública. Este canal pode, por exemplo, ser o telefone ou um encontro direto. O GnuPG permite modificar o nível de confiança, variando de 1 ('eu não sei') a 4 ('confiança total'), de cada uma das chaves públicas que você possua. O GnuPG sabe igualmente calcular de forma automática o nível de confiança de uma chave em função dos níveis de confiança das assinaturas desta chave. Portanto, você deve somente pôr sua confiança com o maior cuidado se você não deseja compromete a segurança de seu criptosistema e dos criptosistemas de todos aqueles que confiam em você! ## 1.5 O que é um certificado de revogação? Quando não convém mais, seja porque a chave privada foi descoberta ou porque o tamanho da chave se mostrou muito pequeno ou por qualquer outra razão, você pode revogar tal par de chaves. Um certificado de revogação faz saber publicamente que você não usa mais um de seus pares de chaves. Para evitar que qualquer um possa gerar tal certificado, este é assinado pela chave privadoa do par a ser revogado. A validade de um certificado de revogação é assim comodamente verificável por todos. ## 1.6 É possível ler minhas mensagens criptografadas sem meu acordo quando uso o GnuPG? É evidente que a confidencialidade das mensagens que você troca usando GnuPG não depende somente da qualidade do GnuPG ou de seus algoritmos escolhidos, mesmo se esse último tem muita influência nisto. A valoração do nível de confidencialidade de suas mensagens deve levar em conta o conjunto de seu sistema. O nível de confidencialidade do PGP parece inteiramente razoável já que nenhuma história de ataque ao PGP foi até agora relatada. Certamente, se uma entidade qualquer tiver êxito em quebrar o PGP, é pouco provável que ela o anuncie publicamente, porém numerosos experts estudaram atentamente os algoritmos usados sem neles descobrir falhas. No entanto, mesmo se o PGP parece razoavelmente seguro, permanecem numerosas vias de ataque, principalmente pelo viés de seu sistema operacional, por exemplo nele instalando, sem o seu conhecimento, um programa com a tarefa de analisar tudo o que o usuário digita no teclado a procura de senhas, para então enviá-las pela rede para um endereço preciso! Se você acha que se trata de ficção, pense na facilidade com a qual os virus se instalam em certos sistemas operacionais. Estes sistemas operacionais, mesmo os mais recentes, são particularmente sensíveis a esse tipo de ataque e devem desde então excluir a possibilidade de que o nível dos intrusos potenciais ultrapasse o de um iniciante em informática. Por certo, é inutilizar um criptosistema que exige um calculo gigantesco para quebrar uma mensagem se seu sistema operacional é uma verdadeira peneira! Entretanto, seu sistema operacional não é o único ângulo de ataque, uma senha simples para a adivinhação, uma pessoa ingênua em seu escritório, a aceitação de uma chave pública sem a devida verificação, etc., são alguns dos meios que permitem o comprometimento da confidencialidade de suas correspondências, e sem falar de meios mais custosos e mais sofisticados. Estas observações não desejam tornar a ninguém paranóico, mas sim tomar consciência que a segurança é um todo. A criptografia não é a panaceia neste domínio. É necessário também que você compreenda que a confidencialidade absoluta é irrealizável (salvo se você não precisa mais recuperar o conteúdo de uma mensagem, uma vez que ela foi criptografada), mas provavelmente você não tem necessidade de tal confidencialidade. O ideal é adaptar seus meios à ameaça. # 2. Instalação do GnuPG ## 2.1 Onde pegar as fontes do GnuPG? O software GnuPG é disponível em diversos sites, mas o melhor para o download é o seu site oficial. Você também encontrará aí os endereços de espelhamento (mirrors). Se já dispõe de uma versão instalada do GnuPG ou do PGP, é bastante recomendado tirar vantagem disso e verificar as fontes do GnuPG que você pegou, para verificar enfim se elas são as autênticas. O software GnuPG está disponível como pacotes Debian (*.deb) ou Red Hat (*.rpm), e como fontes. Os pacotes Debian e Red Hat se instalam diretamente com a ajuda de ferramentas de instalação fornecidas com as distribuições correspondentes. A instalação em pacotes RPM é abordada no tópico 2.5. Os passos a seguir, para instalar o GnuPG a partir das fontes, é detalhado logo abaixo. Se você instalar o GnuPG numa arquitetura ou num sistema diferente dos inicialmente previstos, seria bom que chegasse aos autores do GnuPG os detalhes da sua instalação, que poderão beneficiar assim muitos outros usuários. A lista dos sistemas operacionais nos quais o GnuPG foi compilado com sucesso está disponível no site oficial do GnuPG. NOTA: A regulamentação dos EUA restringe muito severamente a exportação de produtos com criptografia forte. Essa regulamentação tem duas consequências importantes. A primeira é que é ilegal fazer o download do GnuPG num site hospedado no território norte-americano, a partir de um computador fora dos EUA. A segunda é que existe uma versão internacional e uma versão nacional (destinada aos EUA) do software PGP, é interessante notar também que você é livre para o download da versão internacional do PGP a partir de uma máquina situada no território dos EUA, mas você estará todavia totalmente proibido de deixar este país com tal versão! ANEDOTA: As fontes da versão internacional foram legalmente exportadas sob a forma de um livro que foi em seguida digitalizado em Oslo. Você encontrará outras informações sobre o tema no site 'International PGP Homepage'. ## 2.2 Como configurar a compilação do GnuPG? Descompactar as fontes do GnuPG: tar xvf gnupg-?.?.?.tar.gz depois vá para o diretório criado pelo comando precedente e execute a configuração das fontes do GnuPG para o seu sistema: ./configure Por padrão, o GnuPG se instala nos diretórios onde somente o root pode escrever. Se você não tem os privilégios de super-usuário, você pode mudar o diretório básico dos diretórios de instalação: ./configure --prefix=OutroDiretório Nesse caso, você precisará também acrescentar o diretório 'OutroDiretório/bin' a sua variável de ambiente PATH. Se nenhuma mensagem de erro aparece no final da configuração, é que ela ocorreu sem problemas. No caso de um problema com a internacionalização (gettext) do GnuPG, você pode tentar: ./configure --with-included-gettext ou ./configure --disable-NLS Se uma mensagem de erro aparece ao longo desta configuração, você pode consultar o arquivo 'config.log' que contém todos os detalhes a respeito do desdobramento do processo de configuração. A configuração das fontes é um processo cheio de parametros. Você pode ver todas as opções de configuração possíveis usando a opção '--help': ./configure --help ## 2.3 Como compilar o GnuPG? Para efetuar a compilação, basta agora digitar: make A compilação deve acontecer sem problemas. Se houver algum, você deve consultar o arquivo "BUGS' fornecido com as fontes do GnuPG. Se esse arquivo não for suficiente, pode pedir ajuda postando suas questões (seja PRECISO) na lista de discussão adequada do GnuPG. ## 2.4 Como instalar o GnuPG? A instalação usa o mesmo comando que a compilação mas com a opção 'install': make install Lembre que por padrão a instalação acontecerá nos diretórios acessíveis unicamente com os privilégios de super-usuário. Se você não os têm, deve-se modificar os diretórios de instalação no momento da configuração como vimos acima. Se você tem os direitos de usuário root, pode decidir alterar o 'suid bit' do executável gpg. O interesse é que assim, o gpg poderá impedir o sistema de partilhar dados confidenciais com o disco rígido. O inconveniente é que se você não pôde verificar a autenticidade das fontes do GnuPG trazidas por download. Existe então uma probabilidade que não deve ser desconsiderada que tais fontes tenham sido modificadas de forma mal intencionada (Trojan Horse). Nesse caso, dar direitos de execução root a tal programa compromete fortemente a segurança do seu sistema, se esse não é o seu funcionamento correto. Para ser completo, mesmo no caso em que você verificou a autenticidade das fontes do GnuPG, é necessário ainda interrogar à autenticidade da assinatura do qual você se serviu, do programa utilizado para recuperar esta assinatura, do programa utilizado para verificar a assinatura das fontes, etc. A atribuição dos direitos de execução root ao gpg não é portanto uma decisão tranquila. Se você escolhe não pôr os direitos de execução root ao gpg ou que você não tenha privilégios de root, o gpg mostrará uma mensagem de advertência cada vez que dados confidenciais correm o risco de serem escritos no disco rígido após um swap: Warning: using insecure memory! Você pode desativar o aparecimento da mensagem de advertência acrescentando a opção 'no-secmem-warning' no seu arquivo '~/gnupg/options'. ## 2.5 Como instalar os pacotes RPM (Red Hat Package Management) do GnuPG? Você pode fazer o download de uma versão empacotado em formato RPM, tanto binários como o código fonte, para instalar e usar imediatamente o programa. O que é útil se você não possui um ambiente de programação instalado em seu sistema Gnu/Linux. As últimas versões do GnuPG estarão sempre disponíveis para download em nosso país no site: http://www.cipsga.org.br Depois de trazer o pacote RPM, você pode instalá-lo com o comando: rpm -ivh gnupg-x.x.x.rpm Pode-se também usar, se assim preferir, as ferramentas gráficas para manipulação de pacotes RPM, como o Kpackage ou o GnoRPM. ## 2.6 Como ativar o suporte ao idioma nacional? As versões RPM/binários 1.0.2 e superiores do GnuPG, disponíveis no site do CIPSGA, estão compiladas com o suporte para o nosso idioma. Para tanto você precisa ativar as variáveis de ambiente necessárias, cheque os arquivos 'profile' ou '.profile', 'login' ou '.login', e coloque então a seguinte variável (se não desejar alterar os seus arquivos de sistema, pode digitar estes comandos no Terminal, mas terá que fazer isto sempre!): LANG=pt_BR e depois: export LANG Faça novamente o login e seu sistema estará configurado para a execução em português do GnuPG. # 3. O gerenciamento das chaves Uma vez instalado o GnuPG, você pode começar a utilizá-lo para proteger o conteúdo de suas mensagens de olhares indiscretos. O envio de uma mensagem apela à sua chave privada para a operação de assinatura e à chave pública do destinatário para a operação de criptografia. Portanto, o número de chaves em sua posse está diretamente ligado ao número dos seus interlocutores, sem contar que você pode escolher ter vários pares de chave privada/chave pública. O conjunto dessas chaves é chamado de um chaveiro digital e o GnuPG fornece os comandos para geri-lo. ## 3.1 Como gerar o par 'chave pública/chave privada'? A primeira operação a realizar é a geração de um par chave privada/chave pública com o comando '--gen-key': gpg -gen-key Este comando gera um novo par de chaves, uma privada e uma pública baseando-se em suas respostas a algumas questões. A primeira diz respeito ao algoritmo criptográfico e de assinatura que você deseja usar. Você encontrará informações sobre os algoritmos propostos no PGP DH versus RSA FAQ e sobretudo na excelente obra de Bruce Schneier: Criptografia Aplicada. A escolha DSA e ElGamal deve ser privilegiada, visto a sua utilização na Internet. Se você escolhe somente utilizar o algoritmo ElGamal, será pedida a sua confirmação para essa escolha (as implicações serão precisadas). A segunda questão diz respeito ao tamanho de sua chave criptográfica ou de assinatura se escolheu gerar uma chave de assinatura somente. A resposta a esta questão depende enormemente do uso que intenta fazer. Para o algoritmo DSA, o tamanho da chave é geralmente de 1024 bits. Para ElGamal, você poderá escolher um tamanho entre 768 bits e 2048 bits. De forma absoluta: quanto maior é uma chave melhor. No entanto, o tempo de criptografia aumenta com o tamanho de sua chave. Se você não tem idéia precisa quanto ao tamanho necessário, o melhor é escolher o tamanho proposto como padrão. Se o uso deste tamanho se mostra inadequado, você sempre poderá gerar um novo par de chaves mais adaptados as suas necessidades. As questões seguintes servem para coleta de informação que servirá mais tarde para distinguir sem ambiguidade esse novo par de chaves entre todos os pares de chaves que você possui. É graças a essas informações, por exemplo, que você poderá escolher o par de chaves para utilizar para assinar uma mensagem. Por conseguinte, você deve entrar com um nome, um endereço de e-mail e um comentário. O comentário sendo um campo livre é muito prático para distinguir seus pares de chaves uns dos outros. Todas essas informações e um gerador de números pseudo-aleatórios serão em seguida usados para gerar um novo par de chaves. Você posteriormente poderá modificar, se desejar, as informações contidas num par de chaves. Somente resta escolher uma frase-chave que servirá para criptografar sua chave privada para poder estocá-la sem riscos no seu disco rígido. Esta frase será pedida cada vez que você quiser utilizar sua chave privada. Dito de outra forma: se você esquecer a frase-chave de um par de chaves, você não poderá mais utilizá-lo! Portanto, você deve se precaver contra esse tipo de risco sem pôr em perigo a confidencialidade de sua frase-chave. Por certo, a segurança de suas mensagens repousa na confidencialidade de sua chave privada e a confidencialidade de sua chave privada e também da sua frase-chave. Portanto, a primeira medida a ser tomada é escolher uma frase-chave robusta. O problema aqui é que não existe uma definição rigorosa de 'robusto'. Podemos somente dar alguns conselhos: * a frase-chave deve ser longa, * a frase-chave deve conter caracteres alfabéticos, pontuação, algarismos, caracteres especiais, * a frase-chave não deve EM NENHUM CASO ser uma data de nascimento, um nome, um numero de documento pessoal, uma palavra ou algo fácil de se adivinhar, nem mesmo uma concatenação de dados desse tipo. A escolha de uma boa frase-chave é difícil, mas não esqueça que uma cadeia jamais é mais sólida que a sua malha mais fraca. VoCê POdE MelhORaR A SeGURanÇA de sUa FrAsE-CHaVe USANDO maiúsCuLAS e MINúsCulaS (mas não somente!) dE FORma iRreGuLAR. A segunda medida consiste em gerar um certificado de revogação para todo novo par de chaves. O motivo de se proceder assim é que é necessário dispor da chave privada, e portanto da frase-chave, para gerar o certificado de revogação de um par de chaves. gerar um certificado de revogação o mais cedo possível irá proteger do esquecimento da sua chave. Certamente, você deverá também conservar esse certificado protegido. Um vez que todas as informações foram dadas, o cálculo da chave começa. O gerador de números pseudo-alatórios necessita de um grande número de dados aleatórios, o que é difícil num computador. Você pode melhorar a qualidade dos resultados do gerador de números pseudo-aleatórios gerando você mesmo um pouco de acaso, por exemplo, mexendo o seu mouse, digitando no seu teclado, executando aplicativos, etc. A utilização de pseudo-acaso é necessária para assegurar que não é possível obter a sua chave privada efetuando o mesmo cálculo que o seu. Na verdade, as chances de sucesso de tal ataque estão diretamente ligadas à qualidade do pseudo-acaso gerado pelo gerador de números pseudo-aleatórios. ## 3.2 Como tornar pública a sua chave pública? Seus pares de chaves são estocados no seu sistema e o comando '--export' permite a extração da chave pública de um par de chaves e de escrevê-lo na saída padrão: gpg --export [info-chave] '[info-chave]' é uma informação que permite distinguir sem ambiguidade o par de chaves do qual você quer extrair a chave pública. Se esta informação não é fornecida então são as chaves públicas de todos os pares de chaves e sua passe que serão publicados. Certamente, se você não possui senão um par de chave, nenhuma informação é necessária extrair dela a chave pública. O comando '--export' escreve a chave pública em caracteres codificados de 8 bits, o que coloca alguns problemas para enviá-la por e-mail ou para mostrá-la. A opção '--armor' ou '-a' permite obter uma chave pública em caracteres codificados de 7 bits. Por padrão, a chave pública é escrita na saída padrão. A opção '--output' ou '-o' permite escrever essa chave num arquivo e não na saída padrão do sistema. Uma vez que sua chave pública está num arquivo, você deve colocá-la à disposição de seus eventuais interlocutores para que eles possam se dela servir para enviar mensagens criptografas com a mesma. Você pode fazê-lo, por exemplo, colocando esta chave numa de suas páginas Web, em seu arquivo '~/.plan', enviando-a por e-mail ou colocando num servidor de chaves. ## 3.3 Como acrescentar uma chave pública ao seu chaveiro digital? Para poder usar a chave pública de um de seus interlocutores, você deve acrescentá-la ao seu chaveiro digital com o comando '--import': gpg --import [arquivo] Se nenhum nome de arquivo é posto no parâmetro, a chave pública é lida a partir da entrada padrão. ## 3.4 Como publicar o conteúdo do seu chaveiro digital? O comando '--list-keys' envia todas as chaves públicas que você possui e todas as informações anexadas às suas suas chaves públicas para saída padrão: gpg --list-keys Você pode obter as assinaturas públicas que possui com o comando '--list-sigs': gpg --list-sigs e as chaves privadas de seu molho com o comando '--list-secret-keys': gpg --list-secret-keys ## 3.5 Como retirar chaves do seu chaveiro digital? O comando '--delete-key' permite apagar uma chave pública de seu chaveiro digital: gpg --delete-key info-chave e o comando '--delete-secret-key' permite apagar uma chave privada de seu chaveiro digital: gpg --delete-secret-key ## 3.6 Como publicar a 'impressão digital' (fingerprint) de uma chave pública de seu chaveiro digital? O comando '--fingerprint' mostra as 'impressões digitais' das chaves públicas de seu chaveiro digital: gpg --fingerprint ## 3.7 Como assinar uma chave pública de seu chaveiro digital? Como vimos na introdução, a autenticidade das chaves públicas de seu chaveiro digital é essencial para a segurança de sua correspondência criptografada. Para estar seguro da autenticidade novas chaves públicas, você pode utilizar as assinaturas dessas chaves. Você pode igualmente dar garantias da autenticidade de certas chaves públicas assinando-as com uma de suas chaves privadas graças ao comando '--edit-key': gpg --edit-key info-chave Este comando vai dar acesso a um menu textual que permite ao usuário, entre outras coisas, a assinar a chave designada por 'info-chave' digitando 'sign'. Uma vez a chave publicada, você pode torná-la pública da mesma forma que para uma de suas chaves públicas. Ainda uma vez, lembremos que você pode totalmente comprometer a segurança de suas correspondências e daqueles que você confia, ao dar levianamente confiança. Portanto, somente assine uma chave pública quando você está ABSOLUTAMENTE CERTO da autenticidade da chave que você está assinando. Esse menu textual permite também modificar o nível de confiança com o comando 'trust'. Os níveis de confiança são: * 1 = Eu não sei (I don't know) * 2 = Eu não confio (I do NOT trust) * 3 = Eu tenho pouca confiança (I trust marginally) * 4 = Eu tenho confiança total (I trust fully) Esses níveis de confiança são usados quando da verificação da assinatura de uma mensagem. Com efeito, se você não tem nenhuma ou mesmo pouca confiança numa chave pública, a validade de uma assinatura baseada sobre esta chave pública não pode garantir a autenticidade da mensagem. ## 3.8 Como gerar um certificado de revogação para um de seus pares de chaves? Você pode gerar um certificado de revogação para um par de chaves que esteja em sua posse a qualquer instante com o comando '--gen-revoke': gpg --gen-revoke info-chave Atenção, a geração de uma certificado de revogação de um par de chaves necessita do conhecimento da chave privada do par a ser revogado. Se você esquece a frase-chave de uma de suas chaves, você não poderá revogar este par. Portanto, você tem o interesse desse ponto de vista em gerar esse certificado desde que cria um par. Por outro lado, se alguém consegue obter esse certificado, pode fazer crer que você revogou o par de chaves descrito por esse certificado. Você deverá portanto pôr esse certificado em segurança ## 3.9 Como modificar uma chave pública do seu chaveiro digital? O comando '--edit-key' dá acesso a menu com vários itens que permite modificar algumas informações associadas a uma chave pública do seu chaveiro digital: gpg --edit-key info-chave Você pode conhecer os comandos acessíveis neste menu com o comando 'help'. # 4. Criptografar e descriptografar A operação de criptografia ou cifragem produz uma mensagem em caracteres de 8-bits, o que coloca alguns problemas para enviá-lo por e-mail ou para publicá-lo. A opção '--armor' ou '-a' permite a produção de um arquivo de de 7-bits. Por padrão, as operações de criptografar e descriptografar mostram seus resultados na saída padrão. A opção '--output' ou '-o' permite escriver o esultado dessas operações num arquivo e não na saída padrão do sistema. ## 4.1 Como criptografar uma mensagem? Para criptografar uma mensagem, você deve dispor da chave pública de quem se destina a mensagem. Esse último utilizará em seguida sua chave privada para dexcriptografar a sua mensagem. Você deve portanto precisar o destinatário da mensagem, ou para ser mais preciso da chave pública a ser utilizada, quando de uma cifragem: gpg --encrypt destinatário [mensagem] ou gpg -e destinatário [mensagem] 'Destinatário' representa aqui toda informação que permite distinguir sem ambiguidade uma chave pública entre todas as chaves públicas de seu chaveiro digital. Esta informação pode ser, por exemplo,o nome ou o endereço de e-nail associado à chave pública que você deseja utilizar. Você pode mesmo fornecer somente uma parte do nome ou do endereço de e-mail se esta parte baste para distinguir uma chave pública sem ambiguidade. Para evitar que alguém possa usurpar sua identidade, aconselha-se assinar toda mensagem que você criptografa. ## 4.2 Como descriptografar uma mensagem? Como a decrifragem ou descriptografia utiliza sua chave privada e você não tem senão uma regra geral, não é necessário precisá-la: gpg [--decrypt] [mensagem] ou gpg [-d] [mensagem] Se você possui várias chaves privadas, deve precisar a chave privada a ser utilizada para a decifragem com a opção '--local-user info-chave' ou '-u info-chave'. 'Info-chave' é toda informação que permite distinguir sem ambiguidade uma chave privada entre todas as suas chaves privadas. # 5. Assinar e verificar assinaturas Assim como para a cifragem, assinar uma mensagem produz uma assinatura em caracteres de 8-bits, o que pode gerar alguns problemas para enviá-la por e-mail ou para publicá-la. Aí ainda, a opção '--armor' ou '-a' permite a produção de uma assinatura em caracteres de 7-bits. A opção '--output' ou '-o' permite também escrever o resultado da operação de assinatura num arquivo e não na saída padrão do sistema. ## 5.1 Como assinar uma mensagem? O comando '--sign' (ou '-s') permite assinar uma mensagem: gpg --sign [mensagem] O comando '--sign' ao mesmo tempo assina e compacta a mensagem. Se você não quer compactar o resultado, pode simplesmente acrescentar uma assinatura no fim da mensagem graças ao comando '--clearsign': gpg --clearsign [mensagem] Os dois comandos precedentes remetem a mesagem seguida da assinatura. Se apenas a assinatura interessa, você pode utilizar o comando '--detach-sign' (ou '-b'): gpg --detach-sign [mensagem] Este comando é particularmente útil para assinar arquivos de dados binários ou executáveis. Você pode igualmente assinar e criptografar uma mensagem numa única operação: gpg [-u remetente] [-r destinatário] [--armor] --sign --encrypt [mensagem] ## 5.2 Como verificar a assinatura de uma mensagem? Quando uma mensagem é criptografada, ela é igualmente assinada e esta assinatura é automaticamente verificada quando da decifragem (certamente, apenas se você dispor da chave pública do signatário). Você pode também apenas se contentar em verificar a assinatura de uma mensagem: gpg --verify [mensagem] Esta verificação se apoiando na chave pública associada à chave privada tendo servido à assinar a mensagem, você deve com certeza dispor desta chave pública. No entento, esta verificação somente é válida na medida em que você dedica um cuidado especial à verificação da autenticidade das chaves públicas que utiliza. # 6. Documentações suplementares ## 6.1 GnuPG * O site oficial do GnuPG * As listas de discussão do GnuPG acessíveis no site oicial, compreendendo seus arquivos e descrições. * Uma documentação completa é em curso de redação. A versão mais atualizada está disponível no site oficial. * A documentação integrada ao gpg é seguramente a de mais simples acesso: gpg --help ## 6.2 PGP PGP é um programa mais antigo e mais difundido de criptografia. Numerosas documentações utilizáveis também para o GnuPG foram escritas no cursos desses anos e você pode, em particular, consultar: O site internacional do PGP O FAQ PGP DH em relação ao RSA (este FAQ representa as diferenças entre dois algoritmos utilizados pelo GnuPG. ## 6.3 Servidores de chaves http://www.keyserver.net http://wwwkeys.eu.pgp.net http://www.es.net/hypertext/pgp http://pgp.zdv.uni-Mainz.de/keyserver http://pgp.yashy.com ## 6.4 Livros * B. Schneier. Cryptografia Aplicada. Segunda Edição, Wiley and International Thonson Publishing, 1997. No Brasil: * Daniel Balparda de Carvalho. Segurança de Dados com Criptografia. Métodos e Algoritmos. Rio de Janeiro, Editora Book Express, 2000. # 7. Versões deste documento ## 7.1 Esclarecimentos sobre a versão inglesa Original German versions: Version 0.1 was the first version in German Changes in version 0.1.1 (German) * New section "Boudaries to security" * Improved explanation of signatures * Changes after comments from Werner Koch (thanks!) All changes are documented in a diff file: dieses Dokument For the english version: All remarks for this document can be send to Brenno J. S. A. A. F. de Winter (brenno@dewinter.com). Comments help us make a better document and are greatly appreciated. For the german version: Anregungen, Kritik, Verbesserungen und Erweiterungen eifach an Michael Fischer v. Mollard (fischer@math.uni-goettingen.de) senden, damit dieses Dokument weiter verbessert werden kann. * English version 0.1.0 April 30th 1999, Duth Queen's Day. This version is the translation of the german version in English with some adjustments. ## 7.2 Esclarecimentos sobre a versão francesa Cette version est en grande partie basée sur la version anglaise (merci à Brenno *8)) même si ce n'est pas une traduction mot à mot. J'ai un peu modifié la structure de la première et de la troisième partie de ce document. J'ai aussi un peu modifié le contenu de la première partie. Ce document n'en est qu'à sa première version et attend vos remarques, vos suggestions et surtout vos ajouts pour s'améliorer. Si vous me les faites parvenir, je pourrai les intégrer aux versions futures de ce document et ainsi faire profiter le plus grand nombre de vos lumières *8) dindart@labri.u-bordeaux.fr * Version Française 0.1.0 du 10 octobre 1999. Cette version est une traduction légèrement remaniée de la version anglaise 0.1.0. ## 7.3 Esclarecimentos sobre a versão brasileira (0.1.1) Esta versão foi feita a partir da tradução francesa 0.1.0, com algumas pequenas comparações com a versão inglesa 0.1.0. Esta tradução pouco acrescentou ao texto francês. Foi acrescida uma referência bibliográfica, assim como duas novas seções: a 2.5 e 2.6. Espero trazer mais melhorias futuramente ao texto, e espero contribuições de todos que querem desenvolver o uso do GnuPG em particular, e também do Software Livre em nosso país. Qualquer um pode me contactar no seguinte e-mail: rmartini@cipsga.org.br ou cripto@rmartini.vr9.com, para informações sobre futuras versões procure: http://www.cipsga.org.br Espero críticas, sugestões, melhorias, etc. Uma nota a respeito de certos termos: Use cifragem e criptografar e seus derivados como sinônimos. Neste documento não é utilizado o termo "encriptar' e derivados. "Chaveiro digital" é a solução que encontrei para a palavra "keyring", literalmente chaveiro... A tradução francesa usa "trousseau", que poderia em contrapartida ser traduzido por "molho de chaves", ficamos entretanto com chaveiro (digital). "Impressão digital" é a tradução de "fingerprint", 'marca' em hexadecimais que singulariza uma chave. A versão 0.1.1 deste documento apenas efetuou a revisão erros de digitação e ortográficos presentes na versão 0.1. * Versão Brasileira 0.1.1 de 14 de agosto de 2000. Esta é uma tradução da versão francesa 0.1.0