Usando pgp (gpg)para criptografia de arquivos - Linux


Instalando o PGP

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.

Criando um par de chaves pública/privada

Para gerar um par de chaves pessoais use o comando gpg --gen-key. Ele executará os seguintes passos:
  • Chave criptográfica - Selecione DSA e ELGamal a não ser que tenha necessidades específicas.
  • Tamanho da chave - 1024 bits traz uma boa combinação de proteção/velocidade.
  • Validade da chave - 0 a chave não expira. Um número positivo tem o valor de dias, que pode ser seguido das letras w (semanas), m (meses) ou y (anos). Por exemplo, "7m", "2y", "60".
Após a validade, a chave será considerada inválida.
  • Nome de usuário - Nome para identificar a chave
  • E-mail - E-mail do dono da chave
  • comentário - Uma descrição sobre a chave do usuário.
  • Confirmação - Tecle "O" para confirmar os dados ou uma das outras letras para modificar os dados de sua chave.
  • 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. Para alterá-la posteriormente, siga as instruções em [#s-d-cripto-gpg-chpasswd Mudando sua FraseSenha, Seção 20.5.11].
  • Confirme e aguarde a geração da chave pública/privada.

Encriptando dados

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 (veja [#s-d-cripto-gpg-c-a Adicionando chaves públicas ao seu chaveiro pessoal, Seção 20.5.8]) 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.

Decriptando dados com o gpg

Agora vamos fazer a operação reversa da acima, a opção -d é usada para decriptar os dados usando a chave privada:
     gpg -d --decrypt arquivo.txt.asc >arquivo.txt
     gpg -d --decrypt 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).

Assinando arquivos

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 arquivo.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.

Checando assinaturas

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 (veja [#s-d-cripto-gpg-c-a Adicionando chaves públicas ao seu chaveiro pessoal, Seção 20.5.8]). Para verificar os dados assinados acima usamos a opção --verify:
     gpg --verify arquivo.txt.asc
Se a saída for "Assinatura Correta", significa que a origem do arquivo é segura e que ele não foi de qualquer forma modificado.
     gpg --verify arquivo.txt.gpg
Se a saída for "Assinatura INCORRETA" significa que ou o usuário que enviou o arquivo não confere ou o arquivo enviado foi de alguma forma modificado.

Extraindo sua chave pública do chaveiro

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.

Adicionando chaves públicas ao seu chaveiro pessoal

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 [#s-d-cripto-gpg-c-e Extraindo sua chave pública do chaveiro, Seção 20.5.7]. O gpg detecta chaves públicas dentro de textos e faz a extração corretamente. Minha chave pública pode ser encontrada em [ch-apend.html#s-apend-pgp Chave Pública PGP, Seção 21.8]

Listando chaves de seu chaveiro

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.

Apagando chaves de seu chaveiro

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~.

Mudando sua FraseSenha

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.

Assinando uma chave digital

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:
  • Importe a chave pública do usuário (veja [#s-d-cripto-gpg-c-a Adicionando chaves públicas ao seu chaveiro pessoal, Seção 20.5.8]).
  • Execute o comando gpg --edit-key usuario (onde usuario é o nome do usuário/e-mail/IDchave da chave pública importada).
  • Digite list, e selecione a chave pública (pub) do usuário com o comando uid [numero_chave]. Para assinar todas as chaves públicas do usuário, não selecione qualquer chave com o comando uid.
  • Para assinar a chave pública do usuário digite sign, será perguntado se deseja realmente assinar a chave do usuário e então pedida a "FraseSenha" de sua chave privada.
  • Digite "list", repare que existe um campo chamado trust: n/q no lado direito. O primeiro parâmetro do "trust" indica o valor de confiança do dono e o segundo (após a /) o valor de confiança calculado automaticamente na chave. As seguintes possuem o seguinte significado:
    • - - Nenhum dono encontrado/confiança não calculada.
    • e - Chave expirada/falha na checagem de confiança.
    • q - Quando não conhece o usuário.
    • n - Quando não confia no usuário (é o padrão).
    • m - Pouca confiança no usuário.
    • f - Totalmente confiável.
    • u - Indiscutivelmente confiável. Somente usado para especificar a chave pública do próprio usuário.
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).

Listando assinaturas digitais

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
Postagem mais recente Postagem mais antiga Página inicial

Populares

Recente

Software Avançado De Investigação Forense Móvel

O MOBILedit Forensics é um software forense avançado para telefones, que  extrai  e  analisa profundamente o conteúdo do telefone,  incluind...