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
- ↑ Pablo Giambiagi. Utajení pro mobilní implementace bezpečnostních protokolů. - 2001. - S. 36 . — ISSN 1403-5286 .
- ↑ John Kelsey, Bruce Schneier, David Wagner. Interakce protokolu a útok na vybraný protokol. - 1997. - S. 8 . — ISSN 0302-9743 .
- ↑ 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. (neurčitý)
- ↑ 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. (neurčitý)
- ↑ 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. (neurčitý)
- ↑ 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. (neurčitý)
- ↑ 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. (neurčitý)
- ↑ 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. (neurčitý)
- ↑ A.V. Cheryomushkin. Kryptografické protokoly: Klíčové vlastnosti a zranitelnosti (listopad 2009). (neurčitý)
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