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.