O OpenPGP é um padrão aberto de criptografia é baseado no programa de encriptação e descriptografia de chave pública, PGP, criado por Phil Zimmermann em 1991.
O padrão surgiu como uma consequência do sucesso obtido pelo PGP, quando vários programadores demonstraram interesse em desenvolver programas compatíveis. Concedida a licença e permissão do uso do nome pela PGP Inc., a IETF (Internet Engineering Task Force) criou o padrão OpenPGP, definido através da normativa técnica RFC 2440.
A partir disso, a FSF (Fundação para o Software Livre) desenvolveu seu próprio software criptográfico, o GnuPG, que ganhou preferência de muitos usuários por ser código aberto, enquanto o PGP, que a princípio era livre, tornou-se pago em suas últimas versões.
Como usar o OpenPGP
Para entender o funcionamento e a utilização da criptografia assíncrona no OpenPGP, vamos entender como ele funciona.
No OpenPGP cada usuário gera, em seu computador, seu par de chaves: uma pública e uma secreta correspondente. Enquanto a chave secreta fica apenas com o usuário criador, a chave pública é compartilhada.
A criptografia funciona da seguinte maneira: qualquer arquivo criptografado pela chave pública só pode ser criptografado através do uso da chave secreta, dessa forma o arquivo se mantém ilegível para aqueles que não detém a chave secreta válida.
Já a assinatura de um arquivo segue o fluxo contrário da criptografia: o usuário assina o arquivo com sua chave secreta e, dessa forma, quem tem posse da chave pública consegue verificar a autenticidade do arquivo enviado. Para manter a segurança da informação, qualquer alteração em um arquivo assinado torna a assinatura inválida.
No ato de criptografar, é sempre preferível que também seja feito a assinatura. Assim, pode ser confirmado tanto a autenticidade do remetente quanto a confidencialidade da informação.
Para obter a chave pública é preciso entrar em contato com alguém que já a tenha, podendo ser o próprio usuário criador. De outra maneira, é possível obter uma chave pública através de um servidor de chaves, que contém as chaves públicas de muitos usuários. Para confirmar a autenticidade de uma chave pública é necessário verificar sua assinatura.
A vericidade da chave pública verificada diretamente com o usuário dono é feita a partir da impressão digital, código que se deduz através de cada chave. Se duas chaves são correspondentes, elas terão a mesma impressão digital. Por outro lado, verificar a assinatura é conferir quem assinou aquela chave pública, ou seja, qual o usuário atesta sua validade. Exemplo: se a chave obtida do usuário C é assinada pelos usuários A e B, que por sua vez são usuários que tiveram impressões digitais válidas, então você pode deduzir que a chave do usuário C também será válida.
É dessa forma que é gerada a cadeia de confiança do OpenPGP: a partir do grau de confiança que você definiu para os seus contatos, é calculado o grau de confiabilidade da chave obtida - a partir de suas assinaturas e das impressões digitais de seus assinantes. Retornando ao exemplo anterior: para que a chave do usuário C seja confiável, você antes deve ter marcado como confiáveis (a partir de suas impressões digitais, por exemplo) os usuários A e B.
Quando uma chave está sendo usada de maneira indevida, é possível revogá-la e torná-la inválida. Para tanto, é possível acessar os chaveiros, que mantém as chaves públicas, utilizando a chave secreta, e revogar a chave que queira invalidar. Caso não seja possível acessar os chaveiros, a opção é utilizar um certificado de revogação, que deve ser criado junto com o par de chaves pública e secreta. É possível também escolher um de seus contatos como revogador de chaves.
Depois que uma chave é revogada, é necessário informar a todos os contatos, afim de torná-la inválida também para eles. A maneira mais eficiente seria através de um servidor, usado para manter o chaveiro: uma vez atualizado o status da sala (se ela foi revogada) em seu servidor, o usuário que acessa as chaves públicas através deste servidor também terá sua chave revogada.
Por fim, para utilizar o OpenPGP para criptografar seus dados, basta instalar um software que utilize o padrão (como o GnuPG) e escolher os programas ou arquivos que farão uso desta ferramenta. Assim, é possível manter a comunicação na internet mais protegida e confiável.
Referências e links úteis:
http://www.cripto.info/oqueepgp.shtml
http://www.cripto.info/pgpem10licoes.shtml
http://pt.wikipedia.org/wiki/PGP
http://pt.wikipedia.org/wiki/OpenPGP
http://pt.wikipedia.org/wiki/FSF
http://pt.wikipedia.org/wiki/IETF