VPN WireGuard-ը ներառված է Linux միջուկում 5.6

Այսօր Լինուսը VPN ինտերֆեյսներով ցանցի հաջորդ մասնաճյուղը տեղափոխեց իր մոտ WireGuard- ը. Այս իրադարձության մասին հաղորդում է WireGuard փոստային ցուցակում:

VPN WireGuard-ը ներառված է Linux միջուկում 5.6

Կոդերի հավաքումը նոր Linux 5.6 միջուկի համար ներկայումս շարունակվում է: WireGuard-ը նոր սերնդի արագ VPN է, որն իրականացնում է ժամանակակից գաղտնագրություն: Այն ի սկզբանե մշակվել է որպես գոյություն ունեցող VPN-ների ավելի պարզ և հարմար այլընտրանք: Հեղինակը կանադացի տեղեկատվական անվտանգության մասնագետ Ջեյսոն Ա. Դոնենֆելդն է։ 2018 թվականի օգոստոսին WireGuard գովասանքի արժանացավ Լինուս Տորվալդսի կողմից։ Մոտավորապես այդ ժամանակ սկսվեց VPN-ը Linux միջուկում ներառելու աշխատանքը: Գործընթացը մի փոքր ավելի երկար տեւեց։

«Ես տեսնում եմ, որ Ջեյսոնը պահանջել է ներգրավել WireGuard-ը միջուկում», - գրել է Լինուսը 2 թվականի օգոստոսի 2018-ին: — Կարո՞ղ եմ ևս մեկ անգամ հայտնել իմ սերը այս VPN-ի նկատմամբ և հույս ունենալ, որ շուտով միաձուլվի: Կոդը կարող է կատարյալ չլինել, բայց ես նայեցի դրան և համեմատած OpenVPN-ի և IPSec-ի սարսափների հետ՝ դա իսկական արվեստի գործ է»:

Չնայած Լինուսի ցանկությանը, միաձուլումը ձգձգվեց մեկուկես տարի։ Պարզվեց, որ հիմնական խնդիրը կապված է կրիպտոգրաֆիկ գործառույթների սեփականության իրականացման հետ, որոնք օգտագործվում էին կատարողականությունը բարելավելու համար: Երկարատև բանակցություններից հետո 2019 թվականի սեպտեմբերին դա տեղի ունեցավ փոխզիջումային որոշում է կայացվել թարգմանել պատչերը միջուկում հասանելի Crypto API ֆունկցիաներին, որոնց վերաբերյալ WireGuard մշակողները բողոքներ ունեն աշխատանքի և ընդհանուր անվտանգության ոլորտում: Բայց նրանք որոշեցին առանձնացնել WireGuard-ի բնիկ կրիպտո ֆունկցիաները առանձին ցածր մակարդակի Zinc API-ի և ի վերջո տեղափոխել դրանք միջուկ: Նոյեմբերին միջուկի մշակողները կատարեցին իրենց խոստումը և համաձայնեց փոխանցել կոդի մի մասը Zinc-ից հիմնական միջուկ: Օրինակ, Crypto API-ում ներառյալ WireGuard-ում պատրաստված ChaCha20 և Poly1305 ալգորիթմների արագ իրականացում:

Վերջապես, 9 թվականի դեկտեմբերի 2019-ին Դեյվիդ Ս. Միլլերը, որը պատասխանատու է Linux միջուկի ցանցային ենթահամակարգի համար, ընդունեց դեպի net-next մասնաճյուղ կարկատաններ WireGuard նախագծից VPN ինտերֆեյսի ներդրմամբ:

Եվ այսօր՝ 29 թվականի հունվարի 2020-ին, փոփոխությունները գնացին Linus՝ միջուկում ներառելու համար։

VPN WireGuard-ը ներառված է Linux միջուկում 5.6

WireGuard-ի պահանջվող առավելությունները VPN այլ լուծումների նկատմամբ.

  • Հեշտ օգտագործման համար:
  • Օգտագործում է ժամանակակից ծածկագրություն՝ աղմուկի արձանագրության շրջանակ, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF և այլն:
  • Կոմպակտ, ընթեռնելի կոդ, ավելի հեշտ է ուսումնասիրել խոցելիությունը:
  • Բարձր կատարողականություն:
  • Հստակ և մանրամասն ճշգրտում.

WireGuard-ի ողջ հիմնական տրամաբանությունը զբաղեցնում է 4000-ից պակաս կոդ, մինչդեռ OpenVPN-ն և IPSec-ը պահանջում են հարյուր հազարավոր տողեր:

«WireGuard-ը օգտագործում է գաղտնագրման բանալիների երթուղղման հայեցակարգը, որը ներառում է յուրաքանչյուր ցանցային ինտերֆեյսի մասնավոր բանալի կցումը և այն միմյանց միացնելու համար հանրային բանալիների օգտագործումը: Հանրային բանալիները փոխանակվում են SSH-ի նման կապ հաստատելու համար: Բանալիները բանակցելու և առանց օգտագործողի տարածքում առանձին դեյմոն գործարկելու համար միանալու համար Noise_IK մեխանիզմն է Աղմուկի արձանագրության շրջանակնման է SSH-ում authorized_keys-ի պահպանմանը: Տվյալների փոխանցումն իրականացվում է UDP փաթեթներում encapsulation միջոցով: Այն աջակցում է VPN սերվերի IP հասցեն (ռոումինգ) փոխելը, առանց կապը անջատելու հաճախորդի ավտոմատ վերակազմավորմամբ, - գրում Opennet.

Կոդավորման համար օգտագործվում է հոսքի ծածկագիրը ChaCha20 և հաղորդագրությունների վավերացման ալգորիթմ (MAC) Poly1305- ընախագծված Դանիել Բերնշտայնի կողմից (Daniel J. Bernstein), Տանյա Լանգեն և Պիտեր Շվաբեն։ ChaCha20-ը և Poly1305-ը դիրքավորվում են որպես AES-256-CTR-ի և HMAC-ի ավելի արագ և անվտանգ անալոգներ, որոնց ծրագրային ներդրումը թույլ է տալիս հասնել ֆիքսված կատարման ժամանակ՝ առանց հատուկ ապարատային աջակցության օգտագործման: Համատեղ գաղտնի բանալի ստեղծելու համար ներդրման ժամանակ օգտագործվում է էլիպսային կորի Diffie-Hellman արձանագրությունը Curve25519, առաջարկել է նաև Դանիել Բերնշտեյնը։ Հեշինգի համար օգտագործվող ալգորիթմն է BLAKE2s (RFC7693).

Արդյունքները կատարողականի թեստեր պաշտոնական կայքից՝

Թողունակություն (մեգաբիթ/վրկ)
VPN WireGuard-ը ներառված է Linux միջուկում 5.6

Պինգ (մս)
VPN WireGuard-ը ներառված է Linux միջուկում 5.6

Փորձարկման կոնֆիգուրացիա.

  • Intel Core i7-3820QM և Intel Core i7-5200U
  • Գիգաբիթ քարտեր Intel 82579LM և Intel I218LM
  • Linux 4.6.1
  • WireGuard կոնֆիգուրացիա՝ 256 բիթ ChaCha20 Poly1305-ով MAC-ի համար
  • Առաջին IPsec կոնֆիգուրացիա՝ 256 բիթ ChaCha20 Poly1305-ով MAC-ի համար
  • Երկրորդ IPsec կոնֆիգուրացիա՝ AES-256-GCM-128 (AES-NI-ով)
  • OpenVPN կոնֆիգուրացիա. AES 256-բիթանոց համարժեք գաղտնագրման փաթեթ HMAC-SHA2-256, UDP ռեժիմով
  • Կատարումը չափվել է օգտագործելով iperf3, ցույց է տալիս միջին արդյունքը 30 րոպեի ընթացքում:

Տեսականորեն, երբ ինտեգրվելով ցանցի կույտին, WireGuard-ը պետք է ավելի արագ աշխատի: Բայց իրականում դա պարտադիր չէ, որ տեղի ունենա միջուկում ներկառուցված Crypto API ծածկագրային գործառույթներին անցնելու պատճառով: Թերևս դրանցից ոչ բոլորն են դեռ օպտիմիզացված հայրենի WireGuard-ի կատարողական մակարդակին:

«Իմ տեսանկյունից, WireGuard-ը ընդհանուր առմամբ իդեալական է օգտագործողի համար: Ցածր մակարդակի բոլոր որոշումները ընդունվում են ճշգրտման մեջ, ուստի տիպիկ VPN ենթակառուցվածքի պատրաստման գործընթացը տևում է ընդամենը մի քանի րոպե: Գրեթե անհնար է խաթարել կազմաձևը. писали Habré-ում 2018 թ. - Տեղադրման գործընթացը մանրամասն նկարագրված պաշտոնական կայքում, ես կցանկանայի առանձին նշել գերազանց OpenWRT աջակցություն. Կոդի բազայի օգտագործման այս հեշտությունը և կոմպակտությունը ձեռք են բերվել բանալիների բաշխումը վերացնելու միջոցով: Չկա սերտիֆիկատների բարդ համակարգ և այս ամբողջ կորպորատիվ սարսափը. կարճ գաղտնագրման բանալիները բաշխվում են SSH ստեղների նման»:

WireGuard նախագիծը զարգանում է 2015 թվականից, այն ենթարկվել է աուդիտի և պաշտոնական ստուգում. WireGuard-ի աջակցությունը ինտեգրված է NetworkManager-ում և systemd-ում, իսկ միջուկի patches-ը ներառված է Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph և ALT բազային բաշխումների մեջ:

Source: www.habr.com

Добавить комментарий