Ինչ է իրականում ասում WireGuard-ի ձեռքսեղմման ժամանակադրոշմը
Ձեռքսեղմման ժամանակը զննարկման պատմություն չէ, բայց այն կապում է հաշիվը իրադարձության հետ։ Համեմատեք, թե ինչ են գրանցում WireGuard-ը և OpenVPN-ը, և ինչ է թաքցնում ճշգրտությունը։
«Վերջին ձեռքսեղմումը՝ երկու րոպե առաջ» ասող մեկ տողը նման է շարունակական ակտիվության ապացույցի և ավելի թույլ է դրանից։ Այն նշում է մեկ զուգընկերի վերջին ավարտված բանալիների փոխանակումը, որը տեղի է ունենում բանալիների ֆիքսված նորացման ժմչփով, քանի դեռ տրաֆիկը հոսում է, և դադարում է, երբ զուգընկերը լռում է։ Թե այդ ժամանակը մարդուն ինչ-որ բանի է կապում, կախված է կողքին պահված նույնացուցիչներից և երկու համակարգերի ժամացույցներից։ Ահա թե ինչպես է գրառումն իրեն պահում երկու ամենատարածված կույտերում և որտեղ է դրա ընթերցումը սխալվում։
Երկու գրառում, երկու տարբեր իմաստ
WireGuard-ը յուրաքանչյուր զուգընկերի համար պահում է մեկ ձեռքսեղմման ժամանակադրոշմ, որը փոխարինվում է ամեն բանալիների նորացման ժամանակ, գումարած բայթերի հաշվիչներ յուրաքանչյուր ուղղությամբ։ OpenVPN-ը սովորաբար գրանցում է նստաշրջանի սկիզբ, կապի ընդհատում և այն ամենը, ինչ ավելացնում է կարգավորված մանրամասնությունը, ինչը գրառման միավորը դարձնում է նստաշրջան, այլ ոչ բանալիների փոխանակում։
Այդ տարբերությունը որոշում է, թե ինչ է նշանակում բացակայությունը՝
| Question | WireGuard handshake | OpenVPN session log |
|---|---|---|
| Did the peer send recently? | Strong hint within the rekey window | Not answered by start time alone |
| Did the peer stop? | Weak, because idle peers also stop rekeying | Only if a disconnect was written |
| What was visited? | Nothing | Nothing |
Ինչու ձեռքսեղմումը շարունակական օգտագործում չէ
WireGuard-ը նորացնում է բանալիները մոտավորապես ամեն երկու րոպեն մեկ, քանի դեռ պաշտպանելու տվյալներ կան, և պարապ մնացած զուգընկերը պարզապես դադարում է։ Այսպիսով՝ հնացած ձեռքսեղմումը կարող է նշանակել, որ նոթբուքը քնած է, օգտվողը դադարել է աշխատել, կամ ցանցը գցել է այն փաթեթները, որոնք կսկսեին հաջորդ փոխանակումը։ Ժամանակադրոշմը ակտիվության ստորին սահմանն է, ոչ թե ուշադրության հետևիչ։
Հակառակ սխալը նույնքան հեշտ է։ Մշտական keepalive տրաֆիկը տաք է պահում թունելը պարապ սարքում, ուստի թարմ ձեռքսեղմում կարող է երևալ մի մեքենայի վրա, որին մեկ ժամ ոչ ոք չի դիպչել։ Բայթերի հաշվիչներն այստեղ օգնում են, որովհետև դրանք տարբերում են իրական տվյալ ուղարկող զուգընկերոջը միայն keepalive փոխանակողից, և նաև ասում են, թե որ ուղղությունն է կրել ծավալը։ Այս ամենից ոչինչ չի բացահայտում նպատակակետ, էջ կամ հարցում։
Նույնացուցիչները ճամփորդում են ժամանակադրոշմի հետ
Հաշվի, հանրային բանալու կամ աղբյուրի հասցեի բացակայությամբ ժամանակը որբ է։ Զուգակցեք ժամանակադրոշմը զուգընկերոջ ինքնության հետ, և դիտարկումը դառնում է կապելի. հանրային բանալին պահպանվում է հասցեների փոփոխությունների ընթացքում, մինչդեռ աղբյուրի հասցեն կարող է կիսվել բազմաթիվ բաժանորդների կողմից օպերատորի հասցեների թարգմանության հետևում։
Այդ ասիմետրիան է, ինչը բաց է թողնում գաղտնիության քննարկումների մեծ մասը։ Հասցեն անանուն է թվում, որովհետև կիսվում է, և բանալին տեխնիկական է թվում, որովհետև երկար է, բայց կայուն նույնացուցիչը հենց բանալին է։ Մեկ դաշտ պահելը և մյուսը դեն նետելը փոխում է հարաբերակցության ռիսկը՝ չփոխելով ակնհայտ ճշգրտությունը։
Հարաբերակցությունն ինքնին փաստագրված մտահոգությունն է։ Կապի ժամանակը մատակարարի մուտքի իրադարձության, աջակցության տոմսի կամ վճարման գրառման հետ միացնելը կարող է ինքնությունը կապել ակտիվության հետ, նույնիսկ երբ ոչ մի նպատակակետ երբևէ չի գրվել, և դրա համար է, որ զուգակցումն ավելի կարևոր է, քան ձևաչափումը։
Համակարգերի միջև հարաբերակցությունը ժամացույցների խնամք է պահանջում
Նույն պահը հաղորդող երկու համակարգեր հազվադեպ են վայրկյան ճշտությամբ համաձայնում։ Մեկը կարող է իր ելքի մեջ կիրառել ժամային գոտու շեղում, մյուսը կարող է աշխատել մի քանի վայրկյան սխալ ժամացույցով, և վիրտուալ մեքենան կարող է շեղվել կասեցումից հետո։
Նախքան եզրակացնելը, որ երկու իրադարձություն տեղի են ունեցել միասին, երկուսն էլ փոխարկեք նույն գոտու և ստուգեք շեղումը հում գրառման մեջ, այլ ոչ ցուցադրության։ Եթե չափվող բացը փոքր է հավանական շեղումից, դուք ընդհանրապես կարգ չունեք։
Գործնական կանոնն է պահպանել այն ճշգրտությունը, որն անհրաժեշտ է անսարքությունների վերացման խնդրին, և ոչ ավելին։ Ժամում նստաշրջանների քանակը պատասխանում է հասանելիության հարցին՝ առանց յուրաքանչյուր հաշվի պատմություն պահելու, և ագրեգատը կարելի է պահել շատ ավելի երկար, քան այն հում տողերը, որոնցից այն առաջացել է։
Կարդացեք գրառումը հրամաններով, ոչ երևակայությամբ
Տպեք այն դաշտերը, որոնց մասին պատրաստվում եք դատել, այն միավորներով, որոնք գործիքը պահում է, և ոչ նրանցով, որոնք ցուցադրում է վահանակը։
Այս երկու տողերը ցույց են տալիս ձեռքսեղմման տարիքը և բայթերի հաշվիչները յուրաքանչյուր WireGuard զուգընկերոջ համար, ապա նույնպիսի նյութ OpenVPN-ի կարգավիճակի ֆայլից՝
wg show all latest-handshakes
wg show wg0 transfer
cat /run/openvpn/server.statusՀամեմատեք տարիքը բանալիների նորացման միջակայքի հետ նախքան եզրակացություն անելը, և հաշվիչները կարդացեք դրա հետ միասին։ Թարմ ձեռքսեղմում և գրեթե զրո փոխանցում ունեցող զուգընկերը փոխանակում է keepalive, մինչդեռ հնացած ձեռքսեղմում և մեծ հաշվիչներ ունեցող զուգընկերը զբաղված էր, մինչև դադարեց։ Տողերից ոչ մեկը չի ասում, թե ինչ է արվել, և դա ուղղակիորեն ասելն ավելի ճշգրիտ է, քան ակնարկելը, թե ժամանակադրոշմն ապացուցում է այցը։