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 кључ не мења ништа важно, а погађање нове директиве на једном клијенту је начин на који радни тунел постаје покварен. Тестирајте промену на једном клијенту и једном серверу пре него што додирнете остатак флоте. Држите стари профил доступним за враћање док нова шифра не прође цео циклус везе.

Током промене задржите проверу сертификата и аутентификацију налога. Оне одговарају на различита питања: успешна пријава не може да прошири блок, а боља шифра података не оправдава поверење у погрешан сервер.

Затворите проверу поновним читањем договорене шифре на новој вези и затим потврдите да стара шифра више није прихваћена. Ако страна још нуди, миграција није завршена, шта год профил на другој страни говорио.

Повезани чланци