Come verificare la firma PGP del software scaricato su Linux

PGP, che sta per Pretty Good Privacy, è un software di crittografia a chiave pubblica. PGP può essere utilizzato per crittografare e firmare la comunicazione dei dati. In questo tutorial, vedremo come verificare la firma PGP del software scaricato.

Gli utenti Linux possono installare in modo sicuro il software dai repository della loro distribuzione. Ma ci sono anche momenti in cui è necessario scaricare e installare il software dal sito web. Come puoi essere sicuro che il software scaricato non sia stato manomesso?

Alcuni autori di software firmano il loro software usando un programma PGP come GPG, che è un’implementazione di software libero dello standard OpenPGP. In tal caso, è possibile verificare l’integrità del software utilizzando GPG.

Il processo è relativamente semplice:

  1. Si scarica la chiave pubblica dell’autore del software.
  2. Controlla l’impronta digitale della chiave pubblica per assicurarti che sia la chiave corretta.
  3. Importa la chiave pubblica corretta nel tuo portachiavi pubblico GPG.
  4. Scarica il file di firma del software.
  5. Utilizzare la chiave pubblica per verificare la firma PGP. Se la firma è corretta, il software non è stato manomesso.

Useremo VeraCrypt come esempio per mostrarti come verificare la firma PGP del software scaricato.

Esempio: Verifica la firma PGP di VeraCrypt

Sebbene VeraCrypt sia un software open source, non è incluso nel repository di Ubuntu o di altre distribuzioni Linux. Possiamo scaricare VeraCrypt Linux installer dal sito ufficiale.

VeraCrypt verify gpg signature

In alternativa è possibile scaricare VeraCrypt installer nel terminale utilizzando il comando seguente.

wget https://launchpadlibrarian.net/289850375/veracrypt-1.19-setup.tar.bz2

Nella pagina di download di VeraCrypt, puoi anche trovare il link per il download della chiave pubblica PGP e della firma PGP. Scarica questi due file. In alternativa, è possibile scaricarli in terminale utilizzando il comando qui sotto.

PGP public key

wget https://www.idrix.fr/VeraCrypt/VeraCrypt_PGP_public_key.asc

PGP signature file

wget https://launchpad.net/veracrypt/trunk/1.19/+download/veracrypt-1.19-setup.tar.bz2.sig

Prima di fare qualsiasi cosa con la chiave pubblica, devi sempre controllare l’impronta digitale della chiave per vedere se è la chiave corretta. Visualizzare l’impronta digitale della chiave utilizzando il comando qui sotto.

gpg --with-fingerprint VeraCrypt_PGP_public_key.asc

La seconda riga dell’output è l’impronta digitale della chiave.

pgp public key fingerprint

Confrontalo con l’impronta digitale pubblicata sul sito Web di VeraCrypt.

veracrypt public key fingerprint

Come puoi vedere, le due impronte digitali sono identiche, il che significa che la chiave pubblica è corretta. Quindi puoi importare la chiave pubblica nel tuo portachiavi pubblico con:

gpg --import VeraCrypt_PGP_public_key.asc

gpg import public key

Ora verifica la firma usando il comando seguente. È necessario specificare il file di firma e il programma di installazione del software, i cui nomi sono solitamente identici, solo con un’estensione di file diversa. Questa è una firma distaccata, il che significa che la firma e il software sono separati l’uno dall’altro.

gpg --verify veracrypt-1.19-setup.tar.bz2.sig veracrypt-1.19-setup.tar.bz2

L’output dovrebbe dire “Buona firma”.

verifica firma pgp

La firma è un valore hash, crittografato con la chiave privata dell’autore del software. GPG utilizza la chiave pubblica per decifrare il valore hash, quindi calcolare il valore hash di VeraCrypt installer e confrontare i due. Se questi due valori hash corrispondono, la firma è buona e il software non è stato manomesso.

Se GPG ti dice che è una firma errata, il programma di installazione del software è stato manomesso o danneggiato.

Importazione di chiave pubblica da una fonte attendibile

Si noti che se l’autore del software indica il suo ID chiave pubblica sul sito Web, è possibile importare la chiave pubblica con:

gpg --recv-keys <key-ID>

Quindi visualizzare l’impronta digitale con:

gpg --fingerprint <key-ID>

E confronta l’impronta digitale dall’output con quella pubblicata sul sito web. Questo è più sicuro perché la chiave pubblica viene importata da un server di chiavi pubbliche, che per impostazione predefinita è impostato su hkp://keys.gnupg.net nel file ~/.gnupg/gpg.conf. Poiché tutti i principali keyserver comunicano tra loro e sincronizzano le chiavi, non è necessario modificare l’impostazione predefinita.

Questo è tutto!

Spero che questo tutorial ti abbia aiutato a verificare la firma PGP dei download di software. Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita o seguici su Google+, Twitter o come la nostra pagina Facebook.

Vota questo tutorial