Este artigo
foi escrito tendo como base uma
apostila cedida pelo GRIS (Grupo de Respostas
a
Incidentes de Segurança) da UFRJ (Universidade Federal
do Rio de
Janeiro) escrito por Breno Guimarães de Oliveira,
além
dos tutoriais de José Morelli Neto
e o de Emerson Soares o
"CyberMan"
Bem, vejamos o seguinte
cenário:
Você possue bateladas de softwares anti-virus e
anti-spys, alem de um bom firewall, usa
apenas
tecnicas seguríssimas de autenticação e navegação
na
web, Você esta seguro certo???
ERRADO, tecnicas como Man-in-the-midlle (que
podem ser vistas aqui em nosso grupo, com artigos
escritos
por Dark_Angell_BR) poderiam facilmente
jogar por terra toda e qualquer tentativa
sua de
segurança na rede. Entao você pergunta: "- Mas entao,
oque fazer pra ficar mais seguro??" e eu respondo:
"- criptografia"
É certo que criptografia não vai tornar você mais
seguro ou fazer com que
durma mais traquilo quanto a
interceptação de seus dados, mas
pode garantir que
caso seus dados caiam em maos erradas, sejam
completamente
inuteis para o interceptador, e é ai
que entra o GnuPG.
Numa tradução literal (e pobre, pois meu ingrêis
não é dos mais eficazes),
o Projeto GnuPG é uma
implementação livre do OpenPGP
e segue os padrões
definidos pela RFC2440. O GnuPG possibilita criptografar
e assinar seus dados e comunicações alem de prover
um ótimo
meio de gerenciar suas chaves de
criptografia alem de acessar todo tipo de
diretório
de chaves publicas. o GnuPG, também conhecido como
GPG, é uma ferramenta de linha de comando, que pode
facilmente se integrar
a outras ferramentas e
programas que tenham como base a criptografia de dados,
alem de possuir muitos adicionais e "frontends" que
facilitam sua
utilização. o GPG, é uma ferramenta
multiplataforma,
e pode ser encontrada para quase
todas (se não para todas) as plataformas
e
arquiteturas encontradas no mercado.
Para criação desse artigo, me utilizei de umka
instalação full feita tando
em ambientes Win32 quanto em ambientes
linux (Ubuntu usando
apt-get, mas você
nao deve ter problemas com os
fontes, e na maioria dos casos, o pacote se
encontra
junto ao cd de sua distribuição), sem nenhuma
implementação
ou modificação durante a instalação.
Os passos
descritos aqui, devem servir para o uso do
mesmo em qualquer plataforma, e
havendo alguma
particularidade, a mesma será mensionada.
Iniciando
Para começarmos, é nescessario que você visite o
site do projeto GnuPG (http://www.gnupg.org/)
e faça
o download da versão correspondente a sua plataforma,
seja ela Win32, Linux (NIX/BSD's) ou Mac e em seguida, siga os
passos de
instalação correspondentes a sua
instalação
==> Instalações em Windows
Apos baixar o arquivo .EXE em
ftp://ftp.gnupg.org/gcrypt/binary/gnupg-w32cli-x.x.x.exe
(onde -x.x.x.exe
é a versão do arquivo, que até o
momento da criação
desse artigo era a
gnupg-w32cli-1.4.6.exe) entre no diretorio onde baixou
o arquivo e rode-o com duplo clique.
_files/38676859.jpg)
_files/55611531.jpg)
Selecione o idioma, e na proxima tela, clique
em next;
_files/36973345.jpg)
Este é o acordo de licença GNU/GPL, caso
concorde, clique em "next", caso
contrario, cancele
a instalação;
_files/47942330.jpg)
Seleção de pacotes a serem instalados, aqui, nao
costumo mecher em nada, mas se você
sabe o que esta
fazendo, fique a vontade para realizar quaisquer
alterações
_files/47354466.jpg)
Selecione o idioma
padrao da
instalção...
_files/40840060.jpg)
... e em seguida um diretorio pra instalar o
programa ...
_files/63324893.jpg)
... assim como a opção se ele deve ou nao
aparecer no menu iniciar;
_files/23985643.jpg)
Programa sendo instalado
...
_files/29691955.jpg)
... e já finalizada a instalação;
==> Instalações em linux
É necessário verificar se o pacote gnupg está
instalado. Caso este pacote não
esteja instalado
você poderá fazê-lo com o pacote contido dentro do CD de
instalação da sua distro, ou então baixar
o código
fonte em http://www.gnupg.org , e compilar.
O
processo é bem simples, os famosos:
tar -xvjf
gnupg-x.x.x.tar.bz2
cd
./configure
make
su
-
password:
# make
install
E você nao deve ter
problemas.
Para usuários Debian e suas
variantes (Kurumim, Ubuntu, etc...) basta um "#
apt-get install gnupg", enquanto os usuários Red
Hat
e fedora, resolvem isso com "#
yum install gnupg.i386", e o carinha ja vai estar
instalado.
==> Instalações em MAC
OS
Baixe o instalador para Mac em
http://macgpg.sourceforge.net/ e instale de acordo com a
versão
do seu sistema, caso tenha problemas, a
instalação da versão
Mac pode ser feita da mesma
forma usada pra qualquer versão de Unix,
bastando baixar
os fontes, desempacotar, e rodar os comandos básicos
"./configure; make; make install"; arquivos .dmg são
instalados
com duplo clique, nas versões Panther e
Tiger do MAC OSX.
GnuPG instalado?? Vamos então as
particularidades.
Para que você possa assinar de maneira
criptografada seus arquivos e mensagens o GnuPG age
criando um chaveiro digital e dentro dele cria duas
chaves, sendo elas:
==> Chave pública:
Essa chave serve pra
que os outros usuários sejam capazes de verificar
a
autenticidade do conteudo enviado por você, alem de
poder usa-la pra
lhe enviar arquivos.
==>
Chave priváda:
Já essa chave, é só sua e serve
pra você assinar
seus arquivos e mensagens, e também
serve pra que você abra arquivos
que você recebe e
que sao assinados por sua chave publica e que são
enviados por outros usuários.
# Criando Chaves no
GnuPG
O processo de criação de chaves é o mesmo em
todas as distribuições, e por
ser um programa que
roda em modo texto, basta que você esteja na frente
de um terminal para podermos começar. No windows,
basta você
acessar o Dos, pelo menu iniciar
executar, e digitar "cmd" (para
versoes win2000
adiante) ou "command" (para versoes Win98me e
posteriores)
em linux, basta vc acessar o modo texto
da maneira que achar mais agradavel,
eu uso o
exterm, mas você pode usar o konsole ou o bash, tanto
faz,
já em Mac, basta acessar o "Terminal" no menu
de aplicações
do "Finder".
O comando "gpg
--gen-key" inicia o processo de criação das
chaves, resultando
em algo, mais ou menos
assim:
_files/29952263.jpg)
Nesse passo, o GnuPG lhe pergunta que tipo de
chave você deseja criar, sendo as opções:
gpg (GnuPG) 1.2.4;
Copyright
(C) 2003 Free software Foundation,
Inc.
This program comes with ABSOLUTELY NO
WARRANTY.
This is free software, and you are welcome
to redistribute it
under certain conditions. See the
file COPYING for details.
Por favor selecione o tipo
de chave desejado:
(1) DSA e ElGamal
(padrão)
(2) DSA (apenas assinatura)
(4) RSA
(apenas assinatura)
Sua opção?
As opções 2 e 4, são apenas pra assinatura
enquanto as opções 3
e 5, sao omitidas por nao serem
tratadas aqui, a mais aconselhavel é
a opção 1, que
serve pra assinar tanto mensagens quanto
arquivos.
Em seguida, lhe será perguntado o tamanho de bits
que serão usados para criação
da
chave.
O par de chaves DSA
terá
1024 bits.
Prestes a gerar novo par de chaves
ELG-E.
tamanho mínimo é 768 bits
tamanho padrão é
1024 bits
tamanho máximo sugerido é 2048 bits
Que
tamanho de chave você quer? (2048)
Chaves menores que 2048 bits, são facilmente
quebradas por força bruta, recomentdo
sempre chaves
iguais ou superiores a esse valor, para se ter maior
segurança.
após esse passo, lhe é questionado a respeito da
validade dessa chave. Chaves com validades
muito
longas podem ser quebradas, caso você estipule um
periodo muito
longo de validade, sendo mais dificil
alguem conseguir decifra-la caso seja
revalidada a
um curto periodo de tempo, nao dando pra que pessoas mal
intencionadas
consigam quebrar uma chave ja usada,
quando fizer isso, a chave provavelmente ja terá
vencido.
Chegou a hora de criar seu identificador de
usuário para identificar sua chave; o programa
constrói o identificador a partir do Nome Completo,
Comentário e Endereço Eletrônico desta
forma:
Nome completo:
nobody
Endereço de correio eletrônico:
nobody@2hacker.org
Comentário: moderator
Você está
usando o conjunto de caracteres iso-8859-1'.
Você
selecionou este identificador de usuário:
"nobody
(moderator) "
Muda (N)ome,
(C)omentário, (E)ndereço ou
(O)k/(S)air?
apos esse passo, ele vai te pedir a "frase
secreta" que nada mais é que sua senha,
com uma
particularidade, essa senha pode conter espaços em
branco,
e pode serdigitada como se fosse uma frase
mesmo, por isso o chamado de frase
secreta. apos
digitar a primeira vez, digite novamente pra confirmar e
aguarde
que o GPG compile sua chave.
Voce deve ter um resultado semelhante ao
seguinte:
chaves pública e privada criadas
e assinadas.
chave marcada como de confiança
absoluta
E abaixo disso, uma descrição das suas chaves, e
tambem serao criados tres novos
arquivos, o
pubring.gpg, o secring.gpg e o trustdb.gpg, sendo
eles:
==> pubring.gpg: Chaveiro com as chaves
publicas de todos os seus contatos que usarao o
GnuPG;
==> secring.gpg: Chaveiro com suas chaves
privadas;
==> trustdb.gpg: Arquivo com informaçoes
a respeito do nivel de segurança de cada
chave;
Terminada a criação da chave, passamos a mais um
passo de extrema importancia, a criação
de uma chave
de revogação.
Esse passo e tão importante quanto o de
criação das chaves, pois caso sua chave seja descoberta
ou você venha a perder sua senha,
poderá usá-la para
anular essa chave e criar uma nova. De volta ao terminal
digite "gpg --gen-revoke " para
iniciar o
processo de criação da chave de revogação para o usuário
para o qual você criou o certificado de revogação,
esse nome pode ser a primeira parte do endereço de
email pra qual criou a chave, ou mesmo o nome de usuário
digitado anteriormente no campo
"Nome completo de
usuário".
_files/21667373.jpg)
Será necessario especificar um motivo para chave
de revogação, ou mesmo digitar "Q" caso queira cancelar.
Como você o estrá fazendo
como prevenção, nao
precisa especificar nada, bastando digitar "0
(zero)".Será pedido a senha do usuário para o qual
você esta criando o certificado, e naturalmente,
isso leva a crer que você pode ter mais de uma,
dependendo dos fins os quais você irá
utiliza-las.
_files/58857466.jpg)
E em seguida será pedida sua senha, apos
confirmar a senha seu certificado de revogação será
criado.
_files/20647110.jpg)
Revogação criada com sucesso.
Voce também poderia direcionar essa saida pra um
arquivo especifico, usando a string "--output
nomedoarquivo.acs", tornando as coisas
praticas.
Bem, por enquanto isso é tudo, no proximo artigo,
mostrarei como manipular essas chaves e como fazer uso
delas de maneira útil em seu cotidiano. Um
Abraço.