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 
(GnuPG1.4.11Copyright (C2010 Free Software FoundationIncThis is free softwareyou are free to change and redistribute itThere is NO WARRANTYto the extent permitted by lawPor favor selecione o tipo de chave desejado
   (
1RSA e RSA (padrão
   (
2DSA e Elgamal 
   
(3DSA (apenas assinatura
   (
4RSA (apenas assinarSua opção1  


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? (20482048 
 
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

         
chave não expira 
      
<n>  = chave expira em n dias 
      
<n>chave expira em n semanas 
      
<n>chave expira em n meses 
      
<n>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
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

programa constrói o identificador a partir 
do Nome CompletoComentário e 
Endereço Eletrônico desta forma

    
"Heinrich Heine (Der Dichter) Nome completoMMxM~ <enterEndereço de correio eletrônicommedeiros1983@hotmail.com <enterComentário: <enterVocê selecionou este identificador de usuário
    
"MMxM~ Muda (N)ome, (C)omentário, (E)ndereço ou (O)k/(S)airo  
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 tecladomover o mouseusar os discosdurante 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 tecladomover o mouseusar os discosdurante a 
geração dos números primos
isso dá ao gerador de números aleatórios 
uma chance melhor de conseguir entropia suficiente

.+++++ 
.+++++ 
gpgchave C8F75708 marcada como plenamente confiável 
chaves pública e privada criadas e assinadas
gpgchecando o trustdb 
gpg
3 parcial(isnecessária(s), 1 completa(snecessária(s), modelo de confiança PGP 
gpg
profundidade0 válidas:   1 assinadas:   0 confiança0-, 0q0n0m0f1u 
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.comsub   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.comsub   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.comssb   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 -[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 ---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 chavepassword  

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


Nota:

Um comentário:

Proibido palavras ofensivas, racistas ou descriminatórias.

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