sexta-feira, 17 de agosto de 2012

Primeiros passos com o GnuPG - Ferramenta para criptografar dados e criar assinaturas digitais.

O que é o GnuPG?

O GnuPG (GNU Privacy Guard) é uma ferramenta livre e gratuita para comunicação e armazenamento seguro de dados, que pode ser usado pela linha de comando para criptografar dados e criar assinaturas digitais.


O GnuPG utiliza um método de criptografia conhecido como chave assimétrica, em que duas chaves são criadas: a primeira, pública, serve para que qualquer pessoa codifique mensagens e arquivos de modo que apenas você possa decodificar; a segunda, privada, deve ser mantida em absoluto sigilo e serve para que você decodifique mensagens term papers criptografadas com sua chave pública equivalente. Por isso, esse método também é conhecido como criptografia de chave pública.



Instalando o GnuPG


Aqui o gpg ja veio instalado mais ele pode ser encontrado no repositorio de programas do ubuntu e para instalar basta digitar no terminal



As chaves públicas e privadas são armazenadas nos arquivos pubring.gpg e secring.gpg respectivamente, dentro do subdiretório ~/.gnupg de sua pasta pessoal ($HOME). Convém tirar um cópia de segurança desses arquivos, para isso basta copiar os arquivos citados acima em uma mídia segura (pen-drive, CD-ROM, etc).





# apt-get install gnupg  
Após instalar o gnupg, execute o comando gpg para criar o diretório ~/.gnupg que armazenará as chaves pública e privada.



$ gpg  

Gerando suas chaves GnuPG


Para gerar um par de chaves pessoais use o comando:





$ 
gpg --gen-key  






gpg 
(GnuPG) 1.4.11; Copyright (C) 2010 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Por favor selecione o tipo de chave desejado: 
   (
1) RSA e RSA (padrão) 
   (
2) DSA e Elgamal 
   
(3) DSA (apenas assinatura) 
   (
4) RSA (apenas assinar) Sua opção? 1  


Nesse tutorial iremos escolher a opção 1 mais isso vai de acordo com a necessidade de cada pessoa





RSA chaves podem ter o seu comprimento entre 1024 e 4096 bits
. Que tamanho de chave você quer? (2048) 2048 
 
Aqui você dever escolher qual o comprimento das chaves que varia de 1024 para 4096 sendo que o padrão é 2048

Depois de feito isso irar aparecer a opção de por quanto tempo as chaves serão validas





Por favor especifique por quanto tempo a chave deve ser válida
. 
         
0 = chave não expira 
      
<n>  = chave expira em n dias 
      
<n>w = chave expira em n semanas 
      
<n>m = chave expira em n meses 
      
<n>y = chave expira em n anos 
A chave é valida por
? (0)  
Agora escolha o período da validade de sua chave. A opção 0 (zero) é o padrão, a chave não expira. Mas caso você queira que sua chave expire depois de um certo período, informe um número positivo que terá o valor de dias. Esse número pode ser seguido das letras w (semanas), m (meses) ou y (anos). Por exemplo, "10w", "7m", "2y", "60". Obs: Após a validade, a chave será considerada inválida.




A chave é valida por
? (0) 0 
A chave não expira nunca 
Está correto 
(s/N)? s  



Depois de feito isso devemos colocar informações sobre o dono das chaves (você)


Você precisa de um identificador de usuário para identificar sua chave
; o 
programa constrói o identificador a partir 
do Nome Completo, Comentário e 
Endereço Eletrônico desta forma
: 
    
"Heinrich Heine (Der Dichter) " Nome completo: MMxM~ <enter> Endereço de correio eletrônico: mmedeiros1983@hotmail.com <enter> Comentário: <enter> Você selecionou este identificador de usuário: 
    
"MMxM~ " Muda (N)ome, (C)omentário, (E)ndereço ou (O)k/(S)air? o  
Nesse passo o GnuPG cria um identificador a partir dos seus dados pessoais. Você precisará informar seu Nome Completo, Endereço de correio eletrônico e opcionalmente um comentário. Não se preocupe em errar algum dado, pois uma mensagem para confirmação será exibida.

Após ter terminado essa etapa você devera informar um frase secreta:


Digite a frase secreta
: Repita a frase secreta:  
Depois de ter escrito a frase secreta e repitido ela , sua chave será criada:




Precisamos gerar muitos bytes aleatórios
. É uma boa idéia realizar outra 
atividade 
(digitar no teclado, mover o mouse, usar os discos) durante a 
geração dos números primos
; isso dá ao gerador de números aleatórios 
uma chance melhor de conseguir entropia suficiente
. 
..............+++++ 
......+++++ 
Precisamos gerar muitos bytes aleatórios. É uma boa idéia realizar outra 
atividade 
(digitar no teclado, mover o mouse, usar os discos) durante a 
geração dos números primos
; isso dá ao gerador de números aleatórios 
uma chance melhor de conseguir entropia suficiente
. 
.+++++ 
.+++++ 
gpg: chave C8F75708 marcada como plenamente confiável 
chaves pública e privada criadas e assinadas
. gpg: checando o trustdb 
gpg
: 3 parcial(is) necessária(s), 1 completa(s) necessária(s), modelo de confiança PGP 
gpg
: profundidade: 0 válidas:   1 assinadas:   0 confiança: 0-, 0q, 0n, 0m, 0f, 1u 
pub   2048R
/C8F75708 2012-06-17 
      Impressão digital da chave
: 2412 BFC6 E9BB 2BD4 06DD  29ED F1BC 312C C8F7 5708 
uid                  MMxM
~ <mmedeiros1983@hotmail.com> sub   2048R/5DD33612 2012-06-17  


Listando Chaves


Para listar as chaves armazenadas, use o comando:





$ 
gpg --list-keys /home/mmxm/.gnupg/pubring.gpg ----------------------------- pub   2048R/C8F75708 2012-06-17 
uid                  MMxM
~ <mmedeiros1983@hotmail.com> sub   2048R/5DD33612 2012-06-17
  
A primeira coluna exibe o tipo de chave: a palavra pub indica uma chave publica principal para assinaturas, enquanto a palavra sub indica uma chave publica subordinada. A segunda coluna indica a quantidade de bits da chave, seguido por seu tipo e seu número de identificação em hexadecimal. A terceira coluna é exibido a data de criação da chave (yyyy,mm,dd). Por fim, a última coluna exibe o identificador do usuário.

Nesse exemplo, o key-ID é C8F75708 e o user-ID tanto pode ser o nome: MMxM~ como o e-mail:hchost@hotmail.com


No caso das chaves privadas basta digitar




$ 
gpg --list-secret-keys /home/mmxm/.gnupg/secring.gpg ----------------------------- sec   2048R/C8F75708 2012-06-17 
uid                  MMxM
~ <mmedeiros1983@hotmail.com> ssb   2048R/5DD33612 2012-06-17  



Exportando e importando chaves

Exportando chaves pública


Sua chave pública deve ser distribuída a outros usuários para que possam enviar dados criptografados ou checar a autenticidade de seus arquivos. Para exportar sua chave pública em um arquivo que será distribuído a outras pessoas ou servidores de chaves na Internet, use a opção --export:




 
$ gpg --export -a [key-ID] > chave-pub.asc  
Ao invés do key-ID, pode ser usado o user-ID. A opção -a permite que os dados sejam gerados usando bits ASCII 7.

Chave pública:


-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)

mQENBE/eJy8BCAC6cfHGs+tZuYDovPcH4ThEdf8A8RbmkC/DSUM15/w80fjsFIZ0
/ws1MrEMtgaW3Or34MGUR3XfzNxDfFaorkk1h6Bn6qkPLHi7gspAUGGXUd87MbDu
iW1g/+/hijRrJkiVEwi6fV3tt+G7q1CG8lryVDSU6Wein6uJ+Eq0SuwP++/w8aJ6
ajlMCDKBvf779uXPYpvTaeB8pQuf0rB0IkaOngJ63xuSOsjQE796Dr0WYJPagWrU
GK8K4yu6wJsNhTZSfed3cWtKHbQvRPMHLRPqbOqAX5SjBoB5pb1Jqg/3lM1741it
N6/L0v91szWr4elVg0I5izJJpz2JdHOdTnhzABEBAAG0IU1NeE1+IDxtbWVkZWly
b3MxOTgzQGhvdG1haWwuY29tPokBOAQTAQIAIgUCT94nLwIbAwYLCQgHAwIGFQgC
CQoLBBYCAwECHgECF4AACgkQ8bwxLMj3Vwg4SAf+O3vJqnc5lwxDwTWqKOrt0xnA
R2lDUxlcaaPYTLjDijeeZyQbqdgokKJNTmaIVut+FNH0FKO4jfSa+oyf0tUY9Oad
m4AdT3zfnDGqfZSYO5UHQ3rc5buGn3ZtoYuEWJ90JovifQxbmXasEvGUZ05OUrDP
t4aA5Eq5vVIgK/nIQS6qHP43z7Q2Y+SHqVe43CPSjv4L4byR3k4GJ3wUjiU2t716
2pCPsMD3PXOQzp+C25a453agCwd1n/xytucsLAyjMzIbo55J2aTEOCzK/YGXbYri
gP6FuTusEY5GAGNK0jlI1Yc4FbAnt8Fc2EQ2FGuWkNQZoqoOT0UKlqqK4bAlb7kB
DQRP3icvAQgAtQKKu28jy1+jW3KuX5vYfuSfK86Qyhp6+RyyDRq5UQ2NP5bUddCH
1ZGNHD1ayWSx23wdojerZtmZxA6B3EAy/x+BjUSMtCMe7ZmxowrATEzR0XcAdSUB
+U/BvxOLLUShCt2rtDplz9Yjp8JUn0gkEbnwEnTLAiUJ3DKOBaYpiwDzUsgKELkQ
u4DOevKx9iVIU1SLp5AJtMajMlrtxMRvi8Z30Qgitml2qf2DZClHxYKtLyWAM0Mv
b1MPiTqovz2IQxFhVXwHPDoM32DbmxHrmL2z18kWRx8VQZbboja1gqL70aJgVt1l
/3oKoIaS3dNYx0tOCDnDGl4mR+rrhq0aiQARAQABiQEfBBgBAgAJBQJP3icvAhsM
AAoJEPG8MSzI91cI6WsIALXaVd7uooU/MtQU3hk9K73Bqj/ARpIKJzkfcwXYk7Ia
b75H/oCu+RKz7tTemLkdS2vPdNNCuf8plxks7DtZeu9VAOeKEZDnrSBRm8ftrlUr
p3QLDKy4c+E1GcifxHhWksy/jmHcggIGWewVHNacLjtchhsLICjRFAecBqTxVN/A
WYJDK1Xn0NsbDKkiNlDxlby3b/lij4fUwMSY7XHlCzjM6NvwejapQ9hLNiaSM2Fu
nqtvlc/GcrJRMizPz7fbVUeBX93X64IvFEk/I+j4JO4ugesVttGZIHWaFpejIn3b
2aDzmH1hZWl9z6AqHQpktTjvMg1+npJn57IfOrehkzw=
=xrSJ
-----END PGP PUBLIC KEY BLOCK-----
Exportando chave privada

Você só deve exportar uma chave privada se for fazer backup dela , ela não pode ser publicada !!!
Comando:

:
$ gpg -a --export-secret-keys <nr_da_chave> > arq.key  
A extensão .asc é de uma chave pública , e a extensão .key é de uma chave privada


Importanto chaves

Uma chave pública pode ser adicionada ao seu chaveiro público com a opção --import.


$ 
gpg --import arquivo  

Remoção de chaves do chaveiro

Para remover uma chave pública do chaveiro:


$ 
gpg --delete-keys <nr da chave>  
Para remover uma chave privada do chaveiro:


$ 
gpg --delete-secret-keys <nr da chave>  

Alteração da passphrase de uma chave

Para alterar a senha digite:




$ 
gpg --edit-key <nr da chave> password  

Para sair do ambiente de edição e salvar as alterações, digite “quit”.


Codificando e decodificando arquivos

O procedimento para codificar e decodificar arquivos é simples e direto. Se você quer codificar uma mensagem para um amigo, você usa a chave pública dele e só ele irá decodificar a mensagem usando a chave privada. Se um amigo quer enviar uma mensagem para você, ele codifica usando sua chave pública e você decodifica usando sua chave privada.

Para codificar (--encrypt) um arquivo, use o comando:




$ 
gpg --output arquivo_secreto  --recipient [key-ID-destinatario] --encrypt arquivo_original  


Para decodificar (--decrypt) um arquivo, use o comando:


$ 
gpg --output arquivo_decodificado --decrypt arquivo_secreto  


Outras possibilidades

Para ver outras possibilidades de uso do comando gpg, utilize os comandos:



$ 
gpg --help $ man gpg  

As opções sitadas acima são opções de utilização básica do gpg


Um comentário:

Proibido palavras ofensivas, racistas ou descriminatórias.

[Seu Comentário será liberado no máximo em 24horas]