Como fazer backup e restaurar suas chaves GPG no Linux

Laptop Linux mostrando um prompt do bash

A privacidade é um tema cada vez mais quente. No Linux, o gpgcomando permite que os usuários criptografem arquivos usando criptografia de chave pública; nesse caso, perder suas chaves de criptografia seria catastrófico. Veja como fazer backup deles.

OpenPGP e GNU Privacy Guard

Uma das vantagens dos arquivos eletrônicos em relação às cópias impressas em papel é que você pode criptografar os arquivos eletrônicos para que sejam acessíveis apenas por pessoas autorizadas. Se caírem em mãos erradas, não importa. Somente você e o destinatário pretendido podem acessar o conteúdo dos arquivos.

O padrão OpenPGP descreve um sistema de criptografia denominado criptografia de chave pública.  implementação desse padrão pelo GNU Privacy Guardgpg resultou em uma ferramenta de linha de comando para criptografar e descriptografar de  acordo com o padrão .

O padrão descreve um esquema de criptografia de chave pública. Embora seja chamada de “chave pública”, existem duas chaves envolvidas. Cada pessoa possui uma chave pública e uma chave privada. As chaves privadas, como o nome sugere, nunca são reveladas nem transmitidas a ninguém. As chaves públicas podem ser compartilhadas com segurança. na verdade, as chaves públicas devem ser compartilhadas para que o esquema funcione.

Quando um arquivo é criptografado, a chave privada do remetente e a chave pública do destinatário são usadas no processo de codificação. O arquivo pode então ser entregue ao destinatário. Eles usam sua chave privada e a chave pública do remetente para descriptografar o arquivo.

As chaves públicas e privadas são geradas como um par correspondente e vinculadas a uma identidade específica. Mesmo que você não transmita material confidencial a outras pessoas, poderá usá-lo em seu próprio computador para adicionar uma camada extra de proteção a documentos privados.

A criptografia usa algoritmos e funções criptográficas de classe mundial. Sem as chaves públicas e privadas apropriadas, você simplesmente não conseguirá acessar arquivos criptografados. E se você perder suas chaves, isso também vale para você. Gerar novas chaves não ajudará. Para descriptografar seus arquivos você precisa das chaves que foram usadas no processo de criptografia.

Escusado será dizer que fazer backup de suas chaves é de suma importância, assim como saber como restaurá-las. Veja como realizar essas tarefas.

O diretório .gnupg

Suas chaves são armazenadas em um diretório chamado “.gnupg” em seu diretório inicial. Este diretório também armazenará as chaves públicas de qualquer pessoa que tenha enviado arquivos criptografados para você. Quando você importa suas chaves públicas, elas são adicionadas a um arquivo de banco de dados indexado nesse diretório.

Recomendado:  PSA: você pode ser elegível para uma cópia gratuita do Minecraft

Nada neste diretório é armazenado em texto simples, é claro. Ao gerar suas chaves GPG, você será solicitado a fornecer uma senha. Esperançosamente, você se lembrou qual é essa senha. Você vai precisar disso. As entradas no diretório “.gnugp” não podem ser descriptografadas sem ele.

Se usarmos o

 tree 

utilitário para examinar o diretório, veremos essa estrutura de subdiretórios e arquivos. Você encontrará

 tree 

nos repositórios da sua distribuição, caso ainda não o tenha no seu computador.

árvore .gnupg

A estrutura de diretórios do diretóriostru .gnupg

O conteúdo da árvore de diretórios é:

  • openpgp-revocs.d : Este subdiretório contém seu certificado de revogação. Você precisará disso se sua chave privada se tornar de conhecimento comum ou comprometida de outra forma. Seu certificado de revogação é usado no processo de retirada de chaves antigas e adoção de novas chaves.
  • private-keys-v1.d : Este subdiretório armazena suas chaves privadas.
  • pubring.kbx : um arquivo criptografado. Ele contém chaves públicas, incluindo as suas, e alguns metadados sobre elas.
  • pubring.kbx~ : Esta é uma cópia de backup de “pubring.kbx.” Ele é atualizado pouco antes de serem feitas alterações em “pubring.kbx”.
  • trustdb.gpg : mantém as relações de confiança que você estabeleceu para suas próprias chaves e para quaisquer chaves públicas aceitas pertencentes a outras pessoas.

De qualquer forma, você deve fazer backups regulares e frequentes do seu diretório pessoal, incluindo os arquivos e pastas ocultos. Isso fará o backup do diretório “.gnupg” normalmente.

Mas você pode pensar que suas chaves GPG são importantes o suficiente para garantir um backup periódico próprio, ou talvez você queira copiar suas chaves do seu desktop para o seu laptop para tê-las em ambas as máquinas. Afinal, você está em ambas as máquinas.

Determinando quais chaves fazer backup

Podemos pedir gpgpara nos informar quais chaves estão em seu sistema GPG. Usaremos as --list-secret-keysopções e as --keyid-format LONGopções.

gpg --list-secret-keys --keyid-format LONG

Listando os detalhes da chave GPG na janela do terminal

Fomos informados de que o GPG está olhando dentro do arquivo “/home/dave/.gnupg/pubring.kbx”.

Recomendado:  O Microsoft Outlook Lite está chegando ao seu telefone Android

Nada do que aparece na tela é sua chave secreta real.

  • A linha “sec” (secreta) mostra o número de bits na criptografia (4096 neste exemplo), o ID da chave, a data em que a chave foi criada e “[SC]”. O “S” significa que a chave pode ser usada para assinaturas digitais e o “C” significa que pode ser usada para certificação.
  • A próxima linha é a impressão digital principal.
  • A linha “uid” contém o ID do proprietário da chave.
  • A linha “ssb” mostra a subchave secreta, quando ela foi criada, e “E”. O “E” indica que pode ser usado para criptografia.

Se você criou vários pares de chaves para uso com identidades diferentes, eles também serão listados. Há apenas um par de chaves para fazer backup para este usuário. O backup incluirá quaisquer chaves públicas pertencentes a outras pessoas que o proprietário desta chave tenha coletado e decidido confiar.

Fazendo backup

Podemos solicitar gpgo backup de todas as chaves de todas as identidades ou o backup das chaves associadas a uma única identidade. Faremos backup da chave privada, da chave secreta e do arquivo do banco de dados confiável.

Para fazer backup das chaves públicas, use a --export  opção. Também vamos usar as --export-options backupopções. Isso garante que todos os metadados específicos do GPG sejam incluídos para permitir que os arquivos sejam importados corretamente em outro computador.

Especificaremos um arquivo de saída com a --outputopção. Se não fizéssemos isso, a saída seria enviada para a janela do terminal.

gpg --export --export-options backup --output public.gpg

Exportando as chaves GPG públicas

Se você quiser fazer backup das chaves apenas para uma única identidade, adicione o endereço de e-mail associado às chaves à linha de comando. Se você não se lembra qual é o endereço de e-mail, use a --list-secret-keysopção descrita acima.

gpg --export --export-options backup --output public.gpg dave@madeupdomain.com

Exportando as chaves GPG públicas para uma única identidade

Para fazer backup de nossas chaves privadas, precisamos usar a --export-secret-keysopção em vez da --exportopção. Certifique-se de salvar isso em um arquivo diferente.

gpg --export-secret-keys --export-options backup --output private.gpg

Exportando as chaves GPG privadas

Como esta é sua chave privada, você precisará se autenticar no GPG antes de prosseguir.

Observe que sua senha não está sendo solicitada. O que você precisa inserir é a senha que você forneceu quando criou suas chaves GPG pela primeira vez. Bons gerenciadores de senhas permitem que você guarde informações como essas como notas seguras. É um bom lugar para armazená-los.

Fornecendo a senha GPG para exportar as chaves privadas

Se a senha for aceita, a exportação ocorre.

Recomendado:  O que há de novo na atualização 21H1 do Windows 10, na primavera de 2021

Para fazer backup de suas relações de confiança, precisamos exportar as configurações do seu arquivo “trustdb.gpg”. Estamos enviando a saída para um arquivo chamado “trust.gpg”. Este é um arquivo de texto. Ele pode ser visualizado usando cat.

gpg --export-ownertrust > trust.gpg

confiança do gato.gpg

Exportando as relações de confiança do GPG

Aqui estão os três arquivos que criamos.

ls -hl *.gpg

Os três arquivos criados pelos comandos de exportação

Iremos movê-los para outro computador e restaurá-los. Isso estabelecerá nossa identidade naquela máquina e nos permitirá usar nossas chaves GPG existentes.

Se você não estiver movendo as chaves para outro computador e estiver apenas fazendo backup delas porque deseja ter certeza de que estão seguras, copie-as para outra mídia e armazene-as com segurança. Mesmo que caiam em mãos erradas, sua chave pública é pública de qualquer maneira, então não há mal nenhum nisso. E sem sua senha, sua chave privada não pode ser restaurada. Mesmo assim, mantenha seus backups seguros e privados.

Copiamos os arquivos para um computador Manjaro 21.

ls *.gpg

Os arquivos exportados transferidos para um computador Manjaro

Por padrão, Manjaro 21 usa o  shell Z , zshe é por isso que parece diferente. Mas isso não importa, não afetará nada. O que estamos fazendo é regido pelo gpgprograma, não pelo shell.

Para importar nossas chaves, precisamos usar a --importopção.

gpg --importar público.gpg

Importando as chaves GPG públicas

Os detalhes da chave são exibidos à medida que ela é importada. O arquivo “trustdb.gpg” também foi criado para nós. Importar a chave privada é igualmente fácil. Usamos a --importopção novamente.

gpg --importar privado.gpg

Importando as chaves GPG privadas

Somos solicitados a inserir a senha.

Inserindo a senha para importar as chaves GPG privadas

Digite-o no campo “Senha”, pressione a tecla “Tab” e pressione “Enter”.

Confirmação das chaves GPG privadas importadas

Os detalhes das chaves importadas são exibidos. No nosso caso, temos apenas uma chave.

Para importar nosso banco de dados confiável, digite:

gpg --import-ownertrust trust.gpg

Importando os relacionamentos de confiança do GPG

Podemos verificar se tudo foi importado corretamente usando a --list-secret-keysopção mais uma vez.

gpg --list-secret-keys --keyid-format LONG

Verificando se a importação funcionou

Isso nos dá exatamente a mesma saída que vimos anteriormente em nosso computador Ubuntu.

Proteja sua privacidade

Certifique-se de que suas chaves GPG estejam seguras fazendo backup delas. Se você tiver um desastre no computador ou apenas atualizar para um modelo mais recente, certifique-se de saber como transferir suas chaves para a nova máquina.