Varför och hur man använder en digital signatur från PGP

För ett tag sedan diskuterade vi kryptografiska hash (som MD5 och SH1-kontrollsumma), och hur de hjälper till att säkerställa att en fil som du laddar ner är samma fil som skaparen tänkt dig ladda ner genom att skapa ett unikt "fingeravtryck" för filen som kan vara kontrollerad mot originalet.

Förmågan att verifiera integriteten för nästan vilken fil som helst är viktig, men när vi laddar ner sekretess- och säkerhetsprogramvara från internet är det absolut viktigt. När allt kommer omkring, vad är poängen att lita på din integritet och säkerhet till ett program som kan innehålla ett virus, särskilt när du tänker på att sådan programvara och dess användare utan tvekan är högprioriterade mål för NSA och dess svårigheter?

Även när du laddar ner mjukvara direkt från en leverantörs eller utvecklarens webbplats kan du bli offer för en Man-in-the-Middle-attack (MitM), eller själva webbplatsen kan äventyras på olika sätt.

Att använda kryptografiska hash är ett försök att lösa detta problem, men tyvärr har tekniken en stor svaghet - till exempel kan en utvecklare webbplats hackas för att visa hash för en kompromissfil snarare än original eller matematiska sårbarheter kan göra dem osäkra. Hashar är därför användbara för att verifiera att en fil inte har skadats, men är endast av begränsad användning för att se till att filen du laddar ner är samma fil som dess utvecklare avser att ladda ner.

För att ge större försäkringar om detta kan utvecklare signera sina filer med digitala signaturer, som använder en form av asymmetrisk kryptografi (offentliga nycklar och privata nycklar) för att verifiera att en fil är exakt vad den påstår sig vara.

Ett diagram som visar hur en digital signatur tillämpas och sedan verifieras.

PGP digitala signaturer

Olika kryptografiska system använder olika mekanismer för att skapa och validera digitala signaturer. Windows använder till exempel Microsoft Public Key Infrastructure (PKI) -teknologi för att automatiskt validera signaturer när programvaran först installeras.

Programvara med öppen källkod kan inte använda den riktiga Microsoft PKI och använder därför PGP digitala signaturer istället. Vilket måste sedan autentiseras manuellt. Dessa fungerar mycket som nyckelpar som används för att autentisera PGP-e-postmeddelanden, och som vi ser, kräver det att verifiera digitala signaturer från PGP att använda ett PGP-kompatibelt e-postprogram.

Tyvärr innebär detta också att användandet av PGP för att säkra e-postmeddelanden, att använda digitala PGP-signaturer är alltför komplicerat.

Hur man verifierar en digital signatur med hjälp av Kleopatra GUI

För att verifiera en fils PGP digitala signatur måste du använda en PGP-klient (eller mer exakt GnuPG - dess open source-klon). Versioner av GnuPG är tillgängliga för Windows (Gpg4win), Mac OSX och Linux (vanligtvis förinstallerat).

I denna handledning kommer vi att verifiera den digitala signaturen för Pidgin + OTR med Gpg4win, men processen är mycket lik för andra versioner av GnuPG.

Vi har en tvådelad artikel om hur du använder Gpg4win, och vi rekommenderar starkt att du läser åtminstone del 1 av den för att bekanta dig med nyckelbegrepp som kommer att användas nedan.

Nedladdningen av Gpg4win är själv signerat digitalt med en nyckel som har verifierats av en erkänd certifikatutfärdare (CA), och som kan kontrolleras oberoende för verifiering med en pålitlig äldre kopia av GnuPG (en SHA1-hash finns också). Du bör aldrig lita på en kopia av Gpg4win som du inte har verifierat.

När GnuPG har installerats behöver vi tre saker för att verifiera en digital signatur:

  • Filen vi vill verifiera (duh!) T.ex. installationsprogrammet pidgin-otr-4.0.1.exe
  • PGP / GPG-signaturfilen (.asc) t.ex. pidgin-otr-4.0.1.exe.asc
  • Den offentliga nyckeln / PGP-certifikatet som används för att skapa denna signatur, t.ex. gpgkey.asc

Dessa filer bör alla (förhoppningsvis) tillhandahållas av utvecklaren vars digitalt signerade filer du vill verifiera. Offentlig nyckel / PGP-certifikat lagras ofta på en nyckelserver, men enheterna bör ge instruktioner för åtkomst till dem.

Kleopatra

Kleopatra är ett nyckelhanteringsprogram medföljande Gpg4win.

1. Du behöver en personlig privat nyckel för att certifiera PGP-certifikatet. Om du har skapat en tidigare (till exempel med GPA) kan du importera den (File -> Importera certifikat ...) eller så kan du skapa ett nytt nyckelpar (File -> Nytt certifikat ...).

Trollkarlar guider dig genom resten av denna process

2. Importera den offentliga nyckeln / PGP-certifikatet till Kleopatra - med antingen 'Importera certifikat' eller högerklicka på filen och välj 'Importera nycklar'.

3. Certifiera PGP-certifikatet med din privata nyckel - detta säger till GnuPG att du litar på personen som undertecknade certifikatet.

a) I Kleopatra högerklicka på tangenten och välj 'Certifiera certifikat'.

b) Välj certifikatet och bekräfta att du har verifierat fingeravtrycket (förhoppningsvis kommer det att publiceras på utvecklarens webbplats).

c) Om du inte är säker på certifikatets äkthet bör du bara certifiera för dig själv (certifikat fungerar enligt principen om en webb av förtroende - ju fler människor som litar på dem, desto bättre kan du vara de är äkta).

d) Ange din lösenord för din privata nyckel för att slutföra verifieringen av certifikatet.

4. Nu när du har certifierat certifikatet som används för att göra signaturen för den fil du har laddat ner (whew!) Kan du använda det för att verifiera signaturen.

a) Gå till File i Kleopatra -> Dekryptera / verifiera filer och bläddra till signaturfilen eller högerklicka på den och gå till MoreGpgEX-alternativ -> Kontrollera.

b) Se till att 'Input File' är signaturfilen och att fältet 'Signed data' innehåller programmet eller filen du vill verifiera och tryck sedan på 'Dekryptera / verifiera'.

c) När allt är bra kommer Kleopatra att förklara signaturen som giltig.

Hur kan jag lita på ett certifikat?

Det enklaste sättet att verifiera att ett PGP-certifikat är giltigt är att kontrollera webbplatsen för personen som ska ha undertecknat certifikatet ... med lite tur kommer det att publicera certifikatets fingeravtryck.

Även om det är enkelt garanterar detta inte autenticiteten för signaturen, eftersom webbplatsen kan ha hackats eller tvingats av en regering att visa ett falskt fingeravtryck (samma problem som plågar kryptografiska hash).

Det är här webben av förtroende kommer in, där användare garanterar ett certifikat. I praktiken är detta en arcane process som är både för komplex och för otydlig för de flesta användare, så det bästa som de flesta av oss kan hoppas på är att certifikatet har godkänts av en erkänd Certificate Authority eller har undertecknats av kända utvecklare som publicerar sina signeringsnycklar (som Tor-utvecklarna till exempel gör).

Pidgin + OTR är på något sätt ett dåligt exempel på hur digital signering ska fungera, eftersom OTR-webbsidan har nästan inga instruktioner om hur man använder sina publicerade nycklar, och dess PGP-certifikat var inte bara mycket svårt att hitta utan annat än att vara tillgängligt från https://otr.cypherpunks.ca/gpgkey.asc finns det inget enkelt sätt att verifiera dess äkthet (det faktum att man använder en 1024-bitars RSA-nyckel är också dålig show i denna tid då NSA förmodligen kan knäcka en så svag kryptering ).

Det är emellertid ett bra exempel på varför hela uppfattningen om digitala signaturer är en sådan röra! Här finns en intressant diskussion om hur du kan försöka verifiera OTR-certifikatet.)

Slutsats

Som du kan se är verifiering av en digital signatur verkligen en smärta, så det är inte konstigt att även de som förstår den jargongtunga arcane-processen sällan bryr sig. Frågan görs ännu värre av många devs som inte förklarar hur de kan verifiera sina filer och / eller utfärda slarviga PGP-certifikat som är mycket svåra att verifiera är äkta (OTR-team, vi tittar på dig!)

Det faktum att digitala signaturer förblir det enda meningsfulla sättet att garantera att filer du laddar ner är de du har tänkt att ladda ner (eller att deras devs avsåg att du skulle ladda ner), böter inte bra för internetsäkerhet.

Men tills någon har uppfunnit ett bättre, mer användarvänligt system, är vårt bästa hopp att uppmuntra devs att ge tydliga instruktioner om hur man använder sina digitala signaturer och att publicera meningsfulla garantier för äktheten av deras PGP-certifikat ... (suck)

"Digital signatur diagram" av Acdx - Eget arbete. Licensierad under CC BY-SA 3.0 via 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