Hur man krypterar och dekrypterar filer med GPG på Linux

By rik

Skydda din personliga integritet genom att använda kommandot Linux gpg. Använd avancerad kryptering för att säkerställa att dina hemligheter förblir skyddade. Vi kommer att visa hur man hanterar nycklar, krypterar och dekrypterar filer med gpg.

Gnu Privacy Guard (GPG) gör det möjligt att kryptera filer på ett säkert sätt, vilket säkerställer att endast den avsedda mottagaren kan dekryptera dem. GPG följer OpenPGP-standarden och är inspirerat av programmet Pretty Good Privacy (PGP), som skapades av Phil Zimmerman år 1991.

GPG använder ett system med två nycklar per användare: en privat och en publik nyckel. Den publika nyckeln kan dekryptera information som har krypterats med den privata.

För att säkert skicka en fil, kryptera den med din privata nyckel och mottagarens publika nyckel. Mottagaren behöver sin privata nyckel och din publika nyckel för att dekryptera filen.

Publika nycklar måste delas. Du behöver mottagarens publika nyckel för att kryptera filen, och mottagaren behöver din publika nyckel för att dekryptera den. Det är inte farligt att göra dina publika nycklar tillgängliga – det finns speciella servrar för just detta ändamål. Privata nycklar, å andra sidan, måste hållas strikt privata. Om din publika nyckel är offentlig, måste din privata nyckel skyddas väl.

Det krävs fler steg för att konfigurera GPG än att använda det, men som tur är behöver du vanligtvis bara konfigurera det en gång.

Skapa dina nycklar

Kommandot gpg är förinstallerat i de flesta Linux-distributioner, inklusive Ubuntu, Fedora och Manjaro.

Du kan använda GPG utan e-post. Du kan kryptera filer för nedladdning eller leverera dem fysiskt. Du måste ändå koppla en e-postadress till dina nycklar, så välj noggrant.

Här är kommandot för att skapa dina nycklar:

gpg --full-generate-key

Alternativet –full-generate-key startar en interaktiv session för nyckelgenerering i terminalen. Du kommer också att bli ombedd om en lösenfras. Det är viktigt att komma ihåg den. En bra lösenfras kan bestå av tre eller fyra enkla ord med skiljetecken, vilket ger ett starkt skydd.

Du kommer att behöva välja en krypteringstyp från en meny. Om du inte har något särskilt skäl, skriv 1 och tryck på Enter.

Du kommer sedan att ange en bitlängd för nycklarna. Tryck på Enter för att acceptera standardvärdet.

Därefter anger du hur länge nyckeln ska vara giltig. För teständamål kan du ange en kort tid, t.ex. 5 dagar. För en nyckel du tänker använda länge, välj en längre period, som 1 år. Bekräfta med Y.

Du måste ange ditt namn och e-postadress. Du kan också lägga till en kommentar.

Du kommer att bli ombedd att ange din lösenfras. Du behöver den när du arbetar med dina nycklar, så det är viktigt att komma ihåg den.

Klicka på OK efter att ha angett din lösenfras. Kom ihåg lösenfrasen, du kommer att behöva den.

Efter nyckelgenereringen är du tillbaka i kommandotolken.

Skapa ett återkallelsecertifikat

Om din privata nyckel avslöjas, måste du snabbt inaktivera den gamla nyckeln och skapa en ny. För att göra det behöver du ett återkallelsecertifikat. Vi skapar det nu och sparar det på ett säkert ställe.

Alternativet –output anger namnet på certifikatfilen. Alternativet –gen-revoke talar om för gpg att generera certifikatet. Du behöver ange e-postadressen som du använde när du genererade nycklarna.

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

Bekräfta med Y att du vill skapa ett certifikat. Du kommer att få frågan om orsaken till certifikatet. Eftersom vi skapar det i förväg väljer vi 1 som en rimlig gissning.

Du kan lägga till en beskrivning om du vill. Avsluta genom att trycka Enter två gånger.

Bekräfta inställningarna med Y.

Certifikatet skapas. Spara det på ett säkert ställe, som meddelandet säger.

Det nämns någon som heter Mallory. Inom kryptografi har Bob och Alice använts som de två parter som kommunicerar. Det finns också andra roller: Eve är en avlyssnare och Mallory är en angripare. Vi ska hålla certifikatet säkert.

Vi ska begränsa behörigheterna till certifikatet.

chmod 600 ~/revocation.crt

Vi kontrollerar behörigheterna med ls:

ls -l

Bra. Endast filägaren kan nu hantera certifikatet.

Importera andras publika nyckel

För att skicka ett meddelande som någon annan kan dekryptera, behöver du deras publika nyckel.

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

gpg --import mary-geek.key

Nyckeln importeras och du ser namnet och e-postadressen som är kopplat till nyckeln. Det ska stämma med personen du fått den ifrån.

Det finns också möjligheten att den du behöver en nyckel av har laddat upp den till en server med publika nycklar. De servrarna lagrar publika nycklar från hela världen. Servrarna synkroniseras periodiskt så nycklarna är allmänt tillgängliga.

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

Alternativet –keyserver anger vilken server som ska användas. Alternativet –search-keys följs av namnet eller e-postadressen du söker efter. Vi använder e-postadressen:

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

Träffar listas och numreras. Skriv in numret och tryck Enter för att importera nyckeln. I det här fallet finns det en träff, så vi skriver 1 och trycker på Enter.

Nyckeln importeras och namnet och e-postadressen visas.

Verifiera och signera en nyckel

Om du har fått en nyckelfil av en bekant, kan du vara säker på att den tillhör personen. Men om du har laddat ner den från en server, kan du vilja verifiera att den verkligen är den rätta.

Alternativet –fingerprint genererar en kort sekvens med tio uppsättningar hexadecimala tecken. Be personen skicka sitt fingeravtryck.

Använd sedan alternativet –fingerprint för att generera fingeravtrycket av din nyckel och jämför dem. Om de matchar vet du att nyckeln är autentisk.

gpg --fingerprint [email protected]

Fingeravtrycket genereras.

När du är säker på att nyckeln är autentisk kan du signera den.

Även om du inte gör det, kan du fortfarande kryptera och dekryptera meddelanden till och från personen, men gpg kommer att fråga varje gång om du verkligen vill fortsätta eftersom nyckeln är osignerad. Vi använder alternativet –sign-key och anger personens e-postadress så att gpg vet vilken nyckel som ska signeras.

gpg --sign-key [email protected]

Du får information om nyckeln och kommer att bli ombedd att verifiera att du vill signera den. Bekräfta med Y.

Dela din publika nyckel

För att dela din nyckel som en fil, måste vi exportera den från gpg:s lokala nyckelförråd. Vi använder alternativet –export, följt av e-postadressen du använde för att skapa nyckeln. Alternativet –output anger namnet på filen. Alternativet –armor talar om för gpg att generera en ASCII-utdata istället för en binär fil.

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

Vi kan ta en titt på filen med less.

less dave-geek.key

Nyckeln visas:

Du kan också dela din publika nyckel via en offentlig nyckelserver. Alternativet –send-keys skickar nyckeln. Alternativet –keyserver måste följas av adressen till servern. Du behöver ange fingeravtrycket på kommandoraden. Obs: Det finns inga mellanrum mellan teckengrupperna.

(Du kan se fingeravtrycket med alternativet –fingerprint.)

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

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

Kryptera filer

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

Alternativet –encrypt talar om för gpg att kryptera filen. Alternativet –sign talar om för gpg att signera den med din identitet. Alternativet –armor gör att gpg skapar en ASCII-fil. Alternativet -r (mottagare) måste följas av e-postadressen till den du skickar filen till.

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

Filen skapas med samma namn, men med ändelsen ”.asc”. Låt oss titta inuti den.

less Raven.txt.asc

Filen är nu oläslig och kan bara dekrypteras av någon som har din publika nyckel och Marys privata nyckel. Den enda som bör ha båda är Mary.

Nu kan vi skicka filen till Mary i säker förvissning om att ingen annan kan dekryptera den.

Dekryptera filer

Mary har skickat ett svar, i en krypterad fil som heter coded.asc. Vi kan dekryptera den med alternativet –decrypt. Vi omdirigerar utdata till en fil som heter plain.txt.

Notera att vi inte behöver ange vem filen kommer ifrån. Gpg kan räkna ut det.

gpg --decrypt coded.asc > plain.txt

Låt oss titta på filen plain.txt:

less plain.txt

Filen har dekrypterats.

Uppdatera nycklar

Med jämna mellanrum kan du uppmana gpg att kontrollera de nycklar du har mot en server med publika nycklar. Du kan göra det med några månaders mellanrum eller efter att du har fått en ny nyckel.

Alternativet –refresh-keys får gpg att utföra kontrollen. Alternativet –keyserver anger vilken server som ska användas.

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

gpg listar de nycklar som kontrollerats och informerar dig om de har ändrats.

Sekretess är en het fråga

Sekretess är en aktuell fråga. Oavsett anledningen till att du vill hålla din information privat, erbjuder gpg ett enkelt sätt att tillämpa avancerad kryptering på dina filer och kommunikation.

Det finns andra användningsområden för gpg. Det finns ett plugin för Thunderbird, kallat Enigmail. Med det kan du kryptera dina e-postmeddelanden direkt i Thunderbird.