Kulcselosztási protokoll

A kulcselosztási protokollok a felhasználói műveletek megállapodás  szerinti sorozata ( kriptográfiai protokoll ) egy biztonságos kommunikációs csatorna létrehozására, amely munkamenetkulcsok generálásából és cseréjéből, valamint üzenetek hitelesítéséből áll.

A kulcselosztási protokollok fő feladata az, hogy a résztvevők (a jövőben, mint mindig Alice és Bob ) közös kulcsot alakítsanak ki. Ugyanakkor Bobnak és Alice-nek is biztosnak kell lennie abban, hogy a kapcsolat a beszélgetőpartnerrel van-e, és nem egy betolakodóval vagy egy figurával. A legtöbb ilyen protokoll egy megbízható központ (továbbiakban Trent) meglétén alapul , és feltételezzük, hogy a Trent minden felhasználóhoz kioszt egy titkos kulcsot, így a protokoll elindulása előtt az összes kulcs már a felhasználókban van.

Az összes kulcselosztási protokoll valamilyen módon a következő kategóriákra van osztva (átfedő):

Szimmetrikus protokollok

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

Fő cikk: Szimmetrikus titkosítási rendszerek

Széles szájú béka

A Wide-Mouth Frog  protokoll a legegyszerűbb kulcskezelési protokoll. Lehetővé teszi két előfizető számára, hogy közös munkamenet-kulcsot hozzanak létre a biztonságos kommunikáció érdekében egymás között [1] . Egy megbízható központ vesz részt a protokollban .

A protokoll leírása [2]
  • Alice munkamenetkulcsot akar létrehozni Bobbal. A következő formációval kezdi:

1. K - véletlenszerű munkamenet kulcs

2. T A  - időbélyeg

és elküldi Trentnek (megbízható központ), hozzáadva a nevét:

M 0 = A, E A (TA , B , K).

  • Trent az Alice-szel megosztott titkos kulcs segítségével dekódolja az üzenetet, és ellenőrzi, hogy a T A időbélyeg és Bob azonosítója helyes-e. Ha minden rendben van, a következőképpen alakul:

A T B  egy új időbélyeg (amely eltérhet a T A -tól ), és elküldi Bobnak

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

  • Bob megkapja az üzenetet, visszafejti a Trenttel megosztott kulccsal, és ellenőrzi a T A időbélyeget és Alice azonosítóját. Ha az üzenet megfelelt a teszten, akkor Bob most megoszt egy kulcsot Alice-szel.

Needham-Schroeder protokoll

A Needham-Schroeder megosztott kulcsú protokoll elsősorban történelmi okokból fontos. 1978 óta ez az alapja számos megbízható központ kulcselosztási protokolljának. Az alábbiakban ismertetett Kerberos és Otway-Rees protokollok is ebből a protokollból származnak.

Ez a protokoll egy példa egy olyan protokollra, amely nem függ az időbélyegektől, és egyúttal biztosítja a kulcs generálását és megerősítését.

A Needham-Schroeder protokoll működésének leírása A protokoll kezdete előtti helyzet
  • 3 szereplő: ügyfelek, Alice és Bob, akik kulcsot szeretnének szerezni a kommunikációhoz, Trent egy megbízható központ.
  • Alice-nek és Bobnak E A és E B titkos kulcsa van a Trenttel való kommunikációhoz.
  • Alice az N A -t választja , Bob pedig az N B -t .
Protokoll működési időszak
  • Így Alice elindítja a protokollt, létrehoz egy üzenetet, amely saját és Bob azonosítóiból, valamint a kiválasztott N A számból áll, és elküldi Trentnek.

M 0 = A , B, NA .

  • Miután üzenetet kapott Alice-től, Trent két részből álló üzenetet alkot. Az első részbe beleteszi az N A -t, Bob azonosítóját, valamint az új K kulcsot, amit Alice és Bob szeretne megkapni. Az üzenet második része az új K kulcsot és Alice azonosítóját is tartalmazza, de Trent és Bob titkos kulcsával E B titkosítva van . A teljes üzenetet Alice és Trent E A titkos kulcsa titkosítja . és elküldte Alice-nek.

M 1 = E A (NA , B , K, E B (K, A)).

  • Alice visszafejti az üzenetet. Az üzenetben N A -t találva meg van győződve arról, hogy beszélt Trenttel. Teljesen képtelen elolvasni az E B által titkosított második részt, és elküldi Bobnak.

M 2 = E B (K, A).

  • Bob megkapja és visszafejti az üzenetet, elővesz egy új K kulcsot, és üzenetet ír Alice-nek, amelyben elmondja neki az új kulccsal titkosított N B számát.

M 3 \u003d E K (N B ).

  • Alice megkapja az üzenetet, előveszi az N B -t , megváltoztatja, és visszaküldi Bobnak.

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

  • Alice és Bob osztoznak a kulcson K.

Kerberos protokoll

A Kerberos Protokoll egy elosztott hitelesítési rendszer (hitelesítés), amely lehetővé teszi a felhasználó nevében futó folyamatok (kliensek) számára, hogy igazolják kilétét a szerveren anélkül, hogy adatokat küldenének a hálózaton keresztül , ami lehetővé teszi a támadók számára, hogy később kiadják magukat a felhasználónak. A Kerberos szükség szerint érvényesíti a kliens és a szerver között kicserélt adatok integritását és bizalmasságát.

A Kerberost a 80-as évek közepén fejlesztette ki az MIT Athena projektje .

Mivel a Kerberos használata különböző környezetekre terjedt el, változtatások szükségesek az új használati minták támogatásához. Ezen igények kielégítésére 1989-ben megkezdődött a Kerberos 5-ös verziójának ( Kerberos V5 ) fejlesztése. Míg a 4-es verzió még mindig sok webhelyen fut, az 5-ös verziót a Kerberos szabványnak tekintik [4] .

Kerberos munkaköri leírása A protokoll kezdete előtti helyzet
  • 3 szereplő: Alice egy kliens, Bob egy szerver, akinek Alice igazolni akarja a személyazonosságát, Trent egy megbízható központ.
  • Alice-nek és Bobnak E A és E B titkos kulcsa van a Trenttel való kommunikációhoz.
  • Alice kiválaszt egy N A számot , és beállítja a T A időbélyeget is az órája szerint.
  • t a Trent által választott érvényességi időszak (élettartam).
Protokoll működési időszak
  • Alice, elindítva a protokollt, sima szövegben 3 dolgot küld Trentnek: a saját és Bob azonosítóit, valamint a kiválasztott N A számot .

M 0 = A , B, NA .

  • Trent, miután üzenetet kapott Alice-től, létrehoz egy K kulcsot a további kommunikációhoz Alice és Bob között, és visszaküld egy kétrészes üzenetet Alice-nek. Az első rész Alice privát kulcsával van titkosítva, és K, N A , t érvényességi időszakot és Bob azonosítóját tartalmazza. A második rész Alice számára ismeretlen - Bob titkos kulcsával van titkosítva, és K, t és Alice azonosítóját tartalmazza.

M 1 = E A (K, N A , t, B) , E B (K, A, t).

  • Alice visszafejti a Trenttől kapott üzenet első részét, megkapja a K kulcsot, és létrehoz egy új csomagot, amelyet elküld Bobnak, amely tartalmazza Alice azonosítóját (t) és a T A időbélyeget . Ezt követően Alice egy kétrészes üzenetet küld Bobnak: az első rész az, ami Trenttől érkezett, a második részt pedig Alice készítette.

M 2 = E B (K, A, t), E K (A, TA , t).

  • Bob megkapja az üzenetet. Az első rész visszafejtése után kivesz egy új K kulcsot, majd ennek segítségével dekódolja a második részt. Annak megerősítésére Alice számára, hogy ismeri az új K kulcsot, Bob üzenetet küld neki egy időbélyegzővel, amelyet az új K kulccsal titkosítottak.

M 3 \u003d E K ( TA ).

  • Alice gondoskodik róla, hogy Bob Bob legyen. A következő érvelés érvényes erre: Bob csak akkor tudta visszafejteni az Alice-től érkező üzenetet időbélyeggel, ha ismeri a K kulcsot. A K kulcsot pedig csak akkor ismerheti meg, ha ismeri E B -t . És mivel ez Bob és Trent titkos kulcsa, Bob küldte az üzenetet Alice-nek.
  • Alice és Bob készen állnak az üzenetváltásra a K [5] billentyűvel .
Kiegészítések A Kerberos jegy

A szakirodalomban az E B (K, A, t) üzenetet gyakran jegynek nevezik. Valahányszor a képzeletbeli Alice igazolja kilétét a képzeletbeli Bobnak (végül is a hálózat felhasználóinak száma jóval nagyobb lehet 2-nél), Trentre ( a megbízható központra ) támaszkodik, hogy generáljon egy új titkos kulcsot és biztonságosan átadja azt. mindkét felhasználónak. Az új titkos K kulcsot munkamenetkulcsnak nevezik , és ez a Kerberos Ticket, amivel kézbesítik azt Bobnak. A Kerberos Ticket egy megbízható hatóság által kiállított tanúsítvány , amely E B  , Bob és Trent nyilvános kulcsával van titkosítva. Egyebek mellett a jegy tartalmaz egy véletlenszerű munkamenet kulcsot, amely az Alice by Bob hitelesítésére fog használni, annak a résztvevőnek (jelen esetben Alice) nevét, akinek a munkamenetkulcsot kiadták, és egy lejárati dátumot, amely után a munkamenet kulcsa nem érvényes többé. Ezt a tanúsítványt (Kerberos Ticket) nem küldik el közvetlenül Bobnak, hanem az ügyfélnek (Alice), aki a kérés részeként elküldi azt Bobnak ellenőrzésre. Mivel a tanúsítvány a szerveren egy csak Trent és Bob által ismert kulccsal van titkosítva, a kliens (Alice) tanúsítványa (Kerberos Ticket) nem módosítható [4] .

Otway-Riis protokoll

Az Otway-Rees Protokoll egy szimmetrikus kulcsprotokoll, amely lehetővé teszi a kulcsok időbélyegek használata nélkül történő terjesztését .

Ismételten, a protokoll elindítása előtt:

  • Trusted Center Trent
  • 2 felhasználó: Alice és Bob, akik E A -t és E B -t kaptak
  • Alice az N és N A -t választja, Bob pedig az N B -t.
A protokoll leírása [6]
  • Alice üzenetet formál Bobnak, amelyben elküldi N, A, B szöveget, valamint ugyanazt az N, A, B-t N A -val, a Trenttel megosztott E A kulccsal titkosítva .

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

  • Bob kap egy üzenetet, aminek a második része teljesen megfejthetetlen számára, még egy sort fűz hozzá, amit E B kulccsal titkosít és elküld Trentnek.

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

  • Trent mindkét kulcs ismeretében vissza tudja fejteni Alice és Bob üzeneteit. Most az a célja, hogy megerősítse, hogy ő Trent, és megalkotja a K kulcsot az Alice és Bob közötti további kommunikációhoz.

Trent generál egy K kulcsot, és üzenetet küld Bobnak.

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

  • Az Alice kulcsával titkosított első részt Bob egyáltalán nem tudja visszafejteni, a második részt pedig nyugodtan dekódolja és N B -t számolva megbizonyosodik arról, hogy az üzenet Trenttől érkezett. Ezután megkapja a generált kulcsot, K. Most Bob készen áll, hogy kommunikáljon Alice-szel, már csak a kulcsot kell átadnia neki. Bob elküldi Trent üzenetének első részét Alice-nek.

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

  • Alice megkapja az üzenetet, ellenőrzi, hogy Trenttől származik-e (NA ), és elolvassa a K kulcsot .
  • Alice és Bob készen állnak a kommunikációra.
Mi az eredmény

Kedvezően kapunk 4 üzenetet:

  • Bob biztos benne, hogy beszélt Trenttel: Bob elküldte neki az N B számot E B titkos kulccsal , és egy másik üzenetet kapott, amely ugyanazt a számot tartalmazza, és ugyanazzal a kulccsal volt titkosítva.
  • Alice viszont abban is biztos, hogy Bob beszélt Trenttel, mert elküldte az E A kulccsal titkosított N A számát , és egy másik üzenetet kapott vissza, de N A -t és titkosított E A -t is tartalmazott .
  • Alice-nek és Bobnak közös kulcsa van, K.
Probléma
  • Alice nem tudja biztosra venni, hogy Bob az. Csak abban biztos, hogy egy bizonyos személlyel kommunikál, aki Trentbe mehet. A probléma megoldásához a 4. lépésben Bob elküldheti Alice-nek nemcsak E A -t (NA , K ), hanem például E K -t (NA , N B ), ezzel bizonyítva, hogy ismeri a K kulcsot. És Alice viszont tud válaszolni Bob E K -re (N B ), ezzel is bizonyítva, hogy ismeri a K kulcsot [5] .

Aszimmetrikus protokollok

Főcikk : Nyilvános kulcsú titkosítási rendszer

Needham-Schroeder protokoll

A Needham-Schroeder nyilvános kulcsú protokollt ugyanúgy tették közzé, mint szimmetrikus unokatestvérét 1978-ban. Ez egy széles körben használt modell a kriptográfiai protokollok ellenőrzésére szolgáló formális módszerek tanulmányozásában. Ez a népszerűség nyilvánvalóan az egyik legsikeresebb történetből származik ezen a területen – 1994-ben a protokoll sikeres újrajátszáson esett át 16 évvel a megjelenése után. A támadást David G. Lowe  kanadai informatikus hajtotta végre [ 7] .

A Worcester Polytechnic Institute honlapján megtalálható az eredeti cikk, amelyet David G. Lowe [8] tett közzé.

Ez a protokoll biztosítja a k A és k B kulcsok kölcsönös átvitelét , valamint kölcsönös hitelesítést.

A protokoll működésének leírása Munkakezdés előtti helyzet
  • Alice és Bob nyilvános P A és P B kódolási eljárásokkal rendelkezik .
  • Alice és Bob kölcsönösen azonosítani akarják egymást három üzenettel és nyilvános kulcsokkal.
Protokoll működési időszak
  • Alice kiválasztja a kulcs részét, a k A -t , és üzenetet küld Bobnak, amelyben elhelyezi az azonosítóját és a k A -t . Az egész üzenetet Bob nyilvános P B kulcsával titkosítják, és elküldik neki.

M 0 = P B (A, k A ).

  • Bob visszafejtette az üzenetet, és most már tudja, hogy Alice beszélni akar vele, és a k A kulcsot akarja használni a kommunikációhoz . Bob kiválasztja a kulcs részét, k B , és elküld Alice-nek egy üzenetet, amely két k A és k B kulcsból áll, Alice nyilvános kulcsával titkosítva. Így Bob megerősíti Alice-nek, hogy megkapta K A kulcsának egy részét .

M 1 = P A (k A , k B ).

  • Most Alice a sor, hogy bebizonyítsa Bobnak, hogy ő Alice. Ehhez képesnek kell lennie a P A kulccsal titkosított üzenetek visszafejtésére . Amit jól csinál, az az, hogy visszafejti Bob üzenetét, kiveszi onnan k A -t, és elküldi Bobnak a k B kulcsát tartalmazó üzenetet .

M 2 \u003d P B (k B ).

  • Ennek eredményeként az M 1 üzenet szakaszban Alice biztos abban, hogy Bob Bob, és Bob ismeri az egész kulcsot. És az M 2 üzenet szakaszban Bob biztos abban, hogy beszélt Alice-szel, és ő ismeri az egész kulcsot. [5]

A legszélesebb körben ismert kriptográfiai protokollok elleni támadások [9]

Csere

Helyettesítés (eng. Impersonation) - kísérlet egy felhasználó másikkal való helyettesítésére. A behatoló, aki az egyik fél nevében beszél és teljesen utánozza annak cselekedeteit, válaszüzeneteket kap egy bizonyos formátumú, a protokoll egyes lépéseinek meghamisításához szükséges.

Az ellenintézkedések a következők:

  • az azonosítási algoritmust meghatározó információk titokban tartása az ellenség előtt;
  • a protokoll különböző lépéseiben továbbított különböző üzenetformátumok használata;
  • speciális azonosító jelek és üzenetszámok beszúrása beléjük. Harmadik felet használó protokollokban lehetségesek a megbízható szerver helyettesítésén alapuló támadások.

Például az egyik fél, amely bizalmi kapcsolatban áll a szerverrel, a nevében jár el, lecseréli a csereforgalmát más felekre, és ennek eredményeként lehetőséget kap a központ által generált kulcsok értékeinek közzétételére.

Ismételt támadás

Replay attack az aktuális vagy előző munkamenetben korábban továbbított üzenet vagy annak egy részének újrafelhasználása a protokoll aktuális szekciójában .

Például egy korábban végrehajtott hitelesítési protokollból származó információk újraküldése ugyanazon vagy egy másik felhasználó sikeres újbóli azonosítását eredményezheti.

A kulcsátviteli protokollokban ezt a támadást gyakran használják egy korábban használt munkamenet-kulcs – frissességi támadás – újratelepítésére.

Az ellenintézkedések a munkamenet integritásának biztosítása és a szükségtelen üzenetek beillesztésének lehetetlensége. Ehhez illesszen be időbélyegeket vagy véletlen számokat a továbbított üzenetekbe , valamint félazonosítókat.

Combination Attack

Az interleaving támadás egy helyettesítés vagy más megtévesztési módszer, amely korábban végrehajtott protokollokból származó adatok kombinációját használja, beleértve az ellenség által korábban bevezetett protokollokat is.

Az ellenintézkedés módszere a protokollmunkamenetek és az egyes üzenetek integritásának biztosítása.

Jegyzetek

  1. Pablo Giambiagi. Titoktartás a biztonsági protokollok mobil megvalósításához. - 2001. - S. 36 . — ISSN 1403-5286 .
  2. John Kelsey, Bruce Schneier, David Wagner. Protokoll-kölcsönhatások és a választott protokoll-támadás. - 1997. - S. 8 . — ISSN 0302-9743 .
  3. Alexey Lisitsa. Needham-Schroeder hitelesítési protokoll és formális elemzése . Hozzáférés dátuma: 2014. december 15. Az eredetiből archiválva : 2016. március 7.
  4. ↑ 1 2 B. Clifford Neuman és Theodore Ts'o. [ http://www.isi.edu/div7/publication_files/kerberos_an_auth.htm Kerberos: Hitelesítési szolgáltatás számítógépes hálózatokhoz] (holt link) . IEEE Communications Magazine (1994). Letöltve: 2014. december 15. Az eredetiből archiválva : 2013. május 26.. 
  5. ↑ 1 2 3 Szergej Nikolenko. Kulcsok és protokollok hozzájuk (2009. ősz). Hozzáférés dátuma: 2014. december 14. Az eredetiből archiválva : 2014. december 14.
  6. Dr. Geoff Hamilton. Kulcscsere és hitelesítési protokollok (nem elérhető hivatkozás) . Hozzáférés dátuma: 2014. december 14. Az eredetiből archiválva : 2014. december 14. 
  7. Olivier Michel. A Needham-Schroeder nyilvános kulcsú protokoll elemzése az MGS-szel . Hozzáférés dátuma: 2014. december 15. Az eredetiből archiválva : 2016. március 8.
  8. Gavin Lowe. Támadás a Needham-Schroeder nyilvános kulcsú hitelesítési protokoll ellen (1995). Letöltve: 2014. december 15. Az eredetiből archiválva : 2014. december 16..
  9. A.V. Cserjomuskin. Kriptográfiai protokollok: Főbb jellemzők és sebezhetőségek (2009. november).

Irodalom

  • Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone. Alkalmazott kriptográfia kézikönyve. - 1996. - S. 489-534. — 816 p. - ISBN 0-8493-8523-7 .

Linkek