TLS-ը շարժվում է կառավարման ալիքի ներսում, ոչ ամբողջ թունելով
Կողմերը փոխանակում են իրենց սեփական փաթեթները, և TLS-ը աշխատում է կառավարման փոխանակման ներսում։ HTTPS-ը հասկացող պրոքսին պատկերացում չունի, թե ինչ է այս տրաֆիկը։
VPN-ի նկարագրության մեջ TLS բառը տեսնելը և եզրակացնելը, թե վեբ պրոքսին կհասկանա այս տրաֆիկը, սովորական կարճ ճանապարհ է։ Այս արձանագրության ներսում կողմերը փոխանակում են իրենց սեփական փաթեթները, և TLS-ը գործում է այդ փոխանակման մեջ մեկ ալիքի մասով։ Այն բեռը, որ կարևոր է օգտատիրոջը, ընթանում է այլ հաղորդագրության ձևաչափով, և դրա համար է, որ երկուսը երբեք չեն համընկնում սովորական HTTPS սեսիայի հետ։
Ծրարը գալիս է առաջինը
Յուրաքանչյուր թունելային փաթեթ սկսվում է արձանագրության սեփական վերնագրով՝ հաղորդագրության տեսակ, բանալու նույնացուցիչ և բայթային հոսքի տրանսպորտի դեպքում երկարության նախածանց, որը նշում է, թե որտեղ է ավարտվում փաթեթը։ Ընթերցողը, որը չի վերլուծում այդ ծրարը, չի կարող իմանալ, թե որտեղ է սկսվում հաջորդ դաշտը։
outer transport (UDP datagram or TCP stream)
-> OpenVPN header (opcode, key id, length where needed)
-> control message (reliability wrapper, TLS exchange)
-> data message (protected inner packet)
Այդ ուրվագիծը քարտեզ է, ոչ բայթային աղյուսակ, որովհետև ճշգրիտ դաշտերը կախված են հաղորդագրության տեսակից, թեև առաջին օկտետը միշտ միասին փաթեթավորում է գործողության կոդը և բանալու նույնացուցիչը։ Հաղորդագրության տեսակը պորտի համարից գուշակելը հենց այն է, ինչի պատճառով ապակոդավորիչները վերջում սխալ են անվանում այն, ինչ տեսնում են։ Ախտորոշման համար կարևոր է հերթականությունը՝ տրանսպորտ, հետո արձանագրության ծրարը, հետո աշխատանքի երկու տեսակներից մեկը։ Կարդացեք ծրարը, նախքան կարծիք կազմելը այն մասին, ինչ հաջորդում է։ Սխալ տեղից սկսող ապակոդավորիչը վստահ անհեթեթություն է արտադրում։
Հուսալիության շերտը պատկանում է արձանագրությանը
Կառավարման հաղորդագրությունները պահանջում են դասավորված, հաստատված առաքում, և արձանագրությունն ինքն է ապահովում դա հաստատումներով և կրկնակի ուղարկումներով։ Հաստատումը կարող է գալ որպես առանձին հաղորդագրություն կամ ճամփորդել մեկ այլ կառավարման հաղորդագրության հետ, ինչը հետքերը դարձնում է անկանոն նրանց համար, ովքեր սպասում են մեկ մաքուր փոխանակման։
Առավելությունն այն է, որ TLS-ի ձեռքսեղմումը ստանում է հուսալի կրիչ նույնիսկ այն դեպքում, երբ արտաքին տրանսպորտը UDP է։ Գինը այն է, որ մեկ դատագրամը կարող է պարունակել այդ զրույցի միայն մի մասը, ուստի այն որպես ինքնուրույն TLS գրառում դիտարկելը անհեթեթություն է առաջացնում։ Վերահավաքումը պետք է տեղի ունենա արձանագրության շերտում։ Դրա համար է, որ գրավված փաթեթը հազվադեպ է նմանվում ձեռքսեղմման ամբողջական քայլի։
Արտաքին տրանսպորտը TCP-ի անցնելը չի հեռացնում այս շերտը։ Հուսալի տրանսպորտը նշանակում է ավելի քիչ կրկնակի ուղարկումներ արձանագրության մակարդակում, ոչ թե այն, որ շրջանակավորումը անհետանում է կամ տրաֆիկը դառնում է HTTP։
Տվյալների փաթեթները օգտագործում են այլ ձևաչափ
Երբ սեսիան գոյություն ունի, օգտակար բեռը գալիս է որպես տվյալների հաղորդագրություններ, որոնք կրում են ներքին IP փաթեթներ կամ Ethernet շրջանակներ։ Դրանք պաշտպանված են իրենց սեփական բանալիներով և իրենց սեփական մշակմամբ, և դրանք TLS հավելվածի գրառումներ չեն այն իմաստով, որը TLS գրադարանը կընդուներ։
Այդ բաժանումը տեսանելի է կարգավորումներում՝ կառավարման ալիքը և տվյալների ալիքն ունեն առանձին գաղտնագրման կարգավորումներ, ուստի մեկը նշող մատյան տողը ոչինչ չի ասում մյուսի մասին։ Ուժեղ կառավարման գաղտնագրումը որպես ուժեղ տվյալների գաղտնագրման ապացույց կարդալը հաշվետվության սովորական սխալ է։
Պահեք նաև հարակից սխալ պատկերացումը բացատրությունից դուրս։ TLS-ը հանրային բանալու ալիք չէ, որը նստում է սիմետրիկ տվյալների ալիքի կողքին, որովհետև TLS-ն ինքն է սիմետրիկորեն պաշտպանում իր գրառումները, երբ բանալիները հաստատված են։ Իրական տարբերությունը դերն ու փաթեթի ձևաչափն է, ոչ թե այն, թե յուրաքանչյուր կողմ ինչ տեսակի գաղտնագրություն է օգտագործում։
Ինչու HTTPS պրոքսին չի կարող օգնել
TLS-ը վերջացնող պրոքսին սպասում է TLS գրառումների հոսքի և դրանից հետո հավելվածային արձանագրության դրա ներսում։ Այս արձանագրության կառավարման ալիքը տարվում է իր սեփական շրջանակավորման ներսում՝ շուրջը հուսալիության շերտով, ուստի վերջացնող պրոքսին այդ շրջանակավորումը կարդում է որպես ապականված մուտք։
Թափանցիկ փոխանցիչը, որը բայթեր կամ դատագրամներ է անցկացնում առանց դրանք մեկնաբանելու, կարող է աշխատել, պայմանով, որ չի վերագրում կամ վերահավաքում հոսքը։ Հարցը, որ պետք է տալ ցանկացած միջնորդի մասին, այն է՝ արդյոք նա փոխանցում է իրական տրանսպորտը և շրջանակավորումը, ոչ թե արդյոք նա ինչ-որ տեղ աջակցում է TLS-ին։ Հարցրեք դա նախքան պրոքսիի կանոնների վրա երեկո ծախսելը։ Այստեղ ձախողումների մեծ մասը ճարտարապետական է, ոչ թե բացակայող կարգավորում։
Հետքի ճիշտ ընթերցում
Սպասեք նախ կառավարման փոխանակման, ապա շատ ավելի մեծ թվով տվյալների հաղորդագրությունների, երկուսն էլ կիսում են մեկ տրանսպորտ։ Եթե կառավարման փուլը ավարտվում է, իսկ տվյալների փուլը կանգ է առնում, խնդիրը վերաբերում է բանալիներին, երթուղավորմանը կամ տվյալների ուղու զտմանը, ոչ թե ձեռքսեղմմանը։ Գրավեք մի քանի տվյալների հաղորդագրություն և ստուգեք՝ արդյոք դրանք ընդհանրապես լքում են հաճախորդը։ Այդ մեկ դիտարկումը կիսում է որոնումը։
Բանալու մեթոդների պատմական նկարագրությունները արձանագրության փաստաթղթերում չեն նշանակում, որ տվյալ թողարկումը դեռ աջակցում է բոլոր հին ձևաչափերին։ Ստուգեք ձեր գործարկած տարբերակը, նախքան ակնկալիք կառուցելը մի պարբերության վրա, որը նկարագրում է, թե ինչպես էին գործերը նախկինում աշխատում։