FAQ do PGP International
FAQ Sobre as Versões Internacionais do PGP
Abaixo encontra-se uma lista de perguntas freqüentes sobre o PGPi (o PGP internacional), e respectivas respostas. Comentários sobre a versão em português podem ser enviados à henriqmh@dca.fee.Unicamp.br. Comentários sobre a versão original do FAQ em inglês devem ser enviados à stale@hypnotech.com.
Versão internacional versus versão norte-americana
1.1. Porquê criar uma versão internacional do PGP ?
1.2. Qual é a versão mais atual do PGP internacional ?
1.3. Quais as diferenças entre o PGP 2.6.3i e o MIT PGP 2.6.2 ?
1.4. Quão compatível a versão PGP 2.6.3i é em relação às outras versões ?
1.5. O que é RSAREF? E MPILIB? Qual a diferença entre elas ?
1.6. Que versão do pgp devo usar afinal ?
2.1. O que significa "internacional" ? Quem pode usá-la ?
2.2. Porquê a versão internacional não é oficial ? É ilegal usá-la ?
2.3. O PGP 2.6.3i pode ser usado comercialmente ?
2.4. Posso usar parte do código fonte do PGP nos meus programas ? Como ?
Obtendo o PGP-i
3.1. Onde posso conseguir uma cópia do PGP 2.6.3i ?
3.2. Existe alguma versão para Windows do PGP 2.6.3i ?
3.3. Existe alguma PGP.DLL ?
3.4. Onde posso conseguir módulos de línguas atualizados para o PGP 2.6.3i ?
4.1. Como posso verificar a integridade do PGP 2.6.3i ?
4.2. Eu não consegui instalar o PGP. O que faço agora ?
4.3. Qual é o valor correto de TZ para o meu país ?
Diversos 5.1. O PGP 2.6.3i pode ser "quebrado" ?
5.2. Por acaso o PGP 2.6.3i não é aquela versão que foi enfraquecida pela NSA ?
5.3. Existem bugs no PGP 2.6.3i ?
5.4. Quem é o responsável pelo PGP 2.6.3i?
5.5. Onde posso aprender mais sobre o PGP?
Se sua dúvida sobre o pgp não foi respondida, tente o alt.security.pgp FAQ (em inglês).
1.1. Porquê criar uma versão interacional do PGP ?
As versões oficiais do PGP feitas pelo MIT (das quais a mais atual é a 2.6.2) foram feitas dentro dos EUA e são voltadas para o uso exclusivo nos EUA. Devido a alguns problemas internos aos EUA, relacionados com patentes e copyright, essas versões contém certas limitações e restrições que são completamente irrelevantes para usuários em qualquer outra parte do mundo. Quando o PGP foi espalhado ao redor do mundo, é natural que essas limitações fossem removidas. Para isso foram criadas as versões internacionais do PGP.
A versão mais atual do PGP é a 2.6.3i. Ela foi primeiramente lançada em 18 de Janeiro de 1996, e atualmente encontra-se no patchlevel 'a'. O PGP 2.6.3i é baseado no código fonte do MIT PGP 2.6.2, modificado para uso internacional. O PGP 2.6.3i substituiu o PGP 2.6.2i.
As diferenças mais importantes estão listadas abaixo:
Não utiliza a library RSAREF
É compatível com todas as versões 2.x do PGP
Ela corrige vários dos bugs presentes no PGP 2.6.2(i)
Ela compila "direto da caixa" em mais plataformas
Ela adiciona alguns novos comandos sem quebrar a compatibilidade com versões mais antigas
A lista completa das modificações (em inglês) pode ser obtida em http://www.ifi.uio.no/pgp/diffs.shtml.
O PGP 2.6.3i pode ler e entender mensagens, chaves e assinaturas criadas por qualquer PGP versão 2.x. (Note porém que as chaves não podem ser maiores que 2048 bits. Nenhuma versão oficial do PGP aceita chaves mais longas que isso, de qualquer maneira). Como o PGP 2.6.3i usa a MPILIB em lugar da RSAREF, ele é capaz de entender inclusive o antigo formato de assinaturas do PGP 2.2 e anteriores (pkcs_compat=0). Entretanto ele não escreve esse tipo (antigo) de assinatura.
O PGP 2.6.3i pode gerar mensagens, chaves e assinaturas que podem ser lidas e entendidas por qualquer PGP 2.x, entretanto se você quiser que as suas chaves e assinaturas possam ser lidas pelas versões 2.3a e anteriores, é necessário que a linha "legal_kludge = off" do arquivo CONFIG.TXT seja ativada.
Em outras palavras: O PGP 2.6.3i é 100% compatível com as versões do MIT. Se você estiver trocando mensagens com alguém que ainda usa a versão 2.3a (ou mais antiga) do PGP, lembre-se de desligar o "legal_kludge".
RSAREF é uma library de software que implementa as rotinas criptográficas RSA (RSA é uma das rotinas criptográficas usadas pelo PGP, e o coração da criptografia de chave pública). A RSAREF é freeware, e está sob a responsabilidade da RSA Data Security Inc., dona da patente sobre o algorítimo RSA nos EUA. Qualquer pessoa nos EUA que queira usar o RSA em seus programas e distribuí-los gratuitamente (exemplo: o PGP), é obrigado a usar a RSAREF. Todas as versões oficiais do MIT PGP, apartir da versão 2.5, usam a RSAREF.
MPILIB é simplesmente uma outra implementação das mesmas rotinas RSA encontradas na RSAREF. As rotinas na MPILIB foram originalmente escritas por Phil Zimmermann, e foram usadas em todas as versões do PGP até a versão 2.3a inclusive. Funcionalmente a MPILIB é idêntica à RSAREF, mas as rotinas da MPILIB são geralmente mais rápidas que às da RSAREF (apesar da diferença de velocidade variar muito de plataforma para plataforma). A MPILIB ainda possui a vantagem de ser capaz de entender o formato antigo para assinaturas de chaves usado pelo PGP 2.2 e anteriores (pkcs_compat=0), ao contrário da RSAREF. Outra vantagem da MPILIB é que essa é publicada segundo os termos da GPL, enquanto que a RSAREF não.
Note que o PGP 2.6.3i usa a MPILIB, e não a RSAREF. Esta é a razão principal pela qual o PGP 2.6.3i não deve ser usado nos EUA. Phil Zimmermann falou o seguinte sobre o PGP 2.6.i, o predecessor do PGP 2.6.3i:
"The unofficial variant of PGP named PGP 2.6.i by its developers replaces RSAREF routines with other code implementing RSA-related algorithms. I am very familiar with that code, and while I tried to make PGP use RSAREF in a manner that did not suffer a performance penalty, I believe that these other subroutines are at least as efficient, as well as being functionally identical for PGP's purposes. Since the RSA patent does not exist outside the USA, it seems reasonable to not encumber European users with the RSAREF subroutine library and its own additional copyright restrictions..."
A variante não oficial do PGP batizada 2.6.i pelos seus criadores troca as rotinas da RSAREF por um outro código que implementa os algoritmos relativos a RSA. Eu conheço esse outro código a fundo, e embora eu tenha tentado fazer o PGP usar a RSAREF sem causar nenhuma perda de performance, eu acredito que essas outras rotinas [MPILIB] são pelo menos tão eficientes [quanto as da RSAREF], bem como funcionalmente idênticas para o propósito do PGP. Uma vez que a patente sobre o RSA não existe fora dos EUA, me parece razoável que os usuários europeus não carreguem nos ombros o peso da RSAREF e suas restrições adicionais de copyright...
Normalmente você deveria utilizar a versão do MIT se estiver nos EUA e a versão internacional em qualquer outro caso. Entretanto, existem exceções -- olhe em http://www.dca.fee.unicamp.br/pgp/which-version.shtml para mais informações.
O PGP 2.6.3i foi criado como uma alternativa às versões americanas do PGP, que são distribuídas pelo MIT e contém certas restrições que não são relevantes aos usuários fora dos EUA. Em geral, o "internacional" significa "não-americano", ou seja, pode ser usado por qualquer um exceto por aqueles que vivem nos EUA. Se você não tem certeza se o PGP 2.6.3i é a versão correta para você, algumas dicas para ajudá-lo podem ser encontradas http://www.dca.fee.unicamp.br/pgp/which-version.shtml.
O uso do PGP 2.6.3i é perfeitamente legal, contanto que você:
Não more em um país onde a criptografia é ilegal (ex: a França, Russia, Iram, Iraque ou China).
Não esteja fisicamente dentro dos EUA.
Tenha certeza que não obteve a sua cópia do PGP de algum lugar que esteja fisicamente situado dentro dos EUA. Se você obteve o PGP em algum dos locais citados na questão 3.1, você não deveria ter problemas.
A razão pela qual o PGP 2.6.3i não é oficial é que ele foi baseado em código fonte exportado ilegalmente dos EUA. Entretanto, uma vez que o programa já foi exportado, ele pode ser usado livremente. Phil Zimmermann, o autor original do PGP, escreveu uma carta aberta sobre o PGP 2.6.i (o predecessor do PGP 2.6.3i), que foi o mais perto de uma aprovação oficial que ele pôde chegar sem enfrentar problemas legais.
Para uma discussão mais detalhada nos aspectos legais do uso do PGP (em Inglês), leia as páginas em http://www.mantis.co.uk/pgp/pgp-legal.html.
Sim, porém como o algorítimo IDEA usado pelo PGP é patenteado em muitos países, talvez você precise obter uma licença de uso. (O algorítimo RSA não é patenteado fora dos EUA, e você não precisará de licença para usá-lo).
Alguns dos países onde a patente sobre o IDEA é válida são:
EUA (Mas você não deveria usar o PGP 2.6.3i nos EUA :-)
Japão (pendente)
Eu não posso garantir que essa lista é completa, portanto por favor verifique com os donos da patente (Ascom AG, veja abaixo) em caso de dúvida. Obviamente a Ascom pode ver no futuro razões para patentear o IDEA em mais países. Por enquanto o uso do PGP (comercialmente) não requer nenhuma licença na maior parte do mundo.
Licenças para o uso do IDEA podem ser compradas na Ascom Systec AG na Suíça. O licenceamento do IDEA era feito pela Ascom Tech, mas esta responsabilidade foi transferida para sua companhia-irmã Ascom Systec. Por favor, não contate a Ascom Tech à respeito do IDEA. O custo da licença é baseado no número de usuários.
A licença para uso do IDEA pode ser comprada via Internet. Para mais informações, olhe aqui, ou contate: Licensing Manager Roland Weinhart:
Tel. : +41 62 889 59 54
Fax : +41 62 889 59 54
Email : idea@ascom.ch
O PGP é distribuído sob a General Public License -- GPL (note que a biblioteca RSAREF usada pelo PGP 2.6.2 e 2.6.3 não é. Verifique a documentação), portanto você tem todo o direito de modificar o programa para seu uso privado. Porém, não o use para propósitos comerciais, e se você pretende distribuir qualquer código que seja derivado do código fonte do PGP, não utilize o nome "PGP". O nome "PGP" é uma marca registrada (registered trademark).
Então, como fazer para integrar funções do PGP ao seus programas ? Olhe a resposta à questão 3.3!
O PGP 2.6.3i está disponível tanto como código fonte, quanto como binários pré-compilados para as plataformas mais populares, tais como MS-DOS, OS/2, Atari e Amiga. Você pode obter mais informações (e o próprio programa) em:
http://www.dca.fee.unicamp.br/pgp/download.shtml (Português)
ftp.unicamp.br/pub/mail/security/pgp/
ftp.ifi.uio.no/pub/pgp/
ftp.encomix.es/pub/pgp/
ftp.ox.ac.uk/pub/crypto/pgp/
Envie uma email para pgp@hypnotech.com com subject GET PGP
Não. Não existe nenhuma versão "verdadeira" do PGP para Windows 3.1/NT/95, mas existem alguns front-end shells que adicionam uma interface gráfica às versões para DOS. Existem binários pré-compilados para MS-DOS (16-bits & 32-bits), OS/2, Amiga, Atari and Macintosh. Existe também uma compilação para Win32 (Windows 95/NT), mas é apenas uma aplicação só-texto, sem nenhuma GUI. Incidentemente, essa versão suporta nomes longos para arquivos (NTFS & VFAT). Você pode encontrar mais informações em http://www.dca.fee.unicamp.br/pgp/windows.shtml.
A PGP, Inc. (www.pgp.com) vende uma PGP DLL simples, mas esta só está disponível nos EUA e Canadá. Descontando esta DLL "simples", não existe uma PGP DLL. Existem algumas bibliotecas experimentais, mas elas não implementam toda a funcionalidade do PGP e não são para uso geral, logo, integrar o PGP com programas de sua autoria é um pouco difícil. Existem pelo menos três maneiras diferentes de fazê-lo:
Chamar um binário do PGP utilizando a command line (lento)
Obter uma cópia de alguma das bibliotecas PGP (http://www.dca.fee.unicamp.br/pgp/libs.shtml) e tentar entendê-la.
Modificar o código fonte do PGP e linkeditá-lo junto com o seu programa (difícil). Dê uma olhada na questão 2.4
Uma coleção atualizada de arquivos de tradução tanto para o PGP 2.6.3, quanto para o PGP 2.6.3i, pode ser encontrada em:
http://www.ifi.uio.no/pgp/modules.shtml
http://www.dca.fee.unicamp.br/pgp/modules.shtml (Português)
ftp://ftp.unicamp.br/pub/mail/security/pgp/lang/
ftp://ftp.ifi.uio.no/pub/pgp/lang/
Todos os pacotes de distribuição do PGP 2.6.3i contém um arquivo assinado de forma que você possa verificar se os arquivos não foram sabotados.
Para poder verificar essa assinatura, você irá precisar da chave pública do signatário:
Ståle Schumacher (0xCCEF447D): Código fonte, versões para MS-DOS e OS/2
Peter Simons (0x34D74DC1): Versão para Amiga
Guy Geens (0x5AE50475): Versão para Atari
Naoki Sukiyama (0x05DE8AF1): Versão para Macintosh
Em primeiro lugar, tenha certeza que leu e entendeu as instruções de instalação (usualmente encontradas no arquivo SETUP.DOC) para a plataforma que você irá utilizar. Leia as instruções novamente (e cuidadosamente) e tente várias vezes. :-)
DOS/Windows: Certifique-se que a variável de ambiente PGPPATH está correta e não contém nenhum espaço em branco. Você lembrou-se de ressetar o computador depois de modificar o AUTOEXEC.BAT, não ? ;-)
Unix: Se você não sabe qual make target utilizar para a sua plataforma, os comandos abaixo talvez possam lhe dar alguma dica:
Se você recebeu mensagens sobre unresolved references to strdup() durante a compilação, pegue o patch mais novo em http://www.ifi.uio.no/pgp/patch.shtml. Após conseguir compilar o PGP com sucesso, verifique se o diretório ~/.pgp/ existe e se você tem permissão de escrita nele antes de gerar suas chaves.
Se você ainda estiver tendo problemas, tente pedir ajuda em alt.security.pgp. Se você pensa ter achado um bug, dê uma olhada em http://www.dca.fee.unicamp.br/pgp/bugs.shtml.
Você encontrará alguns exemplos no arquivo SETUP.DOC (note que mesmo que você esteja usando o Windows 95, você pode utilizar o AUTOEXEC.BAT para ajustar o TZ). A sintaxe é simples:
SET TZ=XXX[+|-]n
Onde XXX são três letras quaisquer, e [+|-]n é a diferença entre a hora local e a hora UTC (GMT), em horas completas (1.5 não é válido). Use números positivos para locais a oeste de Londres, e negativos para locais a leste. A sintaxe para horário de verão não funciona corretamente em todos os países/sistemas operacionais. Se quiser arriscar, adicione DST no final da TZ e não deixe espaços em branco. Teste para ver se funcionou.
Como descobrir a diferença entre a sua hora local e a hora UTC ? Olhe em algum atlas ou pergunte para alguém. Se tudo mais falhar, use um valor aproximado ou use o valor correto para algum país vizinho. Não existem grandes problemas você não conseguir ajustar a TZ perfeitamente, ela só é usada para ajustar as estampas de data (timestamps) nas assinaturas feitas pelo PGP, e ninguém vai se importar com um erro de poucas horas nessas estampas, à menos que você esteja assinando algum contrato ou outro documento importante.
Se você está no Brasil, pegue a tradução para português do PGP. A mensagem de erro "TZ inválida ou não encontrada" foi modificada para lhe dizer a sintaxe correta, basta não ajustar a TZ ou procurar por TZ no arquivo language.txt
5.1. O PGP 2.6.3i pode ser "quebrado" ?
Sim. Qualquer versão do PGP pode ser quebrada, desde que o atacante tenha o tempo e os recursos (= dinheiro) necessários para o trabalho. Entretanto uma mensagem típica de 1024 bits do PGP necessitaria em média 300.000.000.000 MIPS-ano para ser quebrada, portanto o cidadão comum está relativamente a salvo (leia o PGP Attack FAQ em http://axion.physics.ubc.ca/pgp-attack.html para mais detalhes). Se alguém quiser ler suas mensagens cifradas pelo PGP, ele provavelmente preferiria roubar uma cópia da sua chave secreta e tentar adivinhar a sua frase senha, ou forçar você a revelá-la.
Não. O PGP 2.6.3i é tão seguro quanto qualquer outra versão do PGP. Nem Phil Zimmermann, nem o MIT, nem a NSA, nem eu (Ståle Schumacher), ou qualquer outra pessoa, colocou qualquer "portão de trás" (backdoor) no PGP 2.6.3i, lobotomizou o gerador de números aleatórios, limitou o tamanho efetivo da chave ou fez qualquer outra alteração para comprometer a segurança do programa. Se você não acredita nisso, obtenha o código fonte e veja você mesmo. O código fonte do PGP está aí para qualquer um remexer, e isso tem sido feito há vários anos. Até hoje ninguém conseguiu encontrar nenhuma backdoor. A conclusão é clara: se alguém pode quebrar o PGP 2.6.3i, então ele pode quebrar qualquer outra versão do PGP. Se você lê revistas como a "Internet World", não acredite em nada do que eles publicam. :-/
N.T.: Eu não leio a Internet World, mas respeito a opinião de Ståle Schumacher. ;-)
Nenhum programa está 100% a salvo de erros. Ainda assim, o PGP 2.6.3i é provavelmente a versão do PGP mais livre de bugs disponível atualmente. Para ver uma lista de bugs conhecidos, e como consertá-los, ou para avisar-nos sobre novos erros, verifique a Página sobre os bugs do PGP em http://www.dca.fee.unicamp.br/pgp/bugs.shtml.
O PGP 2.6.3i foi montado e publicado por Ståle Schumacher, da Noruega. Entretanto este trabalho não teria sido possível sem a ajuda de vários indivíduos ao redor do mundo. As versões internacionais do PGP são agora mantidas e suportadas por um grupo de desenvolvimento internacional, que coordena seus trabalhos através de uma lista de discussão. Se você gostaria de entrar nessa lista, por favor entre em contato com stale@hypnotech.com.
Todas as questões à respeito do PGP 2.6.3i devem ser endereçadas diretamente a Ståle Schumacher ou para pgp-bugs@ifi.uio.no. Por favor, observe que Phil Zimmermann, o MIT e a Universidade de Oslo, assim como a Unicamp, não têm nada haver com o PGP 2.6.3i. Comentários, bug reports e sugestões para futuras versões são bem vindas.
5.4. Onde posso aprender mais sobre o PGP?
O arquivo README do PGP 2.6.3i (em inglês) cobre a maior parte dos detalhes sobre o que há de especial nas versões internacionais do PGP. Se você tem acesso ao WWW, as Páginas do PGP Internacional podem ser um bom ponto inicial para procurar informações:
http://www.dca.fee.unicamp.br/pgp/
Para maiores informações sobre o PGP e criptografia, você poderia dar uma olhada nas páginas abaixo (em inglês):
FAQ from comp.security.pgp por Arnoud Engelfriet
Where to get PGP FAQ by Michael Johnson
PGP passphrase FAQ por Grady Ward
PGP attack FAQ por infiNity
PGP 2.6 FAQ - interesse histórico apenas
ftp://ftp.unicamp.br/pub/mail/security/pgp/
Newsgroups (em Inglês!):
alt.anonymous              discussion of anonymity and anon remailers
alt.anonymous.messages     for anonymous encrypted message transfer
alt.privacy.clipper        Clipper, Capstone, Skipjack, Key Escrow
alt.security               general security discussions
alt.security.pgp           discussion of PGP
alt.security.ripem         discussion of RIPEM
alt.security.keydist       key distribution via Usenet
alt.society.civil-liberty  general civil liberties, including privacy
comp.compression           discussion of compression algorithms
comp.org.eff.news          news reports from EFF
comp.org.eff.talk          discussion of EFF related issues
comp.patents               discussion of S/W patents, including RSA
comp.risks                 some mention of crypto and wiretapping
comp.society.privacy       general privacy issues
comp.security.announce     announcements of security holes
misc.legal.computing       software patents, copyrights, computer laws
sci.crypt                  methods of data encryption/decryption
sci.math                   general math discussion
talk.politics.crypto       general talk on crypto politics
ISBN 0-262-74017-6
O'Reilly & Associates 1994
430 pp. $24.95
Prentice Hall PTR 1995
302 pp. $19.95
2nd Edition, by Bruce Schneier
Wiley Publishing 1996
E-Mail Security: How to Keep Your Electronic Mail Private
Note que a grande maioria das informações sobre o PGP estão disponíveis apenas em Inglês, e isso se reflete nos links e referências listados acima.