Needham-Schroeder protokoll

A hitelesítésben és a kulcscsere protokollokban használt kriptográfiai jelölések
Alice ( Alice ), a foglalkozás kezdeményezőjének azonosítói
Bob ( Bob ) azonosítója, amely oldalról a munkamenet létrejön
Trent ( Trent ), egy megbízható közvetítő fél azonosítója
Alice, Bob és Trent nyilvános kulcsai
Alice, Bob és Trent titkos kulcsai
Adatok titkosítása Alice kulcsával vagy Alice és Trent közös kulcsával
Adatok titkosítása Bob kulcsával vagy Bob és Trent közös kulcsával
Adattitkosítás Alice, Bob titkos kulcsaival (digitális aláírás)
Munkamenet sorszáma (az ismétléses támadások elkerülése érdekében)
Véletlenszerű munkamenetkulcs a szimmetrikus adattitkosításhoz
Adatok titkosítása ideiglenes munkamenet kulccsal
Alice és Bob időbélyegeket adott hozzá az üzenetekhez
Véletlen számok ( nonce ), amelyeket Alice és Bob választott ki

A Needham-Schroeder protokoll  a szimmetrikus és aszimmetrikus hitelesítési és kulcscsere protokollok általános neve. Mindkét protokollt Michael Schroeder és Roger Needham javasolta [1] . A szimmetrikus titkosításon alapuló változat egy köztes megbízható felet használ. Ez a protokoll az ilyen protokollok egész osztályának alapja lett. Például a Kerberos a szimmetrikus Needham-Schroeder protokoll egyik lehetősége. Az aszimmetrikus titkosításon alapuló változatot a felek kölcsönös hitelesítésére tervezték. Eredeti formájában a protokoll mindkét verziója sebezhető [2] [3] .

Történelem

A szimmetrikus kulcshitelesítési protokollt, a talán leghíresebb hitelesítési és kulcsbeállítási protokollt Michael Schroeder és Roger Needham fogalmazta meg 1978-ban [1] . Azonban ki van téve egy támadásnak, amelyet Dorothy E. Denning  és Giovanni Maria Sacco talált ki 1981 -ben [ 2] .  Ennek ellenére ez lett az alapja az ilyen protokollok egész osztályának. A Kerberos protokoll a Needham-Schroeder hitelesítési protokoll egyik változata, amely egy megbízható harmadik félen és annak Denning és Sacco által javasolt módosításain alapul [2] . A nyilvános kulcsú hitelesítéshez szükséges Needham-Schroeder protokoll is sebezhető. 1995-ben Gavin Lowe leírt egy lehetséges támadást a protokoll ellen [3] .  

Needham-Schroeder protokoll a szimmetrikus kulcs hitelesítéshez

A szimmetrikus kulcsú titkosítási séma esetén feltételezzük, hogy a titkos kulcsot ismeri a hitelesítési szerver (Trent) és mindkét cserealany : (Alice) és (Bob). Kezdetben mindkét alanynak van titkos kulcsa: és , amelyet csak ők és néhány megbízható fél ismer - a hitelesítési szerver. A protokoll végrehajtása során Alice és Bob egy új titkos munkamenet kulcsot kap a szervertől, hogy titkosítsa a kommunikációs munkamenetben a kölcsönös üzeneteket, vagyis csak Bob tudja visszafejteni az Alice-től Bob-nak küldött üzeneteket, csak Alice tudja visszafejteni a Bobtól Alice-nek küldött üzeneteket. . Ezen túlmenően a csere résztvevőinek meg kell győződniük arról, hogy a bejövő üzenetet pontosan azoknak küldték el, akikkel a cserének meg kell történnie. Bobnak biztosnak kell lennie abban, hogy megkapta az üzenetet Alice-től, és fordítva. Ezt is a protokoll biztosítja. Tegyük fel, hogy a cserét Alice kezdeményezte. Feltételezzük, hogy közös hitelesítési szerverük van. Fontolja meg a protokoll megvalósítását [4] :

A csere azzal kezdődik, hogy Alice generál valamilyen véletlen számot (azonosítót), amelyet egyszer használnak fel. Az Alice-től Trentnek küldött első üzenet a közelgő eszmecsere résztvevőinek nevét és egy Alice által generált véletlen számot tartalmaz:

Ezt az üzenetet tiszta szövegben küldjük el, de Alice kulcsával titkosítható :

Miután megkapta ezt az üzenetet, Trent lekéri Alice és Bob privát kulcsait az adatbázisból: és , és kiszámol egy új munkamenetkulcsot . Trent ezután a következő üzenetet küldi Alice-nek:

Alice képes dekódolni és elolvasni Trent üzenetét. Az üzenetben ellenőrzi az azonosítóját , amely megerősíti, hogy az üzenet válasz a Trentnek küldött első üzenetére. Ellenőrzi annak az alanynak a nevét is, amellyel adatcserét folytat. Ez az ellenőrzés kötelező, mert ha ez a név nem lenne ott, akkor a Betolakodó az első üzenetben lecserélhetné Bob nevét a sajátjára, és Alice semmit sem sejtve tovább kommunikálna a Betolakodóval. Az üzenet egy részét Alice nem tudja elolvasni, mert ez a rész Bob kulcsával titkosítva van. Alice egy töredéket küld Bobnak a kulcsával titkosítva:

Csak Bob tudja visszafejteni, mivel a titkos kulcsa titkosítva van. A visszafejtés után Bob birtokolja a munkamenetkulcsot is . Alice neve az üzenetben megerősíti azt a tényt, hogy az üzenet tőle származik. Továbbá az adatcsere során a munkamenet kulcsot kell használni. A séma szimmetrikussá tétele és a visszajátszási támadás esélyének csökkentése érdekében Bob véletlenszerű számot generál (Bob azonosítóját), és elküldi Alice-nek a következő üzenetet a munkamenet kulccsal titkosítva:

Alice visszafejti, és elküldi a Bob által várt választ, szintén a munkamenet kulccsal titkosítva:

A rendszeresen interakcióba lépő partnerek esetében az első kettő eltávolításával háromra csökkentheti az üzenetek számát. Ebben az esetben a kulcs ismétlődően használatos [5] .

Támadás a Needham-Schroeder protokoll szimmetrikus kulcshitelesítésére

A Needham-Schroeder protokoll sebezhető a Dorothy E. Denning  és Giovanni Maria Sacco által 1981 -ben feltalált üzenet-újraküldési támadásokkal szemben [ 2] .  A támadás során a Támadó elfogja és lecseréli a protokoll 3,4,5 paragrafusainak üzeneteit. A támadó a protokoll harmadik lépésében elfogja Alice Bobnak küldött üzenetét, és blokkolja Alice-t. Ezután Alice aktuális üzenetét lecseréli egy másikra, amely az Alice és Bob közötti régi munkamenetből származik. Abból a feltételezésből kiindulva, hogy a régi munkamenetkulcs sebezhető, a támadó megtudhatja annak értékét, és Alice álcája alatt elkezdhet adatcserét Bobbal [4] .

Ennek eredményeként Bob azt hiszi, hogy új munkamenetkulcsa van Alice-szel, de valójában a kulcs régi és a támadó ismeri.

Fontolja meg a támadás lehetséges megvalósítását:

Ennek eredményeként Bob biztos abban, hogy kommunikációs munkamenetet hozott létre Alice-szel, mivel az összes szükséges protokolllépést helyesen hajtották végre, és minden üzenet helyesnek bizonyult.

Ez a támadás komolyabb veszélyt jelent - a valódi kapcsolat hiányát a partnerek között. A támadónak nem kell megvárnia, amíg Alice elindítja a protokollt. Mivel ismeri a régi szekciókulcsot , saját maga is elindíthatja a támadást úgy, hogy a 3. lépéstől elindítja a protokollt. Bob azt fogja gondolni, hogy kapcsolatba lépett Alice-szel, míg Alice egyáltalán nem [6] .

Sebezhetőség javítása

Denning és Sacco időbélyegek használatát javasolta az üzenetekben a fent tárgyalt támadások megelőzésére [2] . Jelöljük az ilyen címkét betűvel . Fontolja meg a biztonsági rés kijavításának lehetőségét:

  1. ,

Miután protokoll üzeneteket kaptak Trenttől, Alice és Bob az egyenlőtlenség ellenőrzésével megállapíthatják, hogy üzeneteik válasz nélkül maradtak:

ahol (aktuális idő) a címzett aktuális helyi ideje;  egy intervallum, amely a Trent idő és a helyi idő közötti megengedett különbséget jelenti;  a várható késleltetés. Innentől kezdve meg vannak győződve az üzenetek „frissségéről”, különösen a munkamenet kulcsáról. Mivel az időbélyeg Alice és Bob titkos kulcsaival van titkosítva, Trent utánzása lehetetlen egy ideális titkosítási sémában [7] .

Ebben a felülvizsgált protokollspecifikációban is kifejezetten kiemelik az adatok integritásának védelmének szükségességét . Ha a protokoll résztvevői között váltott üzenetek nem torzultak az átvitel során, akkor az ellenőrzési eljárás után mindkét fél biztos lehet abban, hogy a munkamenet kulcsa megegyezik a felhasználókkal és a „frissség” azonosítóval. Ennek meg kell győznie őket arról, hogy egymás hitelesek, és hogy nem a régi szekciókulcsot használják [8] .

A különböző hitelesítési szerverek esete

A való életben Alice és Bob elég távol lehet egymástól ahhoz, hogy ne legyen közös hitelesítési szerver [5] . Emiatt általában Alice-nek lehet saját hitelesítési szervere: , Bobnak pedig saját: . Mivel ebben az esetben Alice-nek is szembe kell néznie azzal a feladattal, hogy megalkosson egy üzenetet Bob számára . Mindkét szerver részt vesz a létrehozásában, mivel csak Alice kulcsával tud titkosítani , és csak Bob kulcsát használhatja: . Ugyanakkor a szerverek közötti adatcsere biztonságát is biztosítani kell. Vegyünk egy példát két különböző szerver esetére, amelyek kapcsolatban állnak egymással:

Az 1., 4-7. lépések megfelelnek a fenti általános hitelesítési szerver esetének 1-5. lépéseinek. A második lépésben Alice szervere nem találja Bobot a klienseinek listájában, kapcsolatba lép Bob szerverével. Ismeri Bob kulcsát, és el tudja végezni a szükséges titkosítást. Ezt követően a titkosított információ visszakerül Alice hitelesítő szerverére, amely elküldi Alice-nek [5] .

Entity Authentication Protocol

A protokoll "válasz-visszavonás" mechanizmusa [9] biztosítja az úgynevezett entitás hitelesítést [ISO 1] . Az entitás hitelesítése valamilyen kriptográfiai művelet ellenőrző felhasználója általi ellenőrzéssel történik . Bemutatja egy ellenőrző felhasználó létezését, amely akkor tekinthető megerősítettnek, ha a vizsgáló felhasználó valamilyen kriptográfiai műveletet hajtott végre azután , hogy egy másik felhasználó az utolsónak tekinti.

A Needham-Schroeder protokoll második szakaszában Alice visszafejti az egyszeri véletlenszámot , amelyet az első szakaszban maga generált. Ez megerősíti azt a tényt, hogy Trent végrehajtotta a titkosítást , miután megkapta az üzenetet Alice-től. Ennek eredményeként Alice tudja, hogy Trent létezett az esemény után, vagyis Trent átment a létezés hitelesítésén Alice-szel kapcsolatban. Ugyanakkor Bob, aki ugyanabban a protokollban vesz részt, nem lehet biztos Trent létezésében [7] .

Needham-Schroeder protokoll nyilvános kulcsú hitelesítéshez

Nyilvános kulcsú kriptorendszerek

Bemutatjuk a jelölést:

Ráadásul csak Alice ismeri a titkos kulcsot, és a nyilvános kulcsot mások is ismerik.

Ez azt jelenti, hogy a tökéletes titkosítású szöveget garantáltan Alice készíti, mert csak ő birtokolja ezt a titkos kulcsot. Ezért nevezik a titkosított szöveget digitális üzenetaláírásnak . A nyilvános kulccsal történő visszafejtését Alice aláírás- ellenőrzésének nevezik [10] .

Needham-Schroeder protokoll nyilvános kulcsú hitelesítéshez

A Needham-Schroeder protokoll aszimmetrikus változata (kétkulcsos séma). Trent birtokolja az általa kiszolgált összes ügyfél nyilvános kulcsát. Alice-nek van nyilvános és privát kulcsa , Bobnak mindkettő , Trentnek és . Alice kezdeményezzen egy új beszélgetést Bobbal [11] :

Alice, a protokoll kezdeményezője az első üzenetben elkéri Trenttől Bob nyilvános kulcsát:

Erre Trent a protokoll második szakaszában üzenettel válaszol Bob nyilvános kulcsával és nevével. Az üzenet Trent privát kulcsával van titkosítva, vagyis ez az ő digitális aláírása . Ennek az aláírásnak meg kell győznie Alice-t, hogy megkapta az üzenetet Trenttől. Feltételezzük, hogy Alice ismeri Trent nyilvános kulcsát , és képes visszafejteni az üzenetet, azaz ellenőrizni az aláírást.

Ezután Alice generál egy véletlen számot , és elküldi azt Bobnak a nevével együtt, miután korábban Bob nyilvános kulcsával titkosította.

Csak Bob tudja visszafejteni ezt az üzenetet, mivel ehhez a privát kulcsára van szükség . Az üzenetből megtudja, hogy Alice adatcserét akar kezdeni vele. Ezért Bobnak szüksége van Alice nyilvános kulcsára , és ugyanazokat a műveleteket hajtja végre, mint Alice:

Ennek eredményeként a csere résztvevői ismerik egymás nyilvános kulcsait. Ezt követően a kölcsönös hitelesítés generált véletlen számokkal történik :

Needham és Schroeder számok használatát javasolta a megosztott titkos kulcs inicializálására [1] , amely titkos kapcsolatot biztosít Alice és Bob között. Denning és Sacco később rámutatott, hogy ez a protokoll nem garantálja, hogy a nyilvános kulcsok újak, és nem a régiek ismétlődései. Ez a probléma többféleképpen megoldható, különösen időbélyegek [2] használatával a kulcsos üzenetekben. Needham és Schroeder is fontolóra vette az időbélyegek használatát, de minőségi időszabvány hiánya miatt elutasították ezt az ötletet [12] .

Támadás a nyilvános kulcsú hitelesítéshez szükséges Needham-Schroeder protokoll ellen

A protokoll elleni támadást Gavin Lowe javasolta [3 ] .  A jegyzőkönyvet két részre osztotta, amelyek logikailag nem kapcsolódnak egymáshoz. Először: a protokoll 1, 2, 4, 5 szakasza - nyilvános kulcs megszerzése. Második: 3, 6, 7 szakasz - Alice és Bob hitelesítés. Feltételezzük, hogy az első rész megtörtént, és figyelembe vesszük a másodikat:

3. 6. 7.

Legyen Támadó olyan személy, aki jogos felhasználója a rendszernek . Szabványos kommunikációt tud folytatni a rendszer többi felhasználójával. A támadáshoz két protokoll egyidejű indítását használják: az elsőben Alice helyes munkamenetet folytat a Támadóval, a másodikban a Támadó Alice-t adja ki, amikor Bobbal kommunikál [13] .

1.3. 2.3. 2.6. 1.6. 1.7. 2.7.

Az 1.3. lépésben Alice véletlen számot küld a Támadónak, amit a Támadó azonnal elküld Bobnak egy másik protokoll 2.3. szakaszában. Bob megkapja ezt az üzenetet, és a 2.6 lépésben létrehozza a saját véletlenszámát, és megválaszolja, hogy szerinte Alice. A támadó nem tudja visszafejteni ezt az üzenetet, ezért elküldi Alice-nek az 1.6 lépésben. Alice kap egy gyanútlan üzenetet, dekódolja és visszaküldi Bob véletlenszámát a Támadónak az 1.7 lépésben úgy, hogy az üzenetet a Támadó nyilvános kulcsával titkosítja. Most a Támadó ismeri Bob véletlenszámát, és válaszolhat neki a 2.7 lépésben. Bob biztos benne, hogy kommunikációs munkamenetet hozott létre Alice-szel, mert a kulcsával véletlenszerű számmal titkosította az üzenetet, és megkapta a helyes választ.

A támadás lényege, hogy a Támadó rákényszerítheti Alice-t, hogy fejtse meg Bob véletlenszámát. Alice ebben a támadásban orákulumként viselkedik  – egy rendszerhasználó, aki valamilyen kriptográfiai műveletet hajt végre a Támadó érdekében [14] .

Példa a következményekre

Vegyünk egy példát ennek a támadásnak a következményeire. Legyen Bob valami bank. Ekkor az Alice-t kiadó Támadó használhatja a számláját, és pénzt utalhat át onnan a sajátjára. A bank biztos lesz abban, hogy a műveletet Alice végezte [14] .

Egyszerű protokolljavítás

A fent leírt támadás megelőzése érdekében a hatodik lépésben adja hozzá a válaszoló nevét az üzenethez:

2.6.

Ebben az esetben a Támadó nem tudja továbbítani az üzenetet Alice-nek, mivel Alice a következő üzenetet várja tőle:

1.6.

amelyet a Támadó sem Bob üzeneteinek továbbításával, sem önállóan nem tud megszerezni [14] .

Sebezhetőség javítása

Első lehetőség 3. 6. 7.

A felülvizsgált specifikációban  ez egy üzenet, amelyet Alice nyilvános kulcsával kell ellenőrizni , vagyis ez Alice aláírása . Ebben a specifikációban a véletlen számokat először aláírják, majd titkosítják egy másik felhasználó nyilvános kulcsával. Mivel Bob aláírja a számát a 6. lépésben, Low támadása lehetetlenné válik. Ha a Támadó továbbítja az üzenetet Alice-nek, ellenőrzési hibát észlel [15] .

Második lehetőség

A "titkosítás és aláírás" módszerrel a következőképpen finomíthatja:

3. 6. 7.

Most a Támadó nem is tudja elindítani a kommunikációs protokollt Bobbal egy másik személy nevében [15] .

Gyakorlati felhasználás

A Kerberos protokollt a hálózati felhasználók hitelesítési problémájának megoldására tervezték . Fő ötlete egy megbízható harmadik fél használata, amely a felhasználó és a szerver között megosztott közös munkamenetkulcs segítségével hozzáférést biztosít a felhasználónak a szerverhez. Ez a protokoll a Needham-Schroeder protokoll egy időbélyegzőt használó változatán alapul [16] [1] .

Jegyzetek

  1. 1 2 3 4 Needham, Schroeder, 1978 .
  2. 1 2 3 4 5 6 Denning, Sacco, 1981 .
  3. 1 2 3 Lowe, 1995 .
  4. 1 2 Mao, 2005 , p. 76.
  5. 1 2 3 Semenov Yu.A. .
  6. Mao, 2005 , p. 77.
  7. 1 2 Mao, 2005 , p. 79.
  8. Mao, 2005 , p. 641.
  9. Mao, 2005 , p. 75.
  10. Mao, 2005 , p. 80.
  11. Mao, 2005 , p. 81.
  12. Needham, Schroeder, 1987 .
  13. Mao, 2005 , p. 83.
  14. 1 2 3 Mao, 2005 , p. 84.
  15. 1 2 Mao, 2005 , p. 643.
  16. Mao, 2005 , p. 462.

Szabványok

  1. ISO 9798-2: Információtechnológia – Biztonságtechnikák – Entitás-hitelesítési mechanizmusok – 2. rész: Entitáshitelesítés szimmetrikus technikákkal.

Irodalom

  • Roger M. Needham, Michael D. Schroeder. Titkosítás használata hitelesítéshez nagy számítógép-hálózatokban   // Commun . ACM. - New York, NY, USA: ACM, 1978. - Vol. 21 , iss. 12 . - 993-999 . o . — ISSN 0001-0782 . doi : 10.1145/ 359657.359659 .
  • Dorothy E. Denning, Giovanni Maria Sacco. Időbélyegek a kulcselosztási protokollokban   // Commun . ACM. - New York, NY, USA: ACM, 1981. - Vol. 24 , iss. 1981. augusztus , 1. sz. 8 . - P. 533-536 . — ISSN 0001-0782 . - doi : 10.1145/358722.358740 .
  • Roger M. Needham, Michael D. Schroeder. A hitelesítés  újralátogatva //  SIGOPS Oper. Syst. Rev.. - New York, NY, USA: ACM, 1987. - Vol. 21 , iss. 1 . - 7-7 . o . — ISSN 0163-5980 . doi : 10.1145/ 24592.24593 .
  • Gavin Lowe. Támadás a Needham-Schroeder nyilvános kulcsú hitelesítési protokoll ellen  //  Information Processing Letters. - 1995. - 1. évf. 56 , sz. 3 . - 131-133 . o . — ISSN 0020-0190 . - doi : 10.1016/0020-0190(95)00144-2 .
  • Schneier B. Alkalmazott kriptográfia. Protokollok, algoritmusok, forráskód C nyelven = Applied Cryptography. Protokollok, algoritmusok és forráskód in C. - M .: Triumph, 2002. - 816 p. - 3000 példányban.  - ISBN 5-89392-055-4 .
  • Wenbo Mao. Modern kriptográfia: elmélet és gyakorlat = Modern Cryptography: Theory and Practice. - Williams Publishing House, 2005. - ISBN 5-8459-0847-7 .
  • Semenov Yu.A. Needham-Schroeder hitelesítési protokoll szimmetrikus és aszimmetrikus titkosítási rendszerek esetén . Letöltve: 2012. december 8.

Linkek