Este tutorial se destina a explicar de
forma clara e objetiva, o funcionamento e o uso de um dos mais seguros
e populares programas de criptografia: o PGP.
Aqui você encontrará instruções
passo-a-passo de como utilizar o programa e tirar ótimo proveito
dos recursos que ele oferece, logicamente não explicarei todos os
comandos que ele possui, até por que vários destes comandos,
não são utilizados por 98% das pessoas. Não se preocupe,
o que você precisa saber estará aqui.
Vocês devem estar pensando: porque escrever
mais um manual sobre o pgp? Ora, simplesmente porque estive observando
que os manuais que existem por aí, são muito incompletos
e superficiais, muitas vezes mal explicados, e a interface pouco amigável
do pgp geralmente intimida os iniciantes. Então já que o
pgp não pode ser considerado "amigável" escreverei um manual
que tenta sê-lo.
INTRODUÇÃO
O pgp (pretty good privacy - algo como
"privacidade muito boa") foi escrito por Phillip Zimmermann e se destina
a encriptar textos e mensagens eletrônicas, principalmente e-mail.
Você deve ter ouvido falar que
esse programa gerou muita polêmica à algum tempo atrás,mas
este assunto não será comentado aqui.
O PGP é um programa de criptografia
de alta segurança, proporciona encriptação de dados
em 3 níveis: médio grau comercial; Alto grau comercial e
Militar. Existem versões para quase todos os sistemas operacionais,
incluindo Unix, MS DOS, Windows, VAX/VMS e outros. O PGP é um sotware
muito prático, pois não é necessário um "canal
seguro" para você enviar chaves, poupando muitos inconvenientes,
isso ocorre porque o pgp utiliza um sofisticado sistema de criptografia
chamado "criptografia de chave pública", que explicarei mais adiante
como funciona. O algoritmo de encriptação utilizado é
o RSA (Rivest-Shamir-Adleman).
ONDE CONSEGUIR
OBS: Se você não conseguiu acesso
a nenhum destes locais, vá a um search engine e tente procurar.
mas atenção: NÃO FAÇA
DOWNLOAD DO PGP EM SITES AMERICANOS! procure em qualquer outro país,
até no Nepal se quiser, mas não em um site americano, Ok?
COMO FUNCIONA:
Seria bom que você tivesse algum contato
com o sistema de chave pública antes, mas caso ainda não
tenha aqui vão algumas explicações: (se você
já sabe como funciona, pule esta parte).
Primeiramente, vamos a um exemplo prático:
Suponhamos que eu queira lhe mandar uma mensagem, mas eu não quero
que ninguém além de você leia. Posso criptografar ou
codificar, isto é embaralhar os dados para que ninguém descubra
o que lhe escrevi, somente você, que recebeu a mensagem poderá
decifrá-la (ou mais corretamente, descriptografá-la, acostume-se
com isso).Só que para você decifrar a mesagem que lhe mandei,
eu precisaria lhe mandar, por um canal seguro,
a mesma senha que eu usei para criptografar
a mensagem, correto? ótimo, assim é que funcionam os sistemas
de criptografia convencionais, podemos chamá-los então de
Sistemas de "chave simples".
Conclui-se então que sistemas de chave
simples são aqueles nos quais é utilizada uma mesma senha
para encriptar e para desencriptar uma mensagem.
Mas se você for esperto, você
vai tirar a mesma conclusão que eu: Ora, se você tem um "canal"
seguro o bastante para mandar a referida senha, então para que a
criptografia? hummm...
O PGP, utiliza um sistema muito mais inteligente,
chamado de Chave pública. Mas como isso funciona? é o seguite:
Qunado você instala o pgp, ele gera duas chaves: a chave púlica
(Public key) e a chave privada (secret key). A chave pública você
vai divulgar para o mundo todo e para quem você quiser, e a privada
você guarda em seu micro. Então supunhetemos que um amigo
seu lá do comando vermelho queira lhe mandar uma mensagem. O que
ele faz? simples, ele pega a SUA chave pública e a usa para encriptar
a mensagem que ele vai lhe enviar. Quando esta mensagem chegar em suas
mãos, você usa SUA chave secreta (aquela que foi gerada junto
com a pública lembra?), e desencripta ou "desembaralha" a mensagem,
tornando-a legível a você.
Ninguém além de você
poderá ler a mensagem enviada por seu amigo do CV, nem mesmo ele.
porquê? ora, por que só você
tem a SUA chave a secreta que desencripta os arquivos encriptados com SUA
chave pública, entendeu?. Então como eu mando minhas mensagens
a outras pessoas? Bem, é só fazer ao contrario ou seja, você
usa a chave pública fornecida pelo destinatário, encripta
a mensagem que você quer mandar e pronto, agora só o destinatário
poderá lê-la. Tudo bem, mas como eu faço para "encriptar"
e "desencriptar"? é o que veremos adiante. ( Se você ainda
está boiando, não desanime, logo tudo vai ficar mais claro,
afinal se é uma coisa que um bom hacker precisa saber é criptografia!).
Você também pode assinar sua
mensagem. Isto pode ser usado para que o rementente tenha certeza de que
foi você mesmo que mandou. Se você mandar uma mensagem assinada,
não poderá negar que não foi você que mandou,
pois a falsificação dessa assinatura é impossível.
explicarei isto mais adiante.
As chaves públicas que você
vai adquirindo, são guardadas em um arquivo no próprio diretório
do pgp chamado "pubring.pgp" e suas chaves secretas no "Secring.pgp", a
estes arquivos damos o nome de anéis de chave pública e privada,
respectivamente.
Caso você odeie absolutamente linhas
de comando -humm, atitude suspeita...- e não se agrade com a interface
não gráfica do PGP, é possível fazer o download
de um shareware chamado PGPn123, que funciona em windows 95 (arghh!) e
acrescenta uma interface gráfica ao pgp tornando mais simples o
seu uso e automatizando alguns processos mais comuns.
O software pode ser encontrado em www.rof.net/yp/alphaone,
(Experimente,faça um teste, não estará cometendo nenhum
pecado usando-o, quem sabe você goste dele...)
USANDO O PGP
Gerando seu primeiro par de Chaves:
A primeira coisa que você vai fazer depois de entrar no MSDOS e executar o PGP, é gerar seu par de chaves pública/privada. digite: (obs: todos os comandos são SEM AS ASPAS!)
"pgp -kg" (lembre-se: sem aspas!)
O programa vai lhe perguntar o tamanho em bits,
que você quer a sua chave, se você tem um computador muito
lento (486 ou inferior) ou necessite de um nível de segurança
médio utilize a primeira opção (1); Se você
quer um nível de segurança alto escolha a segunda opção
(2). Agora se você for um cara realmente paranóico, utilize
a segurança nível militar (3), não se esqueça
de comprar um pentium antes, ok. Lembre-se: Quanto mais alto o nível
de segurança mais difícil será
Como eu consigo as chaves
públicas de meus colegas?
As chaves públicas, dificilmente vão
estar em um arquivo isolado. geralmente são postas no meio de algum
texto ou tutorial. Seguramente você já deve ter lido alguns
textos que contêm essas chaves: é aquela parte do texto onde
diz: --begin pgp public key block--, esse é o início de um
arquivo de chave pública do pgp. E agora? o que eu faço para
obtê-la? it's very simple:
Adicionando chaves públicas
ao seu anel de chaves públicas:
O próximo passo é você
adicionar os arquivos de chave pública que você pegou por
aí (lembra do item anterior?) ao seu anel de chave pública
(pubring.pgp). Para fazer isto digite:
"pgp -ka arquivo_de_chave"
(Obviamente, você deverá substituir
"arquivo_de _chave" pelo arquivo de chave do destinatário:
"pgp -kv"
Para ver todas as assinaturas anexas
a cada chave, digite:
"pgp -kvv"
Para remover uma chave ou um userID do
seu anel de chave, digite:
"pgp -kr userID"
O pgp irá perguntar se tem certeza
que quer remover a chave, se tiver, diga que sim.
Encriptando arquivos:
Chegou a parte mais interessante. Para encriptar
um arquivo com a chave pública do destinatário que não
será enviado por e-mail, digite:
"pgp -e carta.txt userID_do_destinatário"
(substitua "carta.txt" pela mensagem que você
quer encriptar, e o "userID_do_destinatário"
Mas certamente você vai querer encriptar
uma mensagem para mendar por e-mail, para isto, a opção anterior
não serve. Então vc terá que transformar a mensagem
encriptada em caracteres ascii, tornando compatível com o e-mail.
Para fazer isto apenas acrescente a opção -a na sequência
de comandos. ficaria assim:
"pgp -ea carta.txt userID_do_destinatário"
Algumas vezes, você vai querer somente
encriptar arquivos da forma convencional, para guardar em seu micro ou
em um disquete, lembra-se do conceito de chave simples?. Para este caso,
realmente não é necessário o uso de chaves públicas/privadas,
é muito trabalhoso. Para fazer isto apenas digite:
"pgp -c Arquivo.txt"
Depois de digitar o comando a cima o pgp pedirá
uma senha, invente qualquer uma a seu gosto, e pronto. (lembre-se de memorizar
esta senha ou guardar em um local bem seguro) Com isto, será gravado,
no mesmo diretório do texto original, um arquivo com a extensão
.pgp, depois que vc encriptou, logicamente deverá apagar o original
com a extensão .txt).
Se você quiser mandar uma mensagem para
múltiplos destinatários, apenas acrescente os userID's de
todos que você quer enviar na linha do comando, pode colocar quantos
desejar.
"pgp -ea carta.txt spartacus joão cremilda
maria joel"
O pgp, quando encripta mensagens convencionais
(que não serão enviadas por e-mail) grava todas com a extensão
.PGP. Quando ele encripta mensagens para e-mail grava com a extensão
.ASC.
Desencriptando mensagens e
textos:
Para desencriptar arquivos ou textos enviados
a vc, basta digitar:
"pgp arquivo_de_texto_código.xxx"
Obs: O "xxx" é a extensão do
arquivo-código recebido (.pgp,.asc ou .txt).
Assinando mensagens:
Talvez você quer que o destinatário
saiba que realmente foi você quem enviou a mensagem
"pgp -s arquivo_texto.txt seu_userID"
Este comando produz um arquivo de texto
chamado Arquivo_texto.pgp.
Se quiser mandar um arquivo assinado
por e-mail e que seja legível, digite:
"pgp -sta arquivo_texto.txt"
Este comando produzirá um arquivo
com a extensão .asc.
Assinando e criptografando
Para assinar um texto plano com sua chave secreta
e depois criptografá-lo com a chave pública do destinatário,
digite:
"pgp -es arquivo_texto userID_do_destinatário
seu_userID"
Para assinar e criptografar um texto
e mandar por e-mail apenas acrescente a opção -a:
"pgp -esa arquivo_texto userID_do_destinatário
seu_userID"
Extraindo ou copiando uma
chave do seu anel de chaves:
Certamente vc vai querer distribuir sua chave
pública (afinal, é pra isso que ela serve) e a de seus amigos
pela rede, mas como fazer isso? vc deve ter tentado imaginar como as pessoas
fazem para inserir suas chaves no meio dos textos não é?
Para isso terá que extrair sua chave ou a de seu colega de dentro
do anel de chaves do pgp. Para fazer isto digite:
"pgp -kxa userID" (o userID pode ser o seu
ou de qualquer outra pessoa que você tiver a chave guardada no seu
anel de chave pública.)
O pgp irá perguntar em qual arquivo
deseja extrair a chave, dê um nome ao arquivo (preferencialmente
o mesmo userID do dono da chave) e escolha um diretório para ele
ser salvo. O pgp salvará o arquivo, no diretório que vc escolheu,
com a extensão .ASC. Depois abra o arquivo recém criado em
um editor de textos e veja o resultado. faça o que quiser com ele,
distribua, recorte e cole em algum outro texto, etc.
Vendo a "impressão
digital" de uma chave
Você pode fazer o pgp mostrar a "impressão
digital" da chave selecionada, a fim de verificar com o próprio
dono sua originalidade. digite:
"pgp -kvc userID"
Aparecerão alguns caracteres tipo A2
C5 FD F4 etc. isso é a tal impressão. Então você
conversa com o dono da chave (por telefone talvez...) e diz para ele fazer
a mesma coisa, se os números baterem, a chave é legítima.
Se as chaves forem originais, é absolutamente impossível
terem estes números ou "impressões digitais" diferentes.
Comando para paranóicos...
Apagando o texto de origem
Esta opção é muito útil
se vc quiser apagar o texto original do qual você criptografou a
mensagem. Vamos supor que você criptografou um texto de nome "paraaoutra.txt".
O pgp criará o tradicional texto código "paraaoutra.asc"
e apagará automaticamente o "paraaoutra.txt". prático não?
Para fazer isto basta acrescentar a opção -w (wipe) assim:
"pgp -eaw Texto.txt UserID"
Exibindo o texto descriptografado
somente em seu monitor:
Usando isto, o pgp não salvará
o texto descriptogrado em lugar algum. ele mostrara o texto desencriptado,
uma tela por vez, como o comando more do unix. Para fazer isto, use a opção
-m (more), enquanto descriptografa. exemplo:
"pgp -m arquivo_de_texto_criptografado"
Impedindo o destinatário
de gravar sua mensagem em disco:
Este é um truque muito interessante.
Isto impedirá o destinatário de gravar a mensagem que você
enviou a ele, o destinatário poderá somente visualizar a
mensagem, uma tela por vez.
de alguém ler sua mensagem só
que, em contrapartida, o processo de encriptação pode se
tornar mais lento, dependendo é claro da máquina que você
possui.
Após você escolher seu
nível, ele pedirá para você entrar com seu nome de
usuário, coloque aí seu nome ou seu nick, uma boa sugestão
seria você incluir também o seu e-mail, seria mais fácil
contactá-lo e você dificilmente seria confundido com outro
usuário de nome/nick igual.
Para fazer isto apenas acrescente do lado
do nome ou nick que você digitou:
Obs: oseu mail ou qualquer identificação
que você fizer, deve estar dentro dos sinais "<" e ">".
Agora o pgp irá lhe pedir uma frase
senha (passphrase), essa senha pode ser qualquer coisa que você imaginar,
mas não coloque coisas óbvias, como sequências de caracteres
ou nomes que possam facilmente ser deduzidos. Aviso importante: NÃO
GUARDE ESSA SENHA EM SEU MICRO, EM HIPÓTESE ALGUMA! evite anotá-la,
em qualquer lugar que seja, somente MEMORIZE-A. Depois o pgp pede para
você inserir novamente a mesma senha, faça isto.
Finalmente, ele pede que você digite
caracteres aleatórios até ouvir um bip. digite qualquer coisa,
isso vai gerar bits aleatórios que vão compor seu par de
chaves, portanto, evite digitar sequências repetidas de caracteres,
tipo aaaaa,bbbbb... o ideal é que você varie o tempo de seus
toques no teclado e digite caracteres diversos.
Depois de tudo isso feito, o programa vai
mostrar, em um pequeno gráfico a evolução da geração
da chave, segundos depois, enfim seu par de chaves estará gerado.
(se vc possuir um pentium ou +, não vai ver gráfico nenhum)
fácil não é?
Selecione com o mouse TUDO que está
entre a parte onde diz:
"---BEGIN PGP PUBLIC KEY BLOCK---" até
onde diz "---END PGP PUBLIC KEY BLOCK----". Depois de selecionado, copie
ou recorte, e cole em um novo arquivo texto, salve-o com a extensão
.TXT.
Atencão: o texto precisa estar em formato
plain text (.TXT)! .doc's não funcionarão. (essa dica só
funciona com a versão 2.63 ou superior do pgp, para as mais antigas,
você deverá salvar o texto com a extensão .ASC. Pronto.
Agora, se você seguiu corretamente todos os passos, você terá
o seu primeiro arquivo chave pública. Se quiser gere um outro par
de chaves para você fazer algumas experiências.
vamos supor que você conseguiu a public
key da madonna, acho que você deve ter salvo este arquivo como "madonna.txt"
certo? então ficaria assim: "pgp -ka madonna.txt". (não esqueça
de informar o local onde está salvo o arquivo de chave - Ex: c:\madonna.TXT)
fazendo isto o pgp irá automaticamente adicionar a chave pública
da madonna ao seu anel de chave pública (pubring.pgp).
depois de você digitar este comando,
se tudo correr bem, o pgp irá lhe perguntar se você quer certificar
a chave que está adicionando. Se tiver certeza que a chave é
realmente de quem você pegou, diga que sim. Logo após, se
você não certificou a chave, ele irá perguntar se vc
quer realmente usar a chave, pois ela não está certificada,
etc. sem problemas, apenas diga que sim.
Se você quiser ver o conteúdo
de seu anel de chave pública digite:
substitua pelo UserID do destinatário
que você possui no seu pubring. Qualquer fragmento do ID do destinatário
será suficiente para o programa identificar o destinatário,
por exemplo, em vez de vc digitar "pgp -e carta.txt spartacus" poderá
digitar "pgp -e carta.txt spar".
Veja:
As mensagens encriptadas serão gravadas
no mesmo diretório onde está a mensagem original que você
usou para encriptar. Vamos supor que vc criou uma mensagem com o nome de
secreta.txt e a gravou no diretório c:\cartas. Ótimo, quando
você usar o pgp ele vai criar outra mensagem de nome secreta.asc,
neste mesmo diretório (c:\cartas), mantendo a original (secreta.txt).
Então a mensagem que vc vai mandar a seu amigo será a secreta.asc.
portanto, lembre-se de apagar a mensagem
anterior (secreta.txt), ok?. Se quiser, pode visualizar como ficam os textos
encriptados com extensões .pgp e .asc, abrindo-os em qualquer editor
de textos.
Quando desencripta, o pgp grava o arquivo
no mesmo diretório do arquivo-código, só que sem extensão
alguma. Para ler a mensagem recebida, basta renomeá-lo e colocar
a extensão .txt.
Para desencriptar arquivos em que foi utilizada
criptografia convencional, (lembra do comando "pgp -c" ?) é a mesma
coisa, só que você vai ter que entrar com a mesma senha que
você usou para encriptá-lo.
a ele, para isto, vc deve assiná-la
ou autenticá-la. digite:
Para isto acrescente novamente a opção
-m, só que agora é enquanto criptografa a mensagem.