Hvordan kryptere og dekryptere filer med GPG på Linux

Beskytt personvernet ditt med Linux gpg-kommandoen. Bruk kryptering i verdensklasse for å holde hemmelighetene dine trygge. Vi viser deg hvordan du bruker gpg til å jobbe med nøkler, kryptere filer og dekryptere dem.

GnuPrivacy Guard (GPG) lar deg kryptere filer sikkert slik at bare den tiltenkte mottakeren kan dekryptere dem. Spesifikt overholder GPG OpenPGP standard. Det er modellert på et program kalt Pretty Good Privacy (PGP). PGP ble skrevet i 1991 av Phil Zimmerman.

GPG er avhengig av ideen om to krypteringsnøkler per person. Hver person har en privat nøkkel og en offentlig nøkkel. Den offentlige nøkkelen kan dekryptere noe som ble kryptert med den private nøkkelen.

For å sende en fil sikkert, krypterer du den med din private nøkkel og mottakerens offentlige nøkkel. For å dekryptere filen trenger de sin private nøkkel og din offentlige nøkkel.

Du vil se fra dette at offentlige nøkler må deles. Du må ha den offentlige nøkkelen til mottakeren for å kryptere filen, og mottakeren trenger din offentlige nøkkel for å dekryptere den. Det er ingen fare i å gjøre de offentlige nøklene dine bare det – offentlige. Faktisk er det offentlige nøkkelservere for nettopp det formålet, som vi skal se. Private nøkler må holdes private. Hvis den offentlige nøkkelen din er i det offentlige domene, må den private nøkkelen holdes hemmelig og sikker.

Det er flere trinn involvert i å sette opp GPG enn det er i bruken. Heldigvis trenger du vanligvis bare sette den opp én gang.

Generering av nøkler

gpg-kommandoen ble installert på alle Linux-distribusjonene som ble sjekket, inkludert Ubuntu, Fedora og Manjaro.

Du trenger ikke bruke GPG med e-post. Du kan kryptere filer og gjøre dem tilgjengelige for nedlasting, eller sende dem fysisk til mottakeren. Du må imidlertid knytte en e-postadresse til nøklene du genererer, så velg hvilken e-postadresse du skal bruke.

Her er kommandoen for å generere nøklene dine. Alternativet –full-generate-key genererer nøklene dine i en interaktiv økt i terminalvinduet. Du vil også bli bedt om en passordfrase. Pass på at du husker hva passordfrasen er. Tre eller fire enkle ord sammen med tegnsetting er en god og robust modell for passord og passordfraser.

gpg --full-generate-key

Du vil bli bedt om å velge en krypteringstype fra en meny. Med mindre du har en god grunn til å ikke gjøre det, skriv 1 og trykk Enter.

Du må velge en bitlengde for krypteringsnøklene. Trykk Enter for å godta standarden.

Du må spesifisere hvor lenge nøkkelen skal vare. Hvis du tester systemet, skriv inn en kort varighet som 5 i fem dager. Hvis du skal beholde denne nøkkelen, skriv inn en lengre varighet som 1 år i ett år. Nøkkelen varer i 12 måneder og må derfor fornyes etter ett år. Bekreft valget ditt med Y.

  Slik kobler du sammen Nintendo Switch Pro-kontrolleren på Linux

Du må skrive inn navn og e-postadresse. Du kan legge til en kommentar hvis du ønsker det.

Du vil bli bedt om å oppgi passordfrasen. Du trenger passordfrasen når du jobber med nøklene, så sørg for at du vet hva det er.

Klikk på OK-knappen når du har skrevet inn passordfrasen. Du vil se dette vinduet mens du arbeider med gpg, så sørg for at du husker passordfrasen.

Nøkkelgenereringen vil finne sted, og du vil bli returnert til ledeteksten.

Generering av et tilbakekallsertifikat

Hvis din private nøkkel blir kjent for andre, må du koble de gamle nøklene fra identiteten din, slik at du kan generere nye. For å gjøre dette trenger du et tilbakekallsbevis. Vi gjør dette nå og lagrer det et trygt sted.

Alternativet –utdata må følges av filnavnet til sertifikatet du ønsker å opprette. Alternativet –gen-revoke får gpg til å generere et tilbakekallingssertifikat. Du må oppgi e-postadressen du brukte da nøklene ble generert.

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

Du vil bli bedt om å bekrefte at du ønsker å generere et sertifikat. Trykk Y og trykk Enter. Du vil bli spurt om årsaken til at du genererer sertifikatet. Siden vi gjør dette på forhånd, vet vi ikke sikkert. Trykk 1 som en plausibel gjetning og trykk Enter.

Du kan legge inn en beskrivelse hvis du ønsker det. Trykk Enter to ganger for å avslutte beskrivelsen.

Du vil bli bedt om å bekrefte innstillingene dine, trykk Y og trykk Enter.

Sertifikatet vil bli generert. Du vil se en melding som forsterker behovet for å holde dette sertifikatet trygt.

Den nevner en som heter Mallory. Kryptografi diskusjoner har lenge brukt Bob og Alice som de to personene som kommuniserer. Det er andre bifigurer. Eve er en avlytter, Mallory er en ondsinnet angriper. Alt vi trenger å vite er at vi må oppbevare sertifikatet trygt og sikkert.

La oss som et minimum fjerne alle tillatelser bortsett fra våre fra sertifikatet.

chmod 600 ~/revocation.crt

La oss sjekke med ls for å se hva tillatelsen er nå:

ls -l

Det er perfekt. Ingen bortsett fra fileieren – oss – kan gjøre noe med sertifikatet.

Importere andres offentlige nøkkel

For å kryptere en melding som en annen person kan dekryptere, må vi ha deres offentlige nøkkel.

Hvis du har fått nøkkelen deres i en fil, kan du importere den med følgende kommando. I dette eksemplet heter nøkkelfilen «mary-geek.key.»

gpg --import mary-geek.key

Nøkkelen importeres, og du får vist navnet og e-postadressen knyttet til den nøkkelen. Selvfølgelig bør det samsvare med personen du mottok det fra.

  Hvordan bruke den siste kommandoen på Linux

Det er også mulighet for at personen du trenger nøkkel fra har lastet opp nøkkelen sin til en offentlig nøkkelserver. Disse serverne lagrer folks offentlige nøkler fra hele verden. Nøkkelserverne synkroniseres med hverandre med jevne mellomrom, slik at nøkler er universelt tilgjengelige.

MIT offentlige nøkkelserver er en populær nøkkelserver og en som regelmessig synkroniseres, så søk der bør være vellykket. Hvis noen nylig har lastet opp en nøkkel, kan det ta noen dager før den vises.

Alternativet –keyserver må følges av navnet på nøkkelserveren du ønsker å søke etter. Alternativet –search-keys må følges av enten navnet på personen du søker etter eller e-postadressen deres. Vi bruker e-postadressen:

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

Treff er oppført for deg og nummerert. For å importere en, skriv inn nummeret og trykk Enter. I dette tilfellet er det en enkelt match, så vi skriver 1 og trykker Enter.

Nøkkelen importeres, og vi får vist navnet og e-postadressen knyttet til den nøkkelen.

Verifisering og signering av en nøkkel

Hvis du har fått utlevert en offentlig nøkkelfil av noen du kjenner, kan du trygt si at den tilhører den personen. Hvis du har lastet den ned fra en offentlig nøkkelserver, kan det hende du føler behov for å bekrefte at nøkkelen tilhører personen den er ment til.

Alternativet –fingerprint får gpg til å lage en kort sekvens på ti sett med fire heksadesimale tegn. Du kan be personen sende deg fingeravtrykket av nøkkelen sin.

Du kan deretter bruke –fingerprint-alternativet til å generere den samme fingeravtrykksekvensen med heksadesimale tegn og sammenligne dem. Hvis de samsvarer, vet du at nøkkelen tilhører den personen.

gpg --fingerprint [email protected]

Fingeravtrykket genereres.

Når du er fornøyd med at nøkkelen er ekte og eies av personen den skal være tilknyttet, kan du signere nøkkelen deres.

Hvis du ikke gjør dette, kan du fortsatt bruke det til å kryptere og dekryptere meldinger fra og til den personen. Men gpg vil spørre deg hver gang om du vil fortsette fordi nøkkelen er usignert. Vi bruker det passende navnet –sign-key og oppgir e-postadressen til personen, slik at gpg vet hvilken nøkkel som skal signeres.

gpg --sign-key [email protected]

Du vil se informasjon om nøkkelen og personen, og vil bli bedt om å bekrefte at du virkelig vil signere nøkkelen. Trykk Y og trykk Enter for å signere nøkkelen.

Slik deler du din offentlige nøkkel

For å dele nøkkelen din som en fil, må vi eksportere den fra gpg lokale nøkkellager. For å gjøre dette bruker vi alternativet –eksport, som må følges av e-postadressen du brukte til å generere nøkkelen. Alternativet –utdata må følges av navnet på filen du ønsker å få nøkkelen eksportert til. –Armor-alternativet forteller gpg å generere ASCII-panserutgang i stedet for en binær fil.

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

Vi kan ta en titt inne i nøkkelfilen med mindre.

less dave-geek.key

Nøkkelen vises i all sin prakt:

  Hvordan spille Black Mesa på Linux

Du kan også dele den offentlige nøkkelen din på en offentlig nøkkelserver. Alternativet –send-keys sender nøkkelen til nøkkelserveren. Alternativet –keyserver må følges av nettadressen til den offentlige nøkkelserveren. For å identifisere hvilken nøkkel som skal sendes, må fingeravtrykket for nøkkelen oppgis på kommandolinjen. Merk at det ikke er mellomrom mellom settene med fire tegn.

(Du kan se fingeravtrykket for nøkkelen din ved å bruke -fingeravtrykk-alternativet.)

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

Du vil få bekreftelse på at nøkkelen er sendt.

Krypterer filer

Vi er endelig klare til å kryptere en fil og sende den til Mary. Filen heter Raven.txt.

Alternativet –encrypt forteller gpg å kryptere filen, og –sign-alternativet forteller det å signere filen med dine detaljer. Alternativet –armor forteller gpg å lage en ASCII-fil. Alternativet -r (mottaker) må følges av e-postadressen til personen du sender filen til.

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

Filen er opprettet med samme navn som originalen, men med «.asc» lagt til filnavnet. La oss ta en titt inni den.

less Raven.txt.asc

Filen er fullstendig uleselig, og kan bare dekrypteres av noen som har din offentlige nøkkel og Marys private nøkkel. Den eneste personen som har begge disse bør være Mary.

Vi kan nå sende filen til Mary i tillit til at ingen andre kan dekryptere den.

Dekryptering av filer

Mary har sendt et svar. Det er i en kryptert fil kalt coded.asc. Vi kan dekryptere det veldig enkelt ved å bruke –dekrypter-alternativet. Vi skal omdirigere utdataene til en annen fil kalt plain.txt.

Merk at vi ikke trenger å fortelle gpg hvem filen er fra. Det kan løses ut fra det krypterte innholdet i filen.

gpg --decrypt coded.asc > plain.txt

gpg --dekrypter coded.asc > plain.txt i et terminalvindu” width=”646″ height=”212″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”  onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”></p>
<p>La oss se på plain.txt-filen:</p>
<pre>less plain.txt</pre > <p><img loading=

Filen har blitt dekryptert for oss.

Oppdater nøklene dine

Med jevne mellomrom kan du be gpg sjekke nøklene den har mot en offentlig nøkkelserver og oppdatere alle som har endret seg. Du kan gjøre dette med noen måneders mellomrom eller når du mottar en nøkkel fra en ny kontakt.

Alternativet –refresh-keys får gpg til å utføre kontrollen. Alternativet –keyserver må følges av nøkkelserveren du ønsker. Når nøklene har blitt synkronisert mellom de offentlige nøkkelserverne, bør det ikke spille noen rolle hvilken du velger.

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

gpg svarer ved å liste opp nøklene den sjekker og gi deg beskjed om noen har endret seg og blitt oppdatert.

Personvern er et hett emne

Personvern er aldri langt unna nyhetene i disse dager. Uansett hvilke grunner du har for å holde informasjonen din sikker og privat, gir gpg en enkel måte å bruke utrolig sterk kryptering på filene og kommunikasjonene dine.

Det finnes andre måter å bruke gpg på. Du kan få en plugin for Thunderbird kalt Enigmail. Den kobles rett inn i gpg-konfigurasjonen for å la deg kryptere e-postmeldinger fra Thunderbird.