Ghost in the Machines
On september 23, 2021 by adminJag använder GPG (även känt som GnuPG) för att kryptera filer som innehåller känslig information (oftast lösenord). Som systemtekniker gör jag det mesta av mitt arbete på fjärrservrar som är tillgängliga via kommandoradsgränssnittet. Naturligtvis tycker jag att det är lättare att använda kommandoradsversionen av GPG för att direkt kryptera och dekryptera dokument.
GPG (GNU Privacy Guard) är en gratis open source-version av krypteringsprogrammet PGP (Pretty Good Privacy). Begreppsmässigt använder båda samma tillvägagångssätt för kryptografi (dvs. kryptering och dekryptering). Båda är dock unikt olika i sin implementering.
Det som följer är en snabb introduktion till hur man installerar kommandoradsverktygen för GPG, samt en lista över grundläggande kommandon som du sannolikt kommer att behöva.
Installation av GPG
GPG kan installeras på ett antal olika sätt. Anvisningarna här installerar de centrala kommandoradsverktygen för GPG, som är avsedda att användas i en terminal.
Om du däremot föredrar ett grafiskt användargränssnitt (eller GUI) för att få tillgång till GPG-funktioner (t.ex. för att kryptera e-postkommunikation eller för att kryptera dokument i en GUI-textredigerare) hänvisar vi till länkarna i slutet av den här artikeln.
Red Hat / CentOS
yum install gnupg
Ubuntu / Debian
apt-get install gnupg
Mac OS X
Det enklaste sättet att installera kommandoradsverktygen för GPG på din Mac är att först installera Homebrew, ett pakethanteringssystem som gör tusentals programvarupaket tillgängliga för installation på din Mac.
Öppna ett terminalfönster (menyn Program > Verktyg) och ange sedan följande kommando.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install gnupg
GPG Snabbt hur man använder GPG
Det som följer är en mycket kortfattad introduktion till användning av kommandoraden för GPG. Se det som en ”snabbreferens” eller en ”fusklapp”. Du bör säkert lära dig mer om GPG än vad som förklaras i det här inlägget. Det är endast avsett att hjälpa dig att komma igång. Om du räknar med att använda GPG mer omfattande rekommenderar jag dig starkt att läsa mer dokumentation (se avsnittet Länkar nedan).
GPG är ett kraftfullt krypteringsprogram, men det kan också vara lätt att lära sig – när du väl förstår några grunder. GPG använder en krypteringsmetod som kallas kryptografi med offentliga nycklar, vilket ger ett antal fördelar och fördelar. För att uppnå dessa fördelar krävs dock en minimal nivå av komplexitet för att få allt att fungera. För en översikt över hur kryptografi med offentliga nycklar fungerar, läs Introduktion till kryptografi (länk längst ner i det här inlägget).
Typografiska konventioner som används i kommandon:
I alla exempel nedan visas text som du måste ersätta med dina egna värden (t.ex. användarnamn, e-postadresser, filnamn) i ”grå kursiv”. Text som du kommer att skriva bokstavligen (oförändrad) visas med ”svart konstant bredd”.
"gray italic""black constant width"
Skapa din GPG-nyckel:
För att komma igång med GPG måste du först generera ditt nyckelpar. Det innebär att du ska generera både en privat och en offentlig nyckel med ett enda kommando. Ange ditt namn och din e-postadress vid uppmaningarna, men acceptera annars standardalternativen.
gpg --gen-key
Den första nyckeln är din privata (eller hemliga) nyckel. Du måste alltid förvara denna privata nyckel på ett säkert ställe och du får inte dela den med någon. Den privata nyckeln är skyddad med ett lösenord. Försök att göra lösenordet så långt som möjligt, men något som du inte kommer att glömma. Om du glömmer lösenordet finns det inget sätt att återskapa det. Av samma anledning bör du också göra en säkerhetskopia av din privata nyckel. (Överväg att använda Time Machine för säkerhetskopior på Mac OS X.)
Den andra nyckeln är din offentliga nyckel, som du säkert kan dela med dig av till andra människor.
Sambandet mellan den privata och den offentliga nyckeln är faktiskt mycket enkelt. Allt som krypteras med den offentliga nyckeln kan endast dekrypteras med den tillhörande privata nyckeln. Därför kommer du att ge din offentliga nyckel till en annan person, och de kommer att ge dig sin offentliga nyckel. Allt som krypteras med din offentliga nyckel kan endast dekrypteras av dig. Allt som krypteras till den andra personens offentliga nyckel kan endast dekrypteras av den andra personen.
Exportera din offentliga nyckel:
Nästa steg är att exportera din offentliga nyckel och dela den med en annan person. Den personen bör göra detsamma och exportera sin offentliga nyckel.
gpg --export --armor [email protected] > mypubkey.asc
Importera en annan persons offentliga nyckel:
När du importerar en offentlig nyckel placerar du den i det som brukar kallas din GPG-”nyckelring”.”
Listan över offentliga nycklar i din nyckelring:
Du kan nu visa en lista över offentliga nycklar i din nyckelring, samt det namn och den e-postadress som är kopplade till varje nyckel.
gpg --list-keys
Listan över privata nycklar i din nyckelring:
Följande kommando listar de privata nycklarna i din nyckelring. Här visas din egen privata nyckel som du skapade tidigare.
gpg --list-secret-keys
Trust a public key:
När du har importerat den andra personens offentliga nyckel måste du nu ställa in förtroendenivån för nyckeln. Detta förhindrar att GPG varnar dig varje gång du krypterar något med den offentliga nyckeln.
Ange den andra personens namn eller e-postadress i kommandot.
gpg --edit-key glenntrust (invoke trust subcommand on the key)5 (ultimate trust)y (if prompted)quit
Användbara GPG-kommandon
GPG har många alternativ, varav du aldrig kommer att behöva de flesta. Här är en snabb lista över de mest användbara kommandona som du sannolikt kommer att behöva.
Kryptera en fil:
Om du vill kryptera en fil med namnet filnamn.txt för en enskild person anger du den personen som mottagare.
gpg --encrypt --recipient glenn filename.txt
Detta kommer att skapa en ny krypterad fil med namnet filnamn.txt.gpg.
Om du vill kryptera en fil så att endast du själv kan dekryptera den, ange dig själv som mottagare.
gpg --encrypt --recipient 'my_name' filename.txt
Om du vill kryptera en fil så att både du och en annan person kan dekryptera filen, ange både du och den andra personen som mottagare.
gpg --encrypt --recipient glenn --recipient 'my_name' filename.txt
Om du vill kryptera en fil för en grupp av personer, definiera gruppen i din gpg.conf-filen (se avsnittet nedan) och ange sedan gruppen som mottagare.
gpg --encrypt --recipient journalists filename.txt
Efter ett tag vill du vara mer kortfattad och använda den korta versionen av kommandoradsalternativen. Här är samma kommando.
gpg -e -r journalists filename.txt
Dekryptera en fil till terminal (standardutgång):
Den första versionen av det här kommandot visar innehållet i en fil i själva terminalfönstret.
gpg --decrypt filename.txt.gpg
Använd alternativet --decrypt
endast om filen är en ASCII-textfil. Om det är en binär fil, utelämna alternativet --decrypt
, vilket kommer att skriva den dekrypterade filen till disken. Då kan du öppna den binära filen i det program som används för att visa filen.
Dekryptera en fil till disk:
Oavsett om filen är ASCII eller binär måste du, om du vill göra ändringar i innehållet i en krypterad fil, först dekryptera den, göra ändringarna och sedan kryptera filen igen. Som jag nämnde i föregående stycke skriver du den dekrypterade versionen av en fil till disken genom att utelämna alternativet --decrypt
i kommandot.
gpg filename.txt.gpg
Om den krypterade filen hette filnamn.txt.gpg, kommer ovanstående kommando att skapa en dekrypterad version som heter filename.txt (med .gpg-tillägget borttaget).
Skapa grupper av personer i din GPG-konfigurationsfil
För att göra det enklare kan du i förväg definiera en grupp av personer i din GPG-konfigurationsfil. Detta har fördelen att du kan kryptera en fil till varje medlem i gruppen genom att endast ange gruppens namn som mottagare, i stället för att omständligt ange varje enskild medlem i gruppen.
Din GPG-programvarukonfiguration lagras i din hemkatalog i filen ~/.gnupg/gpg.conf
. Redigera den här filen med hjälp av din favorittextredigerare för kommandoraden (vim, nano, pico, emacs, etc.). Det finns många inställningar tillgängliga i konfigurationsfilen, men gå till avsnittet om att definiera grupper.
När du definierar en grupp listar du medlemmarna i gruppen. Varje medlem refereras av något attribut av deras offentliga nyckel som finns i din GPG-nyckelring – vanligtvis en persons namn (eller en del av ett namn, t.ex. för- eller efternamn) eller en e-postadress (eller en del av en e-postadress).
Om du är medlem i gruppen, kom ihåg att inkludera dig själv i gruppen! Om du inte listar dig själv i gruppen kommer du inte att kunna dekryptera filer som du krypterar till gruppen.
Här är ett exempel på en grupp som heter ”journalister”, där varje persons förnamn listas.
group journalists = glenn laura ewan barton
Hur ska vi gå vidare härifrån
Jag uppmuntrar dig att lära dig mer om GPG. Se länkarna nedan.
Du kanske också vill lära dig mer om säkra metoder för att radera filer från din dators hårddisk. Mac OS X har alternativet ”Secure Empty Trash” i Finder. Det finns också många verktyg från tredje part som du kan installera.
När vi nu är inne på temat att lära oss att använda GPG på kommandoraden kanske du vill prova ”bcwipe” – ett program för säker radering av filer på kommandoraden.
På Mac OS X kan du installera bcwipe via Homebrew.
brew install bcwipe
Länkar
Allmänt
- Introduktion till kryptografi (PDF)
- GnuPG Software Website
- GnuPG på Wikipedia
- Homebrew (pakethanterare för Mac OS X)
GUI Tools
- GPG Suite (GUI för Mac OS X)
- Hur man använder GPG Suite på Mac OS X (Electronic Frontier Foundation)
- Gpg4win (GUI för Windows)
- Hur man använder Gpg4Win på Windows (Electronic Frontier Foundation)
Lämna ett svar