Kas yra „Diffie – Hellman“ raktų mainai ir kaip jie veikia?

Kas yra „Diffie – Hellman“ raktų mainai ir kaip tai veikia


Diffie-Hellmano raktų mainai buvo vienas iš svarbiausių viešojo rakto kriptografijos pokyčių ir vis dar dažnai įgyvendinamas įvairiuose šių dienų saugos protokoluose.

Tai leidžia dviem prieš tai nesitarusioms šalims saugiai nustatyti raktą, kurį jie gali naudoti savo ryšiams apsaugoti. Šiame straipsnyje paaiškinsime, kam jis naudojamas, kaip jis veikia žingsnis po žingsnio, skirtingus jo variantus, taip pat saugumo sumetimus, į kuriuos reikia atkreipti dėmesį norint jį saugiai įgyvendinti..

Kas yra „Diffie-Hellman“ raktų mainai?

Diffie-Hellmano raktų mainai buvo pirmasis plačiai naudojamas būdas saugiai kurti ir keistis raktais per nesaugų kanalą.

Aukščiau pateiktais terminais tai gali neatrodyti taip jaudinantis ar novatoriškas, todėl pateiksime pavyzdį, paaiškinantį, kodėl „Diffie-Hellman“ raktų mainai buvo toks svarbus kriptografijos pasaulio etapas ir kodėl jie vis dar taip dažnai naudojami šiandien..

Tarkime, kad esate slapčiausias šnipas ir jums reikia išsiųsti svarbios informacijos į savo būstinę. Kaip užkirsite kelią savo priešams įsivyrauti žinią?

Dažniausias sprendimas būtų užšifruoti pranešimą kodu. Paprasčiausias būdas yra iš anksto suderinti bet kurį kodą ir raktą, kurį planuojate naudoti iš anksto, arba tai padaryti saugiu ryšio kanalu..

Tarkime, kad esate ypač blogas šnipas, o jūs ir jūsų būstinė nusprendžiate naudoti silpną šifravimo šifrą jūsų kodavimui. Šiame kodekse kiekvienas „a“ tampa „b“, kiekvienas „b“ tampa „c“, kiekvienas „c“ tampa „d“ ir panašiai, iki pat „z“ tampa „a“.

Pagal šifruotą šifrą pranešimas „Let’s get vakarienė“ tampa „Mfu’t hfu ejoofs“. Laimei, hipotetinėje situacijoje jūsų priešininkai yra tokie patys nekompetentingi kaip jūs ir nesugeba nulaužti tokio paprasto kodo, kuris neleidžia jiems pasiekti pranešimo turinio..

O kas nutiks, jei negalėtumėte iš anksto suderinti kodo su savo gavėju?

Tarkime, kad norite bendrauti su sąjungininkų tautos šnipu, su kuriuo dar niekad nebuvote susitikę. Neturite saugaus kanalo, per kurį būtų galima su jais kalbėtis. Jei neužšifruosite savo pranešimo, bet kuris priešininkas, kuris jį perima, galės perskaityti jo turinį. Jei užšifruosite nepasakydami sąjungininkui kodo, tada priešas negalės jo perskaityti, tačiau sąjungininkas.

Šis leidimas buvo vienas didžiausių kriptografijos klaidų iki aštuntojo dešimtmečio:

Kaip jūs galite saugiai keistis informacija su kuo nors, jei anksčiau neturėjote galimybės pasidalinti raktu?

Diffie-Hellmano raktų mainai buvo pirmasis viešai naudojamas šios problemos sprendimo mechanizmas. Algoritmas leidžia saugiai sukurti bendrą raktą tiems, kurie dar niekada nebuvo susitikę, net per nesaugų kanalą, kurį gali stebėti priešininkai..

„Diffie-Hellman“ apsikeitimo raktų istorija

„Diffie-Hellman“ raktų mainai siekia savo šaknis dar aštuntajame dešimtmetyje. Nors kriptografijos laukas buvo labai išplėtotas per ankstesnį dvidešimtmetį, šie pasiekimai daugiausia buvo nukreipti į simetrinio rakto kriptografijos sritį..

Tik 1976 m. Viešojo rakto algoritmai atsirado viešojoje erdvėje, kai Whitfield Diffie ir Martin Hellman paskelbė savo darbą, Naujos kryptys kriptografijoje. Bendradarbiaujant buvo apibrėžti naujos sistemos, kuri bus žinoma kaip. Sistemos, mechanizmai Diffie-Hellmano raktų keitimas.

Kūrinys iš dalies buvo įkvėptas ankstesnių Ralfo Merklės įvykių. Taip vadinamas „Merkle“ dėlionės įtraukti vieną šalį kurti ir siųsti kitai daugybę kriptografinių dėlionių. Šių galvosūkių sprendimas užtruks šiek tiek skaičiavimo išteklių.

Gavėjas atsitiktinai pasirinks vieną išspręstą galvosūkį ir tada įdės reikiamas pastangas, kad jį užbaigtų. Kai galvosūkis bus išspręstas, gavėjui bus atskleistas identifikatorius ir sesijos raktas. Tada gavėjas perduoda identifikatorių atgal pradiniam siuntėjui, kuris siuntėjui praneša, kuris galvosūkis buvo išspręstas.

Kadangi pirminis siuntėjas sukūrė galvosūkius, identifikatorius leidžia jiems žinoti, kurį seanso raktą gavėjas atrado, ir abi šalys gali naudoti šį raktą saugiau bendrauti. Jei užpuolikas klausosi sąveikos, jis turės prieigą prie visų galvosūkių ir identifikatoriaus, kurį gavėjas perduoda atgal pradiniam siuntėjui..

Identifikatorius nepasako užpuolikui, kuris sesijos raktas yra naudojamas, todėl geriausias būdas iššifruoti informaciją yra išspręskite visus galvosūkius, kad atskleistumėte teisingą sesijos raktą. Kadangi užpuolikas vidutiniškai turės išspręsti pusę galvosūkių, jiems atsiskleisti raktą bus daug sunkiau nei gavėjui..

Šis požiūris suteikia daugiau saugumo, tačiau tai toli gražu nėra puikus sprendimas. Diffie-Hellmano raktų mainai paėmė kai kurias iš šių idėjų ir padarė jas sudėtingesnes, kad būtų sukurtas saugus viešojo rakto kriptografijos metodas..

Nors jis buvo žinomas kaip „Diffie-Hellman“ raktų mainai, Martinas Hellmanas pasiūlė, kad algoritmas būtų pavadintas „Diffie-Hellman-Merkle“ raktų keitimu, o tai atspindi darbą, kurį Ralfas Merkle įdėjo į viešojo rakto kriptografiją..

Viešai manyta, kad Merkle, Hellmanas ir Diffie buvo pirmieji žmonės, sukūrę viešojo rakto kriptografiją iki 1997 m., Kai Britanijos vyriausybė išslaptino darbą, kurį aštuntojo dešimtmečio pradžioje atliko Jamesas Ellisas, Cliffordas Coxas ir Malcolmas Williamsonas.

Pasirodo, trijulė sugalvojo pirmąją viešojo rakto šifravimo schemą 1969–1973 metais, tačiau jų darbai buvo klasifikuojami du dešimtmečius. Jis buvo vykdomas JK žvalgybos agentūros Vyriausybės komunikacijos štabe (GCHQ).

Jų atradimas iš tikrųjų buvo RSA algoritmas, taigi Diffie, Hellman ir Merkle vis dar buvo pirmieji, kurie sukūrė Diffie-Hellman raktų mainus, bet nebebuvo pirmieji viešojo rakto kriptografijos išradėjai..

Kur naudojama „Diffie-Hellman“ raktų keitimas?

Pagrindinis „Diffie-Hellman“ raktų mainų tikslas yra saugiai kurti bendras paslaptis, kurias galima panaudoti raktams gauti. Šie raktai gali būti naudojami su simetrinių raktų algoritmais, norint saugiai perduoti informaciją. Simetriniai algoritmai dažniausiai naudojami šifruoti didžiąją dalį duomenų, nes jie yra efektyvesni nei viešojo rakto algoritmai..

Techniškai „Diffie-Hellman“ raktų mainai gali būti naudojami viešiesiems ir privatiesiems raktams nustatyti. Tačiau praktikoje vietoj to naudojama RSA. Taip yra todėl, kad RSA algoritmas taip pat gali pasirašyti viešojo rakto sertifikatus, tuo tarpu „Diffie-Hellman“ raktų mainai nėra.

„ElGamal“ algoritmas, kuris buvo daug naudojamas PGP, yra paremtas „Diffie-Hellman“ raktų apsikeitimu, todėl bet kuris jį naudojantis protokolas efektyviai įgyvendina savotišką „Diffie-Hellman“..

Diffie-Hellmanas yra vienas iš labiausiai paplitusių būdų saugiai paskirstyti raktus dažnai įgyvendinamas tokiuose saugos protokoluose kaip TLS, IPsec, SSH, PGP ir daugelyje kitų. Tai daro neatsiejama mūsų saugaus ryšio dalis.

Kaip dalis šių protokolų, „Diffie-Hellman“ keitimasis raktais dažnai naudojamas siekiant
padėti užmegzti ryšį su svetaine, nuotoliniu būdu pasiekti kitą kompiuterį ir siųsti užšifruotus el.

Kaip veikia „Diffie-Hellman“ raktų mainai?

„Diffie-Hellman“ keitimasis raktais yra sudėtingas ir gali būti sunku susivokti, kaip tai veikia. Tam naudojama labai daug skaičių ir daug matematikos, to, ko daugelis iš mūsų vis dar bijojo iš tų ilgų ir nuobodžių vidurinės mokyklos pamokų.

Kad būtų šiek tiek lengviau suprasti dalykus, Pradėsime paaiškindami Diffie-Hellmano raktų apsikeitimą analogija. Kai turėsite puikų vaizdą, kaip tai veikia, pereisime prie labiau techninio pagrindinių procesų aprašymo.

Geriausia analogija Diffie-Hellmano schemai yra galvoti du žmonės maišo dažus. Panaudosime kriptografijos standartą ir pasakykime, kad jų vardai yra Alisa ir Bobas. Jie abu susitaria dėl atsitiktinės spalvos pradžios. Tarkime, kad jie siunčia vieni kitiems pranešimą ir nuspręsti dėl geltonos spalvos, kaip ir toliau pateiktoje schemoje:

diffie-hellman-2

pamatyti savo slaptą spalvą. Jie nepasako kitai šaliai apie savo pasirinkimą. Tarkime, kad Alisa pasirenka raudona, o Bobas pasirenka a šiek tiek žalsvai mėlyna.

Kitas žingsnis - tiek Alisa, tiek Bobas turi sumaišyti savo slaptą spalvą (raudona Alisai, žalsvai mėlyna Bobai) su geltona, dėl kurios jie susitarė. Pagal schemą Alisa baigiasi an oranžinis mišinys, o Bobo rezultatas yra a giliau mėlyna.

Baigę maišyti, jie perduoda rezultatą kitai šaliai. Alisa gauna gilesnę mėlyną spalvą, kol Bobui siunčiami oranžinės spalvos dažai.

Gavę mišrų rezultatą iš savo partnerio, jie prideda savo slaptą spalvą. Alisa paima giliau mėlyną spalvą ir prideda savo slaptus raudonus dažus, kol Bobas prideda savo slaptą žalsvai mėlyną prie ką tik gauto apelsinų mišinio.

Rezultatas? Jie abu yra tos pačios spalvos, kuris šiuo atveju yra šlykštus rudas. Tai gali būti ne tokia spalva, kuria norėtumėte dažyti savo kambarį, tačiau vis dėlto tai yra bendra spalva. Ši bendroji spalva vadinama bendra paslaptis.

Kritinė „Diffie-Hellman“ apsikeitimo raktais dalis yra ta, kad abi šalys pasiekia tą patį rezultatą ir niekada nereikia per komunikacijos kanalą perduoti visos bendros paslapties.. Pasirinkus bendrą spalvą, savo slaptas spalvas, keičiantis mišiniu ir vėl pridedant savo spalvą, abiem šalims suteikiama galimybė pasiekti tą pačią bendrą paslaptį, niekada nereikia siųsti per visą daiktą..

Jei užpuolikas klausosi mainų, viskas, ką jie gali pasiekti, yra įprasta geltona spalva, nuo kurios prasideda Alisa ir Bobas, taip pat mišrios spalvos, kuriomis keičiamasi. Kadangi tai daroma su milžiniškais skaičiais, o ne dažais, šios informacijos nepakanka, kad užpuolimas išsiaiškintų nei pradines slaptas spalvas, nei bendrą paslaptį (techniškai iš šios informacijos įmanoma apskaičiuoti bendrą paslaptį, tačiau norint saugiai įgyvendinti pasikeitimą „Diffie-Hellman“ raktais, tam prireikti nepakaktų laiko ir skaičiavimo išteklių)..

Ši „Diffie-Hellman“ apsikeitimo raktų struktūra yra tai, kas daro ją tokiu naudingu. Tai leidžia abiem šalims susisiekti potencialiai pavojingu ryšiu ir vis tiek sugalvoti bendrą paslaptį, kurią jie gali panaudoti šifravimo raktams kurti ateityje. Nesvarbu, ar kokie užpuolikai klausosi, nes visa bendra paslaptis niekada nėra siunčiama per ryšį.

„Diffie-Hellman“ raktų keitimo techninė informacija

Laikas matematikai…

Nesijaudinkite, lėtai stengsimės ir stengsimės, kad visas procesas būtų kuo lengviau suprantamas. Vadovaujamasi panašia prielaida, kaip ir aukščiau parodyta, bet vietoj spalvų maišymo ir siuntimo, Diffie-Hellmano schema iš tikrųjų daro skaičiavimus pagal ypač didelius pirminius skaičius, tada siunčia juos skersai.

Siekiant užtikrinti saugumą, rekomenduojama: pagrindinis (p) yra bent 2048 bitų ilgio, kuris yra maždaug tokio dydžio dešimtainio skaičiaus dvejetainis ekvivalentas:

415368757628736598425938247569843765827634879128375827365928736 84273684728938572983759283475934875938475928475928739587249587 29873958729835792875982795837529876348273685729843579348795827 93857928739548772397592837592478593867045986792384737826735267 3547623568734869386945673456827659498063849024875809603947902 7945982730187439759284620950293759287049502938058920983945872 0948602984912837502948019371092480193581037995810937501938507913 95710937597019385089103951073058710393701934701938091803984091804 98109380198501398401983509183501983091079180395810395190395180935 8109385019840193580193840198340918093851098309180019

Norėdami išvengti, kad kas nors sprogtų, mes pateiksime šį paaiškinimą daug mažesniais skaičiais. Žinokite tai „Diffie-Hellman“ raktų keitimas būtų nesaugus, jei jame būtų naudojami tokie maži skaičiai, kaip mūsų pavyzdyje. Mes naudojame tik tokius mažus skaičius, kad būtų paprasčiau pademonstruota koncepcija.

Pačioje pagrindinėje „Diffie-Hellman“ raktų mainų formoje, Alisa ir Bobas pirmiausia nusprendžia, nuo ko pradėti du numeriai, priešingai nei vienodi dažai aukščiau pateiktame pavyzdyje. Šitie yra modulis (p) ir pagrindas (g).

Praktikoje, modulis (p) yra labai didelis pirminis skaičius, kol pagrindas (g) yra palyginti mažas, kad būtų lengviau skaičiuoti. Pagrindas (g) yra gautas iš ciklinės grupės (G), kuri paprastai sukuriama gerokai anksčiau nei kiti veiksmai bus atlikti.

Pavyzdžiui, tarkime, kad modulis (p) yra 17, o bazė (g) yra 4.

Kai abipusiai nusprendžia dėl šių skaičių, Alisa įsikuria slaptu numeriu (a) sau, o Bobas pasirenka savo slaptą numerį (b). Tarkime, kad jie pasirenka:

a = 3

b = 6

Tada Alisa atliks šį skaičiavimą, kad suteiktų jai numerį, kurį ji nusiųs Bobui:

A = ga mod p

Aukščiau pateiktame skaičiavime, mod reiškia modulio operaciją. Tai iš esmės yra skaičiavimai norint sužinoti likusią dalį padalijus kairę pusę dešine. Pavyzdžiui:

15 mod 4 = 3

Jei suprantate, kaip veikia modulo operacijos, atlikdami šiuos skaičiavimus, galite jas atlikti patys, kitaip galite naudoti internetinę skaičiuoklę.

Taigi sudėkime savo skaičius į formulę:

A = 43 mod 17

A = 64 mod 17

A = 13

Kai tą patį darome su Bobu, gauname:

B = 46 mod 17

B = 4096 mod 17

B = 16

Tada Alisa atsiunčia savo rezultatą (A) Bobui, o Bobas siunčia savo figūrą (B) Alisai. Tada Alisa apskaičiuoja bendrą paslaptį (s) naudojant numerį, kurį ji gavo iš Bobo (B) ir slaptasis jos numeris (a), naudojant šią formulę:

s = Ba mod p

s = 163 mod 17

s = 4 096 mod 17

s = 16

Tada Bobas atlieka iš esmės tą patį skaičiavimą, tačiau su numeriu, kurį jam atsiuntė Alisa (A), taip pat savo slaptą numerį (b):

s = Ab mod p

s = 136 mod 17

s = 4826809 mod 17

s = 16

Kaip matote, abi šalys baigėsi tuo pačiu rezultatu s, 16. Tai yra bendra paslaptis, kurią žino tik Alisa ir Bobas. Tada jie gali naudoti tai norėdami nustatyti simetrinio šifrav
imo raktą, leisdami jiems saugiai siųsti informaciją tarpusavyje tokiu būdu, kad tik jie galėtų prie jo prieiti..

Atminkite, kad nors B ir s yra tokie patys aukščiau pateiktame pavyzdyje, tai tik sutapimas remiantis mažais skaičiais, kurie buvo pasirinkti šiai iliustracijai. Paprastai šios vertės nebūtų vienodos realiai įgyvendinant „Diffie-Hellman“ raktų mainus.

Nors didžioji dalis aukščiau išvardytų duomenų yra perduodama per kanalą aiškiajame tekste (p, g, A ir B) ir gali būti perskaitytos potencialių užpuolikųs) niekada neperduodamas. Užpuolikui nebūtų praktiška apskaičiuoti bendrą paslaptį (s) arba kurį nors iš slaptųjų numerių (a ir b) iš informacijos, kuri siunčiama aiškiajame tekste.

Žinoma, tai reiškia, kad „Diffie-Hellman“ raktų mainai yra tinkamai įgyvendinti ir naudojami pakankamai dideli skaičiai. Kol bus laikomasi šių nuostatų, „Diffie-Hellman“ raktų mainai laikomi saugiu būdu sukurti bendrą paslaptį, kuri gali būti naudojama norint užtikrinti būsimus ryšius..

Sukurti bendrą raktą tarp kelių šalių

„Diffie-Hellman“ raktų mainai taip pat gali būti naudojami nustatant bendrą raktą su didesniu dalyvių skaičiumi. Ji veikia tuo pačiu būdu, išskyrus tai, kad kiekvienai šaliai reikia pridėti savo slaptą numerį ir gauti tą pačią bendrą paslaptį, reikalingi papildomi skaičiavimo raundai..

Kaip ir dviejų šalių „Diffie-Hellman“ apsikeitimo raktais versijoje, kai kurios informacijos dalys siunčiamos nesaugiais kanalais, tačiau to nepakanka, kad užpuolikas galėtų apskaičiuoti bendrą paslaptį..

Kodėl „Diffie-Hellman“ raktų keitimas yra saugus?

Matematiniu lygmeniu „Diffie-Hellman“ klavišų mainai remiasi vienpusėmis funkcijomis kaip savo saugumo pagrindu. Tai yra skaičiavimai, kuriuos paprasta atlikti vienu būdu, tačiau daug sunkiau apskaičiuoti atvirkščiai.

Tiksliau tariant, ji remiasi Diffie-Hellmano problema, kuri daro prielaidą, kad esant teisingiems parametrams neįmanoma apskaičiuoti gab nuo atskirų reikšmių g, ga ir gb. Šiuo metu nėra viešai žinomo būdo lengvai rasti gab nuo kitų verčių, todėl „Diffie-Hellman“ raktų mainai laikomi saugiais, nepaisant to, kad užpuolikai gali perimti vertybes p, g, A, ir B.

Autentifikavimas & „Diffie-Hellman“ raktų mainai

Realiame pasaulyje „Diffie-Hellman“ raktų mainai retai naudojami patys. Pagrindinė to priežastis yra ta jame nėra autentifikavimo, todėl vartotojai tampa pažeidžiami „viduryje žmogaus“ išpuolių.

Šios atakos gali įvykti, kai pats „Diffie-Hellman“ keitimasis raktais vykdomas dėl to jis neturi galimybių patikrinti, ar kita ryšio šalis yra iš tikrųjų ta, kuri, jų teigimu, yra. Be jokios autentifikacijos formos, vartotojai iš tikrųjų gali susisiekti su užpuolikais kai jie mano, kad bendrauja su patikima šalimi.

Dėl šios priežasties „Diffie-Hellman“ keitimasis raktais paprastai įgyvendinamas kartu su kai kuriomis autentifikavimo priemonėmis. Tai dažnai apima skaitmeninių sertifikatų ir viešojo rakto algoritmo, pavyzdžiui, RSA, naudojimą kiekvienos šalies tapatybei patikrinti.

„Diffie-Hellman“ raktų keitimo variantai

„Diffie-Hellman“ keitimasis raktais gali būti įgyvendinamas įvairiais būdais, be to, tai sudarė pagrindą keliems kitiems algoritmams. Kai kurie iš šių įgyvendinimų suteikia prieigą, o kiti turi įvairias kriptografines savybes, tokias kaip tobula išankstinė paslaptis.

Elipsės kreivė Diffie-Hellman

Elipsės kreivė Diffie-Hellmanas naudojasi algebrine elipsinių kreivių struktūra, kad jos įgyvendinimai galėtų pasiekti panašų saugumo lygį mažesniu rakto dydžiu. 224 bitų elipsinės kreivės raktas suteikia tokį patį saugumo lygį kaip 2048 bitų RSA raktas. Tai gali padaryti mainus efektyvesnius ir sumažinti saugojimo reikalavimus.

Be mažesnio klavišo ilgio ir fakto, kad jis priklauso nuo elipsinių kreivių savybių, elipsės kreivė „Diffie-Hellman“ veikia panašiai kaip standartinė „Diffie-Hellman“ raktų keitimas..

TLS   

TLS, kuris yra protokolas, naudojamas norint apsaugoti didelę interneto dalį, gali naudoti „Diffie-Hellman“ mainus trimis skirtingais būdais: anoniminiu, statiniu ir efemerišku. Praktiškai turėtų būti įgyvendinta tik efemeriškoji Diffie-Hellman, nes kitos galimybės turi saugumo problemų.

  • Anonimas Diffie-Hellmanas - Šioje „Diffie-Hellman“ apsikeitimo raktų versijoje nenaudojamas joks autentifikavimas, todėl ji gali būti apsaugota nuo vidurio puolėjų. Jis neturėtų būti naudojamas ar įgyvendinamas.
  • Statinė Diffie-Hellman - Static Diffie-Hellman naudoja sertifikatus serverio autentifikavimui. Tai neautentifikuoja kliento pagal numatytuosius nustatymus, taip pat neteikia slaptumo.
  • Efemeriška diffija-hellmana - Tai laikoma saugiausiu įgyvendinimu, nes jis užtikrina tobulą išankstinį slaptumą. Paprastai tai derinama su algoritmu, tokiu kaip DSA ar RSA, kad būtų galima patvirtinti vieną ar abi ryšio šalis. Efemeriška diffija-hellmanė naudoja skirtingas raktų poras kiekvieną kartą paleidžiant protokolą. Tai suteikia ryšiui tobulą persiuntimo slaptumą, nes net jei ateityje raktas bus pažeistas, jo negalima naudoti norint iššifruoti visus ankstesnius pranešimus.

„ElGamal“

„ElGamal“ yra viešojo rakto algoritmas, pastatytas ant Diffie-Hellman raktų mainų. Kaip ir Diffie-Hellman, joje nėra jokių nuostatų dėl autentifikavimo ir ji paprastai derinama su kitais šiam tikslui skirtais mechanizmais..

„ElGamal“ daugiausia buvo naudojamas PGP, GNU Privacy Guard ir kitose sistemose, nes pagrindinis jos konkurentas RSA buvo patentuotas. RSA patentas nustojo galioti 2000 m., O tai leido laisvai jį įgyvendinti po šios datos. Nuo to laiko „ElGamal“ nebuvo įdiegtas taip dažnai.

STS

„Station-to-Station“ (STS) protokolas taip pat pagrįstas „Diffie-Hellman“ raktų apsikeitimu. Tai yra dar viena pagrindinė susitarimo schema, tačiau ji suteikia apsaugą nuo „puolimo tarp žmonių“ ir puikų slaptumą priekyje..

Reikia, kad abi prisijungimo šalys jau turėtų raktų porą, kuri naudojama autentifikuoti abi puses. Jei šalys dar nėra žinomos viena kitai, tada sertifikatai gali būti naudojami abiejų šalių tapatybei patvirtinti.

„Diffie-Hellman“ raktų mainai & RSA

Kaip mes aptarėme anksčiau, „Diffie-Hellman“ raktų mainai dažnai įgyvendinami kartu su RSA ar kitais algoritmais, kad būtų užtikrintas ryšio autentifikavimas. Jei esate susipažinęs su RSA, jums gali būti įdomu kodėl kas nors nesivargintų naudotis ir „Diffie-Hellman“ raktų keitimu, nes RSA suteikia galimybę šalims, kurios niekada anksčiau nebuvo susitikusios, saugiai bendrauti.

RSA leidžia savo vartotojams užšifruoti pranešimus naudojant korespondento viešąjį raktą, kad juos būtų galima iššifruoti tik naudojant atitinkamą privatų raktą. Tačiau praktikoje, RSA nėra naudojama šifruoti visą komunikaciją - tai būtų pernelyg neveiksminga.

Vietoj to, RSA dažnai naudojama tik kaip priemonė patvirtinti abi šalis. Tai daro su kiekvienos šalies skaitmeninius sertifikatus, kuriuos patikrins sertifikavimo institucija įrodyti, kad sertifikato savininkas yra iš tikrųjų tas,
kuris, jų teigimu, yra ir kad viešas sertifikato raktas iš tikrųjų priklauso jiems.

Dėl abipusio autentifikavimo, kiekviena šalis pasirašys pranešimą naudodama savo asmeninį raktą ir nusiųs jį savo bendravimo partneriui. Tada kiekvienas gavėjas gali patikrinkite kitos šalies tapatybę, patikrindami pasirašytus pranešimus, naudodamiesi viešuoju raktu, esančiu jų komunikacijos partnerio skaitmeniniame sertifikate (išsamiau apie tai, kaip tai veikia, skaitykite aukščiau paminėtame RSA straipsnyje Pasirašyti pranešimai skyrius).

Dabar, kai abi šalys buvo autentifikuotos, techniškai įmanoma toliau naudoti RSA, kad būtų galima saugiai siųsti užšifruotus pranešimus tarpusavyje, vis dėlto tai būtų per daug neveiksminga..

Norėdami išspręsti šį neveiksmingumą, daugelis saugos protokolų naudoja tokį algoritmą kaip pasikeitimas Diffie-Hellmano raktu, kad sugalvotų bendrą paslaptį, kurią galima panaudoti bendram simetriniam raktui sukurti. Tada šis simetrinis raktas naudojamas simetrinio rakto algoritme, tokiame kaip AES, šifruoti duomenis. kad abi šalys ketina saugiai siųsti tarpusavyje.

Tai gali atrodyti kaip sudėtingas ir sudėtingas procesas, tačiau jis tampa daug greitesnis ir reikalauja mažiau išteklių, palyginti su viešojo rakto algoritmo naudojimu visai mainai. Tai yra, nes simetrinio rakto šifravimas yra eilės tvarka efektyvesnis nei viešojo rakto šifravimas.

Be ką tik minėtų neveiksmingumų, yra ir keletas kitų trūkumų, kuriuos lemia vien tik RSA naudojimas. RSA reikia paminkštinimo, kad ji būtų saugi, taigi, norint, kad jis būtų saugus, reikia tinkamai įdiegti papildomą algoritmą.

RSA neužtikrina tobulos išankstinės paslapties, kuris yra dar vienas trūkumas, palyginti su efemeriškais Diffie-Hellmano raktų mainais. Dėl šių priežasčių daugelyje situacijų RSA geriausia naudoti tik kartu su „Diffie-Hellman“ raktų keitimu..

Kaip alternatyva, „Diffie-Hellman“ keitimasis raktais gali būti derinamas su algoritmu, pavyzdžiui, Skaitmeninio parašo standartu (DSS), kad būtų galima nustatyti autentifikavimą, pasikeitimą raktu, konfidencialumą ir patikrinti duomenų vientisumą. Tokiu atveju RSA nėra būtina norint užtikrinti ryšį.

„Diffie-Hellman“ apsikeitimo raktais saugumo problemos

„Diffie-Hellman“ raktų apsikeitimo saugumas priklauso nuo to, kaip ji įgyvendinama, taip pat nuo jai pasirinktų skaičių. Kaip jau minėjome aukščiau, ji neturi jokios kitos šalies autentifikavimo priemonės, tačiau praktiškai naudojami kiti mechanizmai, užtikrinantys, kad kita ryšio šalis nėra apgavikas..

Skaičių pasirinkimo parametrai

Jei realiame „Diffie-Hellman“ rakto mainų numeryje būtų naudojami tokie maži skaičiai, kaip ir mūsų pavyzdyje, mainų procesas užpuolikui pasidarytų nereikšmingas. Bet svarbu ne tik skaičių dydis - skaičiai taip pat turi būti pakankamai atsitiktiniai. Jei atsitiktinių skaičių generatorius sukuria nuspėjamą išėjimą, tai gali visiškai pakenkti „Diffie-Hellman“ raktų mainų saugumui..

Skaičius p turėtų būti 2048 bitų ilgio užtikrinti saugumą. Pagrindas, g, gali būti palyginti mažas skaičius, pavyzdžiui, 2, bet tai turi būti sudaryta iš G kad turi didelį svarbiausią faktorių

Logjamo išpuolis

Diffie-Hellmano raktų mainai buvo sukurti remiantis diskrečiojo logaritmo problema, kurią sunku išspręsti. Veiksmingiausias viešai žinomas sprendimo radimo mechanizmas yra skaičių lauko sieto algoritmas.

Projektuojant Diffie-Hellman raktų mainus, buvo atsižvelgta į šio algoritmo galimybes. Iki 1992 m. Buvo žinoma, kad tam tikrai grupei, G, tris iš keturių algoritme dalyvaujančių žingsnių galima būtų iš anksto apskaičiuoti. Jei ši pažanga būtų išsaugota, paskutinį žingsnį būtų galima apskaičiuoti per palyginti trumpą laiką.

Tai nebuvo per daug aktualu, kol nebuvo suprantama, kad nemaža dalis interneto srauto naudoja tas pačias grupes, kurios yra 1024 bitų ar mažesnės. 2015 m. Akademinė komanda atliko skaičiavimus, susijusius su įprasčiausiu 512 bitų pirminiu skaičiumi, naudojamu Diffie-Hellman raktų keitimu TLS..

Jie taip pat sugebėjo sumažinti 80% TLS serverių, palaikančių DHE-EXPORT, skaičių, kad jie prisijungtų prie 512 bitų eksporto lygio Diffie-Hellman raktų mainų. Tai reiškia, kad kiekvienas iš šių serverių yra pažeidžiamas gerai aprūpinto priešininko puolimo.

Tyrėjai ekstrapoliavo jų rezultatus, įvertinęs, kad nacionalinė valstybė gali įveikti 1024 bitų premiją. Išardydama vieną dažniausiai naudojamą 1024 bitų pagrindą, akademinė komanda apskaičiavo, kad priešininkas galėtų stebėti 18% iš milijono populiariausių HTTPS svetainių.

Jie toliau teigė, kad antrasis pagrindinis principas leis priešininkui iššifruoti 66% VPN serverių ir 26% SSH serverių jungtis. Vėliau ataskaitoje akademikai pasiūlė, kad NSA jau gali turėti šias galimybes.

„Atidus paskelbtų NSA nutekėjimų skaitymas rodo, kad agentūros išpuoliai prieš VPT atitinka tokią pertrauką“.

Nepaisant šio pažeidžiamumo, „Diffie-Hellman“ keitimasis raktais vis dar gali būti saugus, jei jis tinkamai įdiegtas. Kol bus naudojamas 2048 bitų raktas, „Logjam“ ataka neveiks. Atnaujintos naršyklės taip pat nėra apsaugotos nuo šios atakos.

Ar „Diffie-Hellman“ keitimasis raktais yra saugus?

Nors „Diffie-Hellman“ keitimasis raktais gali atrodyti sudėtingas, tačiau tai yra pagrindinė saugaus keitimosi duomenimis internete dalis. Kol ji bus įdiegta kartu su tinkamu autentifikavimo metodu ir numeriai buvo parinkti tinkamai, ji nelaikoma pažeidžiama.

„Diffie-Hellman“ raktų mainai buvo novatoriškas būdas padėti dviem nežinomoms šalims saugiai bendrauti, kai ji buvo sukurta aštuntajame dešimtmetyje. Nors dabar mes įdiegiame naujesnes versijas su didesniais raktais, kad apsaugotume nuo šiuolaikinių technologijų pats protokolas atrodo, kad jis ir toliau bus saugus iki kvantinio skaičiavimo pradžios ir pažangias atakas, kurios su tuo įvyks.

Kibernetinio saugumo verslo technologija Autorius: TheDigitalArtist, licencijuota pagal CC0

Brayan Jackson Administrator
Candidate of Science in Informatics. VPN Configuration Wizard. Has been using the VPN for 5 years. Works as a specialist in a company setting up the Internet.
follow me
Like this post? Please share to your friends:
Leave a Reply

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

70 + = 72

map