Ինչ է VPN-ի nonce-ը և ինչու վերօգտագործումը կոտրում է թունելը
nonce-ը յուրաքանչյուր հաղորդագրության արժեք է, որը երբեք չպետք է կրկնվի մեկ բանալու ներքո, և այն սովորաբար ճամփորդում է բաց։ Ձեռքով խմբագրելը այն սխալն է, որը պետք է խուսափել։
Մարդկանց մեծ մասը հանդիպում է nonce բառին VPN պրոֆիլում և ենթադրում, որ դա ևս մեկ համօգտագործվող գաղտնիք է, որը պետք է պատճենել հասակակիցների միջև։ Դա այդպես չէ։ nonce-ը արժեք է, որը երբեք չպետք է կրկնվի նույն բանալու ներքո, և nonce-ի վրա հիմնված գաղտնագրման մեծ մասում այն ճամփորդում է բաց։ Շփոթությունը անվնաս է մնում, մինչև ինչ-որ մեկը ձեռքով խմբագրի այն, և հենց այնտեղ է սկսվում իրական կոտրումը։
Թե ինչպես է nonce-ը իրականում առաջանում
Նույնականացված գաղտնագրումը յուրաքանչյուր բանալու ներքո գաղտնագրված հաղորդագրության համար տարբեր nonce է պահանջում։ Արձանագրությունները բավարարում են այդ պահանջը տարբեր ձևերով՝ միապաղաղ աճող հաշվիչ, փաթեթի նույնացուցիչի հետ միացված աղ, կամ բավական երկար պատահական արժեք։ IKEv2-ը nonce-ներ է փոխանակում սկզբնական փոխանակման ընթացքում, և դրանք բանալիի ածանցման հանրային մուտքեր են, ոչ թե գաղտնիքներ։
Եզակիությունը կարող է լինել կառուցվածքային կամ հավանական։ Հաշվիչը չի կարող կրկնվել, մինչև այն շրջվի, ինչի պատճառով արձանագրությունը բանալիի թարմացման կետ է սահմանում դրանից շատ առաջ։ Պատահական արժեքը հենվում է բավական բիթերի վրա, որպեսզի բախումը անհավանական լինի հաղորդագրությունների սահմանում, ինչը տարբեր փաստարկ է՝ տարբեր ձախողման եղանակով։ Արձանագրության փաստաթղթերը նշում են, թե որ մեթոդն է գործում, և երկուսն էլ ապահով են միայն այնքան ժամանակ, քանի դեռ պահպանվում է նշված սահմանը։
| Design | Where uniqueness comes from | Exhaustion is handled by |
|---|---|---|
| AES-GCM records | An IV, typically a counter | Rekey before the counter wraps |
| ChaCha20-Poly1305 | A 96-bit nonce from a counter or generator | A message limit per key |
| WireGuard | A per-key 64-bit counter | Rekey at a message cap |
| OpenVPN AEAD | Packet identifier plus implicit key material | Rekey on the packet-id limit |
| IKEv2 | Fresh nonces per exchange | A new security association |
Ինչ արժե իրականում վերօգտագործումը
Մեկ բանալու ներքո nonce-ի վերօգտագործումը արդյունավետության փոքր հարց չէ։ GCM-ի դեպքում մեկ IV կիսող երկու հաղորդագրություն թույլ են տալիս դիտորդին վերականգնել նույնականացման բանալին և հաշվարկել երկու բաց տեքստերի բացառող-կամը։ Հոսքային կառուցվածքները նույն կերպ վերօգտագործում են բանալու հոսքը, ինչը գաղտնագրված տեքստը գաղտնիքի փոխարեն վերածում է հանելուկի։
Ահա թե ինչու իրականացումները թարմացնում են բանալին մինչև հաշվիչի շրջվելը, և ահա թե ինչու նրանք կանգ են առնում, այլ ոչ թե շարունակում, երբ իրենց վիճակը անորոշ է։ Վերագործարկումը, որը զրոյացնում է հաշվիչը, մինչ գործընկերը դեռ պահում է հին բանալին, կամ վիրտուալ մեքենան, որը վերականգնվում է նստաշրջանի կեսին արված պատկերից, հենց այն իրավիճակն է, որի կանխարգելման համար գոյություն ունեն սահմանները։ Հարձակող պետք չէ. սովորական գործողությունները բավական են։
Ինչու ձեռքով խմբագրելը սխալ լուծում է
Հաշվիչները, աղերը և փաթեթի նույնացուցիչները երկու ծայրերի կողմից կիսվող վիճակի մեքենաներ են։ Մի կողմը փոխելը ապասինխրոնացնում է մյուսին, և թունելը ձախողվում է այնպես, որ նման է երթուղավորման խնդրի։ Աջակցվող լծակը թարմ բանալու փոխանակումն է, որը միաժամանակ վերականգնում է վիճակը երկու ծայրերում։
Գաղտնաբառերն ու nonce-ները նույնպես տարբեր դերեր ունեն։ Գաղտնաբառը բանալիի ածանցման գաղտնի մուտք է. nonce-ը յուրաքանչյուր հաղորդագրության հանրային մուտք է։ nonce պիտակով պրոֆիլի դաշտը, որը երկար գաղտնիք է պահանջում, սովորաբար ստատիկ բանալի է կամ նախապես համօգտագործված գաղտնիք այլ անվան տակ, ուստի կարդացեք այդ դաշտի փաստաթղթերը՝ ենթադրելու փոխարեն։
Երբ ծանուցումը վերաբերում է nonce-ի հետ վարվելուն, ուղղումը պահպանողի ուղղված տարբերակն է, ոչ թե այլ գաղտնագրում կամ ավելի կարճ բանալի։ Գաղտնագրումը փոխելը՝ nonce բառից խուսափելու համար, տեղափոխում է խնդիրը՝ այն լուծելու փոխարեն։
Զգուշացումը կարդալ առանց գուշակելու
Հաշվիչների կամ nonce-ների մասին մատյանի տողը սովորաբար նկարագրում է կորցրած վիճակ, ոչ թե հարձակում։ Ստուգեք՝ արդյոք գործընկերներից մեկը վերագործարկվել է, արդյոք կլոնավորված վիրտուալ մեքենան կրկին օգտագործել է նույն ինքնությունը, և արդյոք երկու ծայրերը համաձայն են բանալու թարմացման կարգավորումներին։ Այնուհետև ստեղծեք նոր նստաշրջան և հետևեք՝ արդյոք հաղորդագրությունը վերադառնում է։
Ախտորոշումը առանձին պահեք չկապված խափանումներից։ Չբեռնվող էջը կամ օղակվող հավատարմագրի հուշումը nonce-ի վերօգտագործման ապացույց չէ, և այն այդպես դիտարկելը ձեզ ուղարկում է գաղտնագրային շերտ, երբ խնդիրը դրա վերևում է։
Սովորական օգտագործման համար անվտանգ կանոնը կարճ է՝ թողեք, որ իրականացումը կառավարի nonce-ը, երկու ծայրերը պահեք աջակցվող տարբերակներում, և վիճակի ցանկացած զրոյացում համարեք բանալին թարմացնելու պատճառ, ոչ թե արժեք խմբագրելու։ Եթե պրոֆիլի դաշտը մատակարարի փաստաթղթերում չկա, մի հորինեք դրա համար արժեք։ Թունելը շտկելը սկսվում է նրանից, որ գիտեք՝ որ շերտին եք նայում։