Ինչու ավելի երկար Blowfish բանալին չի ուղղում 64-բիթանոց բլոկը
Blowfish բանալիները կարող են հասնել 448 բիթի, մինչդեռ բլոկը մնում է 64 բիթ։ Ստուգեք համաձայնեցված ծածկագիրը և պլանավորեք աջակցվող փոխարինում՝ ավելի երկար բանալու փոխարեն։
VPN պրոֆիլը առաջարկում է Blowfish 448-բիթանոց բանալիով, և ինչ-որ մեկը առաջարկում է օգտագործել ամենաերկար բանալին՝ ծածկագիրը պահելու համար։ Բանալու երկարությունը իրական է, բայց դա սխալ թիվ է օպտիմալացնելու համար։ Blowfish-ը փոխակերպում է 64-բիթանոց բլոկներ՝ անկախ բանալու երկարությունից, և հենց բլոկի լայնությունն է սահմանափակում, թե որքան երթևեկություն կարող է մեկ բանալին ապահով պաշտպանել։ Կատարեք ստորև նշված ստուգումները հերթականությամբ և կանգ առեք առաջինի վրա, որը մաքրում է ծառայությունը, որովհետև ավելի ուշ քայլը չի կարող ուղղել ավելի վաղը։
Ստուգեք, թե կողմերը ինչի շուրջ են իրականում պայմանավորվում
Կարդացեք տվյալների ալիքի ծածկագիրը երկու ծայրերից էլ, ոչ թե այն պրոֆիլից, որը մտադիր էիք տեղակայել։ Հաճախորդի կարգավորումը կարող է թվարկել մի քանի ծածկագիր, և ընտրվածը երկու իրականացումների ու դրանց տարբերակների միջև բանակցության արդյունքն է։ Բարձրացրեք մատյանի մանրամասնությունը փորձնական միացման վրա և կարդացեք տվյալների ալիքի տողը, որը նշում է փաստացի սկզբնավորված ծածկագիրն ու բանալու չափը։
Եթե համաձայնեցված ծածկագիրը AES-GCM-ն է կամ ChaCha20-Poly1305-ը, կանգ առեք այստեղ։ Այդ կառուցվածքները օգտագործում են 128-բիթանոց բլոկ և նույնականացնում են բեռը, ուստի ստորև բերված 64-բիթանոց բախումների փաստարկը նրանց չի վերաբերում։
Առանձնացրեք բանալու երկարությունը բլոկի լայնությունից
Blowfish-ը ընդունում է 32-ից 448 բիթանոց բանալիներ, և ալգորիթմի հեղինակի փաստաթղթերը նշում են երկու թվերն առանձին։ Բանալին գաղտնիքն է, բլոկը՝ փոխակերպման միավորը։ Ավելի երկար գաղտնիքը դժվարացնում է գուշակելը և ոչինչ չի անում ծածկագրի մշակած բլոկի լայնության հետ։
CBC ռեժիմում ծածկագիրը կիրառվում է հաստատուն լայնության բլոկների վրա՝ շղթայակցված նախորդ գաղտնագրված տեքստի բլոկի հետ և լրացված վերջում։ Blowfish-ի համար այդ լայնությունը 64 բիթ է, այսինքն՝ ութ բայթ։ Բանալիների գրաֆիկը կարող է լինել ինչքան ուզեք մեծ, շղթան միևնույն է առաջ է շարժվում ութ բայթով։
Այդ պատճառով ավելի երկար բանալին մեղմացում չէ։ Այն անդրադառնում է բանալու դեմ կոպիտ ուժին, մինչդեռ ստորև բերված բախումների ռիսկը բլոկի լայնության և ռեժիմի հատկություն է։
Կիրառեք ծննդյան օրվա թվաբանությունը բլոկի չափի վրա
64-բիթանոց բլոկն ունի ծննդյան օրվա սանդղակ՝ մոտավորապես 2^32 բլոկ, որոնք գաղտնագրվում են մեկ բանալիով, նախքան բախումները հավանական կդառնան։ Յուրաքանչյուր բլոկ կրում է ութ բայթ, ուստի նույն սանդղակը մոտ 2^35 բայթ է, կամ 32 GiB տվյալ մեկ բանալու ներքո։
Դիտարկեք դա որպես սանդղակ, ոչ որպես քվոտա։ Բախումները հավանականային են, և թե արդյոք մեկը ինչ-որ բան կբացահայտի, կախված է ռեժիմից, երթևեկության օրինաչափությունից և նրանից, թե հարձակվողը կարո՞ղ է ճանաչել կամ ազդել շրջակա բաց տեքստի վրա։ 32 GiB-ից հետո առաջին բայթը վերծանման իրադարձություն չէ, և առաջին 32 GiB-ը հավաստագրված չեն որպես անվտանգ։
Sweet32-ի հետազոտողները 2016 թվականին ցուցադրեցին գործնական հարձակումներ 64-բիթանոց բլոկային ծածկագրերի վրա, ներառյալ OpenVPN սցենարը, այնպիսի պայմաններում, որոնք պահանջում էին դիտարկում և երթևեկության գեներացում։ Նրանց հրապարակած կանխադրվածներն ու ծրագրային տարբերակները պատմական համատեքստ են, ոչ թե ձեր տեղակայման նկարագրությունը։
Որոշեք՝ արդյոք CBC-ի կրկնակի օգտագործումը այստեղ կարևոր է
CBC-ում կրկնվող գաղտնագրված տեքստի բլոկը նշանակում է, որ երկու բաց տեքստի բլոկները տարբերվում են հայտնի հարաբերությամբ, որովհետև շղթայի XOR-ը ջնջում է իրեն։ Հարձակվողը, որը կարող է դիտարկել գաղտնագրված տեքստը և գիտի կամ կարող է ազդել բաց տեքստերից մեկի վրա, կարող է տեղեկություն ստանալ մյուսի մասին։ Blowfish բանալին դրա համար երբեք պետք չէ։
Այսպիսով, համապատասխան հարցերն են՝ որքան ժամանակ է բանալին մնում ծառայության մեջ, որքան երթևեկություն է անցնում նրա ներքո և արդյոք ինչ-որ մեկը կարող է դիտարկել ու ուղղորդել այդ երթևեկությունը։ Բանալիների նորացումը նվազեցնում է բլոկների քանակը մեկ բանալու հաշվով, բայց ժամանակային միջակայքը բայթային սահման չէ. ծանրաբեռնված թունելը նույն ժամին կարող է տեղափոխել շատ ավելի տվյալ, քան պարապը։ Եթե պահում եք հին ծածկագիր, սահմանը բխեցրեք կառուցվածքից և փաստացի ծավալից, ոչ թե կլոր թվից։
Եթե մեկ բանալու հաշվով չափված ծավալը մնում է ծննդյան օրվա սանդղակից շատ ցածր, ազդեցությունը փոքր է։ Այն այնուամենայնիվ զրո չէ և դեռ պատճառ է պլանավորելու միգրացիա՝ անհանգստանալը դադարեցնելու փոխարեն։
Փոխարինեք ծածկագիրը, ոչ թե բանալին
Տեղափոխեք ծառայությունը աջակցվող AEAD ծածկագրի և հաստատեք, որ երկու կողմերը, նրանց տարբերակները և նրանց գաղտնագրային հետնաշերտերը կարող են պայմանավորվել դրա շուրջ։ Ավելի երկար Blowfish բանալին ոչինչ չի փոխում կարևորը, և մեկ հաճախորդի վրա նոր հրահանգ գուշակելը այն ձևն է, որով աշխատող թունելը դառնում է կոտրված։ Փորձարկեք փոփոխությունը մեկ հաճախորդի և մեկ սերվերի վրա՝ նախքան նավատորմի մնացած մասին դիպչելը։ Պահեք հին պրոֆիլը հասանելի հետ շրջելու համար, մինչև նոր ծածկագիրը անցնի միացման ամբողջական ցիկլ։
Փոփոխության ընթացքում պահպանեք վկայագրերի ստուգումը և հաշիվների նույնականացումը։ Նրանք պատասխանում են տարբեր հարցերի. հաջող մուտքը չի կարող լայնացնել բլոկը, և տվյալների ավելի լավ ծածկագիրը չի արդարացնում սխալ սերվերին վստահելը։
Ավարտեք ստուգումը՝ նոր միացման վրա կրկին կարդալով համաձայնեցված ծածկագիրը, ապա հաստատեք, որ հին ծածկագիրն այլևս չի ընդունվում։ Եթե կողմը դեռ առաջարկում է այն, միգրացիան ավարտված չէ, ինչ էլ ասի մյուս կողմի պրոֆիլը։