VPN profils piedāvā Blowfish ar 448 bitu atslēgu, un kāds ierosina izmantot garāko atslēgu, lai saglabātu šifru. Atslēgas garums ir reāls, bet tas ir nepareizais skaitlis, ko optimizēt. Blowfish pārveido 64 bitu blokus neatkarīgi no atslēgas garuma, un bloka platums ir tas, kas ierobežo, cik daudz trafika viena atslēga var droši aizsargāt. Veiciet tālāk norādītās pārbaudes secīgi un apstājieties pie pirmās, kas atbrīvo pakalpojumu, jo vēlāks solis nevar salabot agrāku.

Pārbaudiet, ko puses faktiski saskaņo

Nolasiet datu kanāla šifru abos galos, nevis no profila, kuru plānojāt izvietot. Klienta konfigurācija var uzskaitīt vairākas šifras, un izvēlētā ir divu implementāciju un to versiju sarunu rezultāts. Palieliniet žurnāla detalitāti testa savienojumā un nolasiet datu kanāla rindu, kurā nosaukta faktiski inicializētā šifra un atslēgas izmērs.

Ja saskaņotā šifra ir AES-GCM vai ChaCha20-Poly1305, apstājieties šeit. Šīs konstrukcijas izmanto 128 bitu bloku un autentificē lietderīgo slodzi, tāpēc tālāk minētais 64 bitu sadursmju arguments uz tām neattiecas.

Atdaliet atslēgas garumu no bloka platuma

Blowfish pieņem atslēgas no 32 līdz 448 bitiem, un algoritma autora dokumentācija abus skaitļus uzskaita atsevišķi. Atslēga ir noslēpums; bloks ir pārveides vienība. Garāks noslēpums apgrūtina uzminēšanu un neko nemaina bloka, ko šifra apstrādā, platumā.

CBC režīmā šifra tiek piemērota fiksēta platuma blokiem, saistītiem ar iepriekšējo šifrētā teksta bloku un beigās papildinātiem. Blowfish gadījumā šis platums ir 64 biti jeb astoņi baiti. Atslēgu grafiks var būt jebkāda lieluma; ķēde joprojām virzās par astoņiem baitiem.

Tāpēc garāka atslēga nav mīkstinājums. Tā vērsta pret brutālo spēku pret atslēgu, kamēr tālāk minētais sadursmju risks ir bloka platuma un režīma īpašība.

Piemērojiet dzimšanas dienas aritmētiku bloka izmēram

64 bitu blokam ir aptuveni 2^32 bloku dzimšanas dienas skala, kas šifrēti ar vienu atslēgu, pirms sadursmes kļūst ticamas. Katrs bloks nes astoņus baitus, tāpēc tā pati skala ir aptuveni 2^35 baiti jeb 32 GiB datu ar vienu atslēgu.

Uztveriet to kā skalu, nevis kvotu. Sadursmes ir varbūtiskas, un tas, vai kāda kaut ko atklās, ir atkarīgs no režīma, trafika modeļa un no tā, vai uzbrucējs spēj atpazīt vai ietekmēt apkārtējo atklāto tekstu. Pirmais baits aiz 32 GiB nav atšifrēšanas notikums, un pirmie 32 GiB nav sertificēti kā droši.

Sweet32 pētnieki 2016. gadā demonstrēja praktiskus uzbrukumus 64 bitu bloku šifrām, tostarp OpenVPN scenāriju, apstākļos, kas prasīja novērošanu un trafika ģenerēšanu. Viņu publicētās noklusējuma vērtības un programmatūras versijas ir vēsturisks konteksts, nevis jūsu izvietošanas apraksts.

Izlemiet, vai CBC atkārtota izmantošana šeit ir svarīga

CBC gadījumā atkārtots šifrētā teksta bloks nozīmē, ka divi atklātā teksta bloki atšķiras ar zināmu sakarību, jo ķēdes XOR izslēdz sevi. Uzbrucējs, kurš var novērot šifrēto tekstu un zina vai var ietekmēt vienu no atklātajiem tekstiem, var iegūt informāciju par otru. Blowfish atslēga tam nekad nav vajadzīga.

Tātad svarīgie jautājumi ir, cik ilgi atslēga paliek lietošanā, cik daudz trafika zem tās iet un vai kāds var šo trafiku novērot un vadīt. Atslēgu atjaunošana samazina bloku skaitu uz atslēgu, bet laika intervāls nav baitu ierobežojums: noslogots tunelis tajā pašā stundā var pārvietot daudz vairāk datu nekā dīkstāvē esošs. Ja saglabājat vecāku šifru, ierobežojumu atvasiniet no konstrukcijas un faktiskā apjoma, nevis no apaļa skaitļa.

Ja izmērītais apjoms uz atslēgu paliek krietni zem dzimšanas dienas skalas, ietekme ir mazāka. Tā tomēr nav nulle un joprojām ir iemesls plānot migrāciju, nevis pārstāt uztraukties.

Aizstājiet šifru, nevis atslēgu

Pārvietojiet pakalpojumu uz atbalstītu AEAD šifru un apstipriniet, ka abas puses, to versijas un to kriptogrāfiskās aizmugures var to saskaņot. Garāka Blowfish atslēga neko nemaina, kam ir nozīme, un jaunas direktīvas minēšana vienā klientā ir veids, kā strādājošs tunelis kļūst salauzts. Pārbaudiet izmaiņas vienā klientā un vienā serverī, pirms aiztiecat pārējo floti. Turiet veco profilu pieejamu atritināšanai, līdz jaunā šifra iztur pilnu savienojuma ciklu.

Izmaiņu laikā saglabājiet sertifikātu pārbaudi un kontu autentifikāciju. Tās atbild uz dažādiem jautājumiem: veiksmīga pieteikšanās nevar paplašināt bloku, un labāka datu šifra neattaisno uzticēšanos nepareizam serverim.

Pabeidziet pārbaudi, vēlreiz nolasot saskaņoto šifru jaunā savienojumā un pēc tam apstiprinot, ka vecā šifra vairs netiek pieņemta. Ja puse to joprojām piedāvā, migrācija nav pabeigta, lai ko teiktu profils otrā pusē.

Saistītie raksti