Tenho testado as chaves GPG e estudado as alterações das chaves ao adicionar/remover usuários na chave. Se eu adicionar um usuário Alice na geração da chave. Eu exporto a chave pública e privada dos pares de chaves. E então adicione o usuário Bob à mesma chave. E, finalmente, exporte a mesma chave, exceto com Bob adicionado como usuário. Então eu comparo as chaves Alice e Alice/Bob . A chave pública Alice tem um grande pedaço semelhante às chaves públicas Alice/Bob e também tem algumas diferenças em muitos pontos. A chave pública Alice/Bob é consideravelmente mais longa que a chave Alicechave. Percebo que o mesmo se aplica às chaves privadas. O que eu acho interessante é que se eu criptografar usando a chave pública Alice e descriptografar usando a chave privada Alice/Bob , recebo a mesma mensagem.
Aqui estão as perguntas que tenho:
- O e-mail/ID do usuário afeta a chave pública e privada?
- Você pode extrair o ID do usuário da chave pública? Se sim, como funciona?
- Como funciona a criptografia com Alice e a descriptografia com Alice/Bob ?
- Uma determinada parte de cada chave é usada para criptografia/descriptografia e outras partes são deixadas para o ID do usuário e e-mails?
Mais importante, não é para isso que servem os "IDs de usuário" da chave PGP.
Os IDs de usuário são apenas rótulos. Eles não podem ser usados para controle de acesso de qualquer tipo – eles apenas informam outras pessoas sobre o proprietário da chave. Deve haver apenas um proprietário de uma chave e todos os IDs de usuário em uma única chave devem descrever a mesma pessoa.
(A razão pela qual você pode adicionar vários IDs de usuário é simplesmente porque a mesma pessoa pode ter vários endereços de e-mail e até mesmo vários nomes.)
Se várias pessoas precisarem usar o PGP, cada uma delas deverá criar suas chaves individuais. Em seguida, você listará todas as chaves ao criptografar (por exemplo, usar várias
--recipient
opções).Quando você adiciona um segundo ID de usuário, ainda é literalmente o mesmo material de chave RSA, você apenas alterou o rótulo que está escrito nele. IDs de usuário não são para controle de acesso.
Quando você fala sobre "chaves públicas" e "chaves privadas" em PGP, isso geralmente não significa apenas os dados brutos da chave pública (por exemplo, apenas os parâmetros RSA) como acontece em alguns outros sistemas. Em vez disso, o que você realmente obtém
gpg --export
é o bloco de chaves OpenPGP ou certificado contendo as chaves públicas junto com vários metadados (IDs de usuário, assinaturas, etc.).Portanto, quando você adiciona um ID de usuário, ele realmente não altera os parâmetros de chave reais – ele é adicionado como um pacote de metadados ao lado do pacote de chave pública.
E quando as pessoas compartilham suas "chaves públicas PGP", elas compartilham todo o pacote de pacotes de chave + metadados como uma única unidade. No geral, toda a ideia é muito semelhante aos certificados X.509, que possuem um campo 'Assunto' ao lado da própria chave.
Você pode usar ferramentas como
pgpdump
ougpg --list-packets
para mostrar os dados exportados em formato de texto.