Profil VPN ponuja Blowfish s 448-bitnim ključem, in nekdo predlaga uporabo najdaljšega ključa, da bi šifro obdržali. Dolžina ključa je resnična, vendar je napačno število za optimizacijo. Blowfish pretvarja 64-bitne bloke ne glede na dolžino ključa, in širina bloka je tisto, kar omejuje, koliko prometa lahko en ključ varno zaščiti. Izvedite spodnje preglede po vrsti in ustavite se pri prvem, ki storitev oprosti, ker poznejši korak ne more popraviti prejšnjega.

Preverite, kaj se strani dejansko dogovorita

Preberite šifro podatkovnega kanala na obeh koncih, ne iz profila, ki ste ga nameravali uvesti. Konfiguracija odjemalca lahko navaja več šifer, izbrana pa je rezultat pogajanja med dvema izvedbama in njunimi različicami. Povečajte podrobnost dnevnika na preskusni povezavi in preberite vrstico podatkovnega kanala, ki navaja šifro in dejansko inicializirano velikost ključa.

Če je dogovorjena šifra AES-GCM ali ChaCha20-Poly1305, se ustavite tukaj. Ti konstrukciji uporabljata 128-bitni blok in overjata koristni tovor, zato se spodnji argument o 64-bitnih kolizijah ne nanaša nanju.

Ločite dolžino ključa od širine bloka

Blowfish sprejema ključe od 32 do 448 bitov, in dokumentacija avtorja algoritma navaja obe števili ločeno. Ključ je skrivnost; blok je enota pretvorbe. Daljša skrivnost oteži ugibanje in ne spremeni ničesar pri širini bloka, ki ga šifra obdeluje.

V načinu CBC se šifra uporabi na blokih fiksne širine, verižno s prejšnjim blokom šifriranega besedila in na koncu dopolnjenih. Za Blowfish je ta širina 64 bitov, torej osem bajtov. Razpored ključev je lahko poljubno velik; veriga se vseeno premakne za osem bajtov naenkrat.

Zato daljši ključ ni omilitev. Naslavlja grobo silo proti ključu, medtem ko je tveganje kolizije spodaj lastnost širine bloka in načina.

Uporabite rojstnodnevno aritmetiko na velikost bloka

64-bitni blok ima rojstnodnevno lestvico približno 2^32 blokov, šifriranih pod enim ključem, preden kolizije postanejo verjetne. Vsak blok nosi osem bajtov, zato je ista lestvica približno 2^35 bajtov, ali 32 GiB podatkov pod enim samim ključem.

Obravnavajte to kot lestvico, ne kot kvoto. Kolizije so verjetnostne, in ali katera kaj razkrije, je odvisno od načina, vzorca prometa in tega, ali napadalec lahko prepozna ali vpliva na okoliško odprto besedilo. Prvi bajt po 32 GiB ni dogodek dešifriranja, in prvih 32 GiB ni potrjenih kot varnih.

Raziskovalci Sweet32 so leta 2016 prikazali praktične napade na 64-bitne bločne šifre, vključno s scenarijem OpenVPN, v pogojih, ki so zahtevali opazovanje in ustvarjanje prometa. Njihove objavljene privzete vrednosti in različice programske opreme so zgodovinski kontekst, ne opis vaše uvedbe.

Odločite, ali je ponovna uporaba CBC tukaj pomembna

V CBC ponovljen blok šifriranega besedila pomeni, da se dva bloka odprtega besedila razlikujeta za znano razmerje, ker se verižni XOR izniči. Napadalec, ki lahko opazuje šifrirano besedilo in pozna ali lahko vpliva na eno od odprtih besedil, lahko pridobi informacije o drugem. Ključ Blowfish za to ni nikoli potreben.

Pomembna vprašanja so torej, kako dolgo ključ ostane v uporabi, koliko prometa gre pod njim in ali lahko kdo ta promet opazuje in usmerja. Obnavljanje ključev zmanjša število blokov na ključ, vendar časovni interval ni bajtna omejitev: zaseden tunel lahko v isti uri premakne veliko več podatkov kot nedejaven. Če obdržite starejšo šifro, omejitev izpeljite iz konstrukcije in dejanskega obsega, ne iz okroglega števila.

Če izmerjeni obseg na ključ ostane daleč pod rojstnodnevno lestvico, je izpostavljenost manjša. Še vedno ni nič in še vedno je razlog za načrtovanje migracije, namesto da bi se nehali bati.

Zamenjajte šifro, ne ključa

Prestavite storitev na podprto šifro AEAD in potrdite, da jo obe strani, njune različice in njihovi kriptografski zaledni sistemi lahko dogovorijo. Daljši ključ Blowfish ne spremeni ničesar pomembnega, in ugibanje nove direktive na enem odjemalcu je način, kako delujoč tunel postane pokvarjen. Preizkusite spremembo na enem odjemalcu in enem strežniku, preden se dotaknete preostale flote. Ohranite stari profil na voljo za vrnitev, dokler nova šifra ne prestane celotnega cikla povezave.

Med spremembo ohranite preverjanje potrdil in preverjanje pristnosti računov. Odgovarjata na različni vprašanji: uspešna prijava ne more razširiti bloka, in boljša podatkovna šifra ne opravičuje zaupanja napačnemu strežniku.

Pregled zaključite tako, da znova preberete dogovorjeno šifro na novi povezavi in nato potrdite, da stara šifra ni več sprejeta. Če jo stran še ponuja, migracija ni končana, kar koli pravi profil na drugi strani.

Sorodni članki