VPN WireGuard-ն ընդունվել է net-next մասնաճյուղում և նախատեսվում է ներառել Linux 5.6 միջուկում:

Դեյվիդ Միլլեր (Դեյվիդ Ս. Միլլեր), պատասխանատու է Linux միջուկի ցանցային ենթահամակարգի համար, ընդունեց դեպի net-next մասնաճյուղ կարկատաններ նախագծից VPN ինտերֆեյսի ներդրմամբ WireGuard- ը. Հաջորդ տարվա սկզբին net-next ճյուղում կուտակված փոփոխությունները հիմք կհանդիսանան Linux kernel 5.6-ի թողարկման համար:

WireGuard կոդը հիմնական միջուկ մղելու փորձերը կատարվել են վերջին մի քանի տարիների ընթացքում, սակայն անհաջող են մնացել՝ կապված գաղտնագրային գործառույթների սեփականության իրականացման հետ, որոնք օգտագործվում էին կատարողականությունը բարելավելու համար: Սկզբում այս գործառույթներն էին առաջարկված միջուկի համար որպես լրացուցիչ ցածր մակարդակի Ցինկի API, որը կարող է ի վերջո փոխարինել ստանդարտ Crypto API-ին:

Kernel Recipes կոնֆերանսի քննարկումներից հետո WireGuard-ի ստեղծողները սեպտեմբերին փոխզիջումային որոշում է կայացրել փոխանցեք ձեր պատչերը՝ առանցքում հասանելի Crypto API-ն օգտագործելու համար, որին WireGuard մշակողները բողոքներ ունեն աշխատանքի և ընդհանուր անվտանգության ոլորտում: Որոշվել է շարունակել Zinc API-ի մշակումը, բայց որպես առանձին նախագիծ։

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

Հիմնական առանցքում WireGuard-ի առաջիկա առաքման հետ կապված՝ նախագծի հիմնադիրը объявил պահեստի վերակազմավորման մասին։ Զարգացումը պարզեցնելու համար մոնոլիտ «WireGuard.git» պահոցը, որը նախատեսված էր առանձին գոյություն ունենալու համար, կփոխարինվի երեք առանձին պահոցներով, որոնք ավելի հարմար են հիմնական միջուկում կոդով աշխատանքը կազմակերպելու համար.

  • wireguard-linux.git - ամբողջական միջուկի ծառ՝ Wireguard նախագծի փոփոխություններով, որոնցից հատվածները կվերանայվեն միջուկում ներառելու համար և կանոնավոր կերպով կտեղափոխվեն net/net-next մասնաճյուղեր:
  • wireguard-tools.git - կոմունալ ծառայությունների և սկրիպտների պահեստ, որոնք աշխատում են օգտագործողի տարածքում, ինչպիսիք են wg-ը և wg-quick-ը: Պահեստը կարող է օգտագործվել բաշխումների համար փաթեթներ ստեղծելու համար:
  • wireguard-linux-compat.git - պահեստարան մոդուլի տարբերակով, որը մատակարարվում է միջուկից առանձին և ներառում է compat.h շերտը՝ ավելի հին միջուկների հետ համատեղելիություն ապահովելու համար: Հիմնական մշակումը կիրականացվի wireguard-linux.git պահոցում, սակայն քանի դեռ օգտատերերի մոտ կա հնարավորություն և կարիք, կարկատանների առանձին տարբերակը նույնպես կաջակցվի աշխատանքային տեսքով։

Հիշեցնենք, որ VPN WireGuard-ն իրականացվում է գաղտնագրման ժամանակակից մեթոդների հիման վրա, ապահովում է շատ բարձր կատարողականություն, հեշտ է օգտագործել, զերծ է բարդություններից և իրեն ապացուցել է մի շարք խոշոր տեղակայումներում, որոնք մշակում են մեծ քանակությամբ տրաֆիկ: Նախագիծը զարգանում է 2015 թվականից, ենթարկվել է աուդիտի և պաշտոնական ստուգում օգտագործված գաղտնագրման մեթոդները: WireGuard-ի աջակցությունն արդեն ինտեգրված է NetworkManager-ում և systemd-ում, իսկ միջուկի պատչերը ներառված են բազային բաշխումների մեջ Debian անկայուն, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph- ը и ALT.

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

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

Ի փորձարկում Performance WireGuard-ը ցուցադրեց 3.9 անգամ ավելի բարձր թողունակություն և 3.8 անգամ ավելի բարձր արձագանքողություն՝ համեմատած OpenVPN-ի հետ (256-բիթանոց AES HMAC-SHA2-256-ով): IPsec-ի համեմատ (256-բիթ ChaCha20+Poly1305 և AES-256-GCM-128), WireGuard-ը ցույց է տալիս կատարողականի մի փոքր բարելավում (13-18%) և ավելի ցածր ուշացում (21-23%): Թեստերն իրականացվել են ծրագրի կողմից մշակված գաղտնագրման ալգորիթմների արագ ներդրման միջոցով. միջուկի ստանդարտ Crypto API-ին փոխանցումը կարող է հանգեցնել ավելի վատ աշխատանքի:

VPN WireGuard-ն ընդունվել է net-next մասնաճյուղում և նախատեսվում է ներառել Linux 5.6 միջուկում:

Source: opennet.ru

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