Revista Do Linux
 
OUTRAS SEÇÕES
  Cartas
  Variedades
  Rádio Linux
  CD do Mês
  Coluna do Augusto
  Leitura
  Dicas e truques
  Opinião
 

GPGME GnuPG Made Easy

Conheça um pouco mais sobre a biblioteca que facilita a adição de suporte à criptografia em seus programas

O Gnu Privacy Guard é uma ferramenta livre para a construção de criptossistemas assimétricos, bem conhecida da comunidade de software livre. É com ela que o kernel do Linux é assinado digitalmente, assim como os pacotes RPM de várias distribuições. Publicado sob a Licença GNU, é um substituto completo ao programa PGP e, portanto, totalmente compatível com o padrão OpenPGP, - não se deve, porém, confundir o produto PGP (Pretty Good Privacy) com o padrão propriamente dito. Já o GnuPG Made Easy, GPGME para encurtar, atualmente na versão 0.3.9, é uma biblioteca escrita totalmente em C, que permite dar suporte de criptografia a um programa, tornando, assim, os mecanismos criptográficos (crypto engines) do GnuPG mais fáceis ao desenvolvedor, já que nos dá uma Cripto-API de alto nível para criptografar e descriptografar, assinar e gerenciar as chaves criptográficas. Ou seja, as ~Stecnologias fundamentais~T do OpenPGP para prover ~Sserviços de integridade de dados para mensagens e arquivos de dados~T, segundo afirma o RFC 2440.

O GPGME torna possível uma abstração de dados, que é usada para passar os dados para um cripto-mecanismo e receber os dados devolvidos por ele. Esses dados podem vir da memória ou de um arquivo ou, ainda, de uma função de callback. O GPGME trabalha com um conceito de desenvolvimento fundamental: a idéia de contexto. Toda operação criptográfica é sempre colocada dentro de um contexto. Um contexto fornece os parâmetros de configuração necessários que, por sua vez, definem como todas as operações poderão se comportar dentro de um mesmo contexto. No entanto, somente uma operação por contexto é permitida, mas quando uma operação é encerrada, pode-se executar outra num mesmo contexto... Deve-se ressalvar que pode haver mais do que um contexto, e todos podem executar diferentes operações ao mesmo tempo. É usando vários contextos que poderemos executar várias tarefas paralelamente e, o que é fundamental, com diferentes configurações. Esta característica confere um enorme dinamismo ao programador nas operações de seus programas. Sendo uma biblioteca em C, ela acata a afirmação de Brian Kernighan & Dennis Ritchie de que o ~SC contém a filosofia básica de que os programadores sabem o que estão fazendo~T. Por isso, a utilização dos contextos com o GPGME deve ser feita com a devida cautela, pois pode ser às vezes fonte inquestionável de erros fatais. Mas note-se também como este conceito é importante para a plasticidade e dinamismo necessários a um software que necessite de um criptossistema. Pois, é sempre necessário que se executem diferentes configurações: vários pares de chaves, vários servidores de chaves, etc.

A biblioteca GPGME tem um gerenciamento eficiente de chaves criptográficas, como exportação ou importação de chaves, geração de chaves ou sua exclusão do chaveiro digital, atribuindo graus de validade, assim como a listagem de chaves. Com esta API, o programador pode se preocupar efetivamente com as dificuldades e especificidades de seu programa, usando as facilidades oferecidas pela biblioteca. Por exemplo, o programa de gerenciamento de correio eletrônico Sylpheed (http://sylpheed.good-day.net) é uma interface completa para e-mail, que permite o suporte para o GnuPG usando a biblioteca GPGME. O programa pode ser compilado - depois evidentemente da compilação e instalação com êxito do GPGME - tranqüilamente, com suporte para a bilblioteca com ./configure --enable-gpgme (consulte com o comando ./configure --help outras características que podem ser compiladas no Sylpheed). Observe a captura da tela Sobre do programa onde é mostrada a opção ~SGnuPG~T sendo efetivamente usada.

O GPGME inscreve-se dentro de um Projeto maior, é uma de suas partes. E como software livre, recebe o todo dinamismo de um Projeto deste tipo. Sem perder aquilo que Frederick Brooks, num dos clássicos da engenharia de software, o The Mythical Man-Month, considerava um dos pontos essenciais de um software: a integridade conceitual.

Para saber mais:
Download do GPGME: www.gnupg.org/gpgme.html
Para o código fonte: ftp.gnupg.org/gcrypt/alpha/gpgme
Gnu Privacy Guard: www.gnupg.org
RFC2440: www.gnupg.org/rfc2440.html
Página oficial do Sylpheed: sylpheed.good-day.net
B. Kernighan & D. Ritchie: C. A Linguagem de Programação Padrão ANSI. Editora Campus, Introdução.
F. Brooks: The Mythical Man-Month. Addison Wesley


Renato Martini - rmartini@cipsga.org.br
Dir. Administrativo do CIPSGA/Rio


A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux