Por que o gpg está ficando chateado e como eu o paro?

24

Recentemente, migrei de uma instalação do Ubuntu para outra e, no processo, mudei meu nome de usuário. Importei meu par de chaves pública / privada para o gpg e, embora a descriptografia (usando minha chave privada) funcione bem, sempre que tento criptografar algo para mim mesma com minha chave pública, recebo a seguinte mensagem de aviso:

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

Depois disso, ele me pergunta se eu realmente quero usar a chave (eu sempre respondo "sim", porque é de fato a única chave no meu chaveiro e eu sei de onde ela veio). Posso descriptografar as coisas muito bem, então por que o gpg é um assobio sempre que tento criptografar alguma coisa? E como posso impedir que esta mensagem apareça novamente?

fouric
fonte
Fazer qualquer uma das respostas a esta pergunta mais velho em ajuda stackoverflow ?: stackoverflow.com/q/9460140/2422988
Paul
@ Paul, sim, esse link ajudou um pouco. Eu defini o nível de "confiança" da minha chave como último, e isso parece ter resolvido o problema. Mas qual foi o problema? Por que isso estava acontecendo e eu o corrigi ou apenas aliviei os sintomas?
fouric
Desculpe o InkBlend, receio que minha capacidade de analisar e comparar os resultados da pesquisa exceda meu conhecimento de pgp nesse caso, portanto, minha não tentativa de reivindicar isso como resposta. Parece que Garrett sabe o que está acontecendo, no entanto.
Paul

Respostas:

16

Consegui reproduzir o problema que você está enfrentando. Eu fiz o seguinte:

$ gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --gen-key

<specified parameters and let it do its thing>

gpg: key 58018BFE marked as ultimately trusted
public and secret key created and signed.

<snip>

$

Observe que o processo marcou a chave como "finalmente confiável".

Agora eu exporto as chaves:

$gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --export-secret-keys -a >private.key

$gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --export -a > public.key

Agora eu importo para um novo banco de dados gpg:

$gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file --import public.key

$gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file --import private.key

Agora, se eu tentar criptografar usando os novos chaveiros, recebo:

$ gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file -r Fake -e
gpg: AE3034E1: There is no assurance this key belongs to the named user

pub  1024R/AE3034E1 2013-06-13 Fake User <[email protected]>
 Primary key fingerprint: AD4D BAFB 3960 6F9D 47C1  23BE B2E1 67A6 5801 8BFE
      Subkey fingerprint: 58F2 3669 B8BD 1DFC 8B12  096F 5D19 AB91 AE30 34E1

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

A razão para isso é o modelo "rede de confiança". Por padrão, para que uma chave pública seja confiável, é necessário 1 certificado de confiança "definitivo" (normalmente onde você pessoalmente verificou as identidades das pessoas envolvidas) ou 3 certificados de confiança "marginais" (onde alguém que você conhece, quem conhece alguém que você conhece ... assinou o certificado).

Como o gpg é um aplicativo de segurança, ele avisa se você está tentando criptografar para uma chave que não está listada como confiável. A razão pela qual sua própria chave não é confiável nesse caso é simples. Isso ocorre porque você não exportou as relações de confiança da instância anterior do gpg. Para fazer isso, use os comandos --export-ownertrust e --import-ownertrust.

Como sempre, consulte a página do manual .

Garrett Kajmowicz
fonte
1
O principal é que todos os dados sobre a confiança das chaves sejam armazenados separadamente do chaveiro (secretos e públicos)! ~/.gnupg/trustdb.gpgmantém o banco de dados confiável, pubring.gpgas chaves públicas e secring.gpgas chaves secretas. Por favor, consulte a documentação do GnuPG sobre isso .
gertvdijk
28

Encontrei o mesmo problema, mas não tinha mais acesso à chave antiga. Assim, você pode recriar a confiança na sua chave antiga com isso:

gpg --edit-key [email protected]
gpg> trust
Please decide how far you trust this user to correctly verify other users' keys
(by looking at passports, checking fingerprints from different sources, etc.)

  1 = I don't know or won't say
  2 = I do NOT trust
  3 = I trust marginally
  4 = I trust fully
  5 = I trust ultimately
  m = back to the main menu

Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
Kevin Lyda
fonte
O OP fez isso (observado nos comentários), mas é bom ter isso como resposta.
muru 12/09/14
7

Você pode usar a --always-trustbandeira para pular esta mensagem.

Paul Baltescu
fonte
1
Isso é absolutamente verdade, mas isso apenas tira os sintomas, não a doença. Sua solução é como tomar uma aspirina porque você tem câncer ...
Fabby
2
--always-trusté uma boa solução em alguns casos , mas se a chave em questão realmente for a própria chave do usuário, ela deve ter a confiança máxima.
Blacklight Shining
4
Minha doença é a insistência teimosa do GPG em um chaveiro que atrapalha minha criptografia de arquivos programática e o faz de maneiras diferentes em todas as VMs em que instalo o software.
bbozo
@BlacklightShining e, se ainda não consegui verificar isso, o Evolution não permite criptografar e-mails para esse endereço. Não faço ideia por que criptografar um texto para alguém requer confiança absoluta - e com confiança marginal , não deve ser possível.
Izzy