29 de jul de 2009

GnuPG

Gnupg
Já faz algum tempo que uso GnuPG para assinar emails e arquivos e tenho estimulado os estudantes das áreas de informática a conhecer melhor esta ferramenta. A motivação está em melhorar os relacionamentos digitais através da troca segura de informações e ainda, com um enfoque ético, permitir uma visão sobre a segurança (ou insegurança pela falta e omissão) dos protocolos definidos na RFC2440 e RFC4880 [1]. Com isto, e sendo explicitamente recorrente já que falo muito em melhorar a internet através do uso seguro e consciente das tecnologias, vamos aprendendo conceitos importantes sobre criptografia, assinaturas digitias, certificados digitais, certificados raiz e tudo mais que se possa fazer neste meio.

Citando faw , segurança não é um produto, mas sim processos, normas e procedimentos que podem elevar o nível esperado de segurança para aceitável. Não espere que a segurança por obscuridade possa fazer alguma coisa por seu sistema seja ele qual for.

O que é o GnuPG [2]:

O GnuPG, é um projeto GNU que implementa de forma livre e completa o OpenPGP definido pela norma RFC4880. Permite a encriptação e assinatura de dados ou de comunicação de dados. Possui caracteristicas tais como versatilidade em administração do sistema PGP assim como acesso aos modulos para todos os diretórios de chaves públicas.

GnuPG também é conhecido como GPG (GNU Privacy Guard) , trabalha com linha de comandos, ou seja através do shell dos sistemas Unix Like. Também existem muitos front ends gráficos úteis para sua administração tais como Seahorse [3].

GnuPG é um software livre e assim pode ser usado, modificado e distribuído de acordo com os termos da GNU General Public Licence.

Para que funcione corretamente uma chave de criptografia, é necessário que a chave pública de uma pessoa possa ser encontrada na internet. Para tanto, existem os servidores de chaves. Por exemplo, o servidor http://keys.keysigning.org:11371/pks/lookup?op=stats mostra os servidores ativos e os números de usuários que estão atualmente cadastrados.

Para ver uma chave de uma pessoa, basta acessar um dos servidores e informar nome ou e-mail. Exemplo: acessar o servidor zimmermann.mayfirst.org e pesquisar a sua chave criada, através do nome compelo ou e-mail.

Se você for um estudante de informática, deveria saber responder perguntas como:
1. O que e criptografia de chaves publica e privada?
2. O que e assinatura digital?
3. Que exemplos podem ser citados sobre o uso de criptografia de chave unica e de chaves publica e privada?
4. O que é certificado Digital?
5. O que é uma AC?

A menos que você seja um expert, daqueles que brilham no escuro, é bem provável que sua resposta não seja tão coerente com o esperado do ponto de vista das técnicas e normas de criptografia e certificação digital. Comece aprendendo pelo GnuPG, que é facil de instalar e tem diversos tutorias [4] na internet.

Instalação no Debian:
#aptitude install gnupg

Instalação no Windows:
Baixe o executável em ftp://ftp.gnupg.org/gcrypt/binary/gnupg-w32cli-1.4.9.exe

Key Party

Uma Key Party é o melhor momento para reunir assinaturas de chaves de uma pessoa. Atraves deste processo, vai criando-se um elo de confiança entre as pessoas que trocam assinaturas. Em tese, quando alguém assina uma chave, ela esta depositando confiança naquela chave. Isto posto, quanto mais assinaturas em uma chave melhor. Durante uma seção de assinatura de chaves as pessoas devem possuir seu finger print impresso em um cartão por exemplo, ou em uma folha. Então, deve-se exigir um documento oficial com foto que comprove a identidade da pessoa em questão e somente após este processo, deve-se proceder a assinatura. Experimente esta tecnologia e a exemplo do que esta acontecendo nos meios de informática, como Nota Fiscal Eletronica, os processos não vão parar por ai e conhecimento nesta área é fundamental.

Referências:

[1] http://www.faqs.org/rfcs/rfc2440.html
http://www.faqs.org/rfcs/rfc4880.html
[2] http://www.gnupg.org/
[3] http://pt.wikipedia.org/wiki/Seahorse
[4] http://www.eriberto.pro.br/wiki/index.php?title=Usando_o_GnuPG

Outros links interessantes:
http://ekaia.org/blog/2009/05/10/creating-new-gpgkey/#comment-1049
http://fortytwo.ch/gpg/subkeys