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
- GnuPG (http://www.gnupg.org/)
- Officiell GnuPG-HOWTO (http://webber.dewinter.com/gnupg_howto/english/GPGMiniHowto.html)
- Början till en svensk artikel om GPG (http://www.se.linux.org/dokumentation/ideer/B_f6rjanP_e5EnArtikelOmGPG)