Chave-mestra em rede desconectada

Este HOWTO detalha o processo de criação de um par de chaves OpenPGP para uso com GnuPG em um sistema desconectado da rede ("airgapped", usando Tails), mostra como exportar as subchaves para uso diário. Se você quiser exportar as subchaves para um cartão inteligente OpenPGP (smartcard), deve seguir a primeira parte deste guia e posteriormente haverá um segundo guia para concluir o processo.

Este tutorial é destinado a usuários(as) avançados(as)! Se você ainda não está familiarizado(a) e confortável com os conceitos do OpenPGP, este tutorial pode não ser ideal para você.

Pré-requisitos

Se estiver usando um cartão inteligente OpenPGP, verifique a página de smartcards OpenPGP para ver se há alguma configuração necessária antes de iniciar este processo.

Configurando seu ambiente

A chave-mestra será gerada e só será usada em um ambiente desconectado da rede. Comece por desligar o computador, remover quaisquer conexões de rede e desativar quaisquer interfaces sem fio, se possível. Uma vez que você esteja satisfeito por sua máquina ser capaz de falar com o mundo exterior, prossiga para inicializar a partir do pendrive Tails.

Para a primeira inicialização, as configurações padrão são boas. Você precisará criar um volume persistente no pendrive Tails e é aí que sua chave gerada será armazenada. Este volume é criptografado e só é descriptografado quando você digita a senha na inicialização.

Para iniciar o assistente de volume persistente, selecione Aplicativos ▸ Tails ▸ Configurar volume persistente. Você precisará selecionar o GnuPG na lista para garantir que seus chaveiros GnuPG sejam armazenados no volume persistente.

Depois de inserir uma frase secreta e do volume persistente ter sido criado, você precisará reiniciar sua máquina e inicializar novamente a partir do pendrive Tails. Desta vez, quando inicializar, você será solicitado(a) a inserir a senha de volume persistente para desbloqueá-lo e montá-lo.

Você também deve selecionar as opções extras e definir uma senha sudo se estiver usando um cartão inteligente para armazenar suas subchaves.

Geração da chave

Agora que você está executando Tails e seu volume persistente está configurado, você está pronto(a) para gerar sua chave. Comece executando:

$ gpg --full-gen-key

Você será perguntado(a) que tipo de chave gostaria de gerar. Selecione a opção 4 para um par de chaves RSA único, somente para assinatura.

Your selection? 4

Em seguida, você será perguntado(a) sobre o tamanho da chave que gostaria. Você deve digitar 4096, o tamanho de chave preferida por keyring-maint.

What keysize do you want? (2048) 4096

Em seguida, será solicitado(a) o período de tempo que a chave permanecerá válida. Para uma chave-mestra, 1 ano é um tempo razoável. A data de validade pode ser alterada após a chave ser criada e não é fixa, mas o acesso à parte secreta da chave-mestra é necessário para esta ação. Isso significa que há uma proteção fraca contra a perda da chave secreta e de quaisquer certificados de revogação que você tem, pois a chave expirará e não estará disponível para sempre.

Key is valid for? (0) 1y
Key expires at a date and time 1 year in the future.
Is this correct? (y/N) y

Você precisará inserir as informações para construir uma ID de usuário(a) para identificar sua chave. Essas informações serão usadas para formar a primeira UID na chave, embora mais UIDs possam ser adicionadas posteriormente.

Geralmente é uma boa ideia deixar o campo Comentário em branco, pois quando se trata de assinaturas de chaves (keysigning), outras pessoas podem não ser capazes de validar o que você colocou no campo Comentário e, portanto, não estarão dispostas a assinar sua chave.

Aqui está um exemplo, você deve mudar esses detalhes como quiser:

Real name: Bob Meowington
Email address: bob@meowington.cat
Comment:

Você será solicitado(a) a rever sua UID e aceitá-la. Se tudo está certo, entre O para continuar.

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

Você agora será solicitado(a) a digitar uma frase secreta e confirmá-la, e assim sua chave é criada.

Adicionado UIDs extras

Você precisará abrir a chave para edição. Comece executando:

gpg --expert --edit-key 0xKEYID

Para cada UID que você precisa adicionar, use o comando adduid:

gpg> adduid

Esse processo é o mesmo de quando você adicionou o primeiro UID. Você será obrigado(a) a digitar sua senha para assinar as UIDs enquanto as adiciona.

Adicionando subchaves

Você precisará criar pelo menos duas, opcionalmente três, subchaves. Se você está planejando usar um cartão inteligente OpenPGP, talvez seja necessário criar subchaves com um tamanho de chave 2048 em vez de 4096 bits. Consulte a documentação dos seus cartões inteligentes para determinar o tamanho máximo das chaves que pode utilizar.

Para criar as subchaves de criptografia e assinatura, use o comando addkey. Selecione a opção 4 para a chave de assinatura e opção 6 para a chave de criptografia.

gpg> addkey

Se você também planeja usar essa chave para autenticação SSH, execute novamente o comando addkey e selecione a opção 8. Alterne as configurações até que apenas a autenticação esteja selecionada, isso criará uma chave adequada para uso com SSH.

Se você criou uma subchave de autenticação, anote o ID da subchave, pois precisará mais tarde para exportar a chave pública.

Agora você deve salvar as alterações que você fez na chave:

gpg> save

Sua chave foi criada.

Exportar o certificado de revogação

Insira o segundo pendrive para armazenar seu certificado de revogação. Você pode gerar o certificado de revogação com:

gpg --gen-revoke 0xKEYID > /media/<usbstick>/revoke.gpg

Você precisará substituir 0xKEYID com a ID da chave-mestra e <usbstick> pelo nome do ponto de montagem.

Depois de ter o certificado de revogação salvo no pendrive, ejete-o e mantenha-o em um lugar seguro.

Exportar as chaves públicas

Insira seu terceiro pendrive para transferir os dados para o seu ambiente diário. Você pode exportar sua chave pública com:

gpg --export 0xKEYID > /media/<usbstick>/public.gpg

Se você também criou uma chave de autenticação, também deve exportar sua chave pública SSH:

gpg --export-ssh-key SUBKEYID > /media/<mountpoint>/ssh.pub

Você deve passar a ID da subchave, não da chave-mestra, para esse programa.

Exportar as chaves secretas

Se você planeja usar um cartão inteligente para manter suas subchaves secretas, agora você deve parar de seguir este tutorial e, em vez dele, começar a seguir as instruções na página de subchaves em cartões inteligentes.

Se você não está usando um cartão inteligente:

gpg --export-secret-subkeys 0xKEYID > /media/<mountpoint>/secret.gpg

A chave secreta da chave-mestra não será exportada e só será salva no pendrive Tails desconectado da rede, no volume persistente.

Agora você pode ejetar o terceiro pendrive e reiniciar sua máquina, garantindo que você remova o pendrive Tails quando instruído(a).

Importando chaves públicas e subchaves privadas

Uma vez conectado(a) ao seu ambiente do dia a dia, insira o pendrive com as chaves públicas e as subchaves privadas. Para importar os dados das chaves:

gpg --import < /media/<mountpoint>/public.gpg
gpg --import < /media/<mountpoint>/secret.gpg

Você então precisará definir a confiança (trust) da sua chave para ultimate. Execute:

gpg --edit-key 0xKEYID

Use o comando trust para editar o nível de confiança na chave. Você não precisa salvar uma vez que o trust-db seja atualizado, e você pode então sair com quit do shell GnuPG.

Salve sua chave pública SSH em algum lugar, ~/.ssh/id_rsa.pub é um local sugerido se você ainda não tiver uma chave pública presente, pois ferramentas como ssh-copy-id poderão aproveitá-la de lá.

Certifique-se de manter o seu cartão USB Tails e o seu cartão USB de revogação de backup em um lugar seguro! Sem o pendrive Tails você não será capaz de alterar a data de validade da chave, assinar outras chaves ou adicionar/revogar subchaves.

Veja também


CategoryOpenPGP