Hoje em dia é muito comum alguns administradores de rede possuirem vários servidores
e possuir uma senha (forte) para cada um destes servidores, nas palestras que tenho ministrado
ja fui questinado algumas vezes de como guardar dezenas de senhas diferentes com segurança?
Bem na minha opinião a melhor forma é guarda-las no cérebro mesmo..rsrs mas como nem
sempre possuimos capacidade para armazenar tais informações nos meros 10% que utilizamod do nosso
cérebro eu decidi pesquisar sobre uma solução para tal problema e achei diversos programas que propoem
uma solução simples para nosso problema, eles armazenam as senhas em arquivos criptografados, ou seja
ao invés de termos que decorar 15 senhas com 20 caracteres cada uma precisamos lembras de apenas uma única senha.
Dentre os programas que eu achei mais interesantes estão o jpws[1], o Password Gorilla[2], o Password Dragon[3],
e o KeePassX[4], a proposta de todos eles é bem interessante gerenciar o armazenamento de senhas de forma segura
porém depois de ler sobre os programas eu pensei, "Perae por quê diabos estou querendo reinventar a roda?"
a solução sempre esteve mais perto do que imaginei, basta utilizar o GnuPG[5].GnuPG (GNU Privacy Guard)
é um projeto openource que implementa as definições da RFC 4880[6]. O GnuPG no permite criptografar e
assinar arquivos, emails, etc. A utilização do GnuPG (ou gpg na linha de comando) é bem simples como veremos
no Exemplo a seguir para criarmos um arquivo com as nossas senhas.
Primeiro verifique se vc possui o pacote gnupg instalado:
---
# dpkg -s gnupg (para sistemas debian-like)
# rpm -qv gnupg (para sistemas red-hat like)
---
Possuindo o gnupg instalado vamos criar uma chave de criptografia para o nosso usuário.
---
# gpg --gen-key (Comando para gerar uma nova assinatura)
gpg (GnuPG) 1.4.6; Copyright (C) 2006 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
Por favor selecione o tipo de chave desejado:
(1) DSA e Elgamal (padrão)
(2) DSA (apenas assinatura)
(5) RSA (apenas assinar)
Sua opção? 1
---
Escolheremos a opção 1 (padrão)
Então seremos questionados sobre o tamanho da chave que pode ter entre 1024 e 4096 bits,
neste ponto quanto maior a chave mais segura ela será, no exemplo eu escolhi uma chave com
2048 bits.
---
par de chaves DSA vai ter 1024 bits.
ELG-E chaves podem ter o seu comprimento entre 1024 e 4096 bits.
Que tamanho de chave você quer? (2048) 2048
---
Após definir o tamanho da chave seremos questionados sobre o tempo de validade
da chave, podemos difinir um temo X para que a chave expire porem para o nosso
caso como não vamos divulga-la e a utilizaremos somente para criptografar nosso arquivo de
senha podemos escolhes a opção "0 = chave não expira"
---
Por favor especifique por quanto tempo a chave deve ser válida.
0 = chave não expira
A chave é valida por? (0) 0
---
Agora vamos definir um identificador do usuário para o qual estamos criando
a chave. No exemplo vamos utilizar o Zé da Silva.
---
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: Ze da Silva
Endereço de correio eletrônico: [email protected]
Comentário: Chave do Ze da Silva
Você selecionou este identificador de usuário:
"Ze da Silva (Chave do Ze da Silva)
Muda (N)ome, (C)omentário, (E)ndereço ou (O)k/(S)air? O
---
Agora vamos definir uma senha para esta chave, esta é a senha que nos
NÃO podemos esquecer pois ele será utilizada para criptografar o nosso
arquivo de texto com as senhas.
---
Você precisa de uma frase secreta para proteger sua chave.
Digite a frase secreta:
Digite novamente a frase secreta:
+++++++++++++++...+++++.+++++++++++++++++++++++++.+++++++++++++++....
+++++.+++++++++++++++++++++++++++++++++++++++++++++.
.++++++++++.+++++++++++++++....++++++++++>..+++++..+++++>+++++>.+++++..>+++++..+++++^^^
gpg: chave 62B6EE12 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: 2 assinadas: 0 confiança: 0-, 0q, 0n, 0m, 0f, 2u
pub 1024D/62B6EE12 2008-11-03
Impressão digital da chave: 6686 B77A 0DEB 5FBF 6A29 33C6 74F7 8A32 62B6 EE12
uid Ze da Silva (Chave do Ze da Silva)
sub 2048g/EB413A88 2008-11-03
---
Pronto ja temos uma chave para o Ze da Silva
Para verificar os dados da chave criada basta utilizar o
comando "gpg --list-key"
---
# gpg --list-key
/root/.gnupg/pubring.gpg
------------------------
pub 1024D/62B6EE12 2008-11-03
uid Ze da Silva (Chave do Ze da Silva)
sub 2048g/EB413A88 2008-11-03
---
Agora vamos ao que interessa, vamos criar um arquivo com as nossas senhas.
---
#cat senha.txt
Senha de root
root=22#$54543%4FDDwkdk439
Senha do gmail
[email protected] = Z20r$55ec$
Senha do msn
ze_silva@hotmail = Z3$1l\/@
---
Agora que ja temos o arquivo com as senhas vamos criptografa-lo com
a chave que criamos. No comando abaixo a opção "-r" indica o ID de usuário
para o qual estamos criptografando este arquivo e a opção "-e" indica
que queremos criptografar ao dados do arquivo senha.txt
---
gpg -r Ze -e senha.txt
---
Após executar o comando acima vc percebera que foi criado um arquivo chamado
senha.txt.gpg, este é o arquivo criptografado, com isso ja podemos apagar o arquivo
ariginal, (rm -f senha.txt) e ficarmos somente com o arquivo criptografado.
Agora para visualizarmos as senhas dentro do arquivo criptografado basta executar o seguinte comando
---
gpg -d senha.txt.gpg
Você precisa de uma frase secreta para destravar a chave secreta do usuário: "Ze da Silva (Chave do Ze da Silva)
2048-bit ELG-E chave, ID EB413A88, criada 2008-11-03 (ID principal da chave 62B6EE12)
Digite a frase secreta:
----
Após digitar a frase secreta corretamente o conteudo do arquivo será exibido.
---
gpg: criptografado com 2048-bit ELG-E chave, ID EB413A88, criado 2008-11-03
"Ze da Silva (Chave do Ze da Silva)
Senha de root
root=22#$54543%4FDDwkdk439
Senha do gmail
[email protected] = Z20r$55ec$
Senha do msn
ze_silva@hotmail = Z3$1l\/@
---
Outra opção legal é exportar a chave pública e enviar para outra pessoa,
desta forma a pessoa que receber esta chave pública também podera criptografar
arquivos que só vc podera descriptografar.
Exportar chave publica:
---
#gpg -a --export -r Ze > chave_publica-Ze.asc
---
Agora é só enviar o arquivo "chave_publica-Ze.asc"
para alguem e pedir para ele importa-la com o comando:
"gpg --import"
---
$ gpg --import /root/chave_publica-Ze.asc
gpg: chave 62B6EE12: chave pública "Ze da Silva (Chave do Ze da Silva)
gpg: Número total processado: 1
gpg: importados: 1
---
Bem por enquanto é só, agora podemos ocupar a mente com outras coisas que não sejam as senhas
Espero que seja util para alguem...
Links
[1] http://jpws.sourceforge.net/
[2] http://www.fpx.de/fp/Software/Gorilla/
[3] http://www.passworddragon.com/
[4] http://www.keepassx.org/
[5] http://www.gnupg.org/
[6]http://www.ietf.org/rfc/rfc4880.txt
Se quiser enviar críticas, elogios, sugestões ou até mesmo
Me chamar pra tomar uma Cerveja basta enviar um email para.
By CleBeer |_b