Verificando arquivos com GPG, sem um arquivo .sig ou .asc?

3

De meu conhecimento limitado de PGP / GPG, é necessário ter duas coisas para verificar um arquivo:

  • A "assinatura" do arquivo (essencialmente um hash do arquivo criptografado com o arquivo confiável chave privada da entidade; normalmente distribuído como um arquivo .sig binary ou .asc base64).

  • A chave pública da entidade confiável.

E parece estar alinhado com os exemplos que eu observei usando gpg . No entanto, estou um pouco confuso quando tento verificar um arquivo baixado de um dos sites espelhos do GCC. Na página de listagem do site espelho ( link ), diz:

The archives (hosted on these mirrors) will be signed by one of the following GnuPG keys:

E, em seguida, lista 6 possíveis chaves:

1024D/745C015A 1999-11-09 Gerald Pfeifer <[email protected]>
Key fingerprint = B215 C163 3BCA 0477 615F 1B35 A5B3 A004 745C 015A

1024D/B75C61B8 2003-04-10 Mark Mitchell <[email protected]>
Key fingerprint = B3C4 2148 A44E 6983 B3E4 CC07 93FA 9B1A B75C 61B8

1024D/902C9419 2004-12-06 Gabriel Dos Reis <[email protected]>
Key fingerprint = 90AA 4704 69D3 965A 87A5 DCB4 94D0 3953 902C 9419

1024D/F71EDF1C 2000-02-13 Joseph Samuel Myers <[email protected]>
Key fingerprint = 80F9 8B2E 0DAB 6C82 81BD F541 A7C8 C3B2 F71E DF1C

2048R/FC26A641 2005-09-13 Richard Guenther <[email protected]>
Key fingerprint = 7F74 F97C 1034 68EE 5D75 0B58 3AB0 0996 FC26 A641

1024D/C3C45C06 2004-04-21 Jakub Jelinek <[email protected]>
Key fingerprint = 33C2 35A3 4C46 AA3F FB29 3709 A328 C3A2 C3C4 5C06 

Tudo o que ele fornece são os ids e impressões digitais (não as próprias chaves), e em nenhum lugar da página (ou em qualquer um dos espelhos, ou mesmo dentro do tarball 4.8.0) é um arquivo de assinatura .sig/.asc .

Minha pergunta: Como devo verificar este tarball ( link ) sem um arquivo de assinatura, e sem conhecer a chave pública, ou sem saber qual das 6 chaves pode ter sido usada para assinar o arquivo? Alguém com mais conhecimento de GPG pode explicar a maneira mais simples de verificar esse arquivo?

    
por etherice 29.04.2013 / 21:47

2 respostas

8

Recebemos uma explicação da equipe do GNU / GCC sobre isso, e os arquivos .sig estavam faltando devido a um erro com a replicação de arquivos em seus servidores espelho. Da equipe:

Interestingly, the .sig files are only on the GNU server (e.g., http://ftp.gnu.org/gnu/gcc/gcc-4.8.0/) but not on the GCC server (e.g., ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.8.0/). As the latter is used by the mirrors, it is also not available on the mirrors.

Eu encontrei os arquivos .sig no servidor GNU como eles sugeriram, mas depois tive que cavar um pouco mais para encontrar o "arquivo de chaveiro GNU" necessário para realmente verificar a assinatura. Em suma, o processo de verificação foi:

$ wget http://www.netgull.com/gcc/releases/gcc-4.8.0/gcc-4.8.0.tar.gz
$ wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.0/gcc-4.8.0.tar.gz.sig
$ wget ftp://ftp.gnu.org/gnu/gnu-keyring.gpg
$ gpg --verify --keyring ./gnu-keyring.gpg ./gcc-4.8.0.tar.gz.sig

gpg: Signature made Fri 22 Mar 2013 08:32:29 AM CDT using DSA key ID C3C45C06
gpg: Good signature from "Jakub Jelinek <[email protected]>"
gpg: Note: This key has expired!
Primary key fingerprint: 33C2 35A3 4C46 AA3F FB29  3709 A328 C3A2 C3C4 5C06

Espero que isso ajude alguém tentando verificar um tarball baixado de um dos sites espelho do GCC.

    
por 30.04.2013 / 02:48
4

Você precisa do arquivo sig. A única outra maneira é se o arquivo em si fosse um ".gpg" e tivesse uma assinatura anexada. Se a mensagem disser "eles serão assinados" e o espelho não tiver o .sig, os .sigs foram removidos do espelho.

Você pode verificar as assinaturas com qualquer um dos outros espelhos, apenas pegue o .sig de um deles - a menos que o .gz tenha sido modificado, a assinatura ainda será aplicada.

    
por 29.04.2013 / 21:55

Tags