Verifique se um arquivo criptografado por GPG está assinado por usuários específicos

Verifique se um arquivo criptografado por GPG está assinado por usuários específicos

Tenho um arquivo criptografado e assinado pelo GPG.

Nopágina de manual para gpg, para a --decryptopção, diz:

Se o arquivo descriptografado estiver assinado, a assinatura também será verificada.

Gostaria de fazer mais do que apenas verificar se uma assinatura é válida "se o arquivo estiver assinado" - gostaria de:

  • Verifique se o arquivoéassinado
  • Verifique se a assinatura é de um determinado usuário ou subconjunto de usuários em meu chaveiro

Qual comando gpg pode ser usado para fazer isso?

Responder1

A --decryptopção já faz a maior parte disso.

$gpg --decrypt <teste.gpg
gpg: criptografado com chave RSA de 4096 bits, ID CE7B5510340F19EF, criado em 31/10/2009
      "gravidade <[e-mail protegido]>"
O WELL (ou Whole Earth 'Lectronic Link) é um exemplo da última novidade na fronteira
aldeias, o quadro de avisos do computador. Neste tipo de cidade pequena, a Main Street é uma
minicomputador central ao qual (no caso do WELL) até 64 microcomputadores
podem ser conectados ao mesmo tempo por linhas telefônicas e pequenas caixas piscantes chamadas modems.
gpg: Assinatura feita em 15/05/2015T07:52:55 EEST
gpg: usando a chave RSA D24F6CB2C1B52632
gpg: Boa assinatura de "grawity <[e-mail protegido]>" [final]
gpg: também conhecido como "grawidade <[e-mail protegido]>" [final]

Para informações legíveis por máquina, você pode usar--status-fd.

[GNUPG:] ENC_TO CE7B5510340F19EF 1 0
[GNUPG:] BEGIN_DECRYPTION
[GNUPG:] DECRYPTION_INFO 2 9
[GNUPG:] TEXTO SIMPLES 62 1431665575
[GNUPG:] NEWSIG
[GNUPG:] SIG_ID 8AaWsnfpINFLIVjEqk665x7fuKA 15/05/2015 1431665575
[GNUPG:] GOODSIG D24F6CB2C1B52632 gravidade <[e-mail protegido]>
[GNUPG:] NOTATION_NAME[e-mail protegido]
[GNUPG:] NOTATION_DATA 2357E10CEF4F7ED27E233AD5D24F6CB2C1B52632
[GNUPG:] VALIDSIG 2357E10CEF4F7ED27E233AD5D24F6CB2C1B52632 2015-05-15 1431665575 0 4 0 1 10 00 2357E10CEF4F7ED27E233AD5D24F6CB2C1B52632
[GNUPG:] TRUST_ULTIMATE
[GNUPG:] DECRYPTION_OKAY
[GNUPG:] BOM MDC
[GNUPG:] END_DECRYPTION

Ambos GOODSIGe VALIDSIGaqui significam que a assinatura foi verificada e TRUST_*correspondem aos níveis de certificação dessa chave. Por exemplo, as chaves que você assinou (ou assinou) diretamente terão TRUST_FULL.

Você pode agrupar isso em um script que verificaria a impressão digital no VALIDSIG em relação a uma lista de permissões de chaves ou apenas confiar no modelo de confiança de chave.

Observe que vocênão podeverifique se um arquivo está assinado sem descriptografá-lo primeiro, pois o PGP usa assinar antes de criptografar.

Responder2

gpg --decrypt < data.pgp > /dev/null

Isso resultará na seguinte saída:

gpg: encrypted with 4096-bit RSA key, ID B91FFCCDDEE362261A, created 2015-05-21
      "Shubham Chaudhary <[email protected]>"
gpg: Signature made Mon Aug 21 23:13:03 2017 IST
gpg:                using RSA key 71B6BEEFEED2DCA
gpg:                issuer "Shubham Chaudhary <[email protected]>"
gpg: Good signature from "Shubham Chaudhary <[email protected]>" [ultimate]

informação relacionada