Mudanças entre as edições de "GnuPG"

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
(Criou página com 'GnuPG ou '''GNU Privacy Guard''' é uma implementação livre do padrão OpenPGP ([https://tools.ietf.org/html/rfc4880 RFC 4880]). O GnuPG é uma aplicação de linha de coma...')
 
 
(4 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 2: Linha 2:
   
 
O GnuPG é uma aplicação de linha de comando, mas existem diversos aplicativos gráficos que facilitam suas principais operações.
 
O GnuPG é uma aplicação de linha de comando, mas existem diversos aplicativos gráficos que facilitam suas principais operações.
  +
  +
== Linha de Comando ==
  +
  +
Artigo explicando como assinar uma chave de outra pessoa via linha de comando: http://www.phildev.net/pgp/gpgsigning.html
  +
  +
== Python-gnupg ==
  +
  +
[https://python-gnupg.readthedocs.org/en/latest/index.html Python-gnupg] é um módulo Python para executar comandos GPG. Para instalá-lo, uma opção é via PIP [1]:
  +
  +
: pip install gnupg
  +
  +
O primeiro passo é importar o módulo "gnupg", e criar uma instância da classe "GPG":
  +
  +
: import gnupg
  +
:
  +
: gpg = gnupg.GPG()
  +
  +
O construtor recebe uma série de parâmetros opcionais, [https://python-gnupg.readthedocs.org/en/latest/gnupg.html veja aqui] mais detalhes.
  +
  +
Para encriptar uma cadeia de caracteres, utilize o método ''encrypt(data, *recipients)'', sendo ''recipients'' o key ID do destinatário:
  +
  +
: str = "Texto a encriptar"
  +
: rcpt = "81CA572B"
  +
: encr = str(gpg.encrypt(str, rcpt))
  +
: print(encr)
  +
  +
Obs: o key ID (ou fingerprint) do destinatário pode ser recuperado através do comando:
  +
  +
: gpg -k
  +
  +
Ou através da API python, através do método ''list_keys(secret=False)'':
  +
  +
: gpg.list_keys()
  +
  +
Para descriptografar uma informação, utilize o método ''decrypt(data)'':
  +
  +
: encr = str(gpg.encrypt(str, rcpt))
  +
: decr = str(gpg.decrypt(encr))
  +
: print(decr)
  +
  +
Note que se "decr" estiver vazio, pode significar que a mensagem não foi gerada com a chave pública da sua chave privada.
  +
  +
Se a chave privada estiver protegida com passphrase, uma janela irá aparecer solicitando esse dado antes de descriptografar o texto. Para informar a passphrase no código, utilize o parâmetro nominal 'passphrase':
  +
  +
: gpg.decrypt(encr, passphrase='abacaxi')
   
 
== Software ==
 
== Software ==
Linha 20: Linha 65:
 
; GnuPG - wiki do Ubuntu Brasil
 
; GnuPG - wiki do Ubuntu Brasil
 
: http://wiki.ubuntu-br.org/GnuPG
 
: http://wiki.ubuntu-br.org/GnuPG
  +
; Python-gnupg
  +
: https://python-gnupg.readthedocs.org/en/latest/index.html
   
 
[[Categoria:Criptografia]][[Categoria:Privacidade]]
 
[[Categoria:Criptografia]][[Categoria:Privacidade]]

Edição atual tal como às 19h53min de 13 de novembro de 2013

GnuPG ou GNU Privacy Guard é uma implementação livre do padrão OpenPGP (RFC 4880).

O GnuPG é uma aplicação de linha de comando, mas existem diversos aplicativos gráficos que facilitam suas principais operações.

Linha de Comando

Artigo explicando como assinar uma chave de outra pessoa via linha de comando: http://www.phildev.net/pgp/gpgsigning.html

Python-gnupg

Python-gnupg é um módulo Python para executar comandos GPG. Para instalá-lo, uma opção é via PIP [1]:

pip install gnupg

O primeiro passo é importar o módulo "gnupg", e criar uma instância da classe "GPG":

import gnupg
gpg = gnupg.GPG()

O construtor recebe uma série de parâmetros opcionais, veja aqui mais detalhes.

Para encriptar uma cadeia de caracteres, utilize o método encrypt(data, *recipients), sendo recipients o key ID do destinatário:

str = "Texto a encriptar"
rcpt = "81CA572B"
encr = str(gpg.encrypt(str, rcpt))
print(encr)

Obs: o key ID (ou fingerprint) do destinatário pode ser recuperado através do comando:

gpg -k

Ou através da API python, através do método list_keys(secret=False):

gpg.list_keys()

Para descriptografar uma informação, utilize o método decrypt(data):

encr = str(gpg.encrypt(str, rcpt))
decr = str(gpg.decrypt(encr))
print(decr)

Note que se "decr" estiver vazio, pode significar que a mensagem não foi gerada com a chave pública da sua chave privada.

Se a chave privada estiver protegida com passphrase, uma janela irá aparecer solicitando esse dado antes de descriptografar o texto. Para informar a passphrase no código, utilize o parâmetro nominal 'passphrase':

gpg.decrypt(encr, passphrase='abacaxi')

Software

GnuPG - The GNU Privacy Guard (software básico)
http://gnupg.org/
GPG Front-ends (aplicativos para vários sistemas)
http://gnupg.org/related_software/frontends.html
GPG Tools (aplicativos para Mac OSX)
https://gpgtools.org/

Referências

RFC 4880 - OpenPGP Message Format
https://tools.ietf.org/html/rfc4880
PGP - Pretty Good Privacy, Simson Garfinkel (livro)
http://shop.oreilly.com/product/9781565920989.do
GnuPG - wiki do Ubuntu Brasil
http://wiki.ubuntu-br.org/GnuPG
Python-gnupg
https://python-gnupg.readthedocs.org/en/latest/index.html