Kopīga DH grupa, svaigi noslēpumi: kāpēc uzbrukums kļūst lētāks
Svaigi sesijas noslēpumi neizlabo vāju galīga lauka grupu. Vienas grupas atkārtota izmantošana sadala dārgāko uzbrukuma posmu uz katru apmaiņu, kas par to vienojas.
Grupas parametri pēc konstrukcijas ir publiski, un tieši šī publiskums padara tos viegli ignorējamus. Galīga lauka Diffie-Hellman gadījumā modulis un ģenerators ir kopīgi, bet privātie kāpinātāji un no tiem iegūtās sesijas atslēgas nav. Skaitļu lauka sieta uzbrukuma dārgais posms ir atkarīgs no grupas, nevis no vienas apmaiņas, tāpēc viena vāja grupa, kas tiek lietota visur, kļūst par kopīgu saistību. Parametrus saukt par publiskiem ir precīzi un nav būtiski, jo atkārtoti izmantotās izmaksas ir tieši šīs grupas uzbrukuma izmaksas.
Publiskā puse nav ievainojamā puse, un slazds ir tieši tur
Parastais pusarguments saka, ka parametri ir publicēti standartā, tāpēc uzbrucējs tos jau zina un to slēpšana neko nemainītu. Abi apgalvojumi ir patiesi, un neviens neizriet no otra. Piegādātā noklusējuma grupa ir publiska, un pagājušajā nedēļā ģenerētā privātā grupa arī ir redzama ikvienam, kas pabeidz rokas paspiešanu. Slepenība nekad nav bijusi kontrole; tā ir spēks un validācija.
Kas mainās, ir tas, cik daudz vietu dala vienu un to pašu vājumu. Viena organizācija, kas ģenerē savu 2048 bitu grupu, maksā savas uzbrukuma izmaksas, savukārt miljonu izvēlēta protokola noklusējuma vērtība amortizē vienas izmaksas uz visiem. Šajā nozīmē neparasta grupa nav automātiski labāka. Pārāk maza neparasta grupa ir tikai mazāks kopīgs noslēpums ar mazāk acīm uz to.
Validācija ir tikpat svarīga kā izmērs. Partneris, kas sūta moduli ar maziem faktoriem, vai tādu, kura forma neatbilst protokola gaidītajai, var noplūdināt informāciju par privāto kāpinātāju pat tad, kad bitu garums izskatās cienīgi. Bibliotēkas, kas jau ievadē noraida bojātus parametrus, dara īstu darbu, tāpēc ar roku rakstīta parametru apstrāde ir slikta vieta, kur taupīt pūles.
Ko priekšaprēķins uzbrucējam patiešām dod
Skaitļu lauka sietam ir posms, kas atkarīgs tikai no pirmskaitļa, un tā rezultāts ir atkārtoti izmantojams pret katru apmaiņu, kas izmanto šo pirmskaitli. Tas ir viss mehānisms aiz vēsturiskajām bažām: dārgā daļa tiek samaksāta vienreiz, un katras nākamās sesijas robežizmaksas samazinās. Svaigi kāpinātāji joprojām aizsargā katru atsevišķu apmaiņu no pasīva novērotāja, kamēr vien grupa ir pietiekami liela, lai sietīšana būtu neiespējama. Abi apgalvojumi ir savienojami, un lielākā daļa strīdu šajā jautājumā rodas, izvēloties vienu un atmetot otru.
2015. gada Logjam darbs demonstrēja pazemināšanu uz 512 bitu eksporta līmeņa Diffie-Hellman un novērtēja, cik izmaksātu uzbrukums lielākām, plaši atkārtoti izmantotām grupām ar ievērojamiem resursiem. Demonstrācija bija konkrēta, aplēses bija aplēses, un neviens no tiem nebija pierādījums, ka konkrēta VPN sesija ir atšifrēta.
Atsaucieties uz darbu mehānisma un demonstrētās pazemināšanas dēļ, nevis kā sava izvietojuma mērījumu. Vecā statistika par to, cik serveru dalīja noklusējuma grupu, apraksta tā gada internetu, nevis tīklu, ko šodien varat pārbaudīt. Noderīgais, ko pārņemt, ir jautājums: vai jūsu ierīces joprojām vienojas par grupu, kas ir maza vai vāji validēta?
Standartizēts nav tas pats, kas vājš
RFC 7919 definē nosauktas galīga lauka grupas, lai abi gali vienotos par grupu pēc identifikatora un piemērotu konsekventu politiku. Būt standartizētam ir priekšrocība, jo tas novērš sarunu neskaidrību un ļauj ieviešanai atteikt neatbalstītus izmērus. Nosaukta grupa ir vāja tikai tad, kad tās izmērs ir zem politikas, kuru apgalvojat, ka ievērojat, nevis tāpēc, ka tā parādās dokumentā. Tā pati loģika attiecas uz eliptisko līkņu grupām, kurām ir cita struktūra un citi atteices režīmi.
Domājot par tām, turiet konstrukcijas atsevišķi. Secinājums par galīga lauka Diffie-Hellman neko neizsaka par X25519, un secinājums par 1024 bitu MODP grupu neko neizsaka par 3072 bitu grupu. Spēka politika ir pa mehānismiem, pa izmēriem un pa protokola versijām, tāpēc frāze spēcīga kriptogrāfija nav pārbaudāms apgalvojums.
Autentifikācija ir otrā puse, un tā neaizstāj. Spēcīga grupa bez partnera pārbaudes atstāj uzbrucēju pa vidu, un derīgs sertifikāts nevar izglābt 768 bitu apmaiņu. Apskatiet tās kā divas neatkarīgas līnijas un pēc tam apstipriniet, ka abas tiešām tiek saskaņotas.
Nolasiet saskaņoto grupu reālā savienojumā
Saskaņoto grupu lasiet no ierīces, nevis no konfigurācijas veidnes. Veidnes apraksta nodomu, un interesantā vērtība ir tā, par ko abi gali vienojās pēdējās rokas paspiešanas laikā. IPsec galapunktā stāvokļa izvade parasti izdrukā izvēlēto priekšlikumu, tostarp MODP grupu.
Ierakstiet šo rindu pirms un pēc politikas maiņas, un abas glabājiet izmaiņu žurnālā. Salīdzinājums ir pierādījums.
ipsec statusall | grep -Ei "proposal|ESP|IKE"
openssl dhparam -in /etc/vpn/dh3072.pem -check -nooutJa pēc izmaiņām stāvoklis joprojām rāda veco grupu, savienojums nav pārrunājis no jauna un konfigurācijas labojums neko nav pierādījis. Restartējiet partneri vai notīriet drošības asociāciju, pēc tam vēlreiz nolasiet stāvokli. Politika, kas tiek piemērota tikai jauniem savienojumiem, atstās ilgmūžīgos tuneļus uz vecajiem parametriem, kamēr vien tie pastāv.
Pārbaudiet grupu un partnera identitāti atsevišķi
Nošķiriet, ko grupa aizsargā, no tā, kas ir otrā galā. Reģistrējiet atslēgu apmaiņas metodi, grupas izmēru un autentifikācijas metodi kā trīs laukus, jo tie neizdodas neatkarīgi. Tunelis, kas saskaņoja 3072 bitu grupu, bet pieņem jebkuru sertifikātu, nav tāds pats risks kā tunelis, kas piefiksē partneri un izmanto 2048 bitu grupu.
Pierakstiet pieņemšanas kritērijus pirms pārskata sākuma, lai rezultāts būtu salīdzinājums, nevis viedoklis. Minimālais grupas izmērs katrai protokola versijai, nosaukto grupu atļauto saraksts un obligāta partnera pārbaude ir pietiekami, lai lēmumu padarītu mehānisku. Tieši šī saraksta neskaidrība pārvērš pārskatu strīdā, un strīdi netiek laboti. Tad izvade ir to galapunktu saraksts, kuri pārkāpj noteikto kārtulu.
ipsec statusall | grep -Ei "peer|auth|cert"
openssl s_client -connect vpn.acme.example:443 -brief -cipher 'DHE-RSA-AES256-GCM-SHA384'Noslēdziet loku, pēc labošanas vēlreiz nolasot saskaņotās vērtības. Atbilstošs konfigurācijas fails nav pierādījums, ka tunelis to ir pārņēmis. Stāvokļa izvade un viena svaiga rokas paspiešana ir pierādījums, un to savākšana prasa mazāk laika nekā sanāksme par to, vai tie ir vajadzīgi.