Klassieke Cryptographic Key Exchange en Authenticatie


  Share  
|

Stel dat Alice en Bob willen communiceren. Als ze een gemeenschappelijke sleutel te delen, kunnen ze gebruik maken van een klassieke cryptosysteem. Maar hoe ze het eens over een gemeenschappelijke sleutel? Als Alice stuurt een naar Bob, Eva de Eavesdropper zal het zien en in staat zijn om het verkeer tussen hen lezen.

Om dit te voorkomen bootstrapping probleem, klassieke protocollen beroep doen op een vertrouwde derde partij, Cathy. Alice en Cathy delen een geheime sleutel, en Bob en Cathy delen een (andere) geheime sleutel. Het doel is om een geheime sleutel die Alice en Bob delen. De volgende eenvoudig protocol biedt een uitgangspunt.

  1. Alice -> Cathy: (verzoek om sessie sleutel van Bob) kAlice

  2. Cathy -> Alice: (ksession) kAlice | | (ksession) kBob

  3. Alice -> Bob: (ksession) kBob

Bob ontcijfert het bericht nu en gebruikt ksession om te communiceren met Alice.

Deze bijzondere protocol is de basis voor veel meer geavanceerde protocollen. Echter, Bob weet niet aan wie hij praat. Stel dat Alice stuurt Bob een bericht (zoals "Borgsom 500 dollar in de bank Dan rekening van vandaag") gecodeerd onder ksession. Als Eva het tweede bericht records in de uitwisseling van hierboven, en het bericht gecodeerd onder ksession, kan ze verzenden Bob het bericht ksession () kBob gevolgd door het bericht gecodeerd onder ksession. Bob zal niet weten wie u deze verzendt.

Het vermijden van problemen zoals deze replay aanval voegt aanzienlijke complexiteit. Key uitwisseling typisch protocollen toe te voegen, ten minste, een soort van authenticatie en Replay verdediging tegen aanvallen. Een van de bekendste dergelijke protocollen is de Needham-Schroeder-protocol.

  1. Alice -> Cathy: (Alice | | Bob | | rand1)

  2. Cathy -> Alice: (Alice | | Bob | | rand1 | | ksession | | (Alice | | ksession) kBob) kAlice

  3. Alice -> Bob: (Alice | | ksession) kBob

  4. Bob -> Alice: (rand2) ksession

  5. Alice -> Bob: rand2 (1) ksession

In dit protocol rand1 en rand2 zijn twee nummers willekeurig gegenereerd, behalve dat ze niet kunnen herhalen protocol tussen de verschillende beurzen. Deze aantallen worden genoemd nonces. (Als Alice begint het protocol opnieuw, haar rand1 in de eerste uitwisseling zal er niet zijn eerder gebruikt.) De basis voor de beveiliging van dit protocol is dat zowel Alice en Bob vertrouwen Cathy.

Toen Bob de derde boodschap en ontcijfert die zij ontvangt, ziet hij dat het bericht naam Alice. Omdat hij het bericht kon ontcijferen, was de boodschap gecodeerd met een sleutel die hij deelt alleen met Cathy. Omdat hij vertrouwt Cathy niet te hebben gedeeld de sleutel kBob met iemand anders, moet de boodschap zijn gecodeerd door Cathy. Dit betekent dat Cathy is vouching dat ze gegenereerde ksession dus Bob kon communiceren met Alice. Dus Bob vertrouwt erop dat Cathy stuurde het bericht naar Alice, en dat Alice het hem toegezonden.

Echter, als Eva het bericht opgenomen, kon ze overgespeeld het aan Bob. In dat geval zou Eva niet hebben geweten van de sessie sleutel, zodat Bob geeft om te verifiëren dat zijn onbekende ontvanger heeft weten. Hij stuurt een willekeurig bericht vercijferd door ksession naar Alice. Als Eva het bericht onderschept, zal ze niet weten wat terug te keren; moet ze sturen niets, de kans van haar willekeurig selecteren van een bericht dat juist is, is zeer laag en Bob zal de poging tot replay op te sporen. Maar als Alice inderdaad de inleiding van de communicatie, toen ze het bericht dat ze kan ontcijferen het wordt (omdat ze weet ksession), van toepassing bepaalde vaste functie aan de willekeurige gegevens (hier, decrement door 1), en vercijferen het resultaat en terug te sturen naar Bob. Dan Bob zal zeker dat hij praat met Alice.

Alice moet zichzelf ervan te overtuigen dat ze praat met Bob, ook. Toen ze het tweede bericht van Cathy ontvangt, ontcijfert ze het en controles dat Alice, Bob, en rand1 aanwezig zijn. Dit vertelt haar dat Cathy stuurde de tweede bericht (want het was gecodeerd met kAlice, die alleen zij en Cathy weten) en dat het een reactie was op het eerste bericht (omdat rand1 is zowel in het eerste en tweede-berichten). Ze krijgt de sessie sleutel en stuurt de rest aan Bob. Ze weet dat alleen Bob heeft ksession, omdat alleen zij en Bob de berichten met die sleutel kan lezen. Dus toen ze ontvangt berichten gecodeerd met die sleutel, zal ze er zeker van zijn dat ze praat met Bob.

De Needham-Schroeder-protocol veronderstelt dat alle cryptografische sleutels veilig zijn. In de praktijk zal sessie sleutels pseudorandomly gegenereerd. Afhankelijk van de gebruikte algoritme, kan het mogelijk zijn om deze sleutels te voorspellen. Denning en Sacco van uitgegaan dat Eva een sessie sleutel konden krijgen en ondermijnd het protocol. Veronderstel dat het protocol bovenstaande plaatsvond. Dan:

  1. Eve -> Bob: (Alice | | ksession) kBob

  2. Bob -> Alice: (rand3) ksession [onderschept door Eve]

  3. Eve -> Bob: rand3 (1) ksession

Nu Bob denkt dat hij praat met Alice. Hij is echt in gesprek met Eva.

Denning en Sacco raden u timestamps Bob staat voor het detecteren van replay. Toepassing van hun methode om de Needham-Schroeder-protocol opbrengsten

  1. Alice -> Cathy: (Alice | | Bob | | rand1)

  2. Cathy -> Alice: (Alice | | Bob | | rand1 | | ksession | | (Alice | | T | | ksession) kBob) kAlice

  3. Alice -> Bob: (Alice | | T | | ksession) kBob

  4. Bob -> Alice: (rand2) ksession

  5. Alice -> Bob: rand2 (1) ksession

waar T is een tijdstempel. Toen Bob de boodschap in stap 3, verwerpt hij het als de timestamp te oud is (te oud wordt bepaald op basis van het systeem in gebruik). Deze wijziging vereist gesynchroniseerde klokken. Denning en Sacco rekening mee dat een opdrachtgever met een trage klok is kwetsbaar voor een replay aanval. Een partij met een snelle klok is ook kwetsbaar, en gewoon resetten van de klok niet verwijderen van de kwetsbaarheid.

De Otway-Rees protocol corrigeert deze problemen door het vermijden van het gebruik van timestamps.

  1. Alice -> Bob: num | | Alice | | Bob | | (rand1 | | nr | | Alice | | Bob) kAlice

  2. Bob -> Cathy: num | | Alice | | Bob, | | (rand1 | | nr | | Alice | | Bob kAlice) | | (rand2 | | nr | | Alice | | Bob) kBob

  3. Cathy -> Bob: num | | (rand1 | | ksession) kAlice | | (rand2 | | ksession) kBob

  4. Bob -> Alice: num | | (rand1 | | ksession) kAlice

Het doel van de integer num is te associëren alle berichten met een bijzondere uitwisseling. Nogmaals, rekening houden met de elementen van het protocol.

Wanneer Alice ontvangt de vierde boodschap van Bob, ze controleert of de num eens met de num in het eerste bericht dat ze verzonden naar Bob. Zo ja weet zij dat dit deel uitmaakt van de uitwisseling. Ze hoopt ook dat Cathy gegenereerde de sessie sleutel, omdat alleen Cathy en Alice weet kAlice, en de random number rand1 is het eens met wat Alice zetten in het gecodeerd gedeelte van het bericht. De combinatie van deze factoren, is Alice nu van overtuigd dat ze praat met Bob.

Toen Bob de boodschap van Cathy ontvangt, bepaalt hij dat de num overeenkomt met degene die hij ontvangen van Alice en verzonden naar Cathy. Hij ontcijfert dat gedeelte van het bericht gecodeerd met zijn sleutel en controles die rand2 is wat hij verzonden. Hij weet dan dat Cathy stuurde het antwoord, en dat dit geldt voor de uitwisseling met Alice.

Omdat er geen timestamps worden gebruikt, is de synchronisatie van het systeem klokken irrelevant. Stel nu dat Eva verworven een oude sessie sleutel en de boodschap in 3.

Ze stuurt dat bericht naar Alice. Alice verwerpt onmiddellijk indien ze geen lopende sleutel uitwisseling met Bob heeft. Als ze dat doet, en num komt niet overeen, verwerpt ze bericht Eva's. De enige manier waarop Eva kon zich uitgeven voor Bob is als ze ksession verworven voor een permanente uitwisseling, opgenomen het derde bericht en een hekel aan het relevante deel aan Alice voordat Bob kon doen. In dat geval echter, kon Eva gewoon luisteren naar het verkeer, en geen herhaling zou worden betrokken.

een artikel afkomstig van Bill Kuriko


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions