Grupės parametrai pagal projektą yra vieši, ir būtent šis viešumas daro juos lengvai nepastebimus. Baigtinio lauko Diffie-Hellman atveju modulis ir generatorius yra bendri, o privatūs laipsniai ir iš jų gaunami sesijos raktai – ne. Skaičių lauko rėčio atakos brangusis etapas priklauso nuo grupės, o ne nuo vieno mainų, todėl viena silpna grupė, naudojama visur, tampa bendra atsakomybe. Pavadinti parametrus viešais yra tikslu ir ne esmė, nes pakartotinai naudojama kaina yra būtent tos grupės atakos kaina.

Viešoji pusė nėra pažeidžiamoji pusė, ir čia slypi spąstai

Įprastas pusinis argumentas sako, kad parametrai paskelbti standarte, todėl užpuolikas juos jau žino ir jų slėpimas nieko nepakeistų. Abu teiginiai teisingi, ir nė vienas neišplaukia iš kito. Pristatyta numatytoji grupė yra vieša, o praėjusią savaitę sugeneruota privati grupė taip pat matoma kiekvienam, kuris baigia rankos paspaudimą. Slaptumas niekada nebuvo kontrolė; ja yra stiprumas ir validacija.

Kas keičiasi, tai kiek vietų dalijasi ta pačia silpnybe. Viena organizacija, generuojanti savo 2048 bitų grupę, moka savo atakos kainą, o milijonų pasirinktas protokolo numatytasis dydis amortizuoja vieną kainą visiems. Šia prasme neįprasta grupė nėra automatiškai geresnė. Per maža neįprasta grupė tėra mažesnė bendra paslaptis, kurią stebi mažiau akių.

Validacija svarbi ne mažiau nei dydis. Partneris, siunčiantis modulį su mažais faktoriais, arba toks, kurio forma neatitinka protokolo lūkesčių, gali nutekinti informaciją apie privatų laipsnį net tada, kai bitų ilgis atrodo pagarbiai. Bibliotekos, atmetančios netinkamus parametrus įėjime, atlieka tikrą darbą, todėl rankiniu būdu rašytas parametrų apdorojimas yra bloga vieta taupyti pastangas.

Ką išankstinis skaičiavimas iš tikrųjų duoda užpuolikui

Skaičių lauko rėtis turi etapą, kuris priklauso tik nuo pirminio skaičiaus, o jo rezultatas yra pakartotinai naudojamas prieš kiekvieną mainus, kurie naudoja tą pirminį skaičių. Tai yra visas istorinio susirūpinimo mechanizmas: brangioji dalis sumokama kartą, o kiekvienos tolesnės sesijos ribinė kaina mažėja. Nauji laipsniai vis dar apsaugo kiekvienus atskirus mainus nuo pasyvaus stebėtojo, kol grupė yra pakankamai didelė, kad rėčio sudarymas būtų neįmanomas. Abu teiginiai suderinami, ir dauguma ginčų šia tema kyla pasirenkant vieną ir atmetant kitą.

2015 metų Logjam darbas parodė sumažinimą iki 512 bitų eksportinio lygio Diffie-Hellman ir įvertino, kiek kainuotų pulti didesnes, plačiai pakartotinai naudojamas grupes su dideliais ištekliais. Demonstracija buvo konkreti, vertinimai buvo vertinimai, ir nė vienas nebuvo įrodymas, kad konkreti VPN sesija buvo iššifruota.

Cituokite darbą dėl mechanizmo ir dėl parodyto sumažinimo, o ne kaip savo diegimo matavimą. Senoji statistika apie tai, kiek serverių dalijosi numatytąja grupe, aprašo to metų internetą, o ne tinklą, kurį galite patikrinti šiandien. Vertingiausia, ką galima perkelti, yra klausimas: ar jūsų įrenginiai vis dar derina grupę, kuri yra maža ar silpnai validuota?

Standartizuota nėra tas pats, kas silpna

RFC 7919 apibrėžia įvardytas baigtinio lauko grupes, kad abu galai susitartų dėl grupės pagal identifikatorių ir taikytų nuoseklią politiką. Būti standartizuotai yra privalumas, nes tai pašalina derybų dviprasmiškumą ir leidžia įgyvendinimui atmesti nepalaikomus dydžius. Įvardyta grupė yra silpna tik tada, kai jos dydis yra žemiau politikos, kurią teigiate laikydamiesi, o ne todėl, kad ji pasirodo dokumente. Ta pati logika galioja elipsinių kreivių grupėms, kurios turi kitokią struktūrą ir kitokius gedimo režimus.

Kai apie jas mąstote, konstrukcijas laikykite atskirai. Išvada apie baigtinio lauko Diffie-Hellman nieko nesako apie X25519, o išvada apie 1024 bitų MODP grupę nieko nesako apie 3072 bitų. Stiprumo politika taikoma pagal mechanizmą, dydį ir protokolo versiją, todėl frazė stipri kriptografija nėra tikrinamas teiginys.

Autentifikacija yra kita pusė, ir ji nepakeičia. Stipri grupė be partnerio patikros palieka užpuoliką viduryje, o galiojantis sertifikatas negali išgelbėti 768 bitų mainų. Peržiūrėkite juos kaip dvi nepriklausomas linijas, tada patvirtinkite, kad abi iš tikrųjų derinamos.

Perskaitykite suderintą grupę tikrame ryšyje

Suderintą grupę skaitykite iš įrenginio, o ne iš konfigūracijos šablono. Šablonai apibūdina ketinimą, o įdomi reikšmė yra ta, dėl kurios abu galai susitarė paskutinio rankos paspaudimo metu. IPsec gale būsenos išvestis paprastai atspausdina pasirinktą pasiūlymą, įskaitant MODP grupę.

Užfiksuokite tą eilutę prieš ir po politikos pakeitimo, ir abi laikykite pakeitimo įraše. Palyginimas yra įrodymas.

ipsec statusall | grep -Ei "proposal|ESP|IKE"
openssl dhparam -in /etc/vpn/dh3072.pem -check -noout

Jei po pakeitimo būsena vis dar rodo seną grupę, ryšys nepersiderėjo ir konfigūracijos pakeitimas nieko neįrodė. Paleiskite partnerį iš naujo arba išvalykite saugumo asociaciją, tada vėl perskaitykite būseną. Politika, taikoma tik naujiems ryšiams, paliks ilgaamžius tunelius su senais parametrais tol, kol jie veiks.

Patikrinkite grupę ir partnerio tapatybę atskirai

Atskirkite, ką grupė saugo, nuo to, kas yra kitame gale. Užfiksuokite raktų mainų metodą, grupės dydį ir autentifikacijos metodą kaip tris laukus, nes jie žlunga nepriklausomai. Tunelis, suderinęs 3072 bitų grupę, bet priimantis bet kurį sertifikatą, nėra ta pati rizika kaip tunelis, kuris prisega partnerį ir naudoja 2048 bitų grupę.

Priėmimo kriterijus užrašykite prieš prasidedant peržiūrai, kad rezultatas būtų palyginimas, o ne nuomonė. Minimalus grupės dydis pagal protokolo versiją, įvardytų grupių leidimų sąrašas ir privaloma partnerio patikra yra pakankami, kad sprendimas taptų mechaniškas. Būtent to sąrašo dviprasmiškumas paverčia peržiūrą ginču, o ginčai nėra ištaisomi. Tada išvestis yra sąrašas galinių taškų, kurie pažeidžia nurodytą taisyklę.

ipsec statusall | grep -Ei "peer|auth|cert"
openssl s_client -connect vpn.acme.example:443 -brief -cipher 'DHE-RSA-AES256-GCM-SHA384'

Uždarykite ratą iš naujo perskaitę suderintas reikšmes po ištaisymo. Atitinkantis konfigūracijos failas nėra įrodymas, kad tunelis jį priėmė. Būsenos išvestis ir vienas naujas rankos paspaudimas yra įrodymas, ir juos surinkti užtrunka mažiau laiko nei susirinkimas apie tai, ar jų reikia.

Susiję straipsniai