Nøgle distributionsprotokol

Nøgledistributionsprotokoller er en  aftalt sekvens af brugerhandlinger ( kryptografisk protokol ) for at skabe en sikker kommunikationskanal, som består i at generere og udveksle sessionsnøgler og godkende meddelelser.

Hovedopgaven for nøgledistributionsprotokoller er udviklingen af ​​deltagerne (vi vil kalde dem i fremtiden, som altid, Alice og Bob ) en fælles nøgle. Samtidig skal både Bob og Alice være sikre på, at forbindelsen er med samtalepartneren, og ikke med en ubuden gæst eller en galionsfigur. De fleste af disse protokoller er baseret på eksistensen af ​​et betroet center (herefter benævnt Trent), og det antages, at Trent allokerer en hemmelig nøgle til hver bruger, så inden protokollen starter, er alle nøglerne allerede i brugerne.

Alle nøgledistributionsprotokoller er på en eller anden måde opdelt i følgende kategorier (overlappende):

Symmetriske protokoller

Kryptografiske notationer, der bruges i godkendelses- og nøgleudvekslingsprotokoller
Identifikatorer for Alice ( Alice ), initiativtageren til sessionen
Identifikator for Bob ( Bob ), den side, hvorfra sessionen er etableret
Identifikator for Trent ( Trent ), en betroet mellempart
Alice, Bob og Trents offentlige nøgler
Alice, Bob og Trents hemmelige nøgler
Kryptering af data med Alices nøgle, eller Alice og Trents fælles nøgle
Kryptering af data med Bobs nøgle eller Bob og Trents fælles nøgle
Datakryptering med hemmelige nøgler af Alice, Bob (digital signatur)
Sessionssekvensnummer (for at forhindre gentagelsesangreb)
Tilfældig sessionsnøgle, der skal bruges til symmetrisk datakryptering
Kryptering af data med en midlertidig sessionsnøgle
Tidsstempler føjet til beskeder af henholdsvis Alice og Bob
Tilfældige tal ( nonce ), der blev valgt af henholdsvis Alice og Bob

Hovedartikel: Symmetriske kryptosystemer

Wide Mouth Frog

Wide-Mouth Frog- protokollen  er den enkleste nøglehåndteringsprotokol. Det giver to abonnenter mulighed for at etablere en fælles sessionsnøgle til sikker kommunikation mellem sig [1] . Et betroet center deltager i protokollen .

Beskrivelse af protokollen [2]
  • Alice ønsker at etablere en sessionsnøgle med Bob. Hun starter med at danne:

1. K - tilfældig sessionsnøgle

2. T A  - tidsstempel

og sender til Trent (betroet center) og tilføjer sit navn:

Mo = A , E A (TA , B, K).

  • Trent, ved hjælp af den hemmelige nøgle, der er delt med Alice, dekrypterer beskeden og kontrollerer, at tidsstemplet TA og Bobs ID er korrekte. Hvis alt er godt, dannes det:

TB er et  nyt tidsstempel (som kan være forskelligt fra TA ) og sendes til Bob

M 1 \u003d E B (TB , A, K).

  • Bob modtager beskeden, dekrypterer den med nøglen, der er delt med Trent, og tjekker tidsstemplet TA og Alices ID. Hvis beskeden bestod testen, deler Bob nu en nøgle med Alice.

Needham-Schroeder Protocol

Needham - Schroeder delt nøgle-protokollen er vigtig primært af historiske årsager. Det har været grundlaget for mange pålidelige centernøgledistributionsprotokoller siden 1978. Herunder Kerberos- og Otway-Rees-protokollerne (beskrevet nedenfor) stammer fra denne protokol.

Denne protokol er et eksempel på en protokol, der ikke er afhængig af tidsstempler og samtidig giver generering og bekræftelse af nøglen.

Beskrivelse af driften af ​​Needham-Schroeder-protokollen Situation før starten af ​​protokollen
  • 3 skuespillere: klienter Alice og Bob, der ønsker at få en nøgle til at kommunikere med hinanden, Trent er et betroet center.
  • Alice og Bob har hemmelige nøgler henholdsvis E A og E B til at kommunikere med Trent.
  • Alice vælger N A , Bob vælger N B.
Protokoldriftsperiode

Mo = A , B, NA .

  • Efter at have modtaget en besked fra Alice, danner Trent en todelt besked. I den første del sætter han N A , Bobs identifikator, samt den nye nøgle K, som er hvad Alice og Bob ønsker at få. Den anden del af beskeden indeholder også den nye nøgle K og Alices ID, men den er krypteret med Trent og Bobs hemmelige nøgle E B . Hele beskeden er krypteret med Alice og Trents private nøgle E A . og sendt til Alice.

M1 = E A (NA , B , K, E B (K, A)).

  • Alice dekrypterer beskeden. Da hun fandt N A i beskeden , er hun overbevist om, at hun har talt med Trent. Hun er fuldstændig ude af stand til at læse den anden del, krypteret af E B , og sender den til Bob.

M2 = EB (K, A) .

  • Bob modtager og dekrypterer beskeden, tager en ny nøgle K frem og danner en besked til Alice, hvori han fortæller hende sit nummer NB , krypteret med den nye nøgle.

M 3 \u003d E K (NB ) .

  • Alice modtager beskeden, trækker N B ud , ændrer den og sender den tilbage til Bob.

M 4 = E K (N B - 1) [3] .

  • Alice og Bob deler nøglen K.

Kerberos-protokol

Kerberos -protokollen er et distribueret godkendelsessystem (godkendelse), der gør det muligt for en proces (klient), der kører på vegne af en bruger, at bevise sin identitet til en server uden at sende data over netværket , hvilket kan give en angriber mulighed for efterfølgende at efterligne en bruger. Kerberos håndhæver integriteten og fortroligheden af ​​data, der udveksles mellem klient og server efter behov.

Kerberos blev udviklet i midten af ​​80'erne af Athena -projektet ved MIT .

Fordi brugen af ​​Kerberos har spredt sig til forskellige miljøer, er ændringer blevet nødvendige for at understøtte nye brugsmønstre. For at imødekomme disse behov begyndte udviklingen af ​​Kerberos version 5 ( Kerberos V5 ) i 1989 . Mens version 4 stadig kører på mange websteder, betragtes version 5 som Kerberos-standarden [4] .

Jobbeskrivelse af Kerberos Situation før starten af ​​protokollen
  • 3 skuespillere: Alice er en klient, Bob er en server, som Alice ønsker at bevise sin identitet til, Trent er et betroet center.
  • Alice og Bob har hemmelige nøgler henholdsvis E A og E B til at kommunikere med Trent.
  • Alice vælger et tal N A og sætter også tidsstemplet TA i henhold til hendes ur.
  • t er den gyldighedsperiode (levetid), som Trent har valgt.
Protokoldriftsperiode
  • Alice, der starter protokollen, sender 3 ting i almindelig tekst til Trent: hendes og Bobs identifikatorer, samt det valgte nummer NA .

Mo = A , B, NA .

  • Trent, der har modtaget en besked fra Alice, genererer en nøgle K til yderligere kommunikation mellem Alice og Bob og sender en todelt besked tilbage til Alice. Den første del er krypteret med Alices private nøgle og indeholder K, N A , gyldighedsperiode t og Bobs ID. Den anden del er ukendt for Alice – den er krypteret med Bobs hemmelige nøgle, og den indeholder K, t og Alices identifikator.

M1 = EA ( K , NA , t, B), EB ( K, A , t).

  • Alice dekrypterer den første del af beskeden modtaget fra Trent, modtager nøglen K og opretter en ny pakke til at sende til Bob, som inkluderer Alices identifikator, t, og tidsstemplet TA . Derefter sender Alice en todelt besked til Bob: den første del er den, der kom fra Trent, og den anden del er skabt af Alice.

M2 = EB (K, A, t), EK (A, TA , t ).

  • Bob modtager beskeden. Efter at have dekrypteret den første del, tager han en ny nøgle K ud, og ved hjælp af den dekrypterer han den anden del. For at bekræfte over for Alice, at han kender den nye nøgle K, sender Bob hende en besked med et tidsstempel krypteret med den nye nøgle K.

M 3 \u003d E K (TA ) .

  • Alice sørger for, at Bob er Bob. Følgende ræsonnement gælder her: Bob kunne kun dekryptere en besked fra Alice med et tidsstempel, hvis han kendte nøglen K. Og han kunne kun kende nøglen K, hvis han kendte E B . Og da dette er Bob og Trents hemmelige nøgle, er den person, der sendte beskeden til Alice, Bob.
  • Alice og Bob er klar til at udveksle beskeder med tasten K [5] .
Tilføjelser Kerberos-billetten

I speciallitteratur kaldes budskabet E B (K, A, t) ofte for en billet. Hver gang den imaginære Alice beviser sin identitet over for den imaginære Bob (antallet af brugere på netværket kan trods alt være meget større end 2), stoler hun på, at Trent ( det betroede center ) genererer en ny hemmelig nøgle og afleverer den sikkert til begge brugere. Den nye hemmelige nøgle K kaldes sessionsnøglen , og det er Kerberos-billetten, der bruges til at levere den til Bob. Kerberos Ticket er et certifikat udstedt af en betroet myndighed og krypteret med E B  , Bob og Trents offentlige nøgle. Billetten indeholder blandt andet en tilfældig sessionsnøgle, der vil blive brugt til at autentificere Alice af Bob, navnet på den deltager (i dette tilfælde Alice), som sessionsnøglen blev udstedt til, og en udløbsdato, hvorefter sessionsnøglen er ikke længere gyldig. Dette certifikat (Kerberos Ticket) sendes ikke direkte til Bob, men sendes i stedet til klienten (Alice), som sender det til Bob til verifikation som en del af anmodningen. Da certifikatet er krypteret på serveren med en nøgle, der kun er kendt af Trent og Bob, er det ikke muligt at ændre certifikatet (Kerberos Ticket) for klienten (Alice) [4] .

Otway-Riis-protokollen

Otway - Rees-protokollen er en symmetrisk nøgleprotokol, der giver dig mulighed for at distribuere nøgler uden at bruge tidsstempler .

Igen, før vi starter protokollen, har vi:

  • Trusted Center Trent
  • 2 brugere: Alice og Bob som modtog E A og E B
  • Alice vælger N og N A , Bob vælger N B.
Beskrivelse af protokollen [6]
  • Alice danner en besked til Bob, hvori hun sender N, A, B i klartekst, samt samme N, A, B med N A , krypteret med nøglen E A delt med Trent .

M 0 \u003d N, A, B, E A (NA , N, A , B)

  • Bob modtager en besked, hvoraf den anden del er fuldstændig uoverskuelig for ham, tilføjer en linje mere til den, som han krypterer med nøglen E B og sender til Trent.

M 1 \u003d N, A, B, E A (NA , N, A , B), E B (N B , N, A, B).

  • Trent, der kender begge nøgler, kan dekryptere Alices og Bobs beskeder. Nu er hans mål at bekræfte, at han er Trent og danne K-nøglen for yderligere kommunikation mellem Alice og Bob.

Trent genererer en nøgle K og sender en besked til Bob.

M 2 \u003d E A (NA , K ), E B (NB , K).

  • Den første del, der er krypteret med Alices nøgle, kan Bob slet ikke dekryptere, og han dekrypterer roligt den anden del og sørger, når man tæller N B , sikre sig, at beskeden kom fra Trent. Så modtager han den genererede nøgle K. Nu er Bob klar til at kommunikere med Alice, det er kun tilbage at levere nøglen til hende. Bob sender den første del af en besked fra Trent til Alice.

M 3 \u003d E A (NA , K ).

  • Alice modtager beskeden, tjekker, at den er fra Trent (NA ) , og læser nøglen K.
  • Alice og Bob er klar til at kommunikere.
Hvad er resultatet

Yndefuldt får vi for 4 beskeder:

  • Bob er sikker på, at han talte med Trent: Bob sendte ham nummeret N B krypteret med den hemmelige nøgle E B og modtog endnu en besked tilbage, der indeholdt det samme nummer og krypteret med den samme nøgle.
  • Alice er til gengæld også sikker på, at Bob talte med Trent, fordi hun sendte sit nummer NA , krypteret med nøglen EA , og modtog endnu en besked tilbage, men som også indeholdt NA og krypteret EA .
  • Alice og Bob har en fælles nøgle K.
Problem
  • Alice kan ikke være sikker på, at Bob er Bob. Hun er kun sikker på, at hun kommunikerer med en bestemt person, der kan tage til Trent. For at løse dette problem i trin 4 kan Bob sende Alice ikke kun E A (NA , K ), men også for eksempel E K (NA , N B ) , og derved bevise, at han kender nøglen K. Og Alice til gengæld kan svare Bob E K (N B ), hvilket også beviser, at han kender nøglen K [5] .

Asymmetriske protokoller

Hovedartikel: Offentlig nøgle kryptosystem

Needham-Schroeder Protocol

Needham - Schroeder public-key protokol blev offentliggjort på samme måde som dens symmetriske fætter i 1978. Dette er en meget brugt model i studiet af formelle metoder til verificering af kryptografiske protokoller. Denne popularitet kommer tydeligvis fra en af ​​de mest succesrige historier på dette område - i 1994 gennemgik protokollen et vellykket gentagelsesangreb 16 år efter dens offentliggørelse. Angrebet blev udført af David G. Lowe  , en canadisk computerforsker [ 7] .

På Worcester Polytechnic Institute 's hjemmeside kan du finde den originale artikel udgivet af David G. Lowe [8]

Denne protokol giver gensidig overførsel af nøgler k A og k B , samt gensidig autentificering.

Beskrivelse af, hvordan protokollen fungerer Situation før arbejdet påbegyndes
  • Alice og Bob har offentlige kodningsprocedurer P A og P B .
  • Alice og Bob ønsker gensidigt at identificere hinanden med tre beskeder og ved hjælp af offentlige nøgler.
Protokoldriftsperiode
  • Alice vælger sin del af nøglen, k A , og danner en besked til Bob, hvori hun sætter sin identifikator og k A . Hele beskeden krypteres med Bobs offentlige nøgle P B og sendes til ham.

Mo = PB (A , kA ) .

  • Bob har dekrypteret beskeden og ved nu, at Alice vil tale med ham, og hun vil bruge nøglen k A til at kommunikere . Bob vælger sin del af nøglen, k B , og sender Alice en besked bestående af to nøgler k A og k B , krypteret med Alices offentlige nøgle. Således bekræfter Bob over for Alice, at han modtog en del af hendes nøgle KA .

M1 = PA ( ka , kB ) .

  • Nu er det Alices tur til at bevise over for Bob, at hun er Alice. For at gøre dette skal den være i stand til at dekryptere beskeder krypteret med nøglen P A . Det, hun gør godt, er, at hun dekrypterer beskeden fra Bob, tager k A derfra og sender Bob en besked , der indeholder hans nøgle k B.

M 2 \u003d P B (k B ).

  • Som et resultat, på beskedstadiet M 1 , er Alice sikker på, at Bob er Bob, og Bob kender hele nøglen. Og på beskedstadiet M 2 er Bob sikker på, at han talte med Alice, og hun kender hele nøglen. [5]

De mest kendte angreb på kryptografiske protokoller [9]

Substitution

Substitution (eng. Impersonation) - et forsøg på at erstatte en bruger med en anden. Den ubudne gæst, der taler på vegne af en af ​​parterne og fuldstændig efterligner dens handlinger, modtager som svar beskeder i et bestemt format, der er nødvendige for at forfalske individuelle trin i protokollen.

Modforanstaltninger er:

  • hemmeligholdelse for fjendens oplysninger, der bestemmer identifikationsalgoritmen;
  • brug af forskellige meddelelsesformater transmitteret i forskellige trin af protokollen;
  • indsættelse af særlige identifikationsmærker og beskednumre i dem. I protokoller, der bruger en tredjepart, er angreb baseret på substitution af en betroet server mulige.

For eksempel handler en af ​​parterne, der har et tillidsfuldt forhold til serveren, på dens vegne, erstatter sin udvekslingstrafik med andre parter og får som et resultat mulighed for at afsløre værdierne af nøglerne, der genereres af centret.

Gentag angreb

Genafspil angreb - genbrug af en besked eller en del af den, der tidligere er transmitteret i den aktuelle eller forrige session i den aktuelle session af protokollen .

For eksempel kan gentransmission af information fra en tidligere udført autentificeringsprotokol resultere i en vellykket genidentifikation af den samme eller en anden bruger.

I nøgleoverførselsprotokoller bruges dette angreb ofte til at genindføre en tidligere brugt sessionsnøgle - et friskhedsangreb.

Modforanstaltninger består i at sikre sessionens integritet og umuligheden af ​​at indsætte unødvendige beskeder i den. For at gøre dette skal du indsætte tidsstempler eller tilfældige tal i overførte meddelelser såvel som part-id'er.

Kombinationsangreb

Et interleaving-angreb er en substitution eller anden bedragerimetode, der bruger en kombination af data fra tidligere udførte protokoller, inklusive protokoller, der tidligere er pålagt af fjenden.

Modforanstaltningsmetoden er at sikre integriteten af ​​protokolsessioner og individuelle meddelelser.

Noter

  1. Pablo Giambiagi. Hemmeligholdelse for mobile implementeringer af sikkerhedsprotokoller. - 2001. - S. 36 . — ISSN 1403-5286 .
  2. John Kelsey, Bruce Schneier, David Wagner. Protokolinteraktioner og det valgte protokolangreb. - 1997. - S. 8 . — ISSN 0302-9743 .
  3. Alexey Lisitsa. Needham-Schroeder-godkendelsesprotokol og dens formelle analyse . Dato for adgang: 15. december 2014. Arkiveret fra originalen 7. marts 2016.
  4. ↑ 1 2 B. Clifford Neuman og Theodore Ts'o. [ http://www.isi.edu/div7/publication_files/kerberos_an_auth.htm Kerberos: An Authentication Service for Computer Networks] (dødt link) . IEEE Communications Magazine (1994). Hentet 15. december 2014. Arkiveret fra originalen 26. maj 2013. 
  5. ↑ 1 2 3 Sergey Nikolenko. Nøgler og protokoller til dem (Efterår 2009). Dato for adgang: 14. december 2014. Arkiveret fra originalen 14. december 2014.
  6. Dr. Geoff Hamilton. Nøgleudvekslings- og godkendelsesprotokoller (utilgængeligt link) . Dato for adgang: 14. december 2014. Arkiveret fra originalen 14. december 2014. 
  7. Olivier Michel. En analyse af Needham-Schroeder Public-Key Protocol med MGS . Dato for adgang: 15. december 2014. Arkiveret fra originalen 8. marts 2016.
  8. Gavin Lowe. Et angreb på Needham-Schroeder public-key authentication protokol (1995). Hentet 15. december 2014. Arkiveret fra originalen 16. december 2014.
  9. A.V. Cheryomushkin. Kryptografiske protokoller: nøglefunktioner og sårbarheder (november 2009).

Litteratur

  • Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone. Håndbog i anvendt kryptografi. - 1996. - S. 489-534. — 816 s. - ISBN 0-8493-8523-7 .

Links