Come verificano una firma PGP?

Come verificano una firma PGP?
PGP (abbastanza buona privacy) è un programma di crittografia basata su chiave pubblica. PGP completa il tasto simmetrico con algoritmi asimmetrici, rendendo questo software un sistema crittografico ibrido, spesso chiamato Cryptosystem ibrido.

Il PGP non è utilizzato solo per garantire informazioni dalle minacce informatiche, ma anche per controllare l'integrità dei file.

Questo tutorial spiega facilmente come funziona PGP e come verificare le firme PGP.

Come funziona il PGP

L'immagine seguente raffigura una chiave pubblica PGP. Questa chiave pubblica PGP può essere decrittografata solo con una chiave PGP privata specifica. L'emittente della chiave pubblica di seguito ha anche emesso una chiave PGP privata poiché sono generati nello stesso processo. Condivide solo la chiave pubblica.
Se prendi la sua chiave pubblica per crittografargli un messaggio, sarà in grado di decrittografare il messaggio usando la sua chiave privata. Solo la sua chiave privata può decrittografare il messaggio che hai crittografato usando la sua chiave pubblica.

Le informazioni sono crittografate utilizzando la chiave pubblica e decrittografate utilizzando la chiave privata. Questo è chiamato crittografia asimmetrica.

Quindi, anche se un attaccante riesce a intercettare il messaggio senza la chiave privata, non è in grado di vedere il contenuto del messaggio.

Il vantaggio della crittografia asimmetrica è la semplicità per scambiare le chiavi. Ma il suo svantaggio è che non può crittografare grandi quantità di dati, ed è per questo che PGP implementa entrambi.

La crittografia simmetrica viene applicata quando la chiave pubblica viene utilizzata per crittografare i dati protetti. Con la chiave pubblica, il mittente fa due cose: prima genera la crittografia simmetrica per proteggere i dati, quindi applica la crittografia asimmetrica, che non crittografa i dati stessi, ma la chiave simmetrica, che protegge i dati.

Per essere più tecnici, prima che venga applicata la chiave simmetrica, i dati vengono anche compressi prima di essere crittografati con la chiave simmetrica e la chiave pubblica. Il seguente flusso del grafico mostra l'intero processo:

Firme PGP

PGP viene anche utilizzato per controllare l'integrità dei pacchetti. Ciò si ottiene attraverso la firma digitale, che può essere fatto con PGP.

Innanzitutto, PGP genera un hash crittografato con la chiave privata. Sia la chiave privata che l'hash possono essere decrittografate usando la chiave pubblica.

PGP crea una firma digitale, ad esempio, per un'immagine ISO usando algoritmi DSA o RSA. In questo caso, la chiave privata è allegata al software o all'immagine ISO, contrariamente all'operazione descritta in precedenza. Anche la chiave pubblica è condivisa.

Gli utenti utilizzano la chiave pubblica per verificare la firma allegata al software rilasciato.

Il seguente flusso del grafico mostra come la chiave privata e l'hash sono collegate al software e come l'utente prende il software con l'hash allegato e la chiave privata insieme alla chiave pubblica per verificare la firma:

Come verificano una firma PGP?

Il primo esempio mostra come verificare la firma del kernel Linux. Per provarlo, accedi a https: // kernel.org e scaricare una versione del kernel e il suo file PGP. Per questo esempio, scaricherò i file Linux-5.12.7.catrame.xz E Linux-5.12.7.catrame.cartello.

Il primo esempio mostra come verificare la firma con un singolo comando. Secondo la pagina Man, questa combinazione di opzione sarà deprecata nelle versioni future. Tuttavia, è ancora ampiamente utilizzato e, sebbene la combinazione specifica sarà deprecata, le opzioni rimarranno.

La prima opzione -Opzioni Keyserver consente la definizione delle opzioni per il Keyserver in cui vengono archiviate le chiavi pubbliche. Fondamentalmente, ciò consente l'implementazione delle opzioni di recupero delle chiavi pubbliche.

IL -Opzioni Keyserver è combinato con il -retroceve auto-chiavi Opzione per recuperare automaticamente le chiavi pubbliche da un KeyServer quando si verificano le firme.

Per trovare le chiavi pubbliche, questo comando leggerà la firma alla ricerca di un keyserver preferito definito o dell'ID del firmatario attraverso un processo di ricerca utilizzando Web Key Directory.

GPG-Keyserver-options auto-key-retrieve -verify Linux-5.12.7.catrame.cartello

Come puoi vedere, la firma è buona, ma c'è un messaggio di avviso che dice che GPG non può confermare che la firma appartiene al proprietario. Chiunque può emettere una firma pubblica come Greg Krohan-Hartman. Sai che la firma è legittima perché ti fidi del server da cui l'hai scaricata. In questo caso, è specificato in .Segno scaricato dal kernel.org.
Questo avvertimento è sempre presente e puoi evitarlo aggiungendo firme a un elenco di firma utilizzando l'opzione -Modifica Trust-Key. La verità è che nessun utente lo fa e la comunità GPG ha richiesto la rimozione di avvertimento.

Verificando sha256sums.gpg

Nel seguente esempio, verificherò l'integrità di una vecchia immagine Kali Linux che ho trovato nella mia scatola. A questo scopo, ho scaricato il SHA256sums.File GPG e Sha256Sums appartenenti alla stessa immagine ISO.

Una volta scaricata un'immagine ISO, lo sha256sum.GPG e SHA256sums, devi ottenere le chiavi pubbliche. Nel seguente esempio, prendo le chiavi usando Wget E gpg -import (Kali Istruzioni di verifica collegamento a questo server chiave).

Quindi verifico l'integrità del file chiamando GPG con il -verificare discussione:

wget -q -o -https: // archive.Kali.Org/Archive-Key.ASC | GPG --import
GPG -verifica sha256sums.Gpg Sha256sums

Come puoi vedere, la firma è buona e la verifica ha avuto successo.

L'esempio seguente mostra come verificare un download di Nodejs. Il primo comando restituisce un errore perché non esiste una chiave pubblica. L'errore indica che devo cercare la chiave 74F12602B6F1C4E913FAA37AD3A89613643B6201. Di solito, puoi anche trovare l'ID chiave nelle istruzioni.

Usando l'opzione -keyserver, Posso specificare il server per cercare la chiave. Usando l'opzione -recv-chiavi, Recupera le chiavi. Quindi la verifica funziona:

GPG -Verificare Shasums256.TXT.Asc

Copero la chiave di cui ho bisogno per recuperare, e poi corro:

GPG -Keyyserver Pool.sks-keyservers.net--recv-keys
74F12602B6F1C4E913FAA37AD3A89613643B6201
GPG -Verificare Shasums256.TXT.Asc

Cerca tasti GPG:

Se le chiavi di recupero automatico non funziona e non è possibile trovare le istruzioni specifiche per la verifica, è possibile cercare il tasto in un Keyserver utilizzando l'opzione -key-key.

GPG-SEARCH-KEY 74F12602B6F1C4E913FAA37AD3A89613643B6201

Come puoi vedere, la chiave è stata trovata. Puoi anche recuperarlo premendo il numero del tasto che si desidera recuperare.

Conclusione

La verifica dell'integrità dei download può prevenire seri problemi o spiegarli, ad esempio, quando il software scaricato non funziona correttamente. Il processo con GPG è abbastanza semplice, come mostrato sopra, purché l'utente ottenga tutti i file necessari.

Comprendere la crittografia asimmetrica o la crittografia basata su chiavi pubbliche e private è una necessità di base per interagire in sicurezza su Internet, ad esempio, utilizzando le firme digitali.

Spero che questo tutorial sulle firme PGP sia stato utile. Continua a seguire il suggerimento Linux per ulteriori suggerimenti e tutorial Linux.