PGP-kryptering/-signering av data


Med PGP kan du signere data for å seie at du er opphavet, og kryptere data slik at berre dei med rette nøkler kan lese dei. 

For å kunne kryptere med PGP treng du eit nøkkelpar - ein privat og ein offentleg nøkkel. Den private nøkkelen er din og berre din; ingen andre skal nokon gong setje fingrane sine i den. Den offentlege nøkkelen kan du gje til kven du vil, og leggje ut offentleg slik at andre kan hente den og bruke den.

I dette tilfellet skal PGP nyttast i samband med e-post. Du bør gå vegen om gpg i Unix, som er installert på alle UiO-unixmaskiner. Då vert nøklane samla på eit område som kan vere autorativt for alle plasser du skal bruke pgp-kryptering. Blander du inn Thunderbird risikerer du å misse det du har ved reinstallasjon, då den konsekvent legg seg i din brukarprofil lokalt på datamaskina. 

Framgangsmåte

1: Opprett nøkkelparet (den private og den offentlege nøkkelen)

Logg inn på ein unixserver med ssh og køyr kommandoane i lista nedanfor:

linux@maskin~$ gpg --gen-key

Dette er kommandoen for å generere nøkkelparet. Anbefalte verdiar:

Please select what kind of key you want: Velg: (1) RSA and RSA (default)
What keysize do you want? (2048): Skriv 2048 bits
Key is valid for? (0): Velg 0
Is this correct (y/n)?: Velg Y
Real name: Skriv inn ditt eige namn.
Email address: Skriv inn epostadressa di
Comment: Skriv inn ein kommentar viss du vil.
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?: Kontroller dataene 
og avslutt med O
Enter passphrase: Dette skal vera ein kompliser setning som du også må 
klare å hugse. Litt sterk passordliknande passphrase er ikkje godt nok.
Repeat passphrase: Repeter passphrase

Nøkkelgenereringa tar litt tid.

Resultatet

pub 2048R/XXXXXXXX 2008-11-13 REAL NAME (COMMENTS)

No er nøkkelparet oppretta og du vil no ha fått oppretta ei mappe .gnupg på heimeområdet ditt som ser slik ut:

-rw-------  1 eigar gruppe 8075 Nov  3 14:29 gpg.conf
-rw-------  1 eigar gruppe 1179 Nov 13 20:12 pubring.gpg
-rw-------  1 eigar gruppe  600 Nov 13 20:12 random_seed
-rw-------  1 eigar gruppe 1328 Nov 13 20:12 secring.gpg
-rw-------  1 eigar gruppe 1240 Nov 13 20:12 trustdb.gpg

Innholdet i filene:

  • gpg.conf = konfigurasjonsfila til gpg
  • pubring.gpg = nøkkelknippet ditt med offentlege nøklar
  • secring.ggp = nøkkelknippe med private nøklar
  • trustdb.gpg = database over trust, kven du har valgt å stole på eller ikkje å stole på (webtrust)

2: Publiser den offentlege nøkkelen

Den offentlege nøkkelen skal brukast til å verifisere og dekryptere meldingar frå deg. Derfor må denne publiserast slik at kven som helst kan laste den ned. Du kan leggje den tilgjengeleg på ein nøkkelserver som finst rundt om kring på Internett. Desse serverane snakker og synkroniserar seg med kvarandre, slik at den offentlege nøkkelen vert tilgjengeleg frå alle nøkkelserverane.

linux@maskin~$ gpg --list-keys

linux@maskin~$ gpg --send-keys --keyserver=subkeys.pgp.net XXXXXXX

XXXXXXX = Nøkkel-ID til din public key. Den ser du frå outputten til list-keys.
Det finst fleire nøkkelservere rundt omkring. Dette er ein tilfeldig valgt server.

3: Generering av revoke-sertifikat

Det kan gå gale med nøkkelparet. Derfor lyt du kunne seie i frå til alle som nyttar den offentelege nøkkelen at han ute av drift, om den offentlege nøkkelen er kompromittert, passordet er mista eller at nøkkelen har gått ut på dato. Då er det lurt å ha eit revoke sertifikat tilgjengeleg. Dette sertifikatet og den private nøkkelen må tas godt vare på, då begge kan gjere nøkkelparet ugyldig.

Kommando for å genere revoke-sertifikat:

 linux@maskin~$ gpg --gen-revoke --output email@addresse.uio.no-revoke.acs XXXXXXX

email@addresse.uio.no er den e-postadressa som er assosiert med nøkkelen du vil lage sertifikat til. Dersom du har fleire nøkkelpar på same adresse, må du angje Nøkkel-ID. Anbefalte verdiar:

Create a revocation certificate for this key? y
Your decision? 0
Enter an optional description; end it with an empty line: (legg inn dersom du vil)
Is this okay? y
Enter passphrase: (Passordet du har satt på den private nøkkelen)

Kopier teksta som kjem opp på skjermen. Sertifikatet skal sjå omlag slik ut på fil:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Ein del rare teikn og bokstaver	
-----END PGP PUBLIC KEY BLOCK-----

NB! Flytt dette sertifikatet til ein sikker plass, slik at ingen uvedkommande får tak i dette. Sertifikatet vil gjere nøklane ugyldige i det dei vert importert inn i nøkkelringen din.

4: Gjer nøkkelparet ditt ugyldig

Dette skal du IKKJE gjere før det har skjedd noko som påkrev det. Operasjonen gjer nøkkelparet ditt ugyldig så det ikkje kan brukast lenger.

linux@maskin~$ gpg --import my-revocation-sertifikate.asc

Legg endringa ut på nøkkelserveren slik at alle andre ser at din offentelege nøkkel er ute av drift. Ein offentleg nøkkel kan aldri slettast frå ein nøkkelserver, og må derfor gjerast ugyldig.

Finn offentlege nøklar på ein nøkkelserver

Normalt sett veit du ikkje kva nøkkel-IDen til andre er, men du kan søke etter nøklar på namn.

linux@maskin~$ gpg --search-keys --keyserver=subkeys.pgp.net søkeord1 søkeord2....

Søkeord = namnet du vil søke på. Alle ord etter keyserver=... vert slått saman for å avgrense søket.
Du vil få ei liste med namn og tilhøyrande nøkkel-ID.

linux@maskin ~/.gnupg $ gpg  --search-keys --keyserver=subkeys.pgp.net XXX Y
gpg: searching for "XXX Y" from HKP server subkeys.pgp.net
Keys 1-3 of 3 for "XXX y"
(1)     XXX YYY xxx.yyy@domene.uio.no\>" 1024 bit DSA key D60F77F2, created 2008-11-05
(2)     XXX YZZ xxx.yzz@domene.com>" 1024 bit DSA key 33F152S0, created 2006-08-25
(3)     XXX YAA xxx.yaa@domene.it" 1024 bit DSA key 431BgDED, created 2006-01-16
Enter number(s), N)ext, or Q)uit 

Du kan importere den offentlege nøkkelen når du har funne han.
Velg mellom 1,2 eller 3. Her skal du ikkje oppgje Nøkkel-ID, men nummeret frå søket.
Next blar vidare i resultata.
Sjekke opp fingerprintet til nøkkelen med eigaren, slik at du er sikker på at det er den rette nøkkelen du henter ned.

Import og eksport av private og offentlege nøklar

For å bruke nøkkelparet ditt, og andre offentlege nøklar, må dei importerast inn i nøkkelknippa dine. I nokre tilfeller må fyrst eksporterast til eit leseleg format. Det er enklast å hente dei offentlege nøklane direkte frå nøkkelserveren.

Import av andre offentlege nøklar frå nøkkelserver:

linux@maskin~$ gpg --recv-keys --keyserver=subkeys.pgp.net XXXXXXX

XXXXXXX = Nøkkel-ID. Den ser du frå outputten til list-keys. Dersom du ikkje kjenner til ID kan du søke etter denne med kommandoen: gpg --search-keys --keyserver=subkeys.pgp.net søkeord1 søkeord2...

Import av andre sine offentlege nøklar frå ascii armorert fil

linux@maskin~$ gpg --import filnamn

Filnamn er namnet på fila som inneheld personens offentlege nøkkel i ASCII format. 

Export av offentlege nøklar

For å kunne bruke nøklane i andre program må du ofte eksportere dei til ASCII-format for så å importere dei inn i programmet. Thunderbird gjer dette direkte frå nøkkelringane.

linux@maskin~$ gpg --export --armor --output namnPubKey_XXXXXXXX.asc XXXXXXXX

Namnet er XXXXXXX-ID på nøkkelen. Når fila er eksportert kan du importere den der det måtte passe.
Skal du flytte eller importere alle dei offentlege nøklane i ein operasjon, let du vera å angje namnet: gpg --export --armor --output AllePubKeysInRing.asc

Verifisering

Nokre gonger kan offentlege nøklar endrast av andre, sjølv om dette ikkje bør skje. Alle nøklar har eitunikt fingravtrykk. Vert nøkkelen endra, vert også fingravtrykket endra. Ved signering av nøklar skal du gå god for at nøkkelen faktisk høyrer til den rettmessige eigaren. Derfor skal ein alltid sjekke opp med eigaren av nøkkelen at fingeravtrykket er likt på nøkkelen du har og eigaren sin

linux@maskin~$  gpg --fingerprint XXXXXXXX

Der XXXXXXXX er ID for nøkkelen. Skal du liste alle, dropp ID-nøkkelen. Bruk: gpg --fingerprint.

Når dette er i orden kan du signere, og gå god for nøkkel og eigar. Dette er utanfor dokumentets område og kommandoen for dette finn ein i sidene til gpg.

Oppdatering av nøklar

Innimellom er det behov for å oppdatere nøklane. Årsaker kan vera at dei har vorte signert, at tidstempelet er oppdatert eller andre ting. For at folk rundt omkring skal få med seg endringane må nøkkelserverane oppdaterast.

Hent ned nye nøklar frå nøkkelserveren:

linux@maskin~$ gpg --recv-keys --keyserver=subkeys.pgp.net XXXXXXXX

Oppdater nøkkelserveren:

linux@maskin~$ gpg --send-keys --keyserver=subkeys.pgp.net XXXXXXXX

Oppdater din nøkkelring:

linux@maskin~$ gpg --refresh-keys --keyserver=subkeys.pgp.net XXXXXXXX

Der XXXXXXXX er ID for nøkkelen. Skal du oppdatere alle, dropp ID-nøkkelen

Om noko går galt

  1. Du misser den offentlege nøkkelen - den private nøkkelen har ein kopi av den offentlege nøkkelen. 
  2. Du misser din private nøkkelen - du må lage nytt nøkkelpar dersom du ikkje har ein backup.
  3. Du gløymer passordet - uten passordet kan du ikkje bruke nøkkelparet. Du bør ha eit revoke-sertifikat.
  4. Nøkkelen går ut på tid - oppdatere nøkkelen tidsnok. Det er vanskeleg når den er gått ut på tid. Bruk kommandoen gpg --edit og skriv inn help.
  5. Nøkkelen din er kompromitert - deaktivier nøkkelen med eit revoke-sertifikat.
Emneord: S
Publisert 3. mai 2010 09:51 - Sist endret 16. nov. 2021 11:55