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] .
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] .
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] .
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] .
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:
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 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] .
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] .
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] .
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] .
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ényekreVegyü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ásA 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] .
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égA "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] .
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] .
Hitelesítési és kulcscsere protokollok | |
---|---|
Szimmetrikus algoritmusokkal | |
Szimmetrikus és aszimmetrikus algoritmusokkal | |
Az interneten használt protokollok és szolgáltatások |