Профил за 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 не променя нищо важно и отгатването на нова директива на един клиент е начинът работещ тунел да стане счупен. Тествайте промяната на един клиент и един сървър, преди да докоснете останалата част от парка. Дръжте стария профил достъпен за връщане назад, докато новият шифър не премине пълен цикъл на свързване.

Запазете проверката на сертификати и удостоверяването на акаунти по време на промяната. Те отговарят на различни въпроси: успешно влизане не може да разшири блок и по-добър шифър на данни не оправдава доверие на грешния сървър.

Завършете проверката, като прочетете отново договорения шифър при нова връзка и след това потвърдите, че старият шифър вече не се приема. Ако страна все още го предлага, миграцията не е завършена, каквото и да казва профилът от другата страна.

Подобни статии