Como verificar o arquivo baixado com o arquivo .sig?


85

Quando faço o download do GCC, ele também tem um .sigarquivo, e acho que é fornecido para verificar o arquivo baixado. (Eu baixei o GCC daqui ).

Mas não consigo descobrir como devo usá-lo. Tentei gpg, mas reclama da chave pública.

[root@localhost src]# gpg --verify gcc-4.7.2.tar.gz.sig gcc-4.7.2.tar.gz
gpg: Signature made Thu 20 Sep 2012 07:30:44 PM KST using DSA key ID C3C45C06
gpg: Can't check signature: No public key
[root@localhost src]# 

Como posso verificar o arquivo baixado com o .sigarquivo?

Respostas:


98

Você precisa importar a chave pública: C3C45C06

Pode ser feito em três etapas.

  1. encontrar ID de chave pública:

    $ gpg gcc-4.7.2.tar.gz.sig gpg: Assinatura feita Čt 20. září 2012, 12:30:44 CEST usando DSA ID de chave C3C45C06 gpg: Não é possível verificar a assinatura: Sem chave pública

  2. importe a chave pública do servidor de chaves. Normalmente não é necessário escolher o servidor de chaves, mas pode ser feito com --keyserver <server>. Exemplos de servidor de chaves.

    $ gpg --recv-key C3C45C06 gpg: solicitando a chave C3C45C06 do hkp server keys.gnupg.net gpg: chave C3C45C06: chave pública "Jakub Jelinek jakub@redhat.com" importado gpg: nenhuma chave confiável encontrada gpg: Número total processado : 1 gpg: importado: 1

Se o erro de comando expirar com um tempo limite, você pode estar atrás de um firewall que está bloqueando a porta gpg padrão. Tente usar a opção `--keyserver 'com a porta 80 (quase todos os firewalls permitem a porta 80 b / c para navegação na web):

$ gpg --keyserver hkp://${HOSTNAME}:80 --recv-keys ${KEY_ID}
  1. verificar assinatura:

    $ gpg gcc-4.7.2.tar.gz.sig gpg: Assinatura feita Čt 20. září 2012, 12:30:44 CEST usando a chave DSA ID C3C45C06 gpg: Boa assinatura de "Jakub Jelinek jakub@redhat.com" [desconhecido ] gpg: AVISO: Esta chave não é certificada com uma assinatura confiável! gpg: Não há indicação de que a assinatura pertença ao proprietário. Impressão digital da chave primária: 33C2 35A3 4C46 AA3F FB29 3709 A328 C3A2 C3C4 5C06

O resultado deve ser "Boa assinatura".


gpg: AVISO: Esta chave não é certificada com uma assinatura confiável!

É para outra pergunta;)


8
Ótima explicação passo a passo!
Matthew Kraus

4
No caso em que o arquivo que requer verificação é gnupg (não está na questão), as somas de verificação SHA-1 estão disponíveis no site gnupg para verificar o primeiro download do gnupg.
10 cls

Durante a verificação da assinatura, o gpg processa o arquivo tarball e seu arquivo .sig correspondente como uma unidade. Se o tarball estiver faltando ou for renomeado, o gpg oferece a oportunidade de especificar o nome do tarball.
Andrew P.

Eu peguei uma chave RSA e não consigo trabalhar sem ou com --keyserveressa lista, apenas uma a obteve, mas parece que não é confiável, é estranho, já que estou testando em GNU coreutilsum pacote amplamente usado.
user10089632

também, se gpg avisar "nenhum comando fornecido, adivinhando o que você quer dizer", use em seu gpg --verify gcc-4.7.2.tar.gz.siglugar.
xdavidliu

24

Esta outra via é particularmente útil para verificar projetos GNU (por exemplo, Octave ), uma vez que a chave solicitada por sua assinatura não pode ser encontrada em nenhum servidor de chaves.

De http://ftp.gnu.org/README

Existem também arquivos .sig, que contêm assinaturas GPG separadas dos arquivos acima, assinados automaticamente pelo mesmo script que os gera.

Você pode verificar as assinaturas dos arquivos de projeto GNU com o arquivo do chaveiro em:

https://ftp.gnu.org/gnu/gnu-keyring.gpg

Em um diretório com o arquivo do chaveiro, o arquivo de origem a ser verificado e o arquivo de assinatura , o comando a ser usado é:

$ gpg --verify --keyring ./gnu-keyring.gpg foo.tar.xz.sig


3
Mas se estamos falando de segurança, então é melhor usar a conexão HTTPS: https://ftp.gnu.org/gnu/gnu-keyring.gpg
Maxim

3
Engraçado, estou aqui explicitamente para descobrir como validar o Octave! :)
Ron Jensen - Somos todos Monica

Obrigado. Não consegui encontrar a chave do mantenedor do Bash em nenhum servidor de chaves, mas era o que eu precisava para verificar a assinatura do código-fonte.
Anthony Geoghegan

1
Para a oitava, veja a resposta sobre o aplicativo gpg4win aqui: superuser.com/questions/1268544/…
Martin

1

Você tem que pesquisar os servidores de chaves públicos para a identificação de chave fornecida: no seu caso, ID C3C45C06 importe a chave encontrada em seu armazenamento de chaves local e depois disso a verificação deve estar OK. Eu uso o Ubuntu 12.04 e ele vem com o software de gerenciamento de chaves Seahorse. Antes da importação da chave, eu via o seguinte:

~/Downloads$ gpg --verify --keyring ./gnu-keyring.gpg icecat-31.5.0.en-US.linux-x86_64.tar.bz2.sig icecat-31.5.0.en-US.linux-x86_64.tar.bz2
gpg: Signature made  9.03.2015 (пн) 22,35,52 EET using RSA key ID D7E04784
gpg: Can't check signature: public key not found

Após a importação da chave, eu estava vendo isso:

~/Downloads$ gpg --verify --keyring ./gnu-keyring.gpg icecat-31.5.0.en-US.linux-x86_64.tar.bz2.sig icecat-31.5.0.en-US.linux-x86_64.tar.bz2
gpg: Signature made  9.03.2015 (пн) 22,35,52 EET using RSA key ID D7E04784
gpg: Good signature from "Ruben Rodriguez (GNU IceCat releases key) <ruben@gnu.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: A573 69A8 BABC 2542 B5A0  368C 3C76 EED7 D7E0 4784

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.