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

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

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

Поврзани статии