Eu entendo perfeitamente a matemática por trás de RSA, Elgamal, AES, SHA, mas não como as coisas são usadas na prática. Como as subchaves são diferentes da chave mestra? Eu entendo sua finalidade em vários sites, mas como é implementado internamente? Como ele está vinculado à chave mestra? É uma terminologia OpenPGP?

Comentários

Resposta

Isso post do usuário rjh de 2008 no fórum enigmail responde bem:

Originalmente em PGP 2.6, no início dos anos 90, você tinha apenas um par de chaves e ele era usado para criptografia e assinatura. A capacidade de ter pares de chaves adicionais apresentou alguns desafios de engenharia. Por fim, foi decidido que os pares de chaves adicionais seriam chamados de “subchaves”, apesar do fato de não haver nada “sub” sobre eles. Da mesma forma, o que você chama de “chave” não é realmente uma chave – a terminologia é um resquício dos dias em que uma chave realmente era uma chave. Hoje em dia, uma chave é realmente uma coleção de chaves, junto com alguns metadados para identificadores de usuários, assinaturas, etc.

Por exemplo, minha “chave” tem quatro pares de chaves: 5B8709EB , D0C6AAE4, 71E177DB e 8DB02BBB3.

O que o GnuPG chama de “chave pública” é realmente a chave de assinatura mais antiga da coleção. Por exemplo, como 5B8709EB foi criado primeiro, o GnuPG chama todo o conjunto de chaves e metadados de “chave 5B8709EB”.

Então, “é possível ter uma chave que” é usada para criptografar e assinar sem qualquer subchave? “A resposta aqui é não, porque todos os pares de chaves em uma chave são subchaves. Mesmo se houver apenas um deles.

Resposta

Subchaves

Os pacotes de subchaves são definidos em RFC 4880, OpenPGP, 5.5 Key Material Packet . Eles são distinguidos apenas por outro ID de pacote e requerem uma assinatura de ligação para serem realmente úteis (veja abaixo).

Um pacote de subchave pública (tag 14) tem exatamente o mesmo formato de um pacote de chave pública, mas denota uma subchave.

Uso da subchave

As subchaves OpenPGP são usado para finalidades diferentes:

  • Ser capaz de armazenar a chave primária offline ou em um dispositivo mais seguro. Se uma máquina com uma subchave for danificada, você pode facilmente revogar a subchave sem todos os incômodos de revogar sua chave primária (compartilhar uma nova chave, obter novas assinaturas, …).
  • Ter diferentes subchaves em diferentes máquinas, por exemplo, uma subchave de assinatura em um servidor de compilação. Novamente, revogar chaves únicas é fácil.
  • Usando uma chave primária maior para uma vida útil longa e subchaves mais curtas, porém mais rápidas para o uso diário.
  • Alguns algoritmos não suportam criptografia e assinatura. Por exemplo, uma chave primária DSA requer outra chave para criptografar ption, normalmente emparelhado com ElGamal.

Assinaturas de vinculação

Existem subtipos de assinatura especiais para vincular subchaves a chaves primárias (e vice-versa), listados em RFC 4880, OpenPGP, 5.2.1 Tipos de assinatura :

0x18: Assinatura de vinculação de subchave

Esta assinatura é uma declaração da chave de assinatura de nível superior que indica que ela possui a subchave. Esta assinatura é calculada diretamente na chave primária e subchave, e não em qualquer ID de usuário ou outros pacotes. Uma assinatura que vincula uma subchave de assinatura DEVE ter um subpacote de assinatura incorporada nesta assinatura de vinculação que contém uma assinatura 0x19 feita pela subchave de assinatura na chave primária e na subchave.

0x19: Assinatura de vinculação de chave primária

Esta assinatura é uma declaração de uma subchave de assinatura, indicando que ela pertence à chave primária e à subchave. Esta assinatura é calculada da mesma maneira que uma assinatura 0x18: diretamente na chave primária e subchave, e não em qualquer ID de usuário ou outros pacotes.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *