Protokol distribuce klíčů

Protokoly distribuce klíčů je dohodnutá  posloupnost uživatelských akcí ( kryptografický protokol ) pro vytvoření zabezpečeného komunikačního kanálu, který spočívá ve generování a výměně klíčů relace a ověřování zpráv.

Hlavním úkolem protokolů pro distribuci klíčů je vývoj společného klíče účastníky (v budoucnu jim budeme jako vždy říkat Alice a Bob ). Zároveň si Bob i Alice musí být jisti, že spojení je s partnerem, a ne s vetřelcem nebo loutkou. Většina těchto protokolů je založena na existenci důvěryhodného centra (dále jen Trent) a předpokládá se, že Trent každému uživateli přiděluje tajný klíč, takže před spuštěním protokolu jsou všechny klíče již v uživatelích.

Všechny protokoly distribuce klíčů jsou nějak rozděleny do následujících kategorií (překrývající se):

Symetrické protokoly

Kryptografické zápisy používané v protokolech autentizace a výměny klíčů
Identifikátory Alice ( Alice ), iniciátorky sezení
Identifikátor Boba ( Bob ), strany, ze které je relace navázána
Identifikátor společnosti Trent ( Trent ), důvěryhodné zprostředkující strany
Veřejné klíče Alice, Boba a Trenta
Tajné klíče Alice, Boba a Trenta
Šifrování dat pomocí klíče Alice nebo společného klíče Alice a Trenta
Šifrování dat pomocí Bobova klíče nebo Bobova a Trentova společného klíče
Šifrování dat pomocí tajných klíčů Alice, Bob (digitální podpis)
Pořadové číslo relace (aby se zabránilo útokům z opakovaného přehrávání)
Náhodný klíč relace, který se má použít pro symetrické šifrování dat
Šifrování dat pomocí dočasného klíče relace
Časová razítka přidaná do zpráv od Alice a Boba
Náhodná čísla ( nonce ), která vybrala Alice a Bob

Hlavní článek: Symetrické kryptosystémy

Širokoústá žába

Protokol Wide-Mouth Frog  je nejjednodušší protokol pro správu klíčů. Umožňuje dvěma účastníkům vytvořit společný klíč relace pro bezpečnou komunikaci mezi sebou [1] . Na protokolu se podílí důvěryhodné centrum .

Popis protokolu [2]
  • Alice chce vytvořit klíč relace s Bobem. Začíná tím, že tvoří:

1. K - náhodný klíč relace

2. T A  - časové razítko

a pošle Trentovi (důvěryhodné centrum) a přidá své jméno:

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

  • Trent pomocí tajného klíče sdíleného s Alicí dešifruje zprávu a zkontroluje, že časové razítko TA a Bobovo ID jsou správné. Pokud je vše v pořádku, tvoří:

T B  je nové časové razítko (které se může lišit od TA ) a posílá se Bobovi

M1 \ u003d EB ( TB , A , K).

  • Bob přijme zprávu, dešifruje ji klíčem sdíleným s Trentem a zkontroluje časové razítko TA a Alicino ID. Pokud zpráva prošla testem, Bob nyní sdílí klíč s Alicí.

Protokol Needham-Schroeder

Protokol sdíleného klíče Needham-Schroeder je důležitý především z historických důvodů. Od roku 1978 je základem mnoha protokolů pro distribuci klíčů důvěryhodného centra. Včetně protokolů Kerberos a Otway-Rees (popsaných níže) pochází z tohoto protokolu.

Tento protokol je příkladem protokolu, který není závislý na časových razítkách a zároveň zajišťuje generování a potvrzení klíče.

Popis činnosti protokolu Needham-Schroeder Situace před zahájením protokolu
  • 3 herci: klienti Alice a Bob, kteří chtějí získat klíč ke vzájemné komunikaci, Trent je důvěryhodné centrum.
  • Alice a Bob mají tajné klíče E A a E B pro komunikaci s Trentem.
  • Alice volí N A , Bob volí N B .
Doba provozu protokolu
  • Alice tedy spustí protokol, vytvoří zprávu obsahující její a Bobovy identifikátory a také vybrané číslo N A a odešle ji Trentovi.

M ° = A, B, NA .

  • Poté, co Trent obdrží zprávu od Alice, vytvoří dvoudílnou zprávu. Do první části vloží N A , Bobův identifikátor a také nový klíč K, který chtějí Alice a Bob získat. Druhá část zprávy také obsahuje nový klíč K a Alicino ID, ale je zašifrována Trentovým a Bobovým tajným klíčem E B . Celá zpráva je zašifrována soukromým klíčem Alice a Trenta E A . a poslal Alici.

Mi = EA (NA , B, K, EB ( K , A)).

  • Alice dešifruje zprávu. Když ve zprávě našla N A , je přesvědčena, že mluvila s Trentem. Zcela nedokáže přečíst druhou část zašifrovanou E B a pošle ji Bobovi.

M2 = EB (K, A) .

  • Bob přijme a dešifruje zprávu, vytáhne nový klíč K a vytvoří zprávu pro Alici, ve které jí sdělí své číslo N B , zašifrované novým klíčem.

M3 \u003d E K ( NB ) .

  • Alice přijme zprávu, vytáhne N B , změní ji a pošle ji zpět Bobovi.

M4 = EK (NB - 1 ) [3] .

  • Alice a Bob sdílejí klíč K.

Protokol Kerberos

Protokol Kerberos je distribuovaný autentizační systém (autentizace), který umožňuje procesu (klientovi) běžícímu jménem uživatele prokázat svou identitu serveru bez odesílání dat přes síť , což může útočníkovi umožnit následně se vydávat za uživatele. Kerberos podle potřeby vynucuje integritu a důvěrnost dat vyměňovaných mezi klientem a serverem.

Kerberos byl vyvinut v polovině 80. let projektem Athena na MIT .

Vzhledem k tomu, že se používání Kerberos rozšířilo do různých prostředí, jsou nutné změny na podporu nových vzorců používání. K uspokojení těchto potřeb byl v roce 1989 zahájen vývoj Kerberos verze 5 ( Kerberos V5 ) . Zatímco verze 4 stále běží na mnoha webech, verze 5 je považována za standard Kerberos [4] .

Popis práce Kerberos Situace před zahájením protokolu
  • 3 herci: Alice je klient, Bob je server, kterému chce Alice prokázat svou identitu, Trent je důvěryhodné centrum.
  • Alice a Bob mají tajné klíče E A a E B pro komunikaci s Trentem.
  • Alice si vybere číslo N A a také nastaví časové razítko T A podle svých hodin.
  • t je doba platnosti (životnost), kterou zvolil Trent.
Doba provozu protokolu
  • Alice, která spustí protokol, pošle Trentovi 3 věci v prostém textu: své a Bobovy identifikátory a také zvolené číslo N A .

M ° = A, B, NA .

  • Trent poté, co obdržel zprávu od Alice, vygeneruje klíč K pro další komunikaci mezi Alicí a Bobem a pošle Alici zpět dvoudílnou zprávu. První část je zašifrována Aliciným soukromým klíčem a obsahuje K, N A , dobu platnosti t a Bobovo ID. Druhá část je pro Alici neznámá – je zašifrována Bobovým tajným klíčem a obsahuje K, t a Alicin identifikátor.

Mi = EA (K, NA , t , B), EB ( K, A, t).

  • Alice dešifruje první část zprávy přijaté od Trenta, přijme klíč K a vytvoří nový paket k odeslání Bobovi, který obsahuje Alicin identifikátor t a časové razítko TA . Poté Alice pošle Bobovi dvoudílnou zprávu: první část je ta, která přišla od Trenta, a druhou část vytvořila Alice.

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

  • Bob přijme zprávu. Po dešifrování první části vyjme nový klíč K a poté pomocí něj dešifruje druhou část. Aby Alici potvrdil, že zná nový klíč K, pošle jí Bob zprávu s časovým razítkem zašifrovaným novým klíčem K.

M3 \ u003d E K (TA ) .

  • Alice se ujistí, že Bob je Bob. Platí zde následující úvaha: Bob mohl dešifrovat zprávu od Alice s časovým razítkem pouze tehdy, kdyby znal klíč K. A klíč K mohl znát pouze tehdy, kdyby znal E B . A protože toto je tajný klíč Boba a Trenta, osoba, která poslala zprávu Alici, je Bob.
  • Alice a Bob jsou připraveni vyměňovat si zprávy pomocí klíče K [5] .
Dodatky Lístek Kerberos

V odborné literatuře se zpráva E B (K, A, t) často nazývá lístek. Pokaždé, když imaginární Alice prokáže svou identitu imaginárnímu Bobovi (koneckonců, počet uživatelů v síti může být mnohem větší než 2), spoléhá na Trenta ( důvěryhodné centrum ), že vygeneruje nový tajný klíč a bezpečně jej předá. oběma uživatelům. Nový tajný klíč K se nazývá klíč relace a je to lístek Kerberos, který se používá k jeho doručení Bobovi. Kerberos Ticket je certifikát vydaný důvěryhodnou autoritou a zašifrovaný veřejným klíčem EB  , Boba a Trenta. Kromě jiných informací lístek obsahuje náhodný klíč relace, který bude Bob použit k autentizaci Alice, jméno účastníka (v tomto případě Alice), kterému byl klíč relace vydán, a datum vypršení platnosti, po kterém je klíč relace není nadále platný. Tento certifikát (Kerberos Ticket) se neposílá přímo Bobovi, ale je zaslán klientovi (Alice), který jej v rámci požadavku odešle Bobovi k ověření. Protože je certifikát na serveru zašifrován klíčem, který zná pouze Trent a Bob, není možné certifikát (Kerberos Ticket) pro klienta (Alice) změnit [4] .

Protokol Otway-Riis

Protokol Otway-Rees je protokol symetrických klíčů, který vám umožňuje distribuovat klíče bez použití časových razítek .

Opět před spuštěním protokolu máme:

  • Trusted Center Trent
  • 2 uživatelé: Alice a Bob, kteří obdrželi E A a E B
  • Alice volí N a N A , Bob volí N B.
Popis protokolu [6]
  • Alice vytvoří zprávu pro Boba, ve které pošle N, A, B v čistém textu, stejně jako totéž N, A, B s N A , zašifrované klíčem E A sdíleným s Trentem .

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

  • Bob obdrží zprávu, jejíž druhá část je pro něj zcela nerozluštitelná, přidá k ní ještě jeden řádek, který zašifruje klíčem E B a odešle Trentovi.

M1 \ u003d N, A, B, E A (NA , N, A , B), EB ( NB , N, A, B).

  • Trent, který zná oba klíče, dokáže dešifrovat zprávy Alice a Boba. Nyní je jeho cílem potvrdit, že je Trent, a vytvořit klíč K pro další komunikaci mezi Alicí a Bobem.

Trent vygeneruje klíč K a pošle zprávu Bobovi.

M2 \u003d E A ( NA , K), EB ( NB , K ).

  • První část, zašifrovanou Aliciným klíčem, Bob vůbec neumí dešifrovat a v klidu dešifruje druhou část a počítá N B , ujistí se, že zpráva přišla od Trenta. Poté obdrží vygenerovaný klíč K. Nyní je Bob připraven komunikovat s Alicí, zbývá jí pouze doručit klíč. Bob posílá první část zprávy od Trenta Alici.

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

  • Alice přijme zprávu, zkontroluje, že je od Trenta (N A ), a přečte klíč K.
  • Alice a Bob jsou připraveni komunikovat.
Jaký je výsledek

S grácií dostáváme 4 zprávy:

  • Bob si je jistý, že mluvil s Trentem: Bob mu poslal číslo N B zašifrované tajným klíčem E B a zpět obdržel další zprávu obsahující stejné číslo a zašifrovanou stejným klíčem.
  • Alice si je zase jistá i tím, že Bob mluvil s Trentem, protože ona poslala své číslo N A zašifrované klíčem E A a zpět obdržela další zprávu, ale také obsahující N A a zašifrovanou E A .
  • Alice a Bob mají společný klíč K.
Problém
  • Alice si nemůže být jistá, že Bob je Bob. Je si jistá pouze tím, že komunikuje s určitou osobou, která může jít do Trenta. K vyřešení tohoto problému v kroku 4 může Bob poslat Alici nejen E A (N A , K), ale také například E K (N A , N B ), čímž prokáže, že zná klíč K. A Alice na oplátku může odpovědět Bob E K (N B ), čímž také prokáže, že zná klíč K [5] .

Asymetrické protokoly

Hlavní článek: Kryptosystém s veřejným klíčem

Protokol Needham-Schroeder

Protokol veřejného klíče Needham-Schroeder byl publikován stejným způsobem jako jeho symetrický bratranec v roce 1978. Jedná se o široce používaný model při studiu formálních metod ověřování kryptografických protokolů. Tato popularita zjevně pochází z jednoho z nejúspěšnějších příběhů v této oblasti - v roce 1994 protokol prošel úspěšným replay útokem 16 let po jeho zveřejnění. Útok provedl David G. Lowe  , kanadský počítačový vědec [ 7] .

Na webu Worcester Polytechnic Institute můžete najít původní článek publikovaný Davidem G. Lowem [8]

Tento protokol zajišťuje vzájemný přenos klíčů k A a kB a také vzájemnou autentizaci.

Popis, jak protokol funguje Situace před zahájením práce
  • Alice a Bob mají veřejné kódovací procedury P A a P B .
  • Alice a Bob se chtějí vzájemně identifikovat pomocí tří zpráv a pomocí veřejných klíčů.
Doba provozu protokolu
  • Alice si vybere svou část klíče, k A , a vytvoří zprávu Bobovi, do které vloží svůj identifikátor a k A . Celá zpráva je zašifrována Bobovým veřejným klíčem P B a odeslána jemu.

M ° = PB (A, kA ) .

  • Bob dešifroval zprávu a nyní ví, že Alice s ním chce mluvit a ke komunikaci chce použít klíč k A. Bob si vybere svou část klíče, kB , a pošle Alici zprávu sestávající ze dvou klíčů kA a kB , zašifrovaných Aliciným veřejným klíčem. Bob tedy Alici potvrdí, že obdržel část jejího klíče K A .

Mi = PA ( ka , kB ) .

  • Nyní je řada na Alice, aby dokázala Bobovi, že je Alice. K tomu musí umět dešifrovat zprávy zašifrované klíčem P A . Udělá dobře, že dešifruje zprávu od Boba, vezme odtud k A a pošle Bobovi zprávu obsahující jeho klíč kB .

M 2 \u003d P B (k B ).

  • Výsledkem je, že ve fázi zprávy M 1 si je Alice jistá, že Bob je Bob, a Bob zná celý klíč. A ve fázi zprávy M 2 si je Bob jistý, že mluvil s Alicí, a ta zná celý klíč. [5]

Nejznámější útoky na kryptografické protokoly [9]

Substituce

Substituce (angl. Impersonation) – pokus o nahrazení jednoho uživatele jiným. Narušitel, hovořící jménem jedné ze stran a zcela napodobující její jednání, dostává jako odpověď zprávy určitého formátu, nezbytné pro vytvoření jednotlivých kroků protokolu.

Protiopatření jsou:

  • utajení před nepřítelem informací, které určují identifikační algoritmus;
  • použití různých formátů zpráv přenášených v různých krocích protokolu;
  • vkládání speciálních identifikačních značek a čísel zpráv do nich. V protokolech využívajících třetí stranu jsou možné útoky založené na nahrazení důvěryhodného serveru.

Například jedna ze stran, která má se serverem důvěryhodný vztah, jedná jeho jménem, ​​nahradí svůj výměnný provoz jinými stranami a v důsledku toho získá příležitost prozradit hodnoty klíčů generovaných centrem.

Opakujte útok

Přehrát útok - opětovné použití zprávy nebo její části dříve přenesené v aktuální nebo předchozí relaci v aktuální relaci protokolu .

Například opakovaný přenos informací z dříve provedeného autentizačního protokolu může vést k úspěšné opětovné identifikaci stejného nebo jiného uživatele.

V protokolech přenosu klíčů se tento útok často používá k opětovnému vložení dříve používaného klíče relace - útok čerstvosti.

Protiopatření spočívají v zajištění integrity relace a nemožnosti do ní vkládat zbytečné zprávy. Chcete-li to provést, vložte do přenášených zpráv časová razítka nebo náhodná čísla a také identifikátory stran.

Kombinovaný útok

Útok s prokládáním je náhrada nebo jiná metoda klamání, která využívá kombinaci dat z dříve provedených protokolů, včetně protokolů dříve uložených nepřítelem.

Metodou protiopatření je zajistit integritu protokolových relací a jednotlivých zpráv.

Poznámky

  1. Pablo Giambiagi. Utajení pro mobilní implementace bezpečnostních protokolů. - 2001. - S. 36 . — ISSN 1403-5286 .
  2. John Kelsey, Bruce Schneier, David Wagner. Interakce protokolu a útok na vybraný protokol. - 1997. - S. 8 . — ISSN 0302-9743 .
  3. Alexey Lisitsa. Autentizační protokol Needham-Schroeder a jeho formální analýza . Datum přístupu: 15. prosince 2014. Archivováno z originálu 7. března 2016.
  4. ↑ 1 2 B. Clifford Neuman a Theodore Ts'o. [ http://www.isi.edu/div7/publication_files/kerberos_an_auth.htm Kerberos: Autentizační služba pro počítačové sítě] (mrtvý odkaz) . IEEE Communications Magazine (1994). Získáno 15. prosince 2014. Archivováno z originálu 26. května 2013. 
  5. ↑ 1 2 3 Sergej Nikolenko. Klíče a protokoly pro ně (podzim 2009). Datum přístupu: 14. prosince 2014. Archivováno z originálu 14. prosince 2014.
  6. Dr. Geoff Hamilton. Protokoly výměny klíčů a autentizace (nedostupný odkaz) . Datum přístupu: 14. prosince 2014. Archivováno z originálu 14. prosince 2014. 
  7. Olivier Michel. Analýza Needham-Schroederova protokolu veřejného klíče s MGS . Datum přístupu: 15. prosince 2014. Archivováno z originálu 8. března 2016.
  8. Gavin Lowe. Útok na autentizační protokol veřejného klíče Needham-Schroeder (1995). Získáno 15. prosince 2014. Archivováno z originálu 16. prosince 2014.
  9. A.V. Cheryomushkin. Kryptografické protokoly: Klíčové vlastnosti a zranitelnosti (listopad 2009).

Literatura

  • Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone. Příručka aplikované kryptografie. - 1996. - S. 489-534. — 816 s. - ISBN 0-8493-8523-7 .

Odkazy