Zergatik Blowfish gako luzeago batek ez duen 64 biteko blokea konpontzen
Blowfish gakoek 448 bit lor ditzakete blokea 64 bitetan geratzen den bitartean. Egiaztatu negoziatutako zifratzea eta planifikatu onartutako ordezkapen bat gako luzeagoaren ordez.
VPN profil batek 448 biteko gakoa duen Blowfish eskaintzen du, eta norbaitek gako luzeena erabiltzea proposatzen du zifratzea mantentzeko. Gakoaren luzera erreala da, baina optimizatzeko zenbaki okerra da. Blowfish-ek 64 biteko blokeak eraldatzen ditu gakoa zein luze den kontuan hartu gabe, eta blokearen zabalera da gako batek zenbat trafiko modu seguruan babes dezakeen mugatzen duena. Exekutatu beheko egiaztapenak ordenan eta gelditu zerbitzua garbitzen duen lehenengoan, geroagoko urrats batek ezin baitu aurreko bat konpondu.
Egiaztatu parekideek benetan zer negoziatzen duten
Irakurri datu-kanalaren zifratzea bi muturretatik, inplementatu nahi zenuen profiletik eta ez. Bezeroaren konfigurazioak zifratze batzuk zerrenda ditzake, eta hautatutakoa bi inplementazioren eta haien bertsioen arteko negoziazioaren emaitza da. Handitu logaren xehetasuna probako konexio batean eta irakurri datu-kanalaren lerroa, benetan hasitako zifratzearen eta gakoaren tamainaren berri ematen duena.
Negoziatutako zifratzea AES-GCM edo ChaCha20-Poly1305 bada, gelditu hemen. Konstrukzio horiek 128 biteko blokea erabiltzen dute eta karga autentifikatzen dute, beraz beheko 64 biteko talka-argudioa ez zaie aplikatzen.
Bereizi gakoaren luzera blokearen zabaleratik
Blowfish-ek 32 eta 448 bit arteko gakoak onartzen ditu, eta algoritmoaren egilearen dokumentazioak bi zenbakiak bereizita zerrendatzen ditu. Gakoa sekretua da; blokea eraldaketaren unitatea da. Sekretu luzeago batek asmatzea zailtzen du eta zifratzeak prozesatzen duen blokearen zabalerari ezer ez dio egiten.
CBC moduan, zifratzea zabalera finkoko blokeei aplikatzen zaie, aurreko testu zifratuko blokearekin kateatuta eta amaieran beteta. Blowfish-en kasuan zabalera hori 64 bit da, hau da, zortzi byte. Gakoen ordutegia nahi duzun bezain handia izan daiteke; kateak zortzi byte aurreratzen jarraitzen du aldi bakoitzean.
Horregatik gako luzeagoa ez da arintze-neurria. Gakoaren aurkako indar gordina heltzen du, eta beheko talka-arriskua blokearen zabaleraren eta moduaren propietatea da.
Aplikatu urtebetetze-aritmetika blokearen tamainari
64 biteko bloke batek gutxi gorabehera 2^32 blokeko urtebetetze-eskala du gako bakar baten pean zifratuta, talkak probableak bihurtu aurretik. Bloke bakoitzak zortzi byte daramatza, beraz eskala bera gutxi gorabehera 2^35 byte da, edo 32 GiB datu gako bakar baten pean.
Hartu eskala gisa, ez kuota gisa. Talkak probabilistikoak dira, eta batek zerbait filtratzen duen ala ez moduaren, trafiko-ereduaren eta erasotzaileak inguruko testu argia ezagutu edo eragin dezakeen ala ez araberakoa da. 32 GiB-tik haraindiko lehen bytea ez da deszifratze-gertaera bat, eta lehen 32 GiB ez daude seguru gisa ziurtatuta.
Sweet32 ikertzaileek 2016an 64 biteko bloke-zifratzeen aurkako eraso praktikoak erakutsi zituzten, OpenVPN eszenarioa barne, behaketa eta trafiko-sorkuntza eskatzen zituzten baldintzetan. Haien argitaratutako balio lehenetsiak eta software-bertsioak testuinguru historikoa dira, ez zure ezarpenaren deskribapena.
Erabaki CBC berrerabiltzeak hemen garrantzirik duen
CBCn, errepikatutako testu zifratuko bloke batek esan nahi du bi testu argiko blokeek erlazio ezagun batean desberdintzen direla, katearen XORa deuseztatzen delako. Testu zifratua behatu eta testu argietako bat ezagutzen edo eragin dezakeen erasotzaile batek besteari buruzko informazioa berreskuratu dezake. Blowfish gakoa ez da inoiz beharrezkoa horretarako.
Beraz, galdera garrantzitsuak hauek dira: gako bat zenbat denbora egoten da zerbitzuan, zenbat trafiko pasatzen da haren pean eta norbaitek trafiko hori behatu eta zuzendu dezakeen. Gakoen berritzeak gako bakoitzeko bloke-kopurua murrizten du, baina denbora-tartea ez da byte-muga: tunel lanpetu batek ordu berean tunel geldi batek baino askoz datu gehiago mugi ditzake. Zifratze zaharra gordetzen baduzu, eratorri muga konstrukziotik eta bolumen errealetik, ez zenbaki biribil batetik.
Gako bakoitzeko neurtutako bolumena urtebetetze-eskailetik askoz behera badago, esposizioa txikiagoa da. Hala ere ez da zero eta oraindik migrazioa planifikatzeko arrazoia da, kezkatzeari uztearen ordez.
Ordezkatu zifratzea, ez gakoa
Eraman zerbitzua onartutako AEAD zifratze batera eta egiaztatu bi parekideek, haien bertsioek eta haien kriptografia-backendek negozia dezaketela. Blowfish gako luzeagoak ez du ezer garrantzitsurik aldatzen, eta bezero batean direktiba berri bat asmatzea lanean dabilen tunel bat hondatutako tunel bihurtzeko modua da. Probatu aldaketa bezero batean eta zerbitzari batean flotaren gainerakoa ukitu aurretik. Mantendu profil zaharra erabilgarri atzera egiteko, zifratze berriak konexio-ziklo oso bat gainditu arte.
Mantendu ziurtagirien egiaztapena eta kontuen autentifikazioa aldaketan zehar. Galdera desberdinei erantzuten diete: saio-hasiera arrakastatsu batek ezin du bloke bat zabaldu, eta datu-zifratze hobeago batek ez du justifikatzen zerbitzari okerrean fidatzea.
Itxi egiaztapena negoziatutako zifratzea konexio berri batean berriro irakurriz eta gero zifratze zaharra jada onartzen ez dela baieztatuz. Parekide batek oraindik eskaintzen badu, migrazioa ez da amaitu, beste aldeko profilak esaten duen edozein izanda ere.