Profil VPN ponúka Blowfish s 448-bitovým kľúčom a niekto navrhuje použiť najdlhší kľúč, aby sa šifra zachovala. Dĺžka kľúča je skutočná, ale je to nesprávne číslo na optimalizáciu. Blowfish spracúva 64-bitové bloky bez ohľadu na dĺžku kľúča a šírka bloku je to, čo obmedzuje, koľko prevádzky môže jeden kľúč bezpečne chrániť. Vykonajte nižšie uvedené kontroly v poradí a zastavte sa pri prvej, ktorá službu oslobodí, pretože neskorší krok nemôže opraviť skorší.

Skontrolujte, čo si strany skutočne vyjednajú

Prečítajte šifru dátového kanála na oboch koncoch, nie z profilu, ktorý ste chceli nasadiť. Konfigurácia klienta môže uvádzať viacero šifier a vybraná je výsledkom vyjednávania medzi dvoma implementáciami a ich verziami. Zvýšte podrobnosť záznamu na testovacom pripojení a prečítajte riadok dátového kanála, ktorý uvádza šifru a skutočne inicializovanú veľkosť kľúča.

Ak je vyjednanou šifrou AES-GCM alebo ChaCha20-Poly1305, zastavte sa tu. Tieto konštrukcie používajú 128-bitový blok a overujú užitočné zaťaženie, takže sa na ne nižšie uvedený argument o 64-bitových kolíziách nevzťahuje.

Oddeľte dĺžku kľúča od šírky bloku

Blowfish prijíma kľúče od 32 do 448 bitov a dokumentácia autora algoritmu uvádza obe čísla oddelene. Kľúč je tajomstvo; blok je jednotka transformácie. Dlhšie tajomstvo sťažuje hádanie a nič nemení na šírke bloku, ktorý šifra spracúva.

V režime CBC sa šifra aplikuje na bloky pevnej šírky, zreťazené s predchádzajúcim blokom šifrovaného textu a na konci doplnené. Pre Blowfish je táto šírka 64 bitov, teda osem bajtov. Rozvrh kľúčov môže byť ľubovoľne veľký; reťaz sa napriek tomu posúva o osem bajtov naraz.

Preto dlhší kľúč nie je zmiernením. Rieši hrubú silu proti kľúču, zatiaľ čo riziko kolízie nižšie je vlastnosťou šírky bloku a režimu.

Aplikujte narodeninovú aritmetiku na veľkosť bloku

64-bitový blok má narodeninovú mierku približne 2^32 blokov zašifrovaných jedným kľúčom, kým sa kolízie stanú pravdepodobnými. Každý blok nesie osem bajtov, takže tá istá mierka je asi 2^35 bajtov, teda 32 GiB dát pod jedným kľúčom.

Berte to ako mierku, nie ako kvótu. Kolízie sú pravdepodobnostné a to, či niektorá niečo prezradí, závisí od režimu, vzoru prevádzky a od toho, či útočník dokáže rozpoznať alebo ovplyvniť okolitý otvorený text. Prvý bajt za 32 GiB nie je udalosťou dešifrovania a prvých 32 GiB nie je certifikovaných ako bezpečné.

Výskumníci Sweet32 v roku 2016 predviedli praktické útoky na 64-bitové blokové šifry, vrátane scenára OpenVPN, za podmienok vyžadujúcich pozorovanie a generovanie prevádzky. Ich zverejnené predvolené hodnoty a verzie softvéru sú historickým kontextom, nie opisom vášho nasadenia.

Rozhodnite, či tu záleží na opätovnom použití CBC

V CBC opakovaný blok šifrovaného textu znamená, že sa dva bloky otvoreného textu líšia známym vzťahom, pretože sa reťazový XOR vyruší. Útočník, ktorý môže pozorovať šifrovaný text a pozná alebo môže ovplyvniť jeden z otvorených textov, môže získať informácie o druhom. Kľúč Blowfish na to nikdy nie je potrebný.

Relevantné otázky teda sú, ako dlho kľúč zostáva v prevádzke, koľko prevádzky pod ním prejde a či niekto môže túto prevádzku sledovať a riadiť. Obnova kľúčov znižuje počet blokov na kľúč, ale časový interval nie je bajtovým limitom: vyťažený tunel môže za rovnakú hodinu preniesť oveľa viac dát ako nečinný. Ak si ponecháte staršiu šifru, odvoďte limit z konštrukcie a skutočného objemu, nie z okrúhleho čísla.

Ak nameraný objem na kľúč zostáva hlboko pod narodeninovou mierkou, expozícia je menšia. Stále však nie je nulová a stále je dôvodom plánovať migráciu, namiesto toho aby ste sa prestali obávať.

Nahraďte šifru, nie kľúč

Presuňte službu na podporovanú šifru AEAD a potvrďte, že ju obe strany, ich verzie a ich kryptografické backendy dokážu vyjednať. Dlhší kľúč Blowfish nemení nič podstatné a hádanie novej direktívy na jednom klientovi je spôsob, akým sa fungujúci tunel stane nefunkčným. Otestujte zmenu na jednom klientovi a jednom serveri, skôr než sa dotknete zvyšku flotily. Ponechajte starý profil dostupný na vrátenie, kým nová šifra neprejde celým cyklom pripojenia.

Počas zmeny zachovajte overovanie certifikátov a autentizáciu účtov. Odpovedajú na rôzne otázky: úspešné prihlásenie nemôže rozšíriť blok a lepšia dátová šifra neospravedlňuje dôveru nesprávnemu serveru.

Kontrolu uzavrite opätovným prečítaním vyjednanej šifry na novom pripojení a potvrdením, že stará šifra už nie je prijímaná. Ak ju strana stále ponúka, migrácia nie je dokončená, nech profil na druhej strane hovorí čokoľvek.

Súvisiace články