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:
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
|