Gedeelde DH-groep, vars geheime: waarom die aanval goedkoper word
Vars sessiegeheime reg nie ’n swak eindigeveldgroep nie. Hergebruik van een groepeer die duurste aanvalstadium oor elke uitruiling wat dit onderhandel.
Groepsparameters is per ontwerp openbaar, en juis daardie openbaarheid maak dit maklik om te ignoreer. In eindigeveld-Diffie-Hellman is die modulus en die generator gedeel, terwyl die private eksponente en die gevolglike sessiesleutels dit nie is nie. Die duur stadium van ’n getalveldsif-aanval hang van die groep af eerder as van een uitruiling, so ’n enkele swak groep wat oral gebruik word, word ’n gedeelde las. Om die parameters openbaar te noem, is akkuraat en langs die punt, want die koste wat hergebruik word, is die koste om daardie groep aan te val.
Die openbare helfte is nie die kwesbare helfte nie, en dit is die strik
Die gewone half-argument sê die parameters is in ’n standaard gepubliseer, so ’n aanvaller ken hulle reeds en om hulle te verberg sou niks verander nie. Albei bewerings is waar, en nie een volg uit die ander nie. ’n Standaardgroep wat saamgestuur word, is openbaar, en ’n private groep wat jy verlede week geskep het, is ook sigbaar vir enigiemand wat die handskud voltooi. Geheimhouding was nooit die beheer nie; sterkte en validering is dit.
Wat wel verander, is hoeveel plekke dieselfde swakheid deel. Een organisasie wat sy eie 2048-bis-groep skep, betaal vir sy eie aanvalskoste, terwyl ’n protokolverstek wat deur miljoene gekies word, een koste oor almal amortiseer. Dit is die sin waarin ’n ongewone groep nie outomaties beter is nie. ’n Ongewone groep wat te klein is, is bloot ’n kleiner gedeelde geheim met minder oë daarop.
Validasie is net so belangrik soos grootte. ’n Eweknie wat ’n modulus met klein faktore stuur, of een wat nie die vorm het wat die protokol verwag nie, kan inligting oor die private eksponent lek selfs wanneer die bislengte respektabel lyk. Biblioteke wat misvormde parameters by die inlaat verwerp, doen werklike werk, en daarom is selfgeskrewe parameterontleding ’n slegte plek om moeite te spaar.
Wat die voorberekening ’n aanvaller werklik koop
Die getalveldsif het ’n stadium wat slegs van die priemgetal afhang, en sy uitset is herbruikbaar teen elke uitruiling wat daardie priemgetal gebruik. Dit is die hele meganisme agter die historiese kommer: die duur deel word een keer betaal, en die marginale koste van elke verdere sessie daal. Vars eksponente beskerm steeds elke individuele uitruiling teen ’n passiewe waarnemer, solank die groep groot genoeg is om die sif onuitvoerbaar te maak. Die twee stellings is versoenbaar, en die meeste argumente oor hierdie onderwerp kom daarvan dat ’n mens een kies en die ander laat vaar.
Die Logjam-voorstel uit 2015 het ’n afgradering na 512-bis uitvoergraad-Diffie-Hellman gedemonstreer en geskat wat groter, wyd hergebruikte groepe sou kos om met aansienlike hulpbronne aan te val. Die demonstrasie was konkreet, die skattings was skattings, en nie een was bewys dat ’n bepaalde VPN-sessie ontsyfer is nie.
Haal die voorstel aan vir die meganisme en vir die gedemonstreerde afgradering, nie as ’n meting van jou ontplooiing nie. Ou statistieke oor hoeveel bedieners ’n standaardgroep gedeel het, beskryf die internet van daardie jaar, nie ’n netwerk wat jy vandag kan inspekteer nie. Die nuttige oorblyfsel is die vraag, naamlik of jou toestelle steeds ’n groep onderhandel wat klein of swak gevalideer is.
Gestandaardiseerd is nie dieselfde as swak nie
RFC 7919 definieer benoemde eindigeveldgroepe sodat beide kante per identifiseerder oor ’n groep ooreenkom en ’n konsekwente beleid toepas. Gestandaardiseerd wees is ’n kenmerk, want dit verwyder onderhandelingsonsekerheid en laat ’n implementering toe om onondersteunde groottes te weier. ’n Benoemde groep is slegs swak wanneer sy grootte onder die beleid sit wat jy sê jy volg, nie omdat dit in ’n dokument verskyn nie. Dieselfde logika geld vir elliptiese-krommegroepe, wat ’n ander struktuur en ander foutmodusse het.
Hou konstruksies apart wanneer jy daaroor redeneer. ’n Gevolgtrekking oor eindigeveld-Diffie-Hellman sê niks oor X25519 nie, en ’n gevolgtrekking oor ’n 1024-bis MODP-groep sê niks oor ’n 3072-bis een nie. Sterktebeleid is per meganisme, per grootte en per protokolweergawe, en daarom is die frase sterk kripto nie ’n hersieneerbare stelling nie.
Verifikasie is die ander helfte, en dit vervang nie. ’n Sterk groep sonder eweknieverifikasie laat ’n aanvaller in die middel, en ’n geldige sertifikaat kan nie ’n 768-bis-uitruiling red nie. Hersien hulle as twee onafhanklike lyne, en bevestig dan dat albei werklik onderhandel word.
Lees die onderhandelde groep op ’n werklike verbinding
Lees die onderhandelde groep van die toestel af eerder as uit die konfigurasiesjabloon. Sjablone beskryf bedoeling, en die interessante waarde is die een waaroor beide partye tydens die laaste handskud ooreengekom het. Op ’n IPsec-eindpunt druk die statusuitvoer gewoonlik die gekose voorstel, insluitend die MODP-groep.
Vang daardie reël voor en na ’n beleidsverandering, en hou albei in die veranderingsrekord. Die vergelyking is die bewys.
ipsec statusall | grep -Ei "proposal|ESP|IKE"
openssl dhparam -in /etc/vpn/dh3072.pem -check -nooutAs die status ná die verandering steeds die ou groep wys, het die verbinding nie heronderhandel nie en het die konfigurasiewysiging niks bewys nie. Herbegin die eweknie of wis die sekuriteitsassosiasie, en lees dan weer die status. ’n Beleid wat slegs op nuwe verbindings toegepas word, sal langdurige tonnels op die ou parameters laat solank hulle op bly.
Kontroleer die groep en die eweknie-identiteit afsonderlik
Skei wat die groep beskerm van wie aan die ander kant is. Teken die sleuteluitruilmetode, die grootte en die verifikasiemetode as drie velde op, want hulle faal onafhanklik. ’n Tonnel wat ’n 3072-bis-groep onderhandel het maar enige sertifikaat aanvaar, is nie dieselfde risiko as een wat ’n eweknie vaspen en ’n 2048-bis-groep gebruik nie.
Skryf die aanvaardingskriteria neer voordat die hersiening begin, sodat die resultaat ’n vergelyking is eerder as ’n mening. ’n Minimum grootte per protokolweergawe, ’n toegangslys vir benoemde groepe en verpligte eweknieverifikasie is genoeg om die besluit meganies te maak. Dubbelsinnigheid in daardie lys is wat ’n hersiening in ’n argument verander, en argumente word nie reggestel nie. Dan is die uitset ’n lys eindpunte wat ’n gestelde reël faal.
ipsec statusall | grep -Ei "peer|auth|cert"
openssl s_client -connect vpn.acme.example:443 -brief -cipher 'DHE-RSA-AES256-GCM-SHA384'Sluit die lus deur die onderhandelde waardes ná herstel weer te lees. ’n Voldoende konfigurasielêer is nie bewys dat ’n tonnel dit opgetel het nie. Die statusuitvoer en een vars handskud is die bewys, en om hulle te versamel neem minder tyd as die vergadering oor of hulle nodig is.