Nyckeldistributionsprotokoll

Nyckeldistributionsprotokoll är en  överenskommen sekvens av användaråtgärder ( kryptografiskt protokoll ) för att skapa en säker kommunikationskanal, som består i att generera och utbyta sessionsnycklar och autentisering av meddelanden.

Huvuduppgiften för nyckeldistributionsprotokoll är utvecklingen av deltagarna (vi kommer att kalla dem i framtiden, som alltid, Alice och Bob ) en gemensam nyckel. Samtidigt måste både Bob och Alice vara säkra på att kopplingen är med samtalspartnern, och inte med en inkräktare eller galjonsfigur. De flesta av dessa protokoll är baserade på att det finns ett pålitligt center (nedan kallat Trent), och det antas att Trent allokerar en hemlig nyckel till varje användare, så innan protokollet startar finns alla nycklar redan i användarna.

Alla nyckeldistributionsprotokoll är på något sätt indelade i följande kategorier (överlappande):

Symmetriska protokoll

Kryptografiska notationer som används i autentiserings- och nyckelutbytesprotokoll
Identifierare av Alice ( Alice ), initiativtagaren till sessionen
Identifierare för Bob ( Bob ), den sida från vilken sessionen etableras
Identifierare för Trent ( Trent ), en pålitlig mellanpart
Alice, Bob och Trents publika nycklar
Hemliga nycklar till Alice, Bob och Trent
Kryptering av data med Alices nyckel, eller Alice och Trents gemensamma nyckel
Kryptera data med Bobs nyckel eller Bob och Trents gemensamma nyckel
Datakryptering med hemliga nycklar från Alice, Bob (digital signatur)
Sessionssekvensnummer (för att förhindra reprisattacker)
Slumpmässig sessionsnyckel som ska användas för symmetrisk datakryptering
Krypterar data med en tillfällig sessionsnyckel
Tidsstämplar har lagts till i meddelanden av Alice respektive Bob
Slumptal ( nonce ) som valdes av Alice respektive Bob

Huvudartikel: Symmetriska kryptosystem

Wide Mouth Frog

Wide -Mouth Frog-  protokollet är det enklaste nyckelhanteringsprotokollet. Det tillåter två abonnenter att upprätta en gemensam sessionsnyckel för säker kommunikation sinsemellan [1] . Ett pålitligt center deltar i protokollet .

Beskrivning av protokollet [2]
  • Alice vill upprätta en sessionsnyckel med Bob. Hon börjar med att bilda:

1. K - slumpmässig sessionsnyckel

2. T A  - tidsstämpel

och skickar till Trent (pålitligt center) och lägger till hans namn:

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

  • Trent, med hjälp av den hemliga nyckeln som delas med Alice, dekrypterar meddelandet och kontrollerar att tidsstämpeln TA och Bobs ID är korrekta. Om allt är bra bildas det:

TB är en  ny tidsstämpel (som kan skilja sig från TA ) och skickas till Bob

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

  • Bob tar emot meddelandet, dekrypterar det med nyckeln som delas med Trent och kontrollerar tidsstämpeln TA och Alices ID. Om meddelandet klarade testet delar Bob nu en nyckel med Alice.

Needham-Schroeder-protokollet

Needham -Schroeder-protokollet med delad nyckel är viktigt främst av historiska skäl. Det har varit grunden för många betrodda centralnyckeldistributionsprotokoll sedan 1978. Inklusive Kerberos- och Otway-Rees-protokollen (beskrivs nedan) har sitt ursprung i detta protokoll.

Detta protokoll är ett exempel på ett protokoll som inte är beroende av tidsstämplar och som samtidigt ger generering och bekräftelse av nyckeln.

Beskrivning av hur Needham-Schroeder-protokollet fungerar Situation före protokollets start
  • 3 skådespelare: kunderna Alice och Bob som vill få en nyckel för att kommunicera med varandra, Trent är ett pålitligt center.
  • Alice och Bob har hemliga nycklar E A respektive E B för att kommunicera med Trent.
  • Alice väljer N A , Bob väljer N B .
Protokolldriftperiod
  • Så Alice startar protokollet, bildar ett meddelande som består av hennes och Bobs identifierare, samt det valda numret N A , och skickar det till Trent.

Mo = A , B, NA .

  • Efter att ha fått ett meddelande från Alice, bildar Trent ett tvådelat meddelande. I den första delen lägger han N A , Bobs identifierare, samt den nya nyckeln K, vilket är vad Alice och Bob vill få. Den andra delen av meddelandet innehåller också den nya nyckeln K och Alices ID, men den är krypterad med Trent och Bobs hemliga nyckel E B . Hela meddelandet är krypterat med Alice och Trents privata nyckel E A . och skickas till Alice.

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

  • Alice dekrypterar meddelandet. När hon hittar N A i meddelandet är hon övertygad om att hon har pratat med Trent. Hon är helt oförmögen att läsa den andra delen, krypterad av E B , och skickar den till Bob.

M2 = EB ( K , A).

  • Bob tar emot och dekrypterar meddelandet, tar fram en ny nyckel K och skapar ett meddelande till Alice, där han berättar för henne sitt nummer NB , krypterat med den nya nyckeln.

M 3 \u003d E K (N B ).

  • Alice tar emot meddelandet, drar ut N B , ändrar det och skickar tillbaka det till Bob.

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

  • Alice och Bob delar nyckeln K.

Kerberos-protokoll

Kerberos- protokollet är ett distribuerat autentiseringssystem (autentisering) som tillåter en process (klient) som körs på uppdrag av en användare att bevisa sin identitet för en server utan att skicka data över nätverket , vilket kan tillåta en angripare att senare utge sig för att vara en användare. Kerberos upprätthåller integriteten och sekretessen för data som utbyts mellan klient och server vid behov.

Kerberos utvecklades i mitten av 80-talet av Athena -projektet vid MIT .

Eftersom användningen av Kerberos har spridit sig till olika miljöer har förändringar blivit nödvändiga för att stödja nya användningsmönster. För att möta dessa behov började utvecklingen av Kerberos version 5 ( Kerberos V5 ) 1989 . Medan version 4 fortfarande körs på många webbplatser anses version 5 vara Kerberos-standarden [4] .

Arbetsbeskrivning för Kerberos Situation före protokollets start
  • 3 skådespelare: Alice är en klient, Bob är en server som Alice vill bevisa sin identitet till, Trent är ett pålitligt center.
  • Alice och Bob har hemliga nycklar E A respektive E B för att kommunicera med Trent.
  • Alice väljer ett nummer N A och ställer även in tidsstämpeln T A efter hennes klocka.
  • t är giltighetsperioden (livslängden) som valts av Trent.
Protokolldriftperiod
  • Alice, som startar protokollet, skickar 3 saker i klartext till Trent: hennes och Bobs identifierare, samt det valda numret N A .

Mo = A , B, NA .

  • Trent, efter att ha fått ett meddelande från Alice, genererar en nyckel K för vidare kommunikation mellan Alice och Bob och skickar tillbaka ett tvådelat meddelande till Alice. Den första delen är krypterad med Alices privata nyckel och innehåller K, N A , giltighetsperiod t och Bobs ID. Den andra delen är okänd för Alice - den är krypterad med Bobs hemliga nyckel, och den innehåller K, t och Alices identifierare.

Mi = E A (K, N A , t, B), E B (K, A, t).

  • Alice dekrypterar den första delen av meddelandet som tas emot från Trent, tar emot nyckeln K och skapar ett nytt paket att skicka till Bob, vilket inkluderar Alices identifierare, t, och tidsstämpeln TA . Efter det skickar Alice ett tvådelat meddelande till Bob: den första delen är den som kom från Trent, och den andra delen är skapad av Alice.

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

  • Bob tar emot meddelandet. Efter att ha dekrypterat den första delen tar han ut en ny nyckel K och dekrypterar sedan den andra delen med den. För att bekräfta för Alice att han känner till den nya nyckeln K, skickar Bob ett meddelande till henne med en tidsstämpel krypterad med den nya nyckeln K.

M 3 \u003d E K ( TA ).

  • Alice ser till att Bob är Bob. Följande resonemang gäller här: Bob kunde bara dekryptera ett meddelande från Alice med en tidsstämpel om han kände till nyckeln K. Och han kunde bara känna till nyckeln K om han kände till E B . Och eftersom detta är Bob och Trents hemliga nyckel, är personen som skickade meddelandet till Alice Bob.
  • Alice och Bob är redo att utbyta meddelanden med tangenten K [5] .
Tillägg Kerberos-biljetten

I specialiserad litteratur kallas meddelandet E B (K, A, t) ofta för en biljett. Varje gång den imaginära Alice bevisar sin identitet för den imaginära Bob (trots allt kan antalet användare på nätverket vara mycket större än 2), förlitar hon sig på att Trent ( det betrodda centret ) genererar en ny hemlig nyckel och lämnar den på ett säkert sätt till båda användarna. Den nya hemliga nyckeln K kallas sessionsnyckeln och det är Kerberos-biljetten som används för att leverera den till Bob. Kerberos-biljetten är ett certifikat utfärdat av en betrodd myndighet och krypterat med E B  , Bob och Trents publika nyckel. Biljetten innehåller bland annat en slumpmässig sessionsnyckel som kommer att användas för att autentisera Alice av Bob, namnet på deltagaren (i det här fallet Alice) som sessionsnyckeln utfärdades till och ett utgångsdatum efter vilket sessionsnyckeln är inte längre giltig. Detta certifikat (Kerberos Ticket) skickas inte direkt till Bob, utan skickas istället till klienten (Alice), som skickar det till Bob för verifiering som en del av begäran. Eftersom certifikatet är krypterat på servern med en nyckel som endast Trent och Bob känner till, är det inte möjligt att ändra certifikatet (Kerberos Ticket) för klienten (Alice) [4] .

Otway-Riis-protokollet

Otway -Rees-protokollet är ett symmetriskt nyckelprotokoll som låter dig distribuera nycklar utan att använda tidsstämplar .

Återigen, innan vi startar protokollet har vi:

  • Trusted Center Trent
  • 2 användare: Alice och Bob som fick E A och E B
  • Alice väljer N och N A , Bob väljer N B.
Beskrivning av protokollet [6]
  • Alice bildar ett meddelande till Bob, där hon skickar N, A, B i klartext, samt samma N, A, B med N A , krypterad med nyckeln E A som delas med Trent .

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

  • Bob får ett meddelande, vars andra del är helt otydlig för honom, lägger till en rad till i det, som han krypterar med nyckeln E B och skickar till Trent.

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

  • Trent, som känner till båda nycklarna, kan dekryptera Alices och Bobs meddelanden. Nu är hans mål att bekräfta att han är Trent och bilda K-nyckeln för vidare kommunikation mellan Alice och Bob.

Trent genererar en nyckel K och skickar ett meddelande till Bob.

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

  • Den första delen, krypterad med Alices nyckel, kan Bob inte dekryptera alls, och han dekrypterar lugnt den andra delen och ser till att meddelandet kom från Trent , räknat N B. Sedan får han den genererade nyckeln K. Nu är Bob redo att kommunicera med Alice, det återstår bara att leverera nyckeln till henne. Bob skickar den första delen av ett meddelande från Trent till Alice.

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

  • Alice tar emot meddelandet, kontrollerar att det är från Trent (NA ) och läser nyckeln K.
  • Alice och Bob är redo att kommunicera.
Vad är resultatet

Graciöst får vi för 4 meddelanden:

  • Bob är säker på att han pratade med Trent: Bob skickade honom numret N B krypterat med den hemliga nyckeln E B , och fick tillbaka ett annat meddelande som innehöll samma nummer och krypterat med samma nyckel.
  • Alice är i sin tur också säker på att Bob pratade med Trent, eftersom hon skickade sitt nummer N A , krypterat med nyckeln E A , och fick tillbaka ett annat meddelande, men även innehållande N A och krypterad E A .
  • Alice och Bob har en gemensam nyckel K.
Problem
  • Alice har inget sätt att vara säker på att Bob är Bob. Hon är bara säker på att hon kommunicerar med en viss person som kan åka till Trent. För att lösa detta problem i steg 4 kan Bob skicka Alice inte bara E A ( NA , K), utan också till exempel E K (NA , N B ) , och därigenom bevisa att han kan nyckeln K. Och Alice i sin tur kan svara Bob E K (N B ), vilket också bevisar att han kan nyckeln K [5] .

Asymmetriska protokoll

Huvudartikel: Public-key kryptosystem

Needham-Schroeder-protokollet

Needham -Schroeder-protokollet med offentlig nyckel publicerades på samma sätt som dess symmetriska kusin 1978. Detta är en mycket använd modell i studien av formella metoder för att verifiera kryptografiska protokoll. Denna popularitet kommer uppenbarligen från en av de mest framgångsrika berättelserna på detta område - 1994 genomgick protokollet en framgångsrik reprisattack 16 år efter publiceringen. Attacken utfördes av David G. Lowe  , en kanadensisk datavetare [ 7] .

På Worcester Polytechnic Institute webbplats kan du hitta originalartikeln publicerad av David G. Lowe [8]

Detta protokoll tillhandahåller ömsesidig överföring av nycklar kA och kB , såväl som ömsesidig autentisering.

Beskrivning av hur protokollet fungerar Situation innan arbetet påbörjas
  • Alice och Bob har offentliga kodningsprocedurer P A och P B .
  • Alice och Bob vill ömsesidigt identifiera varandra med tre meddelanden och med hjälp av offentliga nycklar.
Protokolldriftperiod
  • Alice väljer sin del av nyckeln, k A , och bildar ett meddelande till Bob, där hon lägger sin identifierare och k A . Hela meddelandet krypteras med Bobs publika nyckel P B och skickas till honom.

Mo = PB ( A , kA ) .

  • Bob har dekrypterat meddelandet och vet nu att Alice vill prata med honom, och hon vill använda nyckeln k A för att kommunicera . Bob väljer sin del av nyckeln, k B , och skickar ett meddelande till Alice som består av två nycklar k A och k B , krypterade med Alices publika nyckel. Således bekräftar Bob för Alice att han fick en del av hennes nyckel KA .

Mi = PA ( ka , kB ) .

  • Nu är det Alices tur att bevisa för Bob att hon är Alice. För att göra detta måste den kunna dekryptera meddelanden krypterade med nyckeln P A . Vad hon gör bra är att hon dekrypterar meddelandet från Bob, tar k A därifrån och skickar Bob ett meddelande som innehåller hans nyckel k B .

M 2 \u003d P B (k B ).

  • Som ett resultat, vid meddelandestadiet M 1 , är Alice säker på att Bob är Bob, och Bob vet hela nyckeln. Och vid meddelandestadiet M 2 är Bob säker på att han pratade med Alice, och hon kan hela nyckeln. [5]

De mest kända attackerna mot kryptografiska protokoll [9]

Substitution

Substitution (eng. Impersonation) - ett försök att ersätta en användare med en annan. Inkräktaren, som talar på en av parternas vägnar och helt imiterar dess handlingar, får som svar meddelanden av ett visst format, nödvändiga för att förfalska enskilda steg i protokollet.

Motåtgärder är:

  • hålla hemlig för fiendens information som bestämmer identifieringsalgoritmen;
  • användning av olika meddelandeformat som sänds i olika steg i protokollet;
  • infoga särskilda identifieringsmärken och meddelandenummer i dem. I protokoll som använder en tredje part är attacker baserade på ersättning av en betrodd server möjliga.

Till exempel agerar en av parterna som har en förtroendefull relation med servern på dess vägnar, ersätter sin utbytestrafik med andra parter och får som ett resultat möjligheten att avslöja värdena på nycklarna som genereras av centret.

Upprepa attack

Spela om attack återanvändning av ett meddelande eller en del av det som tidigare sänts i den aktuella eller föregående sessionen i den aktuella sessionen av protokollet .

Till exempel kan återsändning av information från ett tidigare utfört autentiseringsprotokoll resultera i en framgångsrik återidentifiering av samma eller en annan användare.

I protokoll för nyckelöverföring används denna attack ofta för att återinsätta en tidigare använd sessionsnyckel - en färskhetsattack.

Motåtgärder består i att säkerställa sessionens integritet och omöjligheten att infoga onödiga meddelanden i den. För att göra detta, infoga tidsstämplar eller slumpmässiga siffror i överförda meddelanden , såväl som partiidentifierare.

Kombinationsattack

En interleaving attack är en substitution eller annan bedrägerimetod som använder en kombination av data från tidigare exekverade protokoll, inklusive protokoll som tidigare påtvingats av fienden.

Motåtgärdsmetoden är att säkerställa integriteten hos protokollsessioner och enskilda meddelanden.

Anteckningar

  1. Pablo Giambiagi. Sekretess för mobila implementeringar av säkerhetsprotokoll. - 2001. - S. 36 . — ISSN 1403-5286 .
  2. John Kelsey, Bruce Schneier, David Wagner. Protokollinteraktioner och den valda protokollattacken. - 1997. - S. 8 . — ISSN 0302-9743 .
  3. Alexey Lisitsa. Needham-Schroeder autentiseringsprotokoll och dess formella analys . Datum för åtkomst: 15 december 2014. Arkiverad från originalet den 7 mars 2016.
  4. ↑ 1 2 B. Clifford Neuman och Theodore Ts'o. [ http://www.isi.edu/div7/publication_files/kerberos_an_auth.htm Kerberos: En autentiseringstjänst för datornätverk] (död länk) . IEEE Communications Magazine (1994). Hämtad 15 december 2014. Arkiverad från originalet 26 maj 2013. 
  5. ↑ 1 2 3 Sergey Nikolenko. Nycklar och protokoll för dem (hösten 2009). Datum för åtkomst: 14 december 2014. Arkiverad från originalet 14 december 2014.
  6. Dr. Geoff Hamilton. Nyckelutbyte och autentiseringsprotokoll (inte tillgänglig länk) . Datum för åtkomst: 14 december 2014. Arkiverad från originalet 14 december 2014. 
  7. Olivier Michel. En analys av Needham-Schroeder Public-Key Protocol med MGS . Tillträdesdatum: 15 december 2014. Arkiverad från originalet den 8 mars 2016.
  8. Gavin Lowe. En attack mot Needham-Schroeder-protokollet för autentisering av offentlig nyckel (1995). Hämtad 15 december 2014. Arkiverad från originalet 16 december 2014.
  9. A.V. Cheryomushkin. Kryptografiska protokoll: nyckelfunktioner och sårbarheter (november 2009).

Litteratur

  • Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone. Handbok för tillämpad kryptografi. - 1996. - S. 489-534. — 816 sid. - ISBN 0-8493-8523-7 .

Länkar