Jagatud DH-grupp, värsked saladused: miks rünne muutub odavamaks
Värsked sessioonisaladused ei paranda nõrka lõpliku välja gruppi. Ühe grupi korduskasutus jaotab ründe kalleima etapi igale läbirääkimisele, mis seda kasutab.
Grupiparameetrid on disaini järgi avalikud ja just see avalikkus teeb nad kergesti tähelepanuta jäetavaks. Lõpliku välja Diffie-Hellmanis on moodul ja generaator jagatud, privaatsed astendajad ja nendest tulenevad sessioonivõtmed aga mitte. Arvuvälja sõela ründe kallis etapp sõltub grupist, mitte ühest vahetusest, seega muutub üks nõrk grupp, mida kõikjal kasutatakse, ühiseks koormaks. Parameetrite avalikuks nimetamine on täpne ja asjasse mittepuutuv, sest kulu, mida korduvalt kasutatakse, on just selle grupi ründamise kulu.
Avalik pool ei ole haavatav pool ja selles ongi lõks
Tavaline poolargument ütleb, et parameetrid on standardis avaldatud, seega ründaja teab neid juba ja nende peitmine ei muudaks midagi. Mõlemad väited on õiged ja kumbki ei tulene teisest. Kaasas olev vaikegrupp on avalik ja eelmisel nädalal loodud privaatne grupp on samuti nähtav kõigile, kes käepigistuse lõpetavad. Salastatus ei olnud kunagi kontroll; seda on tugevus ja valideerimine.
Muutub see, kui palju kohti jagab sama nõrkust. Üks organisatsioon, kes loob oma 2048-bitise grupi, maksab oma ründe kulu ise, samas kui miljonite valitud protokolli vaikeväärtus amortiseerib ühe kulu kõigi peale. Selles mõttes ei ole ebatavaline grupp automaatselt parem. Liiga väike ebatavaline grupp on lihtsalt väiksem ühine saladus, mille peal on vähem silmi.
Valideerimine loeb sama palju kui suurus. Partner, kes saadab väikeste teguritega mooduli või mooduli, mis ei ole protokolli oodatud kujuga, võib lekitada teavet privaatse astendaja kohta ka siis, kui bittide pikkus tundub austusväärne. Teegid, mis lükkavad vigased parameetrid juba sisendis tagasi, teevad tõelist tööd, mistõttu on käsitsi kirjutatud parameetrite parsimine halb koht jõupingutuse säästmiseks.
Mida eelarvutus ründajale tegelikult annab
Arvuvälja sõelal on etapp, mis sõltub ainult algarvust, ja selle väljundit saab korduvalt kasutada iga vahetuse vastu, mis seda algarvu kasutab. See on kogu ajaloolise mure taga olev mehhanism: kallis osa makstakse üks kord ja iga järgmise sessiooni piirkulu langeb. Värsked astendajad kaitsevad endiselt iga üksikut vahetust passiivse vaatleja eest, kuni grupp on piisavalt suur, et sõel oleks teostamatu. Mõlemad väited on ühilduvad ja enamik selle teema vaidlusi tuleb ühe valimisest ja teise kõrvale jätmisest.
2015. aasta Logjam töö näitas eksporditasemelisele 512-bitisele Diffie-Hellmanile allaviimist ja hindas, kui palju maksaks rünnata suuremaid, laialdaselt korduvkasutatavaid gruppe märkimisväärsete ressurssidega. Demonstratsioon oli konkreetne, hinnangud olid hinnangud ja kumbki ei olnud tõestus, et mõni konkreetne VPN-sessioon dekrüpteeriti.
Tsiteerige tööd mehhanismi ja näidatud allaviimise pärast, mitte oma juurutuse mõõduna. Vanad statistikad selle kohta, kui paljud serverid jagasid vaikegruppi, kirjeldavad tolle aasta internetti, mitte võrku, mida saate täna uurida. Kasulik edasiantav on küsimus: kas teie seadmed peavad endiselt läbirääkimisi grupist, mis on väike või nõrgalt valideeritud?
Standardiseeritud ei ole sama mis nõrk
RFC 7919 määratleb nimega lõpliku välja grupid, et mõlemad otsad lepiksid kokku grupis identifikaatori järgi ja rakendaksid järjekindlat poliitikat. Standardiseeritud olemine on eelis, sest see kõrvaldab läbirääkimise ambivalentsuse ja võimaldab implementatsioonil toetamata suurusi tagasi lükata. Nimega grupp on nõrk ainult siis, kui selle suurus jääb alla poliitika, mida te väidate järgivat, mitte sellepärast, et see dokumendis esineb. Sama loogika kehtib elliptiliste kõverate gruppide kohta, millel on teistsugune struktuur ja teistsugused tõrkerežiimid.
Hoidke konstruktsioonid eraldi, kui nende üle arutlete. Järeldus lõpliku välja Diffie-Hellmani kohta ei ütle midagi X25519 kohta ja järeldus 1024-bitise MODP-grupi kohta ei ütle midagi 3072-bitise kohta. Tugevuspoliitika kehtib mehhanismi, suuruse ja protokolli versiooni kaupa, mistõttu fraas tugev krüptograafia ei ole kontrollitav väide.
Autentimine on teine pool ja see ei asenda. Tugev grupp ilma partneri kontrollita jätab ründaja keskele ja kehtiv sertifikaat ei päästa 768-bitist vahetust. Vaadelge neid kahe sõltumatu liinina ja kinnitage seejärel, et mõlemad on tegelikult läbi räägitud.
Lugege läbiräägitud grupp reaalsel ühendusel
Lugege läbiräägitud grupp seadmest, mitte konfiguratsioonimallist. Mallid kirjeldavad kavatsust ja huvitav väärtus on see, mille mõlemad pooled viimase käepigistuse ajal kokku leppisid. IPsec-i otspunktis trükib olekuväljund tavaliselt valitud ettepaneku, sealhulgas MODP-grupi.
Jäädvustage see rida enne ja pärast poliitika muutmist ning hoidke mõlemad muudatuse kirjes. Võrdlus on tõend.
ipsec statusall | grep -Ei "proposal|ESP|IKE"
openssl dhparam -in /etc/vpn/dh3072.pem -check -nooutKui olek näitab pärast muudatust endiselt vana gruppi, ei ole ühendus uuesti läbi rääkinud ja konfiguratsiooni muudatus ei tõestanud midagi. Taaskäivitage partner või kustutage turvaassotsiatsioon ning lugege seejärel olek uuesti. Poliitika, mida rakendatakse ainult uutele ühendustele, jätab pikaajalised tunnelid vanadele parameetritele seni, kuni need püsti püsivad.
Kontrollige gruppi ja partneri identiteeti eraldi
Eraldage, mida grupp kaitseb, sellest, kes on teises otsas. Kirjutage võtmevahetuse meetod, grupi suurus ja autentimismeetod kolme väljana, sest need ebaõnnestuvad sõltumatult. Tunnel, mis rääkis läbi 3072-bitise grupi, kuid võtab vastu mis tahes sertifikaadi, ei ole sama risk kui see, mis kinnitab partneri ja kasutab 2048-bitist gruppi.
Kirjutage vastuvõtukriteeriumid enne ülevaatuse algust, et tulemus oleks võrdlus, mitte arvamus. Protokolli versiooni kohta minimaalne grupi suurus, nimega gruppide lubatud loend ja kohustuslik partneri kontroll on piisavad, et teha otsus mehaaniliseks. Ebaselgus selles loendis muudab ülevaatuse vaidluseks ja vaidlusi ei kõrvaldata. Siis on väljundiks loend otspunktidest, mis rikuvad sätestatud reeglit.
ipsec statusall | grep -Ei "peer|auth|cert"
openssl s_client -connect vpn.acme.example:443 -brief -cipher 'DHE-RSA-AES256-GCM-SHA384'Sulgege ring, lugedes pärast parandust läbiräägitud väärtused uuesti. Vastav konfiguratsioonifail ei ole tõend, et tunnel selle üle võttis. Olekuväljund ja üks värske käepigistus on tõend ning nende kogumine võtab vähem aega kui koosolek selle üle, kas neid on vaja.