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.
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
- ########################### Marrocamp ##############################