Come verificare il file scaricato con il file .sig?


86

Quando scarico GCC, ha anche un .sigfile e penso che sia fornito per verificare il file scaricato. (Ho scaricato GCC da qui ).

Ma non riesco a capire come dovrei usarlo. Ho provato gpg, ma si lamenta della chiave pubblica.

[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]# 

Come posso verificare il file scaricato con il .sigfile?

Risposte:


99

Devi importare la chiave pubblica: C3C45C06

Può essere fatto in tre passaggi.

  1. trova l'ID della chiave pubblica:

    $ gpg gcc-4.7.2.tar.gz.sig gpg: Firma eseguita Čt 20. září 2012, 12:30:44 CEST utilizzando ID chiave DSA C3C45C06 gpg: Impossibile controllare la firma: nessuna chiave pubblica

  2. importare la chiave pubblica dal server delle chiavi. Di solito non è necessario scegliere il server delle chiavi, ma può essere fatto con --keyserver <server>. Esempi di server di chiavi.

    $ gpg --recv-key C3C45C06 gpg: richiesta chiave C3C45C06 dal server hkp keys.gnupg.net gpg: chiave C3C45C06: chiave pubblica "Jakub Jelinek jakub@redhat.com" importata gpg: nessuna chiave affidabile trovata gpg: numero totale elaborato : 1 gpg: importato: 1

Se l'errore del comando è scaduto, potresti essere dietro un firewall che sta bloccando la porta gpg predefinita. Prova a usare l'opzione `--keyserver 'con la porta 80 (quasi tutti i firewall consentono la navigazione web sulla porta 80 b / c):

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

    $ gpg gcc-4.7.2.tar.gz.sig gpg: Firma fatta Čt 20. září 2012, 12:30:44 CEST utilizzando ID chiave DSA C3C45C06 gpg: Buona firma da "Jakub Jelinek jakub@redhat.com" [sconosciuto ] gpg: ATTENZIONE: questa chiave non è certificata con una firma affidabile! gpg: Non ci sono indicazioni che la firma appartenga al proprietario. Impronta digitale chiave primaria: 33C2 35A3 4C46 AA3F FB29 3709 A328 C3A2 C3C4 5C06

L'output dovrebbe indicare "Buona firma".


gpg: ATTENZIONE: questa chiave non è certificata con una firma affidabile!

È per un'altra domanda;)


8
Ottima spiegazione passo passo!
Matthew Kraus

4
Nel caso in cui il file che richiede la verifica sia gnupg (non nella domanda), sul sito gnupg sono disponibili delle check-sum SHA-1 per verificare il primo download di gnupg.
10 lezioni

Durante la verifica della firma, gpg elabora il file tarball e il file .sig corrispondente come un'unità. Se il tarball manca o è rinominato, gpg fornisce l'opportunità di specificare il nome del tarball.
Andrew P.

Ho una chiave RSA e non funziona senza o con --keyserverquella lista, solo una la ottiene ma sembra non affidabile, è strano dato che la sto provando su GNU coreutilsquesto è un pacchetto ampiamente utilizzato.
user10089632

inoltre, se gpg avverte "nessun comando fornito, indovinando cosa intendi", usa gpg --verify gcc-4.7.2.tar.gz.siginvece.
xdavidliu

25

Quest'altra via è particolarmente utile per verificare i progetti GNU (es. Octave ) poiché la chiave richiesta dalla loro firma potrebbe non essere trovata in nessun server di chiavi.

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

Ci sono anche file .sig, che contengono firme GPG separate dei file sopra, firmati automaticamente dallo stesso script che li genera.

Puoi verificare le firme per i file di progetto GNU con il file portachiavi da:

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

In una directory con il file del portachiavi, il file sorgente da verificare e il file della firma , il comando da utilizzare è:

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


3
Ma se parliamo di sicurezza allora è meglio usare la connessione HTTPS: https://ftp.gnu.org/gnu/gnu-keyring.gpg
Maxim

4
Divertente, sono qui esplicitamente per capire come convalidare Octave! :)
Ron Jensen - Siamo tutti Monica

Grazie. Non sono riuscito a trovare la chiave del manutentore di Bash in nessun server di chiavi, ma questo era ciò di cui avevo bisogno per verificare la firma per il suo codice sorgente.
Anthony Geoghegan,

2
Per l'ottava vedi la risposta sull'app gpg4win qui: superuser.com/questions/1268544/…
Martin

1

Devi cercare i server delle chiavi pubblici per l'ID chiave specificato: nel tuo caso ID C3C45C06 importa la chiave trovata nel tuo keystore locale e dopo questo la verifica dovrebbe essere OK. Uso Ubuntu 12.04 e viene fornito con il software di gestione delle chiavi Seahorse. Prima dell'importazione della chiave stavo vedendo questo:

~/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

Dopo l'importazione della chiave stavo vedendo questo:

~/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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.