Hur man krypterar och dekrypterar filer med GPG på Linux

Skydda din integritet med kommandot Linux gpg. Använd kryptering i världsklass för att hålla dina hemligheter säkra. Vi visar dig hur du använder gpg för att arbeta med nycklar, kryptera filer och dekryptera dem.

GnuPrivacy Guard (GPG) låter dig kryptera filer säkert så att endast den avsedda mottagaren kan dekryptera dem. Specifikt överensstämmer GPG med ÖppnaPGP standard. Det är modellerat på ett program som heter Pretty Good Privacy (PGP). PGP skrevs 1991 av Phil Zimmerman.

GPG förlitar sig på idén med två krypteringsnycklar per person. Varje person har en privat nyckel och en publik nyckel. Den offentliga nyckeln kan dekryptera något som krypterats med den privata nyckeln.

För att skicka en fil säkert krypterar du den med din privata nyckel och mottagarens publika nyckel. För att dekryptera filen behöver de sin privata nyckel och din offentliga nyckel.

Du kommer att se av detta att publika nycklar måste delas. Du måste ha mottagarens publika nyckel för att kryptera filen, och mottagaren behöver din offentliga nyckel för att dekryptera den. Det finns ingen fara med att göra dina offentliga nycklar just det – offentliga. Faktum är att det finns Public Key Servers för just det syftet, som vi ska se. Privata nycklar måste hållas privata. Om din offentliga nyckel är i den offentliga domänen, måste din privata nyckel hållas hemlig och säker.

Det är fler steg involverade i att ställa in GPG än vad det är i att använda det. Tack och lov behöver du vanligtvis bara ställa in den en gång.

Generera dina nycklar

Kommandot gpg installerades på alla Linux-distributioner som kontrollerades, inklusive Ubuntu, Fedora och Manjaro.

Du behöver inte använda GPG med e-post. Du kan kryptera filer och göra dem tillgängliga för nedladdning, eller skicka dem fysiskt till mottagaren. Du behöver dock koppla en e-postadress till de nycklar du genererar, så välj vilken e-postadress du ska använda.

Här är kommandot för att generera dina nycklar. Alternativet –full-generate-key genererar dina nycklar i en interaktiv session i ditt terminalfönster. Du kommer också att bli tillfrågad om en lösenfras. Se till att du kommer ihåg vad lösenfrasen är. Tre eller fyra enkla ord sammanfogade med skiljetecken är en bra och robust modell för lösenord och lösenfraser.

gpg --full-generate-key

Du kommer att bli ombedd att välja en krypteringstyp från en meny. Om du inte har en bra anledning att inte göra det, skriv 1 och tryck på Retur.

Du måste välja en bitlängd för krypteringsnycklarna. Tryck på Enter för att acceptera standardinställningen.

Du måste ange hur länge nyckeln ska hålla. Om du testar systemet, ange en kort varaktighet som 5 i fem dagar. Om du ska behålla den här nyckeln, ange en längre varaktighet som 1 år för ett år. Nyckeln varar i 12 månader och behöver därför förnyas efter ett år. Bekräfta ditt val med ett Y.

Du måste ange ditt namn och din e-postadress. Du kan lägga till en kommentar om du vill.

Du kommer att bli ombedd att ange din lösenfras. Du kommer att behöva lösenfrasen när du arbetar med dina nycklar, så se till att du vet vad det är.

Klicka på OK-knappen när du har angett din lösenfras. Du kommer att se det här fönstret när du arbetar med gpg, så se till att du kommer ihåg din lösenordsfras.

Nyckelgenereringen kommer att äga rum och du kommer tillbaka till kommandotolken.

Skapa ett återkallelsecertifikat

Om din privata nyckel blir känd för andra måste du koppla bort de gamla nycklarna från din identitet så att du kan generera nya. För att göra detta behöver du ett återkallelseintyg. Vi gör detta nu och förvarar det någonstans säkert.

Alternativet –output måste följas av filnamnet på det certifikat du vill skapa. Alternativet –gen-revoke gör att gpg genererar ett återkallningscertifikat. Du måste ange den e-postadress som du använde när nycklarna genererades.

gpg --output ~/revocation.crt --gen-revoke [email protected]

Du kommer att bli ombedd att bekräfta att du vill generera ett certifikat. Tryck på Y och tryck på Enter. Du kommer att bli tillfrågad om anledningen till att du genererar certifikatet. Eftersom vi gör detta i förväg vet vi inte säkert. Tryck på 1 som en rimlig gissning och tryck på Enter.

Du kan ange en beskrivning om du vill. Tryck på Enter två gånger för att avsluta din beskrivning.

Du kommer att bli ombedd att bekräfta dina inställningar, tryck på Y och tryck på Enter.

Certifikatet kommer att genereras. Du kommer att se ett meddelande som förstärker behovet av att hålla detta certifikat säkert.

Den nämner någon som heter Mallory. Kryptografi diskussioner har länge använts Bob och Alice som de två personer som kommunicerar. Det finns andra bifigurer. Eve är en tjuvlyssnare, Mallory är en illvillig angripare. Allt vi behöver veta är att vi måste hålla certifikatet säkert och säkert.

Låt oss som ett minimum ta bort alla behörigheter förutom våra från certifikatet.

chmod 600 ~/revocation.crt

Låt oss kolla med ls för att se vad behörigheten är nu:

ls -l

Det är perfekt. Ingen förutom filägaren – vi – kan göra något med certifikatet.

Importera någon annans publika nyckel

För att kryptera ett meddelande som en annan person kan dekryptera måste vi ha deras publika nyckel.

Om du har fått deras nyckel i en fil kan du importera den med följande kommando. I det här exemplet heter nyckelfilen ”mary-geek.key.”

gpg --import mary-geek.key

Nyckeln importeras och du visas namnet och e-postadressen som är kopplad till den nyckeln. Självklart bör det matcha personen du fick det från.

Det finns också möjligheten att personen du behöver en nyckel av har laddat upp sin nyckel till en publik nyckelserver. Dessa servrar lagrar människors publika nycklar från hela världen. Nyckelservrarna synkroniseras med varandra periodiskt så att nycklar är universellt tillgängliga.

MIT publika nyckelserver är en populär nyckelserver och en som regelbundet synkroniseras, så sökningen där bör vara framgångsrik. Om någon nyligen har laddat upp en nyckel kan det ta några dagar innan det visas.

Alternativet –keyserver måste följas av namnet på nyckelservern du vill söka efter. Alternativet –search-keys måste följas av antingen namnet på personen du söker efter eller deras e-postadress. Vi använder e-postadressen:

gpg --keyserver pgp.mit.edu --search-keys [email protected]

Träffar listas för dig och numreras. För att importera en, skriv in numret och tryck på Retur. I det här fallet finns det en enda matchning, så vi skriver 1 och trycker på Enter.

Nyckeln importeras och vi visas namnet och e-postadressen som är kopplad till den nyckeln.

Verifiera och signera en nyckel

Om du har överlämnats en offentlig nyckelfil av någon som du känner till kan du lugnt säga att den tillhör den personen. Om du har laddat ner den från en offentlig nyckelserver kan du känna ett behov av att verifiera att nyckeln tillhör personen den är avsedd för.

Alternativet –fingerprint gör att gpg skapar en kort sekvens med tio uppsättningar med fyra hexadecimala tecken. Du kan be personen att skicka fingeravtrycket av sin nyckel till dig.

Du kan sedan använda alternativet –fingerprint för att generera samma fingeravtryckssekvens av hexadecimala tecken och jämföra dem. Om de matchar vet du att nyckeln tillhör den personen.

gpg --fingerprint [email protected]

Fingeravtrycket genereras.

När du är övertygad om att nyckeln är äkta och ägs av den person som den ska vara associerad med, kan du signera deras nyckel.

Om du inte gör detta kan du fortfarande använda det för att kryptera och dekryptera meddelanden från och till den personen. Men gpg kommer att fråga dig varje gång om du vill fortsätta eftersom nyckeln är osignerad. Vi använder det passande namnet –sign-key alternativet och ger personens e-postadress, så att gpg vet vilken nyckel som ska signeras.

gpg --sign-key [email protected]

Du kommer att se information om nyckeln och personen och kommer att bli ombedd att verifiera att du verkligen vill signera nyckeln. Tryck på Y och tryck på Enter för att signera nyckeln.

Så här delar du din publika nyckel

För att dela din nyckel som en fil måste vi exportera den från gpg lokala nyckellager. För att göra detta använder vi alternativet –export, som måste följas av e-postadressen som du använde för att skapa nyckeln. Alternativet –output måste följas av namnet på filen du vill ha nyckeln exporterad till. Alternativet –armor talar om för gpg att generera ASCII armor-utdata istället för en binär fil.

gpg --output ~/dave-geek.key --armor --export [email protected]

Vi kan ta en titt inuti nyckelfilen med mindre.

less dave-geek.key

Nyckeln visas i all sin glans:

Du kan också dela din publika nyckel på en offentlig nyckelserver. Alternativet –send-keys skickar nyckeln till nyckelservern. Alternativet –keyserver måste följas av webbadressen till den publika nyckelservern. För att identifiera vilken nyckel som ska skickas måste fingeravtrycket för nyckeln anges på kommandoraden. Observera att det inte finns några mellanslag mellan uppsättningarna med fyra tecken.

(Du kan se fingeravtrycket för din nyckel genom att använda alternativet –fingeravtryck.)

gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4

Du får en bekräftelse på att nyckeln har skickats.

Krypterar filer

Vi är äntligen redo att kryptera en fil och skicka den till Mary. Filen heter Raven.txt.

Alternativet –encrypt talar om för gpg att kryptera filen, och alternativet –sign säger åt det att signera filen med dina uppgifter. Alternativet –armor säger åt gpg att skapa en ASCII-fil. Alternativet -r (mottagare) måste följas av e-postadressen till personen du skickar filen till.

gpg --encrypt --sign --armor -r [email protected]

Filen skapas med samma namn som originalet, men med ”.asc” till filnamnet. Låt oss ta en titt inuti den.

less Raven.txt.asc

Filen är helt oläslig och kan endast dekrypteras av någon som har din offentliga nyckel och Marys privata nyckel. Den enda personen som har båda dessa borde vara Mary.

Vi kan nu skicka filen till Mary i övertygelse om att ingen annan kan dekryptera den.

Dekryptera filer

Mary har skickat ett svar. Det finns i en krypterad fil som heter coded.asc. Vi kan dekryptera det väldigt enkelt med alternativet –decrypt. Vi kommer att omdirigera utdata till en annan fil som heter plain.txt.

Observera att vi inte behöver berätta för gpg vem filen kommer ifrån. Det kan fungera utifrån det krypterade innehållet i filen.

gpg --decrypt coded.asc > plain.txt

gpg --decrypt coded.asc > plain.txt i ett terminalfönster” width=”646″ height=”212″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”  onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”></p>
<p>Låt oss titta på filen plain.txt:</p>
<pre>less plain.txt</pre > <p><img loading=

Filen har dekrypterats för oss.

Uppdaterar dina nycklar

Med jämna mellanrum kan du be gpg att kontrollera nycklarna den har mot en offentlig nyckelserver och att uppdatera alla som har ändrats. Du kan göra detta med några månaders mellanrum eller när du får en nyckel från en ny kontakt.

Alternativet –refresh-keys får gpg att utföra kontrollen. Alternativet –keyserver måste följas av den nyckelserver du väljer. När nycklarna väl har synkroniserats mellan de offentliga nyckelservrarna borde det inte spela någon roll vilken du väljer.

gpg --keyserver pgp.mit.edu --refresh-keys

gpg svarar genom att lista de nycklar som den kontrollerar och meddelar dig om några har ändrats och uppdaterats.

Sekretess är ett hett ämne

Sekretess är aldrig långt ifrån nyheterna nuförtiden. Oavsett dina skäl till att du vill hålla din information säker och privat, ger gpg ett enkelt sätt att tillämpa otroligt stark kryptering på dina filer och kommunikation.

Det finns andra sätt att använda gpg. Du kan få ett plugin för Thunderbird kallad Enigmail. Den hakar direkt in i din gpg-konfiguration så att du kan kryptera e-postmeddelanden inifrån Thunderbird.