GPG - por que estou criptografando com subchave em vez de chave primária?

26

Ao criptografar um arquivo para enviar a um colaborador, vejo esta mensagem:

gpg: using subkey XXXX instead of primary key YYYY

Por que isso seria? Percebi que, quando me enviam um arquivo criptografado, ele também parece ser criptografado para minha subchave, em vez da minha chave primária. Para mim, isso não parece ser um problema; gpg (1.4.x, macosx) apenas lida com isso & avança. Mas para eles, com a configuração automática da ferramenta, isso parece ser um problema, e eles solicitaram que eu usasse sua chave primária.

Eu tentei fazer algumas leituras, e tenho o livro "GPG & PGP" de Michael Lucas em ordem, mas não vejo por que há essa distinção. Eu tenho lido que a chave usada para assinar e a chave usada para criptografia seria diferente, mas eu assumi que era sobre chaves públicas versus privadas no começo.

No caso de um problema de confiança / validação, passei pelo processo de comparar impressões digitais e verificar, sim, que confio nessa chave. Enquanto eu estava fazendo isso, notei o primário & subchaves tinham notas de "uso" diferentes:

primary:  usage: SCA
subkey:   usage: E

"E" provavelmente significa "Criptografia". Mas não consegui encontrar nenhuma documentação sobre isso. Além disso, meu colaborador tem usado essas ferramentas & técnicas há alguns anos, então por que isso seria apenas um problema para mim?

    
por Michael H. 12.06.2012 / 18:51

2 respostas

36

Atualizar

Embora a postagem original abaixo explique corretamente por que você pode querer usar chaves de criptografia e assinatura separadas, ela não faz um ótimo trabalho respondendo à pergunta de por que você usa subchaves em vez da chave primária. O Debian Wiki fornece uma resposta muito mais completa .

Para resumir, sua chave principal é sua identidade on-line, e sua identidade e reputação são criadas por outras pessoas que atestam que essa chave é sua, assinando-a por conta própria. (Você pode pensar nisso como se fosse o seu Twitter, e sua reputação sendo seus seguidores no Twitter, ou você pode se opor a essa analogia, mas espero que isso lhe dê algum sentido de por que você quer protegê-lo.) chave é super importante e é construída ao longo dos anos, você quer protegê-lo muito. Em particular, você não quer armazená-lo em um computador que possa ser roubado ou invadido; você deseja manter sua chave primária off-line em um local seguro.

Isso, naturalmente, torna a sua chave primária muito inconveniente de usar. Portanto, para as operações do dia-a-dia, você deseja usar uma chave que não seja um problema tão grande para substituir se ficar comprometida. É por isso que as subchaves foram inventadas.

Uma subchave ainda é um par de chaves pública / privada e é segura desde que você tenha apenas a chave privada. É, criptograficamente, tão seguro quanto sua chave primária. A diferença é que sua reputação só é atribuída a ela por sua própria assinatura, a assinatura de sua chave privada. Para usar a analogia do Twitter, o mundo confia que você é o seu Twitter porque todos os seus seguidores dizem isso (eu sei, nem sempre funciona assim, mas analogias são difíceis!), E então com essa confiança estabelecida você pode então, muito mais facilmente convencer o mundo que você possui o seu Instagram, basta twittar e as pessoas vão acreditar em você, porque o tweet veio da sua conta, que eles confiam.

Você ainda deseja manter sua subchave segura, mas agora, se estiver comprometida, não será o grande problema se sua chave primária for comprometida (ou, na analogia, alguém invadiu sua conta do Twitter). Agora você pode simplesmente revogar a subchave e emitir uma nova assinatura assinando um certificado de revogação e uma nova subchave e postando ambas em seu chaveiro público (como twittar "hey, meu Instagram mudou, não use o antigo, use este um em vez disso "). Isso faz com que manter sua subchave no computador laptop tenha um risco mais aceitável do que manter sua chave primária nela.

As subchaves TL; DR facilitam muito o gerenciamento de chaves, separando as funções criptográficas das chaves públicas das funções de confiança e identidade das chaves públicas (primárias).

postagem original

Se você examinar os detalhes da matemática da criptografia de chave pública, descobrirá que a assinatura e a descriptografia são na verdade operações idênticas. Assim, em uma implementação ingênua, é possível enganar alguém para descriptografar uma mensagem pedindo-lhe para assiná-la.

Várias coisas são feitas na prática para evitar isso. O mais óbvio é que você nunca assina uma mensagem real, em vez disso, você assina um hash seguro da mensagem. Menos obviamente, mas apenas para ser mais seguro, você usa chaves diferentes para assinar e criptografar. Além disso, manter a chave de criptografia separada permite que você mantenha as outras teclas sem dúvida mais importantes e definitivamente menos usadas off-line e mais seguras. Esse é o caso das chaves que você inspecionou. A propósito, as bandeiras significam:

  • e = criptografar / descriptografar (descriptografar uma mensagem que você recebeu criptografada para você ler)
  • s = sign (assina dados. Por exemplo, um arquivo ou para enviar e-mail assinado)
  • c = certify (assina outra chave, estabelecendo uma relação de confiança)
  • a = autenticação (efetue login no SSH com uma chave PGP; esse é um uso relativamente novo)

Observe que, em todos os casos, "chave" significa um & público & par de chaves privadas.

Isso não deve ser um problema para o seu amigo se ele tiver configurado tudo corretamente, mas configurar tudo corretamente pode ser mais complexo do que deveria. Assim, pode ser que a melhor solução seja o seu amigo gerar uma nova chave pública que ele usa para assinatura e criptografia. Como eu disse, porque a principal defesa contra o ataque é apenas assinar um hash criptograficamente seguro de uma mensagem, não é uma fraqueza séria ter essa chave.

    
por 16.06.2012 / 08:50
1

Referência para o sinalizadores

Referência alternativa

Além disso, provavelmente não vou ajudar muito. Eu sempre achei o PGP / GPG excessivamente complexo pelo pouco que ele faz. Boa sorte.

    
por 15.06.2012 / 07:04