Como você faz backup com segurança de uma chave privada GPG?


25

Encontrei um gerenciador de senhas CLI muito interessante chamado pass . Para usá-lo, você gera um par de chaves GPG2 e usa a ferramenta para ajudá-lo a armazenar senhas em arquivos criptografados em gpg2.

Para criptografar os arquivos (adicione uma nova senha), ele usa a chave pública.

Para descriptografar os arquivos (recuperar uma senha armazenada), ele usa a chave privada, que requer uma senha.

Isso funciona muito bem.

Agora que a ferramenta está armazenando todas as minhas senhas, desejo fazer backup de todos esses dados para que, se meu computador travar, não fique bloqueado em todas as minhas contas online.

A ferramenta se integra perfeitamente ao git, então eu fui capaz de enviar facilmente os arquivos .gpg para o meu repositório particular do git em um computador diferente. Pelo que entendi, esses arquivos são inúteis sem a chave privada para descriptografá-los.

Minha pergunta é a seguinte: como faço para fazer backup das chaves públicas e privadas de maneira segura, para poder restaurar o "banco de dados" em outra máquina, se necessário? Posso apenas armazenar as chaves pública e privada no meu repositório git e importá-las em uma máquina diferente posteriormente? Ou é considerado uma prática insegura armazenar uma chave privada em um repositório Git local privado? O repositório git requer uma senha para acessar. A chave privada é criptografada e requer uma senha para abrir - isso torna seguro o armazenamento?

Respostas:


10

Armazenar uma chave privada PGP em um sistema de controle de revisão não apresenta, por si só, nenhum problema de segurança significativo. O armazenamento da chave privada em um repositório git local e privado (não publicado) não deve ter implicações significativas de segurança em comparação com o armazenamento da chave privada no mesmo computador, mas fora de qualquer repositório git.

O único problema que consigo pensar em armazenar a chave privada de uma maneira controlada por versão é que, a menos que você possa destruir as revisões mais antigas, as alterações na senha da chave compram muito menos proteção do que poderiam.

O que pode vir com seu próprio conjunto de implicações de segurança é armazenar uma chave privada de forma que outra pessoa possa ter acesso ao arquivo de chave. Em tal situação, tudo o que existe entre um invasor e sua chave é a força de sua senha.

Reconhecendo que a segurança do armazenamento não é perfeita, e mais ainda no ambiente moderno em que as pessoas fazem backup regularmente dos serviços em nuvem (que literalmente traduzido significa "computador de outra pessoa"), geralmente protegemos nossas chaves secretas com senhas. Confio que, mesmo se você estiver executando, por exemplo, gpg-agent, estará fazendo o mesmo.

A conclusão é que, desde que a sua senha seja boa, mesmo o armazenamento de uma cópia do arquivo de chave criptografada no computador de outra pessoa deve ser relativamente seguro.

No entanto, isso é muito grande se: as senhas ou frases secretas da maioria das pessoas são ruins no que diz respeito às tentativas computadorizadas de decifrá-las. GnuPG vai para algum comprimento para tentar trabalho, assim como ele pode com o que você dá, mas para a protecção de dados sólida, você precisa de uma boa senha, e você precisa configurá-lo antes de importar a chave privada para o repositório git. Depois que a chave for importada, um invasor poderá, em princípio, atacar qualquer versão dela, e se tiver motivos para acreditar que uma revisão em particular possui uma senha de qualidade inferior provavelmente fará isso. Por esse motivo, certifique-se de escolher a senha com cuidado. Eu escrevi uma pequena cartilha sobre como lidar com senhas, incluindosugestões sobre como escolher senhas ou frases que você precisa lembrar , as quais você pode achar úteis.


6

Estive pensando em uma configuração semelhante recentemente. Antes de abordar sua pergunta, deixe-me apontar o que me incomoda. Isso é explicado detalhadamente aqui . Em resumo, quando o Pass chama GPG, ele executa criptografia assimétrica desnecessária (RSA / EC) sob o capô. Desnecessário - porque não há uma parte não confiável aqui.

Isso é irritante porque a criptografia assimétrica é menos à prova de futuro do que a criptografia simétrica. Por exemplo, a criptografia assimétrica de hoje é quebrada por computadores quânticos suficientemente grandes, que ainda não existem. De maneira mais geral, a criptografia assimétrica depende de "problemas matemáticos" que não sabemos como resolver, muito mais do que a criptografia simétrica.

Para atenuar essa fraqueza, o mínimo que você poderia fazer é manter sua chave pública GPG usada com o Pass também, porque, por exemplo, o ataque quântico (potencial) precisa dessa chave pública: veja aqui .

Na sua pergunta real, não está claro se você pretende armazenar o repositório git (com as senhas) publicamente ou em particular. Se você deseja mantê-lo privado, pode fazer o que quiser e reduzir a segurança da chave privada GPG à do meio em que você faz o backup do repositório. No entanto, isso pode se tornar um problema de galinha e ovo: se o repositório for privado, como recuperá-lo em caso de acidente? Em outras palavras, no caso de uma "falha grave", deve haver algo que você recupere primeiro . Portanto, convém manter o repositório git privado, mas faça backup da chave GPG de forma que você possa recuperar primeiro, independentemente de qualquer outra coisa.

Soluções de backup off-line são numerosas, advogados, porões etc. veja aqui . Mas os porões não são para todos, então deixe-me sugerir uma solução on-line:

  • Crie uma senha super forte que não seja digitada por anos. Sugestão: erro de ortografia longo e memorável de uma frase que tenha algum significado pessoal ou de um livro que não ficará sem cópias se você precisar procurá-la.

  • Crie um tarball com sua chave secreta GPG exportada e talvez suas credenciais SSH.

  • Criptografá-lo de forma simétrica com sua senha: gpg --symmetric --armor.

  • Crie uma conta gratuita de hospedagem git.

  • Crie um repositório público , que possa ser clonado sem credenciais.

  • Coloque a bola de alcatrão criptografada e blindada lá.

Para recuperá-lo após uma "falha grave":

  • Inicialize um stick USB ao vivo.

  • Clone do repositório público.

  • gpg --decrypt.

A senha simétrica será sua principal proteção contra os zumbis. Às vezes, as pessoas não dão a você, ou ao leitor anônimo, o benefício da dúvida quando se trata de escolher frases secretas. Mas com uma boa senha, a criptografia simétrica deve ser sólida.

Quando você exporta sua chave privada GPG, ela é criptografada com uma frase secreta própria. As versões recentes do GPG não permitem uma exportação não criptografada. Você pode usar sua senha "regular" do GPG aqui. Lembre-se de que, no caso de uma falha, você precisará das duas frases secretas para acessar sua chave privada do GPG.


4

Outra opção que eu uso é: Imprima sua chave no papel .

Os detalhes estão na resposta vinculada. As grandes vantagens são: você pode armazená-lo facilmente onde quiser e pode verificar se ainda está em boa forma apenas olhando para ele. Mas a maior vantagem é: ninguém pode hackear sem estar fisicamente no local em que você armazena seu backup e o leva.


Até onde eu posso ver, o papel não tem vantagem sobre a mídia removível nesse caso, e a desvantagem de que, se você precisar recuperar a chave, precisará digitar toda a bobagem da chave.
MAP

A vantagem é que é muito mais durável e você pode verificar se ainda é legível com seus próprios olhos sem um computador. Se eu tivesse um dólar por cada disquete, CD ou DVD que usei que agora possui erros irrecuperáveis ​​de dados, eu poderia passar o feriado com esse dinheiro. Você não precisa digitar nada! O PaperBack o imprime como códigos 2D, com a correção de erros adicionada. Você apenas digitaliza ou fotografa e o programa o transforma no que você imprimiu antes.
Josef diz Reinstate Monica

Supondo, é claro, que você ainda tenha a tecnologia para fazer isso.
MAP

Bem, na minha opinião, a probabilidade de conseguir facilmente uma VM do Windows ou Linux com o Wine com uma cópia desse software de código aberto em 20 anos é muito maior do que a probabilidade de conseguir que o hardware leia um disquete / CD /DVD. Suponha que fiz isso em 1990. Agora posso até executar software no meu navegador . Mas boa sorte tentando obter hardware que permita a leitura de um disquete de 5 1/4 de polegada com o seu PC moderno.
Josef diz Reinstate Monica

2

Outra resposta para isso é "offline", ou seja, armazená-lo em um local seguro e não conectado a nenhum computador. Eu mantenho uma cópia completa e não criptografada de todas as minhas chaves em um disquete (eu venho fazendo isso há muito tempo, agora é um hábito) no cofre do banco. A razão pela qual eu os mantenho criptografados na mídia no banco é que um cenário potencial para "perder" a chave é esquecer a frase secreta (minhas frases secretas tendem a ter muitas pontuações e ortografia estranhas, e esquecer apenas uma delas inutilizável). Eu nunca tive que recorrer a essa cópia, mas pretendo o pior.

Além disso, há uma revogação importante na mídia e uma nota instruindo meus herdeiros sobre o que fazer com ela, caso não esteja mais disponível.


Se você fizer backup da chave privada de assinatura principal, ela não poderá ser usada para gerar um certificado de revogação? Em que cenário é útil fazer backup do certificado de revogação?
Matei David

Ah, sim, mas você deve entender que não posso ter certeza de como a pessoa que executa a solicitação terá conhecimento de computador (observe que não sou eu quem a usará, mas "meus herdeiros"). Portanto, ter a revogação já gerada e instruções de "basta enviar um email com este arquivo anexado" é menos provável de ser mal gerenciado.
MAP

@MateiDavid A geração de um certificado de revogação quando você cria inicialmente o par de chaves e o armazenamento desse certificado de revogação permitem revogar a chave se a chave ficar indisponível para você. Existem cenários válidos onde isso pode acontecer. Obviamente, você deve guardar muito bem o certificado de revogação, porque qualquer pessoa que tiver as mãos nele pode publicá-lo, revogando seu par de chaves. Não tenho muita certeza de como um certificado de revogação se aplica à situação do OP.
um CVn

Sim, descemos por um buraco de rato. Peço desculpas, minha menção ao certificado de revogação foi apenas pela exaustividade na descrição das etapas que segui e não teve nada a ver com a pergunta original.
MAP
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.