O gpg (GNU pgp, versão livre da ferramenta pgp ) permite encriptar dados, assim somente o destinatário terá acesso aos dados, adicionalmente poderá verificar se a origem dos dados é confiável (através da assinatura de arquivos). O sistema PGP se baseia no conceito de chave pública e privada: Sua chave pública é distribuída para as pessoas que deseja trocar dados/mensagens e a chave privada fica em sua máquina (ela não pode ser distribuída). As chaves públicas e privadas são armazenadas nos arquivos pubring.gpg e secring.gpg respectivamente, dentro do subdiretório ~/.gnupg . Os dados que recebe de outra pessoa são criptografados usando sua chave pública e somente você (de posse da chave privada) poderá desencriptar os dados. Quando assina um arquivo usando o pgp, ele faz isto usando sua chave privada, o destinatário de posse da chave pública poderá então confirmar que a origem dos dados é confiável. O gpg vem largamente sendo usado para transmissão segura de dados via internet. Muitos programas de e-mails como o mutt e sylpheed incluem o suporte a pgp embutido para envio de mensagens assinadas/encriptadas (MIME não tem uma codificação segura e não garante que a mensagem vem de quem realmente diz ser). Um servidor de e-mail no Linux configurado como as mesmas configurações/endereços do provedor da vítima pode enganar com sucesso um usuário passando-se por outro.
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.
Para gerar um par de chaves pessoais use o comando gpg –gen-key. Ele executará os seguintes passos
Após a validade, a chave será considerada inválida.
Digite a FraseSenha - Senha que irá identificá-lo(a) como proprietário da chave privada. É chamada de FraseSenha pois pode conter espaços e não há limite de caracteres.Confirme e aguarde a geração da chave pública/privada.
Use o comando gpg -e arquivo faz a encriptação de dados
gpg -e arquivo.txt
Será pedida a identificação de usuário, digite o nome que usou para criar a chave. O arquivo criado será encriptado usando a chave pública do usuário (~/.gnupg/pubring.gpg) e terá a extensão .gpg adicionada (arquivo.txt.gpg). Além de criptografado, este arquivo é compactado (recomendável para grande quantidade de textos). A opção -a é usada para criar um arquivo criptografado com saída ASCII 7 bits
gpg -e -a arquivo.txt
O arquivo gerado terá a extensão .asc acrescentada (arquivo.txt.asc) e não será compactado. A opção -a é muito usada para o envio de e-mails. Para criptografar o arquivo para ser enviado a outro usuário, você deverá ter a chave pública do usuário cadastrado no seu chaveiro e especificar a opção -r seguida do nome/e-mail/ID da chave pública
gpg -r kov -e arquivo.txt
O exemplo acima utiliza a chave pública de kov para encriptar o arquivo arquivo.txt (somente ele poderá decriptar a mensagem usando sua chave privada).
OBS: É recomendável especificar o nome de arquivo sempre como último argumento.
Agora vamos fazer a operação reversa da acima, a opção -d é usada para decriptar os dados usando a chave privada
gpg -d arquivo.txt.asc >arquivo.txt
gpg -d arquivo.txt.gpg >arquivo.txt
Descriptografa os arquivos arquivo.txt.asc e arquivo.txt.gpg recuperando seu conteúdo original. A sua “FraseSenha” será pedida para descriptografar os dados usando a chave privada (~/.gnupg/secring.gpg).
Assinar um arquivo é garantir que você é a pessoa que realmente enviou aquele arquivo. Use a opção -s para assinar arquivos usando sua chave privada
gpg -s arquivo.txt
A “FraseSenha” será pedida para assinar os dados usando sua chave privada. Será gerado um arquivo a__rquivo.txt.gpg__ (assinado e compactado). Adicionalmente a opção –clearsign poderá ser usada para fazer uma assinatura em um texto plano, este é um recurso muito usado por programas de e-mails com suporte ao gpg
gpg -s --clearsign arquivo.txt
Será criado um arquivo chamado arquivo.txt.asc contendo o arquivo assinado e sem compactação.
A checagem de assinatura consiste em verificar que quem nos enviou o arquivo é realmente quem diz ser e se os dados foram de alguma forma alterados. Você deverá ter a chave pública do usuário no seu chaveiro para fazer esta checagem . Para verificar os dados assinados acima usamos a opção –verify
gpg --verify arquivo.txt.asc
gpg --verify arquivo.txt.gpg
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 usuario > chave-pub.txt
Ao invés do nome do usuário, poderá ser usado seu e-mail, ID da chave, etc. A opção -a permite que os dados sejam gerados usando bits ASCII 7.
Isto é necessário para o envio de dados criptografados e checagem de assinatura do usuário, use a opção –import
gpg --import chave-pub-usuario.txt
Assumindo que o arquivo chave-pub-usuario.txt contém a chave pública do usuário criada em. O gpg detecta chaves públicas dentro de textos e faz a extração corretamente. Minha chave pública pode ser encontrada em http://pgp.ai.mit.edu.
Use o comando
gpg --list-keys
Para listar as chaves pública do seu chaveiro. O comando gpg –list-secret-keys lista suas chaves privadas.
Quando uma chave pública é modificada ou por qualquer outro motivo deseja retira-la do seu chaveiro público, utilize a opção –delete-key
gpg --delete-key usuario
Pode ser especificado o nome de usuário, e-mail IDchave ou qualquer outro detalhe que confira com a chave pública do usuário. Será pedida a confirmação para excluir a chave pública.
OBS: A chave privada pode ser excluída com a opção --delete-secret-key. Utilize-a com o máximo de atenção para excluir chaves secretas que não utiliza (caso use mais de uma), a exclusão acidental de sua chave secreta significa é como perder a chave de um cofre de banco: você não poderá descriptografar os arquivos enviados a você e não poderá enviar arquivos assinados. Mesmo assim se isto acontecer acidentalmente, você poderá recuperar o último backup da chave privada em ~/.gnupg/secring.gpg~.
Execute o comando gpg –edit-key usuário, quando o programa entrar em modo de comandos, digite passwd. Será lhe pedida a “Frase Senha” atual e a nova “Frase Senha”. Digite “save” para sair e salvar as alterações ou “quit” para sair e abandonar o que foi feito. O gpg –edit-key permite gerenciar diversos aspectos de suas chaves é interessante explora-lo digitando “?” para exibir todas as opções disponíveis.
A assinatura de chaves é um meio de criar laços de confiança entre usuários PGP. Assinar uma chave de alguém é algo sério, você deve ter noção do que isto significa e das consequências que isto pode trazer antes de sair assinando chaves de qualquer um. O próprio teste para desenvolvedor da distribuição Debian requer como primeiro passo a identificação do candidato, caso sua chave pgp seja assinada por algum desenvolvedor desta distribuição, imediatamente o teste de identificação é completado. A partir disso você deve ter uma noção básica do que isto significa.
Para assinar uma chave siga os seguintes passos
O valor de confiança da chave pode ser modificado com o comando trust e selecionando uma das opções de confiança. Os valores de confiança para a chave pública pessoal é -/u (não é necessário calcular a confiança/indiscutivelmente confiável).
Execute o comando gpg –list-sigs para listas todas as assinaturas existentes no seu chaveiro. Opcionalmente pode ser especificado um parâmetro para fazer referência a assinatura de um usuário:gpg –list-sigs usuario. O comando gpg –check-sigs adicionalmente faz a checagem de assinaturas.
Este texto foi divulgado por uma pessoa que pediu para permanecer anônima na lista debian-user-portuguese@lists.debian.org explicando os procedimentos de segurança para a troca de chaves públicas individuais e em grupo de usuários. Ele é um pouco longo mas a pessoa é especializada no assunto, e seu foco é a segurança na troca de chaves e o que isto significa. Após consulta ao autor do texto, o texto foi reproduzido na íntegra, mantendo os padrões de formatação da mensagem.
Direitos de republicação cedidos ao domínio público, contanto que o texto seja reproduzido em sua íntegra, sem modificações de quaisquer espécie, e incluindo o título e nome do autor.
Aqui vai uma dica para deixar seus arquivos compactados em tar.gz com senha, na verdade o arquivo será transformado num .gpg, segue
Para compactar
tar -cf nome_que_vc_escolher.tar arquivo_ou_pasta
$gzip -9 arquivo_que_vc_criou.tar
gpg -c arquivo.tar.gz
gpg arquivo.tar.gz.gpg
tar -xf arquivo.tar.gz
Fonte: http://pt.wikibooks.org/wiki/Guia_do_Linux/Avançado