PGP Web of Trust: Kjernekonseptet bak Trusted Communication

Public Key Cryptography infrastruktur (PKI) har to hoved implementeringer. En er gjort ved hjelp av sertifikater og sertifikatmyndigheter (CAS), og er beskrevet i X.509 standarden. Det er best egnet for strukturerte organisatoriske hierarkier med en klarert implisitt autoritet som garanterer for alle utstedte sertifikater. Det er den standard som er bak SSL /TLS og S /MIME e-kryptering.

Men det er også en annen mye brukt standard for PKI, som ble utviklet med et bestemt mål å ikke
krever sentralisert sertifiseringsinstanser, men i stedet stole på tillitsforhold mellom vanlige brukere. Det ble først implementert i den opprinnelige PGP programvaren tilbake i 1991, og siden da har utviklet seg til en robust åpen standard, kjent som OpenPGP.

Hvis du noen gang har brukt Linux, har du mest sannsynlig brukt OpenPGP uten tenke over det. Open-source implementering av OpenPGP kalles GnuPG (står for "GNU Privacy Guard"), og nesten alle distribusjoner stole på GnuPG for pakken integritet verifisering. Neste gang du kjører "yum install" eller "yum update", vil hver pakke verifiseres mot sin kryptografisk signatur før det er lov til å bli installert på systemet ditt. Dette sikrer at programvaren ikke har blitt endret mellom tidspunktet det ble kryptografisk signert av distribusjons utviklere på hovedserveren, og den tiden det ble lastet ned til systemet ditt.

Men langt færre mennesker har faktisk brukt GnuPG for hva det opprinnelig ble laget for - sikker utveksling av informasjon i en uklarert medium (for eksempel Internett), og enda færre har en god forståelse av hvordan tillitsrelasjoner er ment å fungere

I denne mini-serien. av artikler, vil vi ta en titt på hva nettet av tillit er og hvordan du bruker den til å sette opp en sikker og pålitelig kommunikasjon.

Behovet for tillit

Cryptographic kommunikasjons bekymringer seg med to sentrale aspekter:

tåkelegging - fienden må ikke være i stand til å lese innholdet i meldingen, selv om de kan avlytte all kommunikasjon

verifikasjon - din venn må være i stand til å verifisere at meldingen kom fra deg, og at det ikke har blitt endret på noen måte

For å obfuscate en melding, vi kryptere den. For å gjøre en melding kontrollerbar, legger vi en kryptografisk digital signatur til det. En melding som er både kryptert og signert tilfredsstiller våre krav til sikkerhet. Men før din venn kan bekrefte den digitale signaturen, må han eller hun være ganske sikker på at nøkkelen som brukes til å signere meldingen faktisk er din og ikke fienden bare utgir seg for å være deg.

Dette er sikkert er hva vi kaller "tillit".

Kjerne PKI Concepts

Bare så vi er på samme side, la oss gå over noen sentrale PKI konsepter. PKI fungerer ved å stole på noen ryddig matematiske egenskapene til svært store primtall. Detaljene er ikke veldig viktig for denne artikkelen, så vi vil hoppe over direkte til praktiske resultatet. I PKI, har du to nøkler -. En som bare du har tilgang til ("Private key") og en som du fritt gi ut til alle som ønsker å kommunisere sikkert med deg ("Public key")

Tenk på det som en fancy lås og to nøkler - den offentlige nøkkelen kan bare låse den, og den private nøkkelen kan bare låse den opp. Hvis noen ønsker å sende deg en melding, de først kryptere det med den offentlige nøkkelen. En melding låst med en offentlig nøkkel kan bare låses opp med den tilsvarende private nøkkelen, slik at når du får en slik melding kan du være sikker på at ingen var i stand til å lese innholdet i transitt.

Men siden den offentlige Nøkkelen er tilgjengelig for alle, alle kan sende deg en kryptert melding. Hvordan vet du at meldingen faktisk kom fra din venn Alice og ikke din fiende Eve, later til å være Alice? Det er der digitale signaturer kommet i. Før kryptere meldingen, Alice signerer den med henne
private nøkkel. Når du mottar meldingen og dekryptere den, kan du bekrefte at det kom fra Alice ved å sammenligne signaturen med den offentlige nøkkelen du vet
tilhører Alice.

Så lenge både du og Alice gjør en god jobb med å holde de private nøklene godt beskyttet, er denne kommunikasjonen trygg på å forbli sikre og tukle en selvfølge.

Problemet tillits

Som jeg sa tidligere, "tillit" er den vissheten om at den offentlige nøkkelen vi har for Alice faktisk tilhører Alice. Hvis du og Alice bor i samme hus eller nabolag, er lett å etablere en slik tillit -. Du møter for kaffe og utveksle offentlige nøkler ansikt til ansikt

Men hva hvis du trenger å kommunisere sikkert med Chloe ? Hun er Alice gode venn, men hun bor på den andre kysten og dere to har aldri møtt. Eller hva om Chloe inviterer Dharma og Ezri, som igjen inviterer Finn og Gabby? Hvordan kan du stole på en nøkkel av en person du aldri har møtt?

Det er der X.509 og OpenPGP divergere i sin tilnærming til å løse dette problemet. X.509 etablerer et system av betrodde myndigheter. Say, alle på Vestlandet må ha sin nøkkel verifisert (signert) av Alice før det er til å stole på, mens alle på østkysten må ha sin nøkkel signert av Chloe. Alice og Chloe Kryss signere egne nøkler, slik at du ender opp med en tillit hierarki. Så lenge du stoler Alice, kan du trygt kommunisere med alle andre. Dette er enkel og grei, men den har en viktig ulempe. Evil Eve trenger bare å få tilgang til Chloe private nøkkel for å infiltrere hele organisasjonen

OpenPGP besluttet å velge en annen tilnærming -. Stedet for å ha utpekt klareringsmyndighetene (CAS) som Alice og Chloe, hvem < em> alle
må stole for CA hierarkiet for å arbeide, lar OpenPGP deg som bruker, bestemmer hvem du stoler på, og hvor mye.

Den resulterende rammeverket kalles "Web of Trust». La oss se hvordan det fungerer i mer detalj.

Alice, Bob og Anne d'Autriche

kryptografer vanligvis bruker kallenavn som "Alice, Bob og Eva" for å beskrive forholdet mellom venner og snoker, som er det jeg har gjort ovenfor. Men hvis vi kommer til å være ute på ekspansive duk av tillit, skal vi raskt bli forvirret. For å hjelpe illustrere ting, jeg kommer til å få inn de store kanonene, eller rettere sagt, de store musk - nemlig de tre musketerer. Ikke bekymre deg hvis du ikke helt husker hele tomten. Jeg skal friske opp hukommelsen som vi går sammen.

Direkte tillit relasjoner

I begynnelsen kommer d'Artagnan i Paris på en gul hest og deretter raskt plukker en kamp med tre andre personer :

M. de la Fère (Athos)

M. du Vallon (Porthos)

M. d'Aramitz (Aramis)

I midten av deres duell, blir de overfalt av vaktene som prøver å arrestere dem for ulovlig duellering, så de fire forene sine krefter og i fellesskap bekjempe vaktene, bli nære venner i prosessen.

For å forsegle deres vennskap, bestemmer de seg for å utveksle sine offentlige nøkler. De har også signere
hver-andre offentlige nøkkel som en måte å si at "jeg, d'Artagnan, gå god at denne nøkkelen tilhører Porthos ved å legge signaturen min til det."

Her er hvordan som ser på kommandolinjen:

 Dartagnan [~] $ gpg --edit-key porthospub 2048R /51CDD613 opprettet: 2014-01-23 utløper: aldri bruk: SC tillit: ukjent gyldighet: ukjent [unknown] (1). M. du Vallon (Porthos) gpg > signpub 2048R /51CDD613 Laget: 2014-01-23 utløper: aldri bruk: SC tillit: ukjent gyldighet: ukjent Primær Fingeravtrykket: 611C 0C6D 9B61 A091 1 439 EE83 B9AE 772F 51CD D613 M. du Vallon (Porthos) Er du sikker på at du vil å signere denne nøkkelen med yourkey "Charles d'Artagnan (d'Artagnan)" (CD3B1D5E) Virkelig signere? (y /N) y 
Forstå nøkkelen gyldighet

Nå hvis vi ser på nøkkelen som hører til Porthos, står det følgende:

 Dartagnan [~] $ gpg --edit- Nøkkelen porthospub 2048R /51CDD613 opprettet: 2014-01-23 utløper: aldri bruk: SC tillit: unknown gyldighet: fulle [unknown] (1). M. du Vallon (Porthos) 

Det er viktig å forstå forskjellen mellom "tillit" og "gyldigheten", som de er to forskjellige sider av samme sak. I GnuPG språkbruk, "validitet" representerer vår sikkerhet at de nøkkelen faktisk tilhører
til Porthos. I ovennevnte produksjon, "gyldighet: full" forteller d'Artagnan at han kan være helt sikker på at det er Porthos "-tasten (i dette tilfellet, fordi d'Artagnan selv signert det). Men hva er betydningen av "tillit: unknown"

I dette tilfellet "tillit" (også kalt "eier tillit") er hvor mye d'Artagnan stoler Porthos å kontrollere andres identiteter (ved å se på pass? , spør deres felles venner til å gå god for dem, etc). La oss si d'Artagnan fullt stoler Porthos å gjøre en god jobb bekrefte folks identiteter før han signerer nøklene sine. Han endringer Porthos-tasten nede og sett eieren tillit til "full":

 Dartagnan [~] $ gpg --edit-key porthospub 2048R /51CDD613 opprettet: 2014-01-23 utløper: aldri bruk: SC tillit: ukjent gyldighet: fulle [unknown] (1). M. du Vallon (Porthos) gpg > trustpub 2048R /51CDD613 opprettet: 2014-01-23 utløper: aldri bruk: SC tillit: unknown gyldighet: fulle [full] (1). M. du Vallon (Porthos) Ta bestemme hvor langt du stoler på denne brukeren til riktig verifisere andre brukeres tastene (ved å se på pass, sjekker fingeravtrykk fra forskjellige kilder, etc.) 1 = vet jeg ikke, eller vil ikke si 2 = Jeg stoler ikke på 3 = Jeg stoler marginalt 4 = jeg stoler fullt 5 = Jeg stoler slutt M = tilbake til hoved menuYour avgjørelsen? 4pub 2048R /51CDD613 opprettet: 2014-01-23 utløper: aldri bruk: SC tillit: i full gyldighet: fulle [full] (1). M. du Vallon (Porthos) Vær oppmerksom på at den viste nøkkelen gyldigheten ikke nødvendigvis correctunless du starter program.gpg > q 

Etter d'Artagnan signerer nøklene til Athos, Porthos og Aramis, er hans Web of Trust veldig direkte og kan vises i en enkel graf.


Når Porthos sender i løpet av blankett, som er å bli d'Artagnan nye betjent, bruker d'Artagnan nettet av tillit for å bekrefte at blankett er den han sier han er, fordi hans nøkkel bjørner Porthos 'signatur:

 Dartagnan [~] $ gpg --list-sigs planchetpub 2048R /30EA3A2A 2014-01-23uid Planchetsig 3 30EA3A2A 2014-01-23 Planchetsig 51CDD613 2014-01-23 M. du Vallon (Porthos) 

Og GnuPG forteller ham at nøkkelen er fullt gyldig :

 Dartagnan [~] $ gpg --edit-key planchetpub 2048R /30EA3A2A opprettet: 2014-01-23 utløper: aldri bruk: SC tillit: unknown gyldighet: fulle [full] (1). Blankett 

Dette er nett av tillit i aksjon. Siden d'Artagnan stoler Porthos å kontrollere folks identiteter før signering nøkler, når Planchet kommer sammen, vet d'Artagnan han er, faktisk, Planchet -. Fordi Porthos har gikk god for ham ved å signere sin nøkkel

Innstilling Eieren tillit


Du vil merke at vi igjen har "tillit: unknown" for Planchet - dette er fordi vi ikke har tilordnet eier tillit til sin nøkkel ennå. Som en generell regel, er "gyldighet" noe vi regner fra signaturer på personens nøkkel, mens "tillit" er noe vi må tilordne hver tast oss selv for at det å si noe annet enn "ukjent" (unntatt i tilfelle av Trust-signaturer, men vi vil gå over det i neste artikkel).

Hver gang vi registrerer noens nøkkel, er det en god praksis å også angi eier-tillit, slik at det i fremtiden kan vi bruke denne tillitsforhold til å bekrefte identiteten til andres nøkler. I tilfelle av Planchet, bestemmer d'Artagnan at han bare stoler ham marginalt
, i hvert fall for tiden - tross alt, hadde de bare møtte:

 gpg > trustpub 2048R /30EA3A2A opprettet: 2014-01-23 utløper: aldri bruk: SC tillit: unknown gyldighet: fulle [full] (1). PlanchetPlease bestemmer hvor langt du stoler på denne brukeren til riktig verifisere andre brukeres tastene (ved å se på pass, sjekker fingeravtrykk fra forskjellige kilder, etc.) 1 = Jeg vet ikke, eller vil ikke si 2 = Jeg stoler ikke på 3 = Jeg stoler marginalt 4 = jeg stoler fullt 5 = Jeg stoler slutt m = tilbake til hoved menuYour avgjørelsen? 3pub 2048R /30EA3A2A opprettet: 2014-01-23 utløper: aldri bruk: SC tillit: marginal gyldighet: fulle [full] (1). PlanchetPlease oppmerksom på at vist nøkkelen gyldigheten ikke nødvendigvis correctunless du starter program.gpg > q 

Han gjør det samme for alle sine venners valets - han setter sin lit til Bazin, i Grimaud og Mousqueton nøkler til «marginale». Så nå d'Artagnan web tillits ser ut som det er i grafen under. Fargen på boksene viser tillit d'Artagnan tildeler hver tast (rød er full tillit, mens blått er marginal tillit), og pilene viser som signerte hvis nøkkel.



Forståelse marginal tillit

Hva skjer når vi finner en nøkkel signert av noen som vi bare stole marginalt? La oss si at en dag d'Artagnan møter sin utleier, M. Bonacieux, og den eneste signatur på M. Bonacieux nøkkel er ved Planchet? Her er gpg økt:

 dargagnan [~] $ gpg --list-sigs bonacieuxpub 2048R /D672573B 2014-01-28uid M. Bonacieuxsig 3 D672573B 2014-01-28 M. Bonacieuxsig 99CCAC09 2014-01- 28 Planchetdargagnan [~] $ gpg --edit-key bonacieuxpub 2048R /D672573B opprettet: 2014-01-28 utløper: aldri bruk: SC tillit: unknown gyldighet: marginal [marginal] (1). M. Bonacieux 


Som du kan se, gyldigheten er merket som "marginal" ønsker er gpg måte å si at det bare er marginal forsikring om at denne "M. Bonacieux" er faktisk som han sier han er. Faktisk, hvis d'Artagnan mottar en gpg-signert melding fra M. Bonacieux og kjører "gpg --verify" på den, vil den returnere følgende resultat:

 Dartagnan [~] $ gpg --verify message-fra-bonacieux.ascgpg: Signatur laget ti 28 januar 2014 14:10:41 EST bruker RSA nøkkel ID D672573Bgpg: God signatur fra «M. Bonacieuxgpg: ADVARSEL: Denne tasten ikke er sertifisert med tilstrekkelig troverdige signaturer gpg: Det er ikke sikker på at signaturen tilhører owner.Primary Fingeravtrykket: BE8B 2FE0 C433 79A4 7A6B C045 F04F 9E3D D672 573B 

Hvis vi representerer tillitsforhold som en graf, vil vi markere M. Bonacieux eske grå, fordi det er ikke nok underskrifter for å oppnå full gyldighet.

For å styrke nøkkelen gyldighet, må vi enten ha noen andre som vi fullt ut stoler på til å signere sin nøkkel, eller vi må finne to andre personer med marginal tillit, så det er totalt 3 marginal-trust signaturer på M. Bonacieux nøkkel Her er hva som skjer når Mousqueton og Bazin både legge sine underskrifter til M. Bonacieux nøkkel.

 Dartagnan [~] $ gpg --verify melding-fra -bonacieux.ascgpg: Signatur laget ti 28 januar 2014 14:10:41 EST bruker RSA nøkkel ID D672573Bgpg: God signatur fra «M. Bonacieux "Primary Fingeravtrykket: BE8B 2FE0 C433 79A4 7A6B C045 F04F 9E3D D672 573Bdargagnan [~] $ gpg --edit-key bonacieuxpub 2048R /D672573B opprettet: 2014-01-28 utløper: aldri bruk: SC tillit: unknown gyldighet: fulle [ ,,,0],full] (1). M. Bonacieux 

Fordi M. Bonacieux har nå tre marginalt-klarerte signaturer på sin nøkkel, er hans nøkkel gyldighet nå merket som "full".



oppsummering

Dette er i utgangspunktet alt som er å forstå sentrale begreper i OpenPGP internett av tillit til oppsummering.

Du kan gå god for noens identitet ved å signere sin nøkkel
Key "gyldighet" er vissheten om vi har at nøkkelen i spørsmålet tilhører den personen vi ønsker å kommunisere. Det er beregnet
basert på eier tillit og antall underskrifter på tasten.

Key "tillit" må settes av deg, brukeren
, for hver tast på nøkkelknippet ditt før det legges i nettet av tillit beregninger.

Tillit kan være hel eller marginal. Det tar bare ett fullt klarert signatur for å markere en tast som "gyldig", men minst tre marginalt klarert knappene til å gjøre det samme.

Webs av tillit raskt vokse ganske stor og kompleks. I neste avdrag, ser vi inn noen mekanismer OpenPGP-hjelp samfunnet har utviklet for å bidra til å gjøre tillit til ledelsen enklere -. Nemlig, vil vi snakke om keyservers og delegert tillit

Les del 2, "PGP Web of Trust. Delegated Tillit og Keyservers "