CRIPTOGRAFIA. MANTENDO A SUA CORRESPONDNCIA SEGURA.

(O texto a seguir e' basicamente uma mescla do original do Phillip Zimmerman, traduzido por Roberta Paiva Bortolotti
(roberta@nimitz.ibilce.unesp.br) e a artigo 'PGP para Novatos', do Derneval (Barata Eltrica N.12). Tomamos a liberdade de
alinhavar os dois.) 

Criptografia (do grego Kryptos) e' a arte de escrever secretamente, isto e', por meio de cifras ou
sinais convencionais. 

"O motivo e' pessoal. E' particular. E nao interessa a ninguem, somente a voce. Voce pode estar
planejando uma campanha politica, discutindo seu imposto ou tendo um romance proibido. Ou
ainda pode estar fazendo algo que ache nao ser ilegal, mas e'. Seja o que for, voce nao quer que
sua correspondencia eletronica particular (E-mail) ou que documentos confidenciais sejam
lidos por qualquer um. Nao ha' nada de errado em reinvindicar sua privacidade. A Privacidade
e' tao importante quanto a Constituicao. 

Talvez voce ache que seu E-mail e' suficientemente reconhecido e que a criptografia seja
injustificavel. Se voce realmente e' um cidadao obediente a lei e que nao tem nada a esconder,
entao, por que voce nao manda sempre o conteudo de suas correspondencias em cartoes
postais? Por que nao se submete a teste de drogas em investigacoes? Por que nao pede um
mandato judicial para que a policia entre em sua casa? Esta' tentando esconder algo? Se
esconde sua correspondencia dentro de envelopes, voce deve ser um revolucionario ou um
traficante. Ou talvez, um louco paranoico. Por um acaso, algum cidadao obediente a lei precisa
criptografar sua correspondencia eletronica? 

E se todo mundo acreditasse que os cidadaos obedientes a lei deveriam usar cartoes postais
para correspondencia? E quando alguma alma corajosa tentasse assegurar sua privacidade
usando um envelope para sua correspondencia, isto despertaria suspeitas. Talvez as autoridades
queiram abri-lo para ver o que esta escondendo. Felizmente, nao vivemos neste tipo de mundo,
porque todos protegem a maioria de suas correspondencias com envelopes. Assim, ninguem
desperta suspeitas quando garante sua privacidade com um simples envelope. Ha' seguranca nos
numeros. Analogicamente, seria bom se todos habitualmente usassem a criptografia em todas as
suas correspondencias eletronicas, inocentes ou nao, de modo que ninguem despertasse
suspeitas quando assegurar, atraves da criptografia, sua privacidade no correio eletronico.
Pense nisso como uma forma de solidariedade. 

Atualmente, se o Governo quiser violar a privacidade de cidadaos comuns, tem que gastar uma
certa quantia de dinheiro e tempo para interceptar, abrir e ler o conteudo de correspondencias,
para ouvir e possivelmente transcrever conversas por telefone. Este tipo de monitoria de
tempo-intensivo nao e' pratico por varios motivos. Isto e' feito somente em casos importantes
quando parece valer a pena. 

Cada vez mais nossas comunicacoes particulares estao sendo monitoradas por canais
eletronicos. A correspondencia eletronica esta' substituindo gradualmente o correio
convencional. Mensagens de correio eletronico sao facilmente interceptadas e examinadas
buscando-se palavras-chaves de interesse. Isto pode ser feito sem dificuldades, frequentemente,
automaticamente e indectavelmente em grande escala. Cabogramas internacionais ja' sao
examinados deste modo pela NSA. 

Estamos nos movendo em direcao a um futuro onde uma nacao sera' entrecruzada com redes de
dados de fibras opticas de alta capacidade, interligadas juntamente com todos os computadores
pessoais crescentes em toda parte. O correio eletronico sera' padrao para todos e nao a
novidade que e' hoje. O governo protegera' nosso E-mail com protocolos de criptografia
projetados por ele mesmo. Provavelmente, muitas pessoas consentirao com isso. Mas talvez
algumas pessoas preferirao suas proprias medidas de protecao. 

Sistemas de Criptografia
Primeiramente, algumas terminologias elementares. Suponhamos que eu queira lhe mandar uma
mensagem, mas eu nao quero que ninguem alem de voce leia. Posso "criptografar", ou
"codificar" a mensagem, isto e', mistura-la de uma maneira completamente confusa,
apresentando-a ilegivel para qualquer um, menos para voce que e' o destinatario desejado da
mensagem. Forneco uma "chave" criptografica para criptografar a mensagem e voce tera' que
usar a mesma chave para decodifica-la ou "descriptografa-la". De qualquer forma e' assim que
funciona em criptosistemas convencionais de "chave-simples". 

Em criptosistemas convencionais, tais como o modelo do Padrao Criptografico de Dados
Federal dos Estados Unidos (DES - Data Encryption Standard), uma chave simples e' usada
tanto para criptografar quanto para descriptografar. Isto significa que, inicialmente, uma chave
deve ser transmitida por canais seguros, de modo que ambas as partes a conhecam antes que as
mensagens criptografadas possam ser enviadas por canais nao-seguros. Tudo isto pode ser
inconveniente. Se voce tem um canal seguro para trocar chaves, entao por que precisa tanto da
criptografia? 

Em criptosistemas de chave publica, todos tem duas chaves afins complementares: uma chave
divulgada publicamente e uma outra secreta. Cada chave abre o codigo que a outra chave
produz. Conhecendo a chave publica, nao e' possivel deduzir a chave secreta correspondente. A
chave publica pode ser divulgada e disseminada amplamente atraves de uma rede de
comunicacao. Este protocolo fornece privacidade sem a necessidade do mesmo tipo de canais
seguros que um criptosistema convencional exige. 

Qualquer um pode usar uma chave publica do destinatario para criptografar uma mensagem,
somente ele podera' descriptografa-la utilizando sua chave secreta correspondente. Ninguem
alem do destinatario pode descriptografa-la, porque ninguem mais tem acesso a sua chave
secreta. Nem mesmo a pessoa que criptografou a mensagem pode descriptografa-la." E' como
funciona o PGP. 

"Pretty Good (tm) Privacy - PGP (Privacidade Muito Boa), do software Pretty Good dePhil, e'
uma aplicacao de software criptografico de alta seguranca para MSDOS, UNIX, VAX/VMS e
outros computadores. O PGP permite que as pessoas troquem arquivos ou mensagens com
privacidade, com autenticacao e com conveniencia. Com privacidade porque somente as
pessoas indicadas a receberem uma mensagem podem le-la. Com autenticacao porque as
mensagens que parecem vir de uma determinada pessoa somente podem ter originado dela
mesma. Com conveniencia porque a privacidade e a autenticacao sao fornecidas sem qualquer
dificuldade pela administracao de chaves associada ao software criptografico convencional.
Nao e' necessario nenhum canal seguro para a troca de chaves entre os usuarios, o que torna o
PGP mais facil de ser usado. Isto acontece porque o PGP e' baseado em uma nova tecnologia
poderosa chamada criptografia de "chave publica". 

O PGP combina a conveniencia do criptosistema de chave publica Rivest-Shamir-Adleman
(RSA) com a velocidade da criptografia convencional, opera sobre coletanea de assinaturas
digitais em mensagens, compressao de dados antes de se criptograr, bom projeto ergonomico e
sofisticada administracao de chaves. O PGP desempenha as funcoes de chave-publica mais
rapido do que a maioria das implementacoes de software. PGP e' criptografia de chave publica
para as massas. 

Onde conseguir o programa?

    ftp://ftp.dsi.unimi.it/pub/security/crypt/PGP/
    ftp://ftp.informatik.uni-hamburg.de/pub/virus/crypt/pgp/
    ftp://ftp.csua.berkeley.edu/pub/cypherpunks/pgp/

Observacao:
Existe a versao norueguesa do PGP, que tem a grande vantagem de nao entrar em choque com a
questao de patente da americana. O PGP nos Estados Unidos e' considerado arma militar.

WWW:
http://www.ifi.uio.no/pgp/

FTP:
ftp.ifi.uio.no/pub/pgp/

E-mail:
Mande mensagem para pgp@hypnotech.com e coloque seu pedido no campo de Subject.

Subject Voce recebe
------- -----------
GET pgp263i.zip MS-DOS executavel (uuencodado)
GET pgp263ix.zip 32-bit MS-DOS executavel (uuencodado)
GET pgp263i-os2.zip OS/2 executavel (uuencodado)
GET pgp263i-win32.zip Windows 95/NT text-mode executavel (uuencodado)

(Atencao: NAO faca download do PGP a partir de sites americanos!).

Primeiros passos:

Para dar inicio a coisa, e' necessario descompactar o programa com a seguinte linha de
comando:

pkunzip -d pgp263i.zip

A primeira fase, depois do programa descompactado, e' a criacao ou geracao da chave secreta
de descriptografacao. Do que se trata? Sao as duas senhas que sao usadas no sistema de
comunicacao via pgp. Uma e' a senha publica, melhor conhecida como chave publica, que pode
ser distribuida para todo mundo. Outra senha (ou chave) e' a chave privada. Pois bem, todas as
duas sao geradas uma unica vez (na verdade, a pessoa tenta umas cinco ou seis vezes, quando
acha que aprendeu, repete o processo mais uma vez e ai entao esquece esse negocio de "gerar
chave publica e privada"). Para poder gerar suas duas chaves, digite a linha de comando:

pgp -kg

Outra coisa e' a variavel tz. E' preciso "setar" a variavel. Pode colocar:

set tz=0

Chamando de novo (pgp -kg), basicamente e' preciso responder as perguntas do programa, tais
como nome do usuario, informacoes, correio eletronico, etc. Ai' o programa ira' pedir uma
frase-senha. Essa frase senha pode ate' ter 128 letras. O programa vai te perguntar qual o tipo
de criptografacao voce quer. 
Escolha a de nivel militar, de 1024. Um pouco de paranoia nao faz mal a ninguem.

Duvidas: copie a versao em portugues do manual (de onde foi tirada a introducao deste texto)
no http://www.geocities.com/SiliconValley/5620/misc.html e leia.

O resultado serao dois arquivos:

secring.pgp e o pubring.pgp

O primeiro, e' pra guardar a sete chaves. O segundo e' o que voce pode distribuir (mais ou
menos, tem um criterio para isso) publicamente. E' bom fazer back-up.

Para criar um arquivo de "pgp-public-key-ring" pronto p. ser enviado p. 
email:

pgp -kxa 

O programa vai perguntar o arquivo de saida que e' chamado de "armoured". 
Pode ser enviado sem medo pela internet.

Como e' que se envia uma mensagem criptografada por pgp, via email?

Vamos supor: 

Voce quer escrever uma mensagem para o Derneval, do Barata Eletrica. Depois de descobrir
que a chave pgp esta' em alguns dos primeiros numeros do BE, edita ou apaga tudo, menos o
seguinte texto:

----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6

mQCNAi7UlucAAAEEAM/eXiKMcvB2vmomVMBZYewgc66WRZcE9MNaXdLKIWSJo3vR
FSeLtBvSfr0kvzZzWJW38uLWT3OIM/kJ5CX6C35kksdNjipUXZ2hbXazvReGE/Of
t5o9SRe2l4QbQoAmYXm/B4TNs99fUmtWZCc3HWlXmUbDtMTJzyqI+aKIaaVdAAUR
tD1EZXJuZXZhbCBSaWJlaXJvIFJvZHJpZ3VlcyBkYSBDdW5oYSA8cm9kcmlnZGVA
Y2F0LmNjZS51c3AuYnI+
=56Ma
-----END PGP PUBLIC KEY BLOCK-----

salva como derneval.asc

digita:

pgp derneval.asc

O programa vai perguntar se voce quer adicionar essa chave ao seu pubring.pgp . Se esta'
inseguro, responda sim (voce salvou o backup dos arquivos pubring.pgp e o secring.pgp, nao
salvou?) pode ser que ele faca outra pergunta sobre certificacao de chave. Se voce nao souber o
que e' isso, responda nao. Se quiser saber o que e', leia o manual. 

Ai' digita:
pgp -ea <texto.txt> derneval 
O programa vai comecar a criptografar a mensagem de uma forma q. so o 
usuario final (eu, no caso) possa ler. E' legal que o remetente possa ler e o pgp permite
criptografar p. mais de uma pessoa. 
pgp -ea <texto.txt> derneval <remetente>

Como e' que descriptografo o arquivo que recebi?

pgp arquivo.txt

O programa vai pedir a frase senha. 
Detalhe: isso vai acontecer se o pgp encontrar o arquivo secring.pgp no 
mesmo subdiretorio.

Para saber mais: 
PGP Frequently Asked Questions
http://www.prairienet.org/~jalicqui/pgpfaq.txt
ftp://ftp.prairienet.org/pub/providers/pgp/pgpfaq.txt
Where to Get the Latest PGP Program FAQ
ftp://ftp.uu.net/usenet/news.answers/pgp-faq/where-is-PGP.Z

Breve referencia:
Aqui esta' um breve resumo dos comandos do PGP.

Para criptografar um arquivo de texto plano com a chave publica do 
destinatario:

pgp -e arquivo_texto userID_do_destinatario

Para assinar um arquivo de texto plano com sua chave secreta:

pgp -s arquivo_texto [-u seu_userID]

Para assinar um arquivo de texto plano ASCII com sua chave secreta, produzindo uma
mensagem de texto plano assinada (nao-criptografada) adequada para ser enviada via
correio eletronico:

pgp -sta arquivo_texto [-u seu_userID]

Para assinar um arquivo de texto plano com sua chave secreta e depois criptografa-lo com a
chave publica do destinatario:

pgp -es arquivo_texto userId_do_destinatario [-u seu_userID]

Para criptografar um arquivo de texto plano somente com a criptografia convencional,
digite:

pgp -c arquivo_texto

Para descriptografar um arquivo criptografado ou para verificar a integridade da
assinatura de um arquivo assinado:

pgp arquivo_de_texto_codigo [-o arquivo_de_texto_plano]

Para criptografar uma mensagem para varios destinatarios multiplos:

pgp -e arquivo_texto userID1 userID2 userID3

--- Comandos de administracao de chaves:

Para gerar seu proprio par unico de chave publica/secreta:

pgp -kg

Para acrescentar um conteudo do arquivo de chave secreta ou publica para seu anel de
chave publica e secreta:

pgp -ka arquivo_de_chave [anel_de_chave]

Para extrair (copiar) uma chave do seu anel de chave publica ou secreta:

pgp -kx userID arquivo_de_chave [anel de chave]
ou: 
pgp -kxa userID arquivo_de_chave [anel de chave]

Para ver os conteudos do seu anel de chave publica:

pgp -kv[v] [userID] [anel_de_chave]

Para ver a "digital" de uma chave publica, a fim de verifica-la pelo telefone com seu dono:

pgp -kvc [userID] [anel_de_chave]

Para ver os conteudos e verificar as assinaturas certificadas de seu anel de chave publica:

pgp -kc [userID] [anel_de_chave]

Para editar o userID ou a frase senha para sua chave secreta:

pgp -ke userID [anel_de_chave]

Para editar os parametros confiaveis para uma chave publica:

pgp -ke userID [anel_de_chave]

Para remover uma chave ou apenas um userID de seu anel de chave publica:

pgp -kr userID [anel_de_chave]

Para assinar e certificar a chave publica de alguem no seu anel de chave publica:

pgp -ks userID_do_destinatario [-u seu_userID] [anel_de_chave]

Para remover assinaturas selecionadas de um userID em um anel de chave:

pgp -krs userID [anel_de_chave]

Para remover definitivamente sua propria chave, divulgando um certificado de
comprometimento de chave:

pgp -kd seu_userID

Para invalidar ou reabilitar uma chave publica em seu proprio anel de chave
publica:
pgp -kd userID


------------------------- Chave Publica - HERMES 

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.3ia
mQCNAzDsvsQAAAEEANGezaEi3NKuMTiJMgGu8CfSYy07MdGTyS7hw6ELn+hp7Vpz
IUagsoPcRJiLGrZ82z/rMLBKGU7iVKqA1kQlPU5oBoRz9Qq0O9kof1akZF/ZClOe
GXiIILNL+gT5vtVvoQzg5T0SmAoFjUu545u/JkTrKbqxHWfqdIjry47Y53jxAAUR
tClNYXJjb3MgUm9kcmlndWVzIDxtYXJjb3NAYmFoaWFuZXQuY29tLmJyPokAlQMF
EDDsvsWI68uO2Od48QEBspwEAKImSERnllHg/00gpeDlT4OI+DpI9gP4V3TxMSb3
fIrQuZAvBu36OG00kPPIIMSyxqkkFjepoD5brJFLG+2ie8MYt1/jd91HYF6vA09+
UEJqJW2IIHkf8cxYg+RM1tR3hSgJGA0eWNTf6B6XUEjNd6hJS1xsqG2VCn2xBE/r
L7MG
=DLyi
-----END PGP PUBLIC KEY BLOCK----- 
