Երկու պիտակ օգտագործվում են այնպես, կարծես նույն բանը լինեն՝ ապարատով արագացված և միջուկ փոխանցված։ Մեկը նկարագրում է, թե գրադարանի AES ընթացակարգը որ հրահանգներն է կատարում, մյուսը՝ թե որտեղ է տեղի ունենում փաթեթների մշակումը։ VPN-ը կարող է ունենալ առաջինը առանց երկրորդի, երկրորդը՝ առանց առաջինի, կամ երկուսը միասին։ Արտադրողականության մասին ցանկացած որոշում պետք է սկսվի նրանով, որ անվանեք, թե այդ երկուսից որն եք իրականում փոխում։

Երկու առանցք, ոչ թե մեկ միավոր

Առաջին առանցքը ներդրումն է. AES-256-GCM-ը կատարող կոդը ուղղվում է պրոցեսորի հատուկ հրահանգներն օգտագործող տարբերակի՞ն, թե՞ շարժական ընթացակարգի, որը դրանք կատարում է որպես սովորական թվաբանություն։ Այդ ընտրությունը ապրում է կրիպտոգրաֆիկ գրադարանի ներսում և կատարվում է դրա սկզբնավորման ժամանակ։

Երկրորդ առանցքը տեղաբաշխումն է. փաթեթը անցնում է միջուկի ձևափոխման ուղի՞վ, թե՞ օգտագործողի տարածության դեմոնը կարդում է թունելային սարքից, գաղտնագրում և հետ գրում։

Ոչ մի առանցք չի սահմանափակում մյուսին։ Օգտագործողի տարածության VPN-ը AES հրահանգներ ունեցող պրոցեսորի վրա կարող է դրանք օգտագործել ամբողջ ընթացքում, իսկ միջուկի ուղին՝ առանց դրանց, վերադառնում է ծրագրային ներդրման։ Մատակարարների նյութերում պիտակները հազվադեպ են նշում այդ տարբերությունը, և դրա համար է, որ երկու իրավիճակների միջև պատճենված կարգավորման խորհուրդները այդքան հաճախ ոչինչ չեն անում։

Առաջին առանցք. ո՞ր կոդն է կատարում գաղտնագրումը

OpenSSL-ը սկզբնավորման ընթացքում հայտնաբերում է պրոցեսորի հատկանիշները և արդյունքն օգտագործում օպտիմիզացված կոդի ուղիներ ընտրելու համար, ինչպես նկարագրում է x86 հնարավորությունների փաստաթուղթը։ AES-NI-ը այդ ուղղորդման հետևում գտնվող փաստաթղթավորված հնարավորություններից մեկն է։ Այս ամենից ոչինչ չի պահանջում, որ գրադարանը դառնա միջուկի բաղադրիչ։

Համոզվեք, որ հատկանիշը տեսանելի է գործընթացին, նախքան ենթադրելը, որ արագ ուղին օգտագործվում է։ Linux-ում աղբյուրը /proc/cpuinfo-ի flags դաշտն է, իսկ հյուրի ներսում այն արտացոլում է այն, ինչ բացահայտում է հիպերվիզորը, ոչ թե ֆիզիկական հոսթի մոդելի անունը։

grep -m1 '^flags' /proc/cpuinfo | grep -o '\baes\b'
openssl list -providers -verbose

Երկրորդ հրամանը անվանում է այդ կառուցման մեջ բեռնված մատակարարներին։ Այն ձեզ չի ասում, թե որ գրադարանին է կապել VPN ծառայությունը, և հոսթը կարող է կրել OpenSSL-ի երկու տեղադրում, մինչդեռ աշխատող գործընթացը օգտագործում է դրանցից միայն մեկը։

Երկրորդ առանցք. որտե՞ղ է աշխատում փաթեթների ուղին

Միջուկում տեղաբաշխումը նշանակում է, որ ձևափոխությունը տեղի է ունենում միջուկի սեփական IPsec մեխանիզմում կամ միջուկի ներսում գտնվող թունելային դրայվերում, այնպես որ փաթեթները յուրաքանչյուր խմբաքանակի համար կարիք չունեն գնալ-գալու ճանապարհորդության օգտագործողի տարածության գործընթացով։ Դա կարող է կրճատել պատճենումներն ու կոնտեքստի փոխարկումները և աշխատանքը բաշխել միջուկների միջև այնպես, ինչպես մեկ թելային դեմոնը չի կարող։ Այն նաև տեղափոխում է այն հաշվիչներն ու հետքերը, որոնք դուք կկարդաք, երբ թողունակությունը ընկնի, որովհետև աշխատանքն այժմ կատարվում է ձեր չվերահսկած սահմանի մյուս կողմում։ Դիտարկեք դա որպես վրիպազերծման ծախս, ոչ միայն որպես արտադրողականության որոշում։

Այն չի ստեղծում հրահանգների աջակցություն, չի կարգավորում ծածկագիր և գործող ուղի չի աշխատեցնում։

Վիրտուալացումը ծալք է ավելացնում նաև այս առանցքում։ Հյուրին կարող են տալ քողարկված պրոցեսորի մոդել, որը թաքցնում է հոսթի ունեցած հատկանիշները, իսկ ներդրված հյուրը կարող է ավելի քիչ տեսնել։ Հնարավորությունների պատկերը կարդացեք այն միջավայրի ներսից, որտեղ VPN-ը իրականում աշխատում է, ոչ թե հիպերվիզորի կոնսոլից։

Ինչ է գնում յուրաքանչյուր ընտրություն, և ինչ չի կարող

Գործնական հարցն այն է, թե ուր է գնում ժամանակը։ Եթե մեկ զբաղված թելը, կրկնվող բուֆերի պատճենումները կամ յուրաքանչյուր փաթեթի համար համակարգային կանչը սահմանափակում են թողունակությունը, ձևափոխությունը այնպիսի ուղի տեղափոխելը, որը վերացնում է այդ ծախսերը, կարող է օգնել, պայմանով որ միջուկը ներդրած լինի ձեզ անհրաժեշտ ձևափոխությունը։

Եթե սահմանը գերբեռնված վերին կապն է, կորուստներով ուղին, երկար գնալ-գալու ժամանակը, հագեցած նպատակակետ ծառայությունը կամ մեկ միջուկին ամրացված թելը, տեղաբաշխումը ոչինչ չի փոխում կարևորը։ Նույնը վերաբերում է հրահանգների ընտրությանը. հատուկ ապարատի վրա AES-ը չի վերանորոգի բացակայող ուղին և չի օգնի, եթե թունելը պարապ է, որովհետև անունների լուծումը ձախողվում է։

Այնտեղ, որտեղ երկուսն էլ գործում են, դրանք զուգակցվում են։ Միջուկի ուղին կարող է օգտագործել նույն հրահանգային մակարդակի ուղղորդումը միջուկի կրիպտո API-ի ներսում, իսկ լավ ընտրված գրադարանով օգտագործողի տարածության ուղին արդեն օգտագործում է այն։ Որոշումը այն չէ, թե որն է ավելի արագ վերացականորեն. այն է, թե որ ծախսի համար ապացույց ունեք։

Գրեք չորս փաստերը, նախքան ինչ-որ բան փոխելը

Գրեք ծառայության բինարը և կրիպտոգրաֆիկ գրադարանը, որին այն կապված է, որովհետև դրանք են որոշում առաջին առանցքը։ Ապա գրանցեք համաձայնեցված տվյալների պաշտպանությունը, որովհետև հատուկ հրահանգային ուղի չունեցող ծածկագիրն իրեն այլ կերպ է պահում, քան դրանով մեկը, և հավաքածուն ընտրում են երկու կողմերը։

Այնուհետև հնարավորությունների պատկերը աշխատող միջավայրի ներսից, և վերջում ակտիվ փաթեթների ուղին՝ ապացույցով, որ ձեր կարծիքով միացված ռեժիմն իսկապես այդպիսին է։ Բեռնված մոդուլը ապացույց չէ, որ պրոֆիլն օգտագործում է այն, և կոնֆիգուրացիայի տողը ապացույց չէ, որ միջուկն ընդունել է այն։

Փոխեք մեկ բան, ապա համեմատեք հետևողական ծանրաբեռնվածության հետ՝ նույն վերջնակետերով և նույն փոխանցման ուղղությամբ։ Արագության այն պնդումը, որը չեք չափել, ավելի քիչ արժե, քան գրառումը, որ բեքենդը երբեք կասկածի տակ չի եղել։

Առնչվող հոդվածներ