GnuPG

Från Unix.se, den fria unixresursen.

Innehåll

Introduktion

GnuPG är ett fritt alternativ till PGP. GnuPG kan användas för att signera och kryptera mail, filer och annat. Väl signerat har du en fil/mail som ingen kan ändra i utan att det syns vid verifiering. Är den dessutom krypterad förhindras att obehöriga läser filen.

GnuPG är även OpenPGP kompatibel (RFC2440 (http://www.faqs.org/rfcs/rfc2440.html)).

Vad är det?

GnuPG använder sig av asymmetrisk kryptering. Till skillnad från symmetrisk kryptering där alla parter använder/kräver samma hemlighet för att kunna kryptera/dekryptera meddelande bygger asymmetrisk kryptering på att sändaren och mottagaren har två olika uppsättningar av nycklar. Mottagaren har en privat och en publik nyckel. Den publika nyckeln används för att kryptera meddelanden, detta görs med hjälp av en envägsfunktion. När man sedan vill dekryptera något krävs den privata nyckeln.

Mottagaren ger alltså sin publika nyckel till sändaren (som det hörs på namnet är denna publik och inte på något sätt "hemlig") som krypterar meddelandet med nyckeln. Sedan kan det krypterade meddelandet sändas över en publik kanal (tex Internet). När mottageren får meddelandet tar denna sin privata nyckel (privat ska EJ vara publik eller delas ut) och kan dekryptera meddelandet.

Hur vet då mottagare Nisse att det verkligen var sändare Arne som sände meddelandet och inte elakingen Kalle som spoofade? Jo detta görs genom att Arne signerar meddelandet med sin privata nyckel. När Nisse sedan får meddelandet dekrypterar han det först varefter han veriferar det med hjälp av Arnes publika nyckel.

Installation

GnuPG kan installeras på många olika sätt tex finns det som ports/pkg/.. på de flesta system. Man kan även ladda hem binärpaket från www.gnupg.org eller så kan man ladda hem källkoden och kompilera själv.

Skapa nycklar

För att skapa en uppsättning med nycklar används

gpg --gen-key

Man får sedan en lättföljd meny med lite olika steg. Lite om att välja nyckelstorlek kan läsas i GnuPG:s officella HOWTO (http://webber.dewinter.com/gnupg_howto/english/GPGMiniHowto-3.html#ss3.1). Standard 1024-bitars för DSA bör räcka.

Efter detta kommer ett val om när nyckeln ska gå ut, detta för ökad säkerhet. För privatpersoner bör never-expire duga gott. (Invändningar?)

När de personliga uppgifterna är ifyllda är det dags att välja en passphrase (dvs åtminstone en någorlunda lång textmassa) för att förhindra att andra kan använda/läsa din privata nyckel. Nästan hela säkerheten ligger (som vanligt) i att välja så starka lösenord som möjligt. Med för svagt lösenord blir säkerheten väldigt mycket svagare om någon skulle komma över dina filer.

När du är färdig med nyckelgenereringen är det dags att göra en backup på dina nycklar och filer. Detta görs enklast genom följande kommando

cd ~
tar -zvcf gnupg_keys.tar.gz .gnupg/

Exportera nycklar

För att kunna lägga upp din publika nyckel på hemsidor och kunna ge till dina nära och kära krävs att du exporterar den publika nyckeln. Detta görs genom

gpg --export --armor din.email@host.se

Du kan också redirecta till en fil, ex. namn_efternamn.asc, för att lägga ut på hemsidor.

Denna kan sedan skickas och spridas till världen. Men hur vet folk som laddat ner den publika nyckeln att det verkligen handlar om Arne och inte Kalle som försöker vara elak och sprida sin nyckel som din?

Detta kan lösas på två huvudsakliga sätt. Dels kan man låta en tredje part som båda litar på signera nyckeln, dels kan man använda fingerprint för att verifiera dess korrekthet. För att visa fingerprints används

gpg --fingerprint

Något snarlikt följande visas då

/home/arne/.gnupg/pubring.gpg
----------------------------
pub  1024D/12345678 2004-11-17 Arne Arnesson (dude) <dev@null.com>
     Key fingerprint = 1234 5678 9ABC DEF0 1234  5678 9ABC DEF0 1234 5678
sub  1024g/87654321 2004-11-17

KeyID:t är 12345678 och kan användas för att snabbt identifiera olika personers nycklar. Fingerprinten är den långa (Key fingerprint = [..]) och används för att verifera att det faktiskt är din publika nyckel och ingen annans.

Importera nycklar

För att importera en nyckel används

gpg --import foo_dude.asc

eller varför inte

wget -O - http://example.com/foo_dude.asc | gpg --import

Vid import tar GnuPG och lägger till nyckeln i din nyckelring. Du kan sedan köra --fingerprint för att verifera att det är rätt nyckel du fått.

Signera/Verifera filer

GnuPG kan användas för att signera och verifera att en fil är densamma efter tex. en överföring över Internet.

För att signera filen bar kan man göra på många olika sätt (se gpg(1)), men vi kommer här att skapa en separat ASCII-fil bar.asc som innehåller signaturen

gpg -b --armor bar

De båda filerna kan nu skickas över till en annan dator där du har importerat den publika nyckeln sedan tidigare. Kör då

gpg --verify bar.asc

Du ser nu om det är en Good signature eller en BAD. Om resultatet är av det tidigare slaget betyder det att filen är intakt och oförändrat - allt väl.

Du kommer (om du överfört "det" till en annan dator) få en varning på att nyckeln inte är pålitlig. Mer om detta senare.

Trust

GnuPG med mailklienter

Thunderbird

Externa länkar

Personliga verktyg