GNU/Linux >> Znalost Linux >  >> Linux

Co je výměna sdíleného klíče (Jak fungují sítě VPN, část 3)

Tento článek v sérii „Jak fungují sítě VPN“ popisuje, jak funguje výměna sdílených klíčů. Pokud jste již ztraceni, nepropadejte panice! Tato série článků vysvětluje koncepty a metody VPN, aniž by bylo nutné se hlouběji ponořit do matematiky, která je ovládá.

Pokud jste v konceptu VPN zcela nováčkem, podívejte se na tento úvod. Pokud už víte něco o tom, jak VPN fungují, a chcete vědět trochu víc, tato série je pro vás. Každý článek se zabývá jedním aspektem toho, jak VPN pomáhá zabezpečit data tím, že vypráví příběh, který slouží jako metafora pro zahrnuté logické mechanismy. Tyto příběhy zahrnují Adama a Burta, kteří se snaží udržet tajemství, a třetí osoba, Cesar, snažící se jejich tajemství hanebně odhalit. Vzhledem k tomu, že VPN nemají žádný dokonalý ekvivalent fyzického světa, některé prvky mohou prodloužit hranice důvěryhodnosti (například Cesar má přístup k paprsku duplikátoru). Pamatujte, že je to jen příběh…

Každý článek má také rozbalitelné části (označené ikonou ozubeného kola), které obsahují o něco podrobnější vysvětlení, které je poněkud techničtější, ale přesto se v matematice příliš neztratí. Tyto části trochu více propojují události příběhu se součástmi nebo kroky šifrování nebo ověřování, ale nejsou vyžadovány pro základní pochopení tématu.

Výměna sdíleného klíče

V dřívějších dobrodružstvích se naši přátelé Adam a Burt snažili utajit svůj komiksový projekt před Cesarovým slíděním tím, že zprávy, které si vyměňují se sdíleným klíčem a propracovanějším systémem párů veřejného/soukromého klíče. Každý systém má své silné a slabé stránky. Kluci si ale potřebují od tohoto projektu odpočinout a naštěstí pro ně poblíž probíhá pouť. Vstupují do chilli cook-off, a protože milují utajování svých výtvorů, vymyslí způsob, jak utajit svůj recept, i když jej připravují před zraky přihlížejících. Recept bude tak bezpečný; ani oni to nebudou vědět!

Dobře známý výchozí bod

Aby Adam a Burt dosáhli tohoto úspěchu, budou muset každý vyvinout část receptu, aniž by věděli, čím přispěl ten druhý. Pokud ani jeden z nich nezná celý recept, nemůže ho prozradit ani jeden. Shodují se však na společném základu surovin (směs rajčatového základu, chilli koření, hovězího masa a fazolí). Tuto část není třeba držet v tajnosti – většina ostatních soutěžících začíná s podobným základem, takže vynaloží jen málo úsilí na to, aby tyto přísady zakryli.


Vyjednávání o výměně klíčů.

Skutečnost, že obě strany mohou začít s tímto vyjednáváním na nezabezpečeném veřejném médiu, je jednou ze základních a chytrých myšlenek této metody iniciace šifrování. Než dojde k šifrování, musí mezi protějšky probíhat nějaký nešifrovaný provoz, jinak ani jeden nebude vědět, jak dešifrovat budoucí zprávy. Tento počáteční krok umožňuje jednomu hostiteli říci druhému, že si přeje zahájit vyjednávání o metodě šifrování tím, že nabídne několik počátečních hodnot známému matematickému vzorci (který je v tomto příkladu základem chilli). Skutečné kouzlo přichází v dalších krocích.

Nasazení klíče

Adam a Burt nezávisle a tajně připravili porci koření a dalších ingrediencí zatavených do neprůhledného rýžového papíru sáček, který se po ponoření do chilli rozpustí. V tomto vaření obsahuje Adamův sáček tomatillos, chipotles, kajenský pepř a skořici; Burt’s má cajunské koření, pivo, kmín, oregano a worcestrovou omáčku*. Adam hodí svůj balíček do hrnce a míchá a ochutnává chilli, dokud si není jistý, že se sáček rozpustil a uvolnil své přísady. To samé udělá Burt se svým hrncem. V tuto chvíli mají Adam a Burt dvě různé chilli papričky.

* (pro případ, že by vás zajímalo, proč se to již nerozpouští z piva, řekněme, že Burt před vložením do rozpustného sáčku předem zmrazil všechny tekutiny.)


Generování sdíleného klíče.

Ve skutečném procesu výměny klíčů jsou tyto „ingredience“ ve skutečnosti velmi velká prvočísla. V procesu výměny klíčů jsou tato velká prvočísla náhodně generována. Čím větší jsou čísla použitá pro vstup do této výměny klíčů, tím obtížnější je prolomit techniky hrubé síly. Velikost těchto čísel se nazývá bitová skupina. Skupina prvočísel stejné délky v binárních bitech (např. 1024 nebo 2048 nebo dokonce větších bitových délek), všechna patří do stejné skupiny. Čím větší je skupina bitů, tím robustnější se tento proces výměny klíčů stává a tím odolnější vůči analýze a potenciálnímu kompromisu.

Dokončení výměny

Nyní vymění hrnce, o které se starají, takže Burt je u hrnce, který začal Adam, a naopak. Každý si vezmou další sáček identický s tím, se kterým začali, a přidají tento druhý sáček do hrnce, který začal druhý (a tak Adam do hrnce přidá svá tomatillos, chipotles, kajenský pepř a skořici Burt začal s cajunským kořením, pivem , kmín, oregano a worcesterská omáčka a Burt přidá svůj váček do hrnce, který začal Adam). Poté, co každý z nich zamíchá své hrnce a rozpustí sáčky, aby se uvolnily tajné přísady, mohou si být jisti, že každý hrnec nyní obsahuje stejné chilli papričky.


Výměna klíčů Diffie-Hellman.

Z matematického hlediska je algoritmus, kterým se řídí výměna sdíleného klíče, komutativní – lze jej provádět v libovolném pořadí a dosáhnout stejného výsledku. Všimněte si také, že ani Adam, ani Burt nemají prostředky k rekonstrukci klíče sami. Každý z nich zná pouze náhodnou hodnotu, kterou každý přispěl k algoritmu. A protože každý z nich po dokončení vyjednávání také generuje kopii klíče, má každý také kopii konečného klíče, aniž by byl přenesen po síti.

Tato sdílená výměna klíčů nebo vyjednávání se nazývá Diffie-Hellman Key Exchange, pojmenovaná podle autorů článku, který tuto metodu poprvé popsal, Whitfielda Diffieho a Martina Hellmana. Jejich práce vycházela z předchozí práce Ralpha Merkla, takže bylo navrženo (sám Hellmanem), aby se tato metoda nazývala Diffie-Hellman-Merkle Key Exchange. Ve skutečných konfiguracích často uvidíte tuto metodu použitou jako DH skupiny, různé skupiny odpovídající klíčům různých délek v binárních bitech.

Komplexní chutě

Během přípravy mohli všichni rozhodčí vidět a odebírat vzorky ze startovních nádob nebo středních nádob. I kdyby Cesar, odhodlaný naučit se tajný recept, vystupoval jako soudce, nebyl by schopen spolehlivě rekonstruovat konečný recept, který Adam a Burt použili. (Tento příklad předpokládá, že Cesar nemá schopnost rozlišit všechny jednotlivé příchutě obsažené v chilli. Pokus o identifikaci přísad a jejich množství pomocí laboratorní analýzy by byl dost drahý na čas a energii investovanou do toho, aby to nebylo možné.)


Potenciální zranitelnosti.

Pokud by útočník chtěl kompromitovat jakoukoli komunikaci zašifrovanou tímto klíčem, typický útok typu man-in-the-middle odposlechu by nestačil. Útočník by se však mohl vložit jako tranzitní muž-uprostřed. Pokud by se útočník nastavil tak, že veškerá komunikace mezi dvěma hostiteli musela procházet přes něj, mohl by provést Diffie-Hellman vyjednávání s každým peerem. Každá strana spojení by věděla pouze to, zda je vyjednán úspěšný klíč, ale ne s kým. V této pozici by muž-in-the-middle mohl vidět celou konverzaci – ve skutečnosti by musel příchozí provoz dešifrovat a znovu zašifrovat, než jej odešle na druhou stranu, aby si zachoval dojem, že end má stále své „zabezpečené“ připojení.

Je také možné, že se útočník pokusí provést útok typu man-in-the-middle, aby snížil DH skupinu na skupinu, jejíž bitová délka je mnohem menší a méně bezpečná. Tento útočník by pak mohl shromáždit slabě zašifrovaná data a provést offline útok hrubou silou proti šifrování, aby je prolomil v rozumném čase. Útoky jako FREAK a Logjam používají nějakou metodu downgrade k oslabení výměny klíčů Diffie-Hellman.

Více v sérii Jak fungují sítě VPN:

Část 1:Algoritmy symetrického šifrování
Část 2:Kryptografie s veřejným klíčem
Zjistěte více o našich hostingových službách VPS a ceně hostingu VPS.


Linux
  1. Co je kryptografie s veřejným klíčem (Jak fungují sítě VPN, část 2)

  2. Jak fungují pseudoterminály *nix? Jaký je hlavní/podřízený kanál?

  3. Jak rm funguje? Co dělá rm?

  1. Co je Makefile a jak funguje?

  2. Co je NGINX? Jak to funguje?

  3. Jak zjistit, jaké schopnosti linuxu proces vyžaduje, aby fungoval?

  1. Co je webový server a jak webový server funguje?

  2. Jak funguje vstup z klávesnice a textový výstup?

  3. Co je DNS a jak funguje?