Perché e come utilizzare una firma digitale PGP

Qualche tempo fa abbiamo discusso degli hash crittografici (come checksum MD5 e SH1) e di come aiutano a garantire che un file scaricato sia lo stesso file che il suo creatore intendeva scaricare scaricando una "impronta digitale" unica del file che può essere verificato rispetto all'originale.

La capacità di verificare l'integrità di quasi tutti i file è importante, ma quando scarichiamo software per la privacy e la sicurezza da Internet, è assolutamente fondamentale. Dopotutto, qual è il punto di affidare la tua privacy e sicurezza a un programma che può contenere un virus, soprattutto se consideri che tale software e i suoi utenti sono senza dubbio obiettivi prioritari per la NSA e i suoi simili?

Anche quando scarichi software direttamente da un fornitore o dal sito Web degli sviluppatori, potresti cadere vittima di un attacco Man-in-the-Middle (MitM) o il sito Web stesso potrebbe essere compromesso in vari modi.

L'uso degli hash crittografici è un tentativo di risolvere questo problema, ma sfortunatamente la tecnica presenta un grosso punto debole: ad esempio, il sito Web di uno sviluppatore può essere hackerato per visualizzare l'hash di un file compromesso piuttosto che l'originale, oppure le vulnerabilità matematiche possono renderli insicuri. Gli hash sono quindi utili per verificare che un file non sia stato danneggiato, ma servono solo a garantire che il file scaricato sia lo stesso file che gli sviluppatori intendono scaricare.

Per fornire maggiori garanzie in merito, gli sviluppatori possono firmare i propri file con firme digitali, che utilizzano una forma di crittografia asimmetrica (chiavi pubbliche e chiavi private) per verificare che un file sia esattamente quello che afferma di essere.

Un diagramma che mostra come una firma digitale viene applicata e quindi verificata.

Firme digitali PGP

Diversi sistemi crittografici utilizzano meccanismi diversi per creare e validare firme digitali. Windows, ad esempio, utilizza la tecnologia Microsoft Public Key Infrastructure (PKI) per convalidare automaticamente le firme quando il software viene installato per la prima volta.

Il software open source non può utilizzare la proprietà Microsoft PKI, quindi utilizza invece le firme digitali PGP. Che deve quindi essere autenticato manualmente. Funzionano in modo molto simile alle coppie di chiavi utilizzate per autenticare le e-mail PGP e, come vedremo, la verifica delle firme digitali PGP richiede l'uso di un programma di posta compatibile PGP.

Sfortunatamente, questo significa anche che, come usare PGP per proteggere le e-mail, l'uso delle firme digitali PGP è eccessivamente complesso.

Come verificare una firma digitale usando la GUI di Kleopatra

Per verificare la firma digitale PGP di un file è necessario utilizzare un client PGP (o più precisamente GnuPG - il suo clone open source). Le versioni di GnuPG sono disponibili per Windows (Gpg4win), Mac OSX e Linux (solitamente preinstallate).

In questo tutorial, verificheremo la firma digitale di Pidgin + OTR usando Gpg4win, ma il processo è molto simile per altre versioni di GnuPG.

Abbiamo un articolo in due parti sull'uso di Gpg4win e consigliamo vivamente di leggere almeno la parte 1 per familiarizzare con i concetti chiave che verranno utilizzati di seguito.

Il download di Gpg4win è esso stesso firmato digitalmente con una chiave che è stata verificata da un'autorità di certificazione riconosciuta (CA) e che può essere verificata in modo indipendente per la verifica utilizzando una copia precedente di GnuPG (è disponibile anche un hash SHA1). Non dovresti mai fidarti di una copia di Gpg4win che non hai verificato.

Una volta installato GnuPG, abbiamo bisogno di tre cose per verificare una firma digitale:

  • Il file che vogliamo verificare (duh!) Ad es. il programma di installazione pidgin-otr-4.0.1.exe
  • Il file della firma PGP / GPG (.asc) ad es. pidgin-OTR-4.0.1.exe.asc
  • La chiave pubblica / Certificato PGP utilizzato per creare questa firma ad es. gpgkey.asc

Tutti questi file dovrebbero essere (si spera) forniti dallo sviluppatore di cui desideri verificare i file con firma digitale. I certificati di chiave pubblica / PGP sono spesso memorizzati su un server di chiavi, ma gli sviluppatori devono fornire istruzioni per accedervi.

Kleopatra

Kleopatra è un programma di gestione delle chiavi in ​​bundle con Gpg4win.

1. Sarà necessaria una chiave privata personale per certificare il certificato PGP. Se ne hai già creato uno (ad esempio utilizzando GPA), puoi importarlo (File -> Importa certificati ...) oppure puoi creare una nuova coppia di chiavi (File -> Nuovo certificato ...).

I maghi ti guideranno attraverso il resto di questo processo

2. Importa la chiave pubblica / il certificato PGP in Kleopatra - utilizzando "Importa certificati" o facendo clic con il pulsante destro del mouse sul file e selezionando "Importa chiavi".

3. Certifica il certificato PGP usando la tua chiave privata - questo dice a GnuPG che ti fidi della persona che ha firmato il certificato.

a) In Kleopatra, fai clic con il tasto destro del mouse sul tasto e seleziona "Certifica certificato".

b) Seleziona il certificato e conferma di aver verificato la sua impronta digitale (speriamo che questo sia pubblicato sul sito web dello sviluppatore).

c) A meno che tu non sia molto sicuro dell'autenticità del certificato, dovresti certificare solo per te stesso (i certificati funzionano secondo il principio di una rete di fiducia: più persone si fidano di loro, più puoi essere sicuro che sono autentici).

d) Immettere la passphrase della chiave privata per completare la verifica del certificato.

4. Ora che hai certificato il certificato utilizzato per creare la firma del file scaricato (wow!), Puoi usarlo per verificare la firma.

a) In Kleopatra vai a File -> Decifrare / verificare i file e cercare il file della firma, oppure fare clic con il tasto destro del mouse su di esso e andare alle opzioni MoreGpgEX -> Verificare.

b) Assicurati che "File di input" sia il file della firma e che il campo "Dati firmati" contenga il programma o il file che desideri verificare, quindi premi "Decripta / Verifica".

c) Tutto bene, Kleopatra dichiarerà valida la firma.

Come posso fidarmi di un certificato?

Il modo più semplice per verificare che un certificato PGP sia valido è controllare il sito Web della persona che dovrebbe aver firmato il certificato ... con un po 'di fortuna, pubblicherà l'impronta digitale del certificato.

Tuttavia, sebbene facile, ciò non garantisce l'autenticità della firma, poiché il sito Web potrebbe essere stato violato o costretto da un governo a mostrare un'impronta digitale falsa (lo stesso problema che affligge gli hash crittografici).

È qui che entra in gioco la rete di fiducia, in cui gli utenti garantiscono un certificato. In pratica, si tratta di un processo arcano che è sia troppo complesso che troppo oscuro per la maggior parte degli utenti, quindi il meglio che la maggior parte di noi può sperare è che il certificato sia stato garantito da un'autorità di certificazione riconosciuta o che sia firmato da sviluppatori noti che pubblicano le chiavi di firma (come fanno gli sviluppatori Tor, ad esempio).

Pidgin + OTR è in qualche modo un cattivo esempio di come dovrebbe funzionare la firma digitale, perché la pagina Web OTR non contiene quasi istruzioni su come utilizzare le chiavi pubblicate e il suo certificato PGP non era solo molto difficile da individuare ma diverso da quello disponibile da https://otr.cypherpunks.ca/gpgkey.asc non esiste un modo semplice per verificarne l'autenticità (il fatto che usi una chiave RSA a 1024 bit è anche uno spettacolo scarso in questa epoca in cui l'NSA può probabilmente craccare una crittografia così debole ).

È, tuttavia, un buon esempio del perché l'intera nozione di firme digitali è un tale casino! Una discussione interessante su come è possibile tentare di verificare il certificato OTR è disponibile qui.)

Conclusione

Come puoi vedere, verificare una firma digitale è davvero un dolore, quindi non c'è da meravigliarsi che anche quelli che comprendono il processo arcano pesante del gergo raramente si preoccupino. Il problema è ulteriormente aggravato da molti sviluppatori che non riescono a spiegare come verificare i propri file e / o rilasciano certificati PGP sciatti che sono molto difficili da verificare sono autentici (team OTR, ti stiamo guardando!)

Il fatto che le firme digitali rimangano l'unico modo significativo per garantire che i file scaricati siano quelli che intendevi scaricare (o che i loro sviluppatori ti intendevano scaricare), non promettono bene per la sicurezza di Internet.

Tuttavia, fino a quando qualcuno non inventa un sistema migliore e più user-friendly, la nostra migliore speranza è incoraggiare gli sviluppatori a fornire istruzioni chiare su come utilizzare le loro firme digitali e pubblicare garanzie significative sull'autenticità dei loro certificati PGP ... (sospiro)

"Diagramma della firma digitale" di Acdx - Opera propria. Licenza sotto CC BY-SA 3.0 tramite Wikimedia Commons - https://commons.wikimedia.org/wiki/File:Digital_Signature_diagram.svg#mediaviewer/File:Digital_Signature_diagram.svg

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me