tls-crypt-v2 պրոֆիլը տոմսի մեջ տեղադրելը անվնաս է թվում, մինչև չհաշվեք, թե ինչ կա ֆայլում։ Հաճախորդի կառավարման ալիքի բանալին կանգնած է նույն բանալու գաղտնագրված պատճենի կողքին, իսկ երրորդ օբյեկտը՝ փաթաթող բանալին, երբեք չի հեռանում ընդունող սերվերից։ Այս երեքը պատասխանում են պահպանման, կիսման և հեռացման տարբեր հարցերի։ Դրանց առանձնացումը լուծում է քաղաքականության վեճերի մեծ մասը՝ նախքան դրանք կսկսվեն։

Ինչ է իրականում պարունակում պրոֆիլը

tls-crypt-v2-ի հաճախորդային կեսը բանալի է և դրա փաթաթված պատճենը։ Հաճախորդն օգտագործում է հասարակ բանալին կառավարման ալիքի պաշտպանության համար և տեղադրման ընթացքում փաթաթված պատճենը հանձնում է սերվերին, որպեսզի սերվերը վերականգնի նույն բանալին՝ առանց յուրաքանչյուր հաճախորդի համար բաց տեքստի պատճեն պահելու։ Փաթաթող բանալին է հնարավոր դարձնում այդ վերականգնումը և պատկանում է միայն ընդունող կողմին։ Ներքևում ամեն ինչ բխում է նրանից, թե որտեղ են ապրում այդ երեք օբյեկտները։

ObjectWhere it livesWhat can open itWhat a leak costs
Server wrapping keyaccepting servers onlythe unwrap step inside the serverevery wrapped copy issued to that group becomes readable
Wrapped client keyinside the client profilethe server wrapping keyit names a client and exposes its metadata, but not the key inside
Client control keyinside the client profile, usable as-isthe client that owns itsomeone can open handshakes as that client until the server refuses the key

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

Ինչու փաթաթված պատճենը ամբողջ պատմությունը չէ

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

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

Որտեղ է ստուգման կեռիկը ձեռքսեղմման մեջ

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

Նրա ելքի կարգավիճակը որոշումն է՝ ոչ զրոյական արդյունքը մերժում է հաճախորդին, իսկ զրոյական արդյունքը թույլ է տալիս շարունակել ձեռքսեղմումը։ Ուստի քաղաքականությունը պետք է ասի, թե ինչ է պատահում, երբ մետատվյալները բացակայում են, հնարավոր չէ վերլուծել կամ անսպասելի են։ Նախ գրեք մերժման ուղին, ապա որոշեք, թե որ արժեքներն են ընդունելի։

tls-crypt-v2 /etc/openvpn/server/tcv2-server.key
tls-crypt-v2-verify /etc/openvpn/server/verify-client-metadata.sh

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

Հաշիվը, վկայականը և կառավարման բանալին առանձին են հեռանում

Կառավարման ալիքի վաղ ընդունումը նույնականացում չէ, որովհետև այն տեղի է ունենում նախքան TLS ինքնության ստուգումը և նախքան հաշվի ցանկացած լիազորում։ Հաշիվն անջատելը, վկայականը չեղարկելը և հաճախորդի կառավարման բանալին մերժելը երեք գործողություն են երեք մեխանիզմով։ Այն տեղակայումը, որ կատարում է դրանցից միայն մեկը, ունի բացվածք, ոչ թե քաղաքականություն։ Համաձայնեցրեք երեքը դիտավորյալ և գրանցեք, թե որ քայլն ինչ լիազորություն է գործադրում։

Ժամանակը երկրորդ տարբերությունն է։ Փոփոխված ընդունման ցանկը վերաբերում է նոր ձեռքսեղմումներին, մինչդեռ արդեն հաստատված սեսիաները շարունակում են աշխատել, մինչև ինչ-որ բան դադարեցնի դրանք։ Նոր ցանկի գրառումները որպես հին սեսիաների ավարտի ապացույց հաշվելը այն ձևն է, որով հեռացված հաճախորդը ժամերով մնում է միացված։

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

Պրոֆիլի թողարկումը և հետ կանչելը

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

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

Պրոֆիլում եղած մետատվյալները մուտքագրում են այդ քաղաքականության համար, ոչ թե ապացույց, որ մուտքի վերահսկողություն արդեն գոյություն ունի։ OpenVPN 2.6-ի նախագծային փաստաթուղթը նկարագրում է օբյեկտները և նրանց գծած սահմանը, մինչդեռ դրանց կիրառումը մնում է օպերատորին։

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