Неліктен ұзынырақ Blowfish кілті 64 биттік блокты түзетпейді
Blowfish кілттері 448 битке жетуі мүмкін, ал блок 64 бит болып қалады. Келісілген шифрды тексеріп, ұзынырақ кілттің орнына қолдау көрсетілетін ауыстыруды жоспарлаңыз.
VPN профилі 448 биттік кілті бар Blowfish ұсынады, біреу шифрды сақтап қалу үшін ең ұзын кілтті пайдалануды ұсынады. Кілт ұзындығы шынайы, бірақ бұл оңтайландыруға арналған дұрыс емес сан. 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 кілті маңызды ештеңені өзгертпейді, ал бір клиентте жаңа директиваны болжау жұмыс істеп тұрған туннельді бұзылған туннельге айналдырудың жолы. Өзгерісті флоттың қалған бөлігіне тимей тұрып бір клиентте және бір серверде сынап көріңіз. Жаңа шифр толық қосылыс циклінен өтпейінше ескі профильді кері қайтару үшін қолжетімді ұстаңыз.
Өзгеріс кезінде сертификатты тексеру мен тіркелгі аутентификациясын сақтаңыз. Олар әртүрлі сұрақтарға жауап береді: сәтті кіру блокты кеңейте алмайды, ал жақсырақ дерек шифры дұрыс емес серверге сенуге ақтау болмайды.
Тексеруді жаңа қосылыста келісілген шифрды қайта оқып, ескі шифрдың енді қабылданбайтынын растаумен аяқтаңыз. Егер тарап оны әлі ұсынса, көшіру аяқталмаған, екінші жақтағы профиль не десе де.