Արդյո՞ք ձախողված VPN բարևն իսկապես իջեցման հարձակում է:
Իջեցման հարձակումները գոյություն ունեն, բայց ձախողված բարևների մեծ մասը առաջարկի անհամապատասխանություն է, վատ երթուղի կամ ժամկետանց պրոֆիլ։ Նախ ստուգեք՝ ինչ է բանակցվել։
Սխալով ավարտվող բարևը հարձակում է թվում, քանի դեռ չեք նայել հաղորդագրությանը, և ամենից հաճախ դա թվաբանություն է՝ ընդհանուր առաջարկ չկա, վկայականը ժամկետանց է, կամ փաթեթը երբեք չի հասել։ Իջեցման հարձակումը կոնկրետ բան է՝ հակառակորդը երկու կողմերին մղում է ավելի թույլ վարքագծի, քան նրանք կընտրեին, և դա թողնում է այլ ապացույցներ։ Ամեն ձախողում չարություն համարելը ձեզ ուղարկում է փնտրելու զոհ, որը գուցե չկա, մինչդեռ իրական իջեցումը կոնֆիգուրացիայի սխալ համարելը թողնում է ավելի թույլ արդյունքը տեղում։ Այս երկու սխալները տարբեր գին ունեն, և միայն մեկն է էժան ուղղել։
Ինչ է իրականում փոխում իջեցման հարձակումը
Նպատակը ծածկագիրը կոտրելը չէ և բանալին գուշակելը չէ։ Նպատակը բանակցության վրա ազդելն է, որպեսզի երկու կողմերը կանգնեն ավելի հին տարբերակի կամ ավելի թույլ ալգորիթմի վրա, որը հարձակվողը կարող է կառավարել, կամ որպեսզի մի կողմը հավատա, որ մյուսը միայն դա է աջակցում։
Փոխվում է համաձայնությունը, ոչ թե նույնականացումը։ Եթե հարձակվողը կարող է փոխել առաջարկը առանց հայտնաբերվելու, կողմերը դեռ կարող են ավարտել բարևը և դեռ նույնականացնել միմյանց, բայց հարձակվողի նախընտրած պարամետրերով։ Այդ պատճառով հետաքրքիր հարցն այն է՝ արդյոք բանակցությունն ինքն է ծածկված ամբողջականության պաշտպանությամբ։
Ինչու բանակցությունն ինքը պետք է նույնականացվի
TLS 1.3-ը այդ պաշտպանությունը դարձնում է բացահայտ։ Ավելի նոր տարբերակ առաջարկած հաճախորդը կարող է հայտնաբերել լուռ հետ քաշված սերվեր, քանի որ սերվերի պատահական արժեքը կրում է ֆիքսված օրինաչափություն, երբ բանակցում է 1.2 կամ ավելի ցածր, և հաճախորդը պարտավոր է դադարեցնել՝ տեսնելով այն։ Ամբողջ տրանսկրիպտը նույնպես ծածկված է ավարտական հաղորդագրություններով, ուստի բանակցության ցանկացած տեղում փոփոխությունը ձախողվում է ավելի ուշ, ոչ թե լուռ անցնում։
Ավելի հին արձանագրությունների տարբերակներն ավելի թույլ պատմություններ ունեին, և հենց դրա համար են կարևոր հետընթացի կանոնները։ Նույն կոնֆիգուրացիայի TLS 1.0 վերջնակետը իջեցման հարձակում չէ. դա թույլատրված արդյունք է, որը դուք ինքներդ ընտրեցիք թույլատրել։ Տարբերությունն այն է՝ ավելի թույլ արդյունքը եկել է պաշտպանված որոշումից, թե չպաշտպանված ուղուց, որի վրա միջնորդը կարող էր ազդել։ Երբ այդպես ձևակերպեք, դեպքերի մեծ մասը հանգում է կոնֆիգուրացիայի հարցի։
IKEv2-ը այլ կերպ է վարվում, բայց հենվում է նույն գաղափարի վրա։ Առաջարկը տարվում է փոխանակությամբ, որը հետո նույնականացնում է երկու կողմերին, ուստի ալգորիթմները վերաշարադրող միջանկյալ սարքը կոտրում է նույնականացումը, ոչ թե ուղղորդում այն։ OpenVPN-ի կառավարման ալիքը պաշտպանում է իր բանակցությունը TLS-ով, ապա օգտագործում այդ ալիքը տվյալների ալիքի ծածկագրերը համաձայնեցնելու համար, և դրա համար է հետաքրքիր կառավարման ալիքի մատյանային տողը։
Կազմաձևված համատեղելիությունը հարձակում չէ
Ադմինիստրատորը կարող է միտումնավոր թույլատրել ավելի հին ընտրանքներ՝ փաստաթղթավորված հաճախորդին աջակցելու համար, և այդ որոշումը տեսանելի է կոնֆիգուրացիայում։ Հարձակվողը չի կարող ստեղծել այդ կոնֆիգուրացիան. նա կարող է միայն օգտագործել ուղի, որը թույլ է տալիս ազդել առաջարկի վրա։
Վտանգավոր վերանորոգումը այն է, որը հեռացնում է տարբերության ապացույցը։ Բոլոր հին ընտրանքների միացումը, վկայականի ստուգման անջատումը կամ ցանկացած ծածկագրի ընդունումը՝ սխալը վերացնելու համար, ընդլայնում է այն, ինչին վերջնակետը կհամաձայնի, և հեռացնում է այն ստուգումները, որոնք կհաղորդեին ավելի թույլ արդյունքի մասին։
Եթե պետք է պահել մեկ հին ընտրանք, նշեք պատճառը և հաճախորդը կոնֆիգուրացիայի մեկնաբանության մեջ, ապա սահմանափակեք ընտրանքը այն պրոֆիլով, որին այն պետք է։ Մեկ լսողի սահմանափակված համատեղելիության բացառությունը ստուգելի է. գլոբալ կիրառվածը պարզապես ավելի թույլ լռելյայն է, որը ոչ ոք չի հիշում, թե ընտրել է։
Կարդացեք ձախողումը նախքան պատճառ անվանելը
Պահպանեք սխալի ճշգրիտ տողը, հաճախորդի և սերվերի տարբերակները և ժամանակը մինչև ցանկացած փոփոխություն։ Հետո դասակարգեք՝ կողմերը չհամաձայնեցի՞ն առաջարկի շուրջ, փաթեթի ուղին ձախողվե՞ց, թե՞ մի կողմը մերժեց պարամետր, որը ժամանակին ընդունում էր։
Առաջարկի անհամապատասխանությունը սովորաբար անվանում է մեղավոր տարբերակները կամ ալգորիթմները և ձախողվում է նույն կետում ամեն անգամ։ Երթուղավորման կամ MTU-ի խնդիրը կանգ է առնում կամ սպառվում է ժամանակով, և հաճախ տարբերվում է ըստ ցանցի։ Ժամկետանց վկայականը տալիս է ստուգման սխալ, ոչ բանակցության սխալ։
Դրանցից ոչ մեկը հարձակվողի ապացույց չէ։ Առաջին ձախողմանը չարամիտ պատճառ վերագրելը սխալն է, քանի որ այն թաքցնում է դետերմինիստական սխալը, որը վաղը նորից կձախողվի։
Հաստատեք, թե ինչ է իրականում ընտրվել
Ցանկացած ուղղումից հետո կարդացեք բանակցված արդյունքը՝ փոխարենը վստահելու, որ կապը բարձրացել է։ Կապը, որը հաջողվում է ստուգման հեռացման պատճառով, հենց այն արդյունքն է, որից խուսափել էիք։ Հետևյալ երկու հրամանները ցույց են տալիս TLS-ով առջևի վերջնակետի ընտրված տարբերակը և ծածկագիրը, ինչպես նաև OpenVPN սերվերի մատյանի կառավարման ալիքի տողը։
openssl s_client -connect 198.51.100.30:443 -servername vpn.example.net -brief </dev/null
grep -iE 'Control Channel|Data Channel' /var/log/openvpn.log | tail -5Համեմատեք արդյունքը ձեր նախատեսած կոնֆիգուրացիայի հետ, ոչ թե նրա, ինչ հիմա է միանում։ Եթե ընտրված տարբերակը ավելի հին է թույլատրելի նվազագույնից, պրոֆիլը կամ հետընթացի ցանկը այն տեղն է, որտեղ պետք է նայել, և պատասխանը այդ ցանկը ուղղելն է, ոչ թե հարձակում հայտարարել և ամեն ինչ նորից կառուցել դրա շուրջ։