Af hverju þú ættir ekki að nota WireGuard

WireGuard hefur vakið mikla athygli undanfarið, í raun er það nýja stjarnan meðal VPN. En er hann eins góður og hann virðist? Mig langar að ræða nokkrar athuganir og fara yfir útfærslu WireGuard til að útskýra hvers vegna það er ekki lausn að skipta um IPsec eða OpenVPN.

Í þessari grein langar mig að afneita nokkrar af goðsögnunum [í kringum WireGuard]. Já, það mun taka langan tíma að lesa, svo ef þú hefur ekki búið þér til bolla af te eða kaffi, þá er kominn tími til að gera það. Ég vil líka þakka Peter fyrir að leiðrétta óreiðukenndar hugsanir mínar.

Ég set mér ekki það markmið að vanvirða þróunaraðila WireGuard, rýra viðleitni þeirra eða hugmyndir. Varan þeirra er að virka, en persónulega held ég að hún sé sett fram allt öðruvísi en hún er í raun - hún er sett fram sem staðgengill fyrir IPsec og OpenVPN, sem í raun er einfaldlega ekki til núna.

Sem athugasemd vil ég bæta við að ábyrgðin á slíkri staðsetningu WireGuard er hjá þeim fjölmiðlum sem töluðu um það, en ekki verkefnið sjálft eða höfunda þess.

Það hafa ekki verið miklar góðar fréttir af Linux kjarnanum undanfarið. Þannig að okkur var sagt frá hrikalegum veikleikum örgjörvans, sem var jafnað með hugbúnaði, og Linus Torvalds talaði um það of dónalega og leiðinlega, á nytjamáli þróunaraðilans. Tímaáætlun eða núll-stigi net stafla eru heldur ekki mjög skýr efni fyrir gljáandi tímarit. Og hér kemur WireGuard.

Á pappír hljómar þetta allt frábærlega: spennandi ný tækni.

En skoðum það aðeins nánar.

WireGuard hvítpappír

Þessi grein er byggð á opinber WireGuard skjölskrifað af Jason Donenfeld. Þar útskýrir hann hugmyndina, tilganginn og tæknilega útfærslu [WireGuard] í Linux kjarnanum.

Fyrsta setningin hljóðar svo:

WireGuard […] miðar að því að skipta út bæði IPsec í flestum notkunartilfellum og öðru vinsælu notendarými og/eða TLS byggðum lausnum eins og OpenVPN á meðan það er öruggara, afkastameira og auðveldara í notkun [tól].

Auðvitað er helsti kostur allrar nýrrar tækni þeirra einfaldleiki [miðað við forvera]. En VPN ætti líka að vera það áhrifarík og örugg.

Svo, hvað er næst?

Ef þú segir að þetta sé ekki það sem þú þarft [frá VPN], þá geturðu lokið lestrinum hér. Hins vegar tek ég fram að slík verkefni eru sett fyrir hverja aðra jarðgangatækni.

Athyglisverðasta tilvitnunarinnar hér að ofan liggur í orðunum „í flestum tilfellum“, sem auðvitað voru hunsuð af pressunni. Og svo erum við þar sem við enduðum vegna glundroða sem skapast af þessari vanrækslu - í þessari grein.

Af hverju þú ættir ekki að nota WireGuard

Mun WireGuard skipta út [IPsec] VPN-netinu mínu á milli staða?

Nei. Það eru einfaldlega engar líkur á því að stórir söluaðilar eins og Cisco, Juniper og fleiri muni kaupa WireGuard fyrir vörur sínar. Þeir „hoppa ekki á lestir sem fara framhjá“ á ferðinni nema það sé mikil þörf á því. Seinna mun ég fara yfir nokkrar af ástæðunum fyrir því að þeir munu líklega ekki geta fengið WireGuard vörurnar sínar um borð þótt þeir vildu.

Mun WireGuard fara með RoadWarrior minn úr fartölvunni minni í gagnaverið?

Nei. Eins og er, hefur WireGuard ekki mikinn fjölda mikilvægra eiginleika útfærða til að það geti gert eitthvað eins og þetta. Til dæmis getur það ekki notað kraftmikil IP vistföng á göngaþjónahliðinni og þetta eitt og sér brýtur alla atburðarás slíkrar notkunar vörunnar.

IPFire er oft notað fyrir ódýra nettengla, svo sem DSL eða kapaltengingar. Þetta er skynsamlegt fyrir lítil eða meðalstór fyrirtæki sem þurfa ekki hraðvirkar trefjar. [Athugasemd frá þýðanda: ekki gleyma því að hvað varðar samskipti, eru Rússland og sum CIS lönd langt á undan Evrópu og Bandaríkjunum, vegna þess að við byrjuðum að byggja upp net okkar miklu seinna og með tilkomu Ethernet og ljósleiðara sem a. staðall, það var auðveldara fyrir okkur að endurbyggja. Í sömu löndum ESB eða USA er xDSL breiðbandsaðgangur á 3-5 Mbps hraða enn almennt viðmið og ljósleiðaratenging kostar óraunhæfa peninga á okkar mælikvarða. Þess vegna talar höfundur greinarinnar um DSL eða kapaltengingu sem norm, en ekki fornöld.] Hins vegar hafa DSL, kapall, LTE (og aðrar þráðlausar aðgangsaðferðir) kraftmikil IP vistföng. Auðvitað, stundum breytast þeir ekki oft, en þeir breytast.

Það er undirverkefni sem heitir "wg-dynamic", sem bætir við notendarýmispúknum til að vinna bug á þessum galla. Stórt vandamál með atburðarás notenda sem lýst er hér að ofan er versnun á kraftmikilli IPv6 vistun.

Frá sjónarhóli dreifingaraðila lítur þetta allt ekki mjög vel út heldur. Eitt af hönnunarmarkmiðunum var að hafa samskiptareglurnar einfaldar og hreinar.

Því miður er þetta allt í rauninni orðið of einfalt og frumstætt, þannig að við verðum að nota viðbótarhugbúnað til þess að öll þessi hönnun verði raunhæf í raunverulegri notkun.

Er WireGuard svo auðvelt í notkun?

Ekki enn. Ég er ekki að segja að WireGuard verði aldrei góður valkostur til að fara á milli tveggja punkta, en í bili er þetta bara alfa útgáfa af vörunni sem það á að vera.

En hvað gerir hann þá eiginlega? Er IPsec virkilega svona miklu erfiðara að viðhalda?

Augljóslega ekki. IPsec söluaðilinn hefur hugsað út í þetta og sendir vöru sína ásamt viðmóti, svo sem með IPFire.

Til að setja upp VPN göng yfir IPsec þarftu fimm sett af gögnum sem þú þarft að slá inn í stillingarnar: þitt eigið opinbera IP-tala, opinbert IP-tala móttökuaðilans, undirnetin sem þú vilt gera opinbert í gegnum þessari VPN tengingu og fyrirfram deilt lykli. Þannig er VPN sett upp innan nokkurra mínútna og er samhæft við hvaða söluaðila sem er.

Því miður eru nokkrar undantekningar frá þessari sögu. Allir sem hafa reynt að fara yfir IPsec yfir í OpenBSD vél vita hvað ég er að tala um. Það eru nokkur sársaukafull dæmi til viðbótar, en í raun eru til margar, miklu fleiri góðar venjur til að nota IPsec.

Um flókið samskiptareglur

Endanotandinn þarf ekki að hafa áhyggjur af því hversu flókið samskiptareglurnar eru.

Ef við lifðum í heimi þar sem þetta var raunverulegt áhyggjuefni notandans, þá hefðum við losað okkur við SIP, H.323, FTP og aðrar samskiptareglur sem voru búnar til fyrir meira en tíu árum og virka ekki vel með NAT.

Það eru ástæður fyrir því að IPsec er flóknari en WireGuard: það gerir miklu fleiri hluti. Til dæmis, notendavottun með því að nota innskráningu / lykilorð eða SIM-kort með EAP. Það hefur aukna getu til að bæta við nýjum dulmáls frumstæður.

Og WireGuard hefur það ekki.

Og þetta þýðir að WireGuard mun brotna á einhverjum tímapunkti, vegna þess að einn af dulmáls frumstæðum mun veikjast eða verða algjörlega í hættu. Höfundur tækniskjalanna segir þetta:

Það er athyglisvert að WireGuard er dulmálsfræðilega álitinn. Það skortir vísvitandi sveigjanleika dulmáls og samskiptareglna. Ef alvarlegar holur finnast í undirliggjandi frumstæðum þarf að uppfæra alla endapunkta. Eins og þú sérð af áframhaldandi straumi SLL/TLS varnarleysis hefur sveigjanleiki dulkóðunar nú aukist gríðarlega.

Síðasta setningin er alveg rétt.

Að ná samstöðu um hvaða dulkóðun eigi að nota gerir samskiptareglur eins og IKE og TLS meira flókið. Of flókið? Já, veikleikar eru nokkuð algengir í TLS/SSL og það er enginn valkostur við þá.

Á að hunsa raunveruleg vandamál

Ímyndaðu þér að þú sért með VPN netþjón með 200 bardagaviðskiptavinum einhvers staðar um allan heim. Þetta er frekar venjulegt notkunartilfelli. Ef þú þarft að breyta dulkóðuninni þarftu að skila uppfærslunni í öll eintök af WireGuard á þessum fartölvum, snjallsímum og svo framvegis. Samtímis afhenda. Það er bókstaflega ómögulegt. Stjórnendur sem reyna að gera þetta mun taka marga mánuði að setja upp nauðsynlegar stillingar og það mun bókstaflega taka meðalstórt fyrirtæki ár að koma slíkum atburði af stað.

IPsec og OpenVPN bjóða upp á dulmálssamningaeiginleika. Þess vegna, í nokkurn tíma eftir að þú kveikir á nýju dulkóðuninni, mun sú gamla einnig virka. Þetta gerir núverandi viðskiptavinum kleift að uppfæra í nýju útgáfuna. Eftir að uppfærslan hefur verið sett út slekkurðu einfaldlega á viðkvæma dulkóðuninni. Og þannig er það! Tilbúið! þú ert stórglæsileg! Viðskiptavinir munu ekki einu sinni taka eftir því.

Þetta er í raun mjög algengt mál fyrir stórar dreifingar og jafnvel OpenVPN á í nokkrum erfiðleikum með þetta. Afturábak eindrægni er mikilvægt, og jafnvel þó að þú notir veikari dulkóðun, fyrir marga, er þetta ekki ástæða til að loka fyrirtæki. Vegna þess að það mun lama vinnu hundruð viðskiptavina vegna vanhæfni til að sinna starfi sínu.

WireGuard teymið hefur gert siðareglur sínar einfaldari, en algjörlega ónothæfar fyrir fólk sem hefur ekki stöðuga stjórn á báðum jafnöldrum í göngunum sínum. Í minni reynslu er þetta algengasta atburðarásin.

Af hverju þú ættir ekki að nota WireGuard

Dulmál!

En hvað er þessi áhugaverða nýja dulkóðun sem WireGuard notar?

WireGuard notar Curve25519 fyrir lyklaskipti, ChaCha20 fyrir dulkóðun og Poly1305 fyrir gagnasannvottun. Það virkar líka með SipHash fyrir kjötkássalykla og BLAKE2 fyrir kjötkássa.

ChaCha20-Poly1305 er staðlað fyrir IPsec og OpenVPN (yfir TLS).

Það er augljóst að þróun Daniel Bernstein er mjög oft notuð. BLAKE2 er arftaki BLAKE, SHA-3 úrslitakeppninnar sem sigraði ekki vegna líkt og SHA-2. Ef SHA-2 yrði brotið, þá væru góðar líkur á að BLAKE yrði líka í hættu.

IPsec og OpenVPN þurfa ekki SipHash vegna hönnunar þeirra. Þannig að það eina sem ekki er hægt að nota með þeim núna er BLAKE2, og það er aðeins þar til það er staðlað. Þetta er ekki stór galli, vegna þess að VPN nota HMAC til að skapa heilleika, sem er talin sterk lausn jafnvel í tengslum við MD5.

Svo ég komst að þeirri niðurstöðu að næstum sama sett af dulritunarverkfærum er notað í öllum VPN. Þess vegna er WireGuard hvorki meira né minna öruggt en nokkur önnur núverandi vara þegar kemur að dulkóðun eða heilleika sendra gagna.

En jafnvel þetta er ekki það mikilvægasta, sem er þess virði að borga eftirtekt til samkvæmt opinberum skjölum verkefnisins. Eftir allt saman, aðalatriðið er hraði.

Er WireGuard hraðari en aðrar VPN lausnir?

Í stuttu máli: nei, ekki hraðar.

ChaCha20 er straumdulmál sem er auðveldara að útfæra í hugbúnaði. Það dulkóðar einn bita í einu. Lokaðu samskiptareglur eins og AES dulkóða blokk 128 bita í einu. Miklu fleiri smára þarf til að innleiða vélbúnaðarstuðning, svo stærri örgjörvar koma með AES-NI, leiðbeiningasett viðbót sem framkvæmir sum verkefni dulkóðunarferlisins til að flýta fyrir því.

Búist var við að AES-NI myndi aldrei komast inn í snjallsíma [en það gerði það - u.þ.b. á.]. Fyrir þetta var ChaCha20 þróaður sem léttur, rafhlöðusparnaður valkostur. Þess vegna gæti það komið þér sem fréttir að sérhver snjallsími sem þú getur keypt í dag hefur einhvers konar AES hröðun og keyrir hraðar og með minni orkunotkun með þessari dulkóðun en með ChaCha20.

Vitanlega hafa næstum allir skrifborðs-/miðlara örgjörvar sem keyptir eru á síðustu tveimur árum AES-NI.

Þess vegna býst ég við að AES muni standa sig betur en ChaCha20 í hverri einustu atburðarás. Opinber skjöl WireGuard nefna að með AVX512 mun ChaCha20-Poly1305 standa sig betur en AES-NI, en þessi leiðbeiningasett viðbót verður aðeins fáanleg á stærri örgjörva, sem aftur mun ekki hjálpa með minni og farsíma vélbúnaði, sem verður alltaf hraðari með AES - N.I.

Ég er ekki viss um hvort þetta hefði verið hægt að sjá fyrir við þróun WireGuard, en í dag er sú staðreynd að það er neglt við dulkóðun eingöngu galli sem gæti ekki haft mjög góð áhrif á virkni þess.

IPsec gerir þér kleift að velja frjálslega hvaða dulkóðun hentar þér best. Og auðvitað er þetta nauðsynlegt ef þú vilt til dæmis flytja 10 eða fleiri gígabæta af gögnum í gegnum VPN tengingu.

Samþættingarvandamál í Linux

Þrátt fyrir að WireGuard hafi valið nútímalega dulkóðunarsamskiptareglur veldur þetta nú þegar miklum vandræðum. Og svo, í stað þess að nota það sem er stutt af kjarnanum úr kassanum, hefur samþætting WireGuard verið seinkað í mörg ár vegna skorts á þessum frumstæðum í Linux.

Ég er ekki alveg viss um hvernig staðan er á öðrum stýrikerfum, en það er líklega ekki mikið öðruvísi en á Linux.

Hvernig lítur raunveruleikinn út?

Því miður, í hvert skipti sem viðskiptavinur biður mig um að setja upp VPN-tengingu fyrir sig, lendi ég í því vandamáli að þeir séu að nota úrelt skilríki og dulkóðun. 3DES í tengslum við MD5 er enn algengt, eins og AES-256 og SHA1. Og þó að hið síðarnefnda sé aðeins betra er þetta ekki eitthvað sem ætti að nota árið 2020.

Fyrir lyklaskipti alltaf RSA er notað - hægt en nokkuð öruggt tæki.

Viðskiptavinir mínir tengjast tollyfirvöldum og öðrum ríkisstofnunum og stórfyrirtækjum sem eru þekkt um allan heim. Þeir nota allir beiðnieyðublað sem var búið til fyrir áratugum og möguleikinn til að nota SHA-512 var einfaldlega aldrei bætt við. Ég get ekki sagt að það hafi einhvern veginn greinilega áhrif á tækniframfarir, en augljóslega hægir það á fyrirtækjaferlinu.

Það er sárt fyrir mig að sjá þetta vegna þess að IPsec hefur stutt sporöskjulaga beygjur óvirkt síðan 2005. Curve25519 er líka nýrri og hægt að nota. Það eru líka valkostir við AES eins og Camellia og ChaCha20, en augljóslega eru þeir ekki allir studdir af helstu söluaðilum eins og Cisco og fleirum.

Og fólk nýtir sér það. Það eru mörg Cisco pökkum, það eru mörg pökk sem eru hönnuð til að vinna með Cisco. Þeir eru leiðandi á markaði í þessum flokki og hafa lítinn áhuga á hvers kyns nýsköpun.

Já, ástandið [í fyrirtækjahlutanum] er hræðilegt, en við munum ekki sjá neinar breytingar vegna WireGuard. Seljendur munu líklega aldrei sjá nein frammistöðuvandamál með verkfærunum og dulkóðuninni sem þeir eru nú þegar að nota, munu ekki sjá nein vandamál með IKEv2 og eru því ekki að leita að valkostum.

Almennt, hefur þú einhvern tíma hugsað um að yfirgefa Cisco?

Viðmið

Og nú skulum við halda áfram að viðmiðunum úr WireGuard skjölunum. Þó að þetta [skjal] sé ekki vísindagrein, bjóst ég samt við að hönnuðirnir myndu taka vísindalegri nálgun, eða nota vísindalega nálgun sem viðmið. Öll viðmið eru gagnslaus ef ekki er hægt að afrita þau og jafnvel gagnslausari þegar þau eru fengin á rannsóknarstofunni.

Í Linux byggingu WireGuard nýtir það sér að nota GSO - Generic Segmentation Offloading. Þökk sé honum býr viðskiptavinurinn til risastóran pakka upp á 64 kílóbæta og dulkóðar / afkóðar hann í einu lagi. Þannig minnkar kostnaður við að kalla fram og innleiða dulmálsaðgerðir. Ef þú vilt hámarka afköst VPN tengingarinnar þinnar er þetta góð hugmynd.

En eins og venjulega er raunveruleikinn ekki svo einfaldur. Að senda svona stóran pakka í netkort krefst þess að hann sé skorinn niður í marga smærri pakka. Venjuleg sendingarstærð er 1500 bæti. Það er, risanum okkar sem er 64 kílóbæti verður skipt í 45 pakka (1240 bæti af upplýsingum og 20 bæti af IP-haus). Síðan, um stund, loka þeir algjörlega fyrir vinnu netmillistykkisins, vegna þess að þeir verða að senda saman og í einu. Þar af leiðandi mun þetta leiða til forgangsstökks og pakkar eins og VoIP, til dæmis, verða í biðröð.

Þannig er háum afköstum sem WireGuard heldur fram svo djarflega er náð á kostnað þess að hægja á netkerfi annarra forrita. Og WireGuard teymið er nú þegar staðfest þetta er mín niðurstaða.

En við skulum halda áfram.

Samkvæmt viðmiðunum í tækniskjölunum sýnir tengingin afköst upp á 1011 Mbps.

Áhrifamikill.

Þetta er sérstaklega áhrifamikið vegna þeirrar staðreyndar að hámarks fræðilegt afköst einnar Gigabit Ethernet tengingar er 966 Mbps með pakkastærð upp á 1500 bæti mínus 20 bæti fyrir IP haus, 8 bæti fyrir UDP haus og 16 bæti fyrir haus á sjálft WireGuard. Það er einn IP-haus í viðbót í hjúpuðu pakkanum og annar í TCP fyrir 20 bæti. Svo hvaðan kom þessi auka bandbreidd?

Með risastórum ramma og ávinningi GSO sem við ræddum um hér að ofan, væri fræðilegt hámark fyrir rammastærð 9000 bæti 1014 Mbps. Yfirleitt er slíkt afköst óframkvæmanlegt í raun og veru, vegna þess að það fylgir miklum erfiðleikum. Þannig get ég aðeins gert ráð fyrir að prófið hafi verið gert með því að nota enn feitari yfirstærðarramma upp á 64 kílóbæti með fræðilegt hámark 1023 Mbps, sem er aðeins stutt af sumum netkortum. En þetta er algjörlega óviðeigandi við raunverulegar aðstæður, eða er aðeins hægt að nota á milli tveggja beintengdra stöðva, eingöngu innan prófunarbekksins.

En þar sem VPN göngin eru send á milli tveggja gestgjafa með nettengingu sem styður alls ekki júmbó ramma, er ekki hægt að taka niðurstöðuna sem næst á bekknum sem viðmið. Þetta er einfaldlega óraunhæft rannsóknarafrek sem er ómögulegt og ónothæft við raunverulegar bardagaaðstæður.

Jafnvel þegar ég sat í gagnaverinu gat ég ekki flutt ramma stærri en 9000 bæti.

Viðmiðunin um nothæfi í raunveruleikanum er algerlega brotin og eins og ég held að höfundur "mælingarinnar" sem framkvæmdi var rýrð sjálfan sig alvarlega af augljósum ástæðum.

Af hverju þú ættir ekki að nota WireGuard

Síðasta vonarglampi

Á vefsíðu WireGuard er mikið talað um gáma og það kemur í ljós til hvers hann er raunverulega ætlaður.

Einfalt og fljótlegt VPN sem krefst engrar stillingar og hægt er að dreifa og stilla með gríðarstórum hljómsveitarverkfærum eins og Amazon hefur í skýinu sínu. Sérstaklega notar Amazon nýjustu vélbúnaðareiginleikana sem ég nefndi áðan, eins og AVX512. Þetta er gert til að flýta fyrir verkinu og ekki vera bundið við x86 eða neinn annan arkitektúr.

Þeir hámarka afköst og pakka sem eru stærri en 9000 bæti - þetta verða risastórir hjúpaðir rammar fyrir gáma til að hafa samskipti sín á milli, eða fyrir afritunaraðgerðir, búa til skyndimyndir eða dreifa þessum sömu gámum. Jafnvel kraftmikil IP tölur munu ekki hafa áhrif á rekstur WireGuard á nokkurn hátt ef um er að ræða atburðarásina sem ég lýsti.

Vel spilað. Snilldar útfærsla og mjög þunn, næstum viðmiðunarreglur.

En það passar bara ekki í heimi utan gagnaver sem þú stjórnar algjörlega. Ef þú tekur áhættuna og byrjar að nota WireGuard verður þú að gera stöðugar málamiðlanir við hönnun og útfærslu dulkóðunarsamskiptareglunnar.

Output

Það er auðvelt fyrir mig að álykta að WireGuard sé ekki tilbúið ennþá.

Það var hugsað sem létt og fljótleg lausn á fjölda vandamála með núverandi lausnum. Því miður, vegna þessara lausna, fórnaði hann mörgum eiginleikum sem munu skipta máli fyrir flesta notendur. Þess vegna getur það ekki komið í stað IPsec eða OpenVPN.

Til þess að WireGuard geti orðið samkeppnishæf þarf það að bæta við að minnsta kosti IP-tölustillingu og leið og DNS stillingu. Augljóslega er þetta það sem dulkóðaðar rásir eru fyrir.

Öryggi er forgangsverkefni mitt og núna hef ég enga ástæðu til að ætla að IKE eða TLS sé á einhvern hátt í hættu eða bilað. Nútíma dulkóðun er studd í þeim báðum og þau hafa verið sönnuð með áratuga notkun. Þó eitthvað sé nýrra þýðir það ekki að það sé betra.

Samvirkni er afar mikilvæg þegar þú átt samskipti við þriðja aðila sem þú ræður ekki yfir stöðvum. IPsec er í raun staðallinn og er studdur nánast alls staðar. Og hann vinnur. Og sama hvernig það lítur út, fræðilega séð, gæti WireGuard í framtíðinni ekki verið samhæft jafnvel við mismunandi útgáfur af sjálfu sér.

Öll dulmálsvörn er rofin fyrr eða síðar og verður að skipta út eða uppfæra í samræmi við það.

Að afneita öllum þessum staðreyndum og vilja í blindni nota WireGuard til að tengja iPhone við heimavinnustöðina er bara meistaranámskeið í að stinga höfðinu í sandinn.

Heimild: www.habr.com

Bæta við athugasemd