Kial pli longa Blowfish-ŝlosilo ne riparas 64-bitan blokon
Blowfish-ŝlosiloj povas atingi 448 bitojn dum la bloko restas 64 bitoj. Kontrolu la intertraktitan ĉifron kaj planu subtenatan anstataŭigon anstataŭ pli longa ŝlosilo.
VPN-profilo proponas Blowfish kun 448-bita ŝlosilo, kaj iu proponas uzi la plej longan ŝlosilon por konservi la ĉifron. La ŝlosillongo estas reala, sed ĝi estas la malĝusta nombro por optimumigi. Blowfish transformas 64-bitajn blokojn sendepende de la ŝlosillongo, kaj la bloklarĝo estas tio, kio limigas kiom da trafiko unu ŝlosilo povas sekure protekti. Rulu la subajn kontrolojn laŭ ordo kaj haltu ĉe la unua, kiu malpezigas la servon, ĉar posta paŝo ne povas ripari pli fruan.
Kontrolu, kion la partneroj efektive intertraktas
Legu la ĉifron de la datkanalo ĉe ambaŭ finoj, ne el la profilo, kiun vi intencis deploji. Klienta agordo povas listigi plurajn ĉifrojn, kaj la elektita estas la rezulto de intertraktado inter du efektivigoj kaj iliaj versioj. Pliigu la protokolan detalecon en testa konekto kaj legu la linion de la datkanalo, kiu nomas la ĉifron kaj la ŝlosilgrandon efektive pravigitan.
Se la intertraktita ĉifro estas AES-GCM aŭ ChaCha20-Poly1305, haltu ĉi tie. Tiuj konstruoj uzas 128-bitan blokon kaj aŭtentikas la utilan ŝarĝon, do la suba argumento pri 64-bitaj kolizioj ne validas por ili.
Apartigu ŝlosillongon de bloklarĝo
Blowfish akceptas ŝlosilojn de 32 ĝis 448 bitoj, kaj la dokumentaro de la algoritmo-aŭtoro listigas ambaŭ nombrojn aparte. La ŝlosilo estas la sekreto; la bloko estas la unuo de transformo. Pli longa sekreto malfaciligas diveni ĝin kaj faras nenion al la larĝo de la bloko, kiun la ĉifro prilaboras.
En CBC-reĝimo la ĉifro aplikiĝas al blokoj de fiksa larĝo, ĉenitaj kun la antaŭa ĉifroteksta bloko kaj remburitaj ĉe la fino. Por Blowfish tiu larĝo estas 64 bitoj, aŭ ok bajtoj. La ŝlosilhoraro povas esti tiel granda kiel vi volas; la ĉeno ankoraŭ antaŭeniras po ok bajtoj.
Tial pli longa ŝlosilo ne estas mildigo. Ĝi celas krudforton kontraŭ la ŝlosilo, dum la kolizirisko sube estas propraĵo de la bloklarĝo kaj la reĝimo.
Apliku la naskiĝtagan aritmetikon al la blokgrandeco
64-bita bloko havas naskiĝtagan skalon de proksimume 2^32 blokoj ĉifritaj sub unu ŝlosilo antaŭ ol kolizioj fariĝas verŝajnaj. Ĉiu bloko portas ok bajtojn, do la sama skalo estas proksimume 2^35 bajtoj, aŭ 32 GiB da datumoj sub unu sola ŝlosilo.
Traktu tion kiel skalon, ne kiel kvoton. Kolizioj estas probablaj, kaj ĉu unu elfluigas ion dependas de la reĝimo, la trafikmastro kaj ĉu la atakanto povas rekoni aŭ influi la ĉirkaŭan klartekston. La unua bajto preter 32 GiB ne estas malĉifra evento, kaj la unuaj 32 GiB ne estas atestitaj kiel sekuraj.
La esploristoj de Sweet32 montris en 2016 praktikajn atakojn kontraŭ 64-bitaj blokĉifroj, inkluzive de OpenVPN-scenario, sub kondiĉoj, kiuj postulis observadon kaj trafikgeneradon. Iliaj publikigitaj defaŭltaj valoroj kaj softvarversioj estas historia kunteksto, ne priskribo de via deplojo.
Decidu, ĉu reuzado de CBC gravas ĉi tie
En CBC, ripetita ĉifroteksta bloko signifas, ke la du klartekstaj blokoj diferencas per konata rilato, ĉar la ĉena XOR sin nuligas. Atakanto, kiu povas observi la ĉifrotekston kaj konas aŭ povas influi unu el la klartekstoj, povas eble rekuperi informojn pri la alia. La Blowfish-ŝlosilo neniam necesas por tio.
Do la koncernaj demandoj estas, kiom longe ŝlosilo restas en servo, kiom da trafiko pasas sub ĝi kaj ĉu iu povas observi kaj direkti tiun trafikon. Ŝlosilŝanĝo malaltigas la bloknombron po ŝlosilo, sed tempintervalo ne estas bajta limo: okupata tunelo povas movi multe pli da datumoj ol senokupa en la sama horo. Se vi konservas malnovan ĉifron, derivu la limon el la konstruo kaj la fakta volumeno, ne el ronda nombro.
Se la mezurita volumeno po ŝlosilo restas multe sub la naskiĝtaga skalo, la eksponiĝo estas pli malgranda. Ĝi tamen ne estas nulo kaj ankoraŭ estas kialo plani migradon anstataŭ ĉesi maltrankviliĝi.
Anstataŭigu la ĉifron, ne la ŝlosilon
Movu la servon al subtenata AEAD-ĉifro kaj konfirmu, ke ambaŭ partneroj, iliaj versioj kaj iliaj kriptografiaj dorsflankoj povas intertrakti ĝin. Pli longa Blowfish-ŝlosilo ŝanĝas nenion gravan, kaj diveni novan direktivon en unu kliento estas kiel funkcianta tunelo fariĝas rompita. Testu la ŝanĝon en unu kliento kaj unu servilo antaŭ ol tuŝi la reston de la floto. Tenu la malnovan profilon disponebla por retroigo ĝis la nova ĉifro trapasos plenan konekciklon.
Tenu atestilan konfirmon kaj kontan aŭtentikon en loko dum la ŝanĝo. Ili respondas al malsamaj demandoj: sukcesa ensaluto ne povas larĝigi blokon, kaj pli bona datuma ĉifro ne senkulpigas fidi la malĝustan servilon.
Finu la kontrolon relegante la intertraktitan ĉifron sur nova konekto kaj poste konfirmante, ke la malnova ĉifro ne plu akceptiĝas. Se partnero ankoraŭ proponas ĝin, la migrado ne finiĝis, kion ajn diras la profilo ĉe la alia flanko.