Protektitaj paketoj ne eksvalidiĝas kriptografie, do tiu, kiu estis valida antaŭ kvin minutoj, ankoraŭ validas nun, ĉar ĉifrado kaj integreca protekto diras nenion pri tio, kiam la bajtoj estis produktitaj. Atakanto, kiu povas kapti kaj resendi trafikon, ne devas rompi la ĉifron. Tial ĉiu serioza tunela protokolo portas sekvencan staton apud siaj ŝlosiloj.

La meĥanismo estas malgranda, kaj ĝiaj fiaskaj reĝimoj facile konfuziĝas kun paketa perdo.

Valida ĉifroteksto ne estas freŝa ĉifroteksto

Aŭtentigo respondas al unu demando: ĉu ĉi tiuj bajtoj venis senŝanĝe de posedanto de la ŝlosilo. Ĝi ne respondas, ĉu tio estas la unua fojo, kiam la ricevilo vidas ilin. Repetita paketo perfekte trapasas la unuan teston, kaj ĝuste tial integreca kontrolo sola ne povas haltigi repetadon kaj tial la protokolo bezonas duan regulon pri akcepto. Ricevilo, kiu nur aŭtentigas, havas neniun defendon kontraŭ atakanto havanta registraĵon.

Tiu regulo estas malmultekosta implementi kaj malmultekosta esprimi: akceptu donitan protektitan paketon unufoje, sub donita ŝlosilo. Ĉio alia en ĉi tiu kampo sekvas el tio, kiel la implemento spuras tiun unufojecon.

Legi forĵeton de repeto kiel malĉifran fiaskon sendas vin al tute malĝusta subsistemo.

Sekvenca numero kaj fenestro

IPsec ESP portas sekvencan numeron kaj la ricevilo tenas glitan fenestron de lastatempe akceptitaj valoroj, dum la ESP-specifikaĵo priskribas la defaŭltan fenestran grandecon kaj la eblon etendi ĝin. WireGuard sekvas alian vojon kun nombrilo por ŝlosilo kaj eksplicita kontrolo kontraŭ ĝi. Neniu dezajno supozas, ke paketoj alvenas laŭ ordo, ĉar realaj retoj reordigas ilin. Ambaŭ toleras reordigon, kaj neniu toleras ripeton.

La fenestro ebligas tiun toleremon. Paketo iomete malantaŭ la plej alta vidita valoro ankoraŭ povas esti akceptita, se ĝi ne estis akceptita antaŭe; unu malproksime malantaŭe, aŭ unu kies loko jam estas markita, estas forĵetita. Pliigu la fenestron kaj vi toleros pli da reordigo kontraŭ pli da stato por asocio.

Diagnozaj nombriloj montras al vi, en kiu kazo vi estas. Forĵetoj de repeto pliigas specifan nombrilon anstataŭ ĝeneralan eraron, kaj legi tiun nombrilon estas la unua utila observo.

nstat -az | grep -i XfrmIn
ip -s xfrm state | head -n 30
wg show wg0 transfer

Stato apartenas al la ŝlosilo, ne al la gastiganto

Nombrila stato estas ligita al sekureca asocio aŭ al ŝlosila epoko, do reŝlosado kreas freŝan kuntekston kaj propran sekvencan spacon. Purigi nombrilon sen anstataŭigi la ŝlosilon, aŭ reuzi asocion post permana restarigo, rompas la supozon, de kiu dependas la fenestro de la ricevilo. Tial ekzistas protokole gvidata reŝlosado anstataŭ restariga butono videbla al la operatoro.

Kiam tunelo miskondutas post permana interveno, demandu, ĉu la interveno tuŝis la sekvencan staton. Agordo, kiu aspektas identa, povas konduti alimaniere, ĉar la stato, kiun ĝi heredis, ne estas la stato, kiun ĝi atendas.

Diagnozu la kaŭzon antaŭ ol malŝalti ion

Perdo, reordigo, duobligita trafiko kaj implementa difekto ĉiuj aperas kiel retransmetoj, kaj nur unu el ili estas problemo pri repeto. Malŝalti la kontrolon por silentigi bruon forigas la econ, sur kiu vi fidis, kaj malfaciligas trovi la originan kaŭzon, ĉar nun la retransmetoj havas tute neniun klarigon.

Kolektu limigitan pruvon: asociidentigilojn, sekvencajn numerojn kaj nombrilojn, sen la utilaŝarĝoj. Tio sufiĉas por distingi duoblaĵon disde reordigita alveno, kaj ĝi ne igas vian diagnozan dosieron kopio de la trafiko de la uzanto.

Kion la kontrolo ne promesas

Protekto kontraŭ repeto estas eco de paketa prilaborado ene de unu protokolo. Ĝi ne signifas, ke la operatoro ne konservas registrojn, ke retejo ne povas rekoni konton, aŭ ke sesio estas anonima. Tiuj estas apartaj demandoj pri apartaj sistemoj, kaj fortika kontraŭreperta dezajno respondas al neniu el ili.

Prizorgata programaro kun subtenataj agordoj estas la praktika kontrolo havebla al uzanto. La protokolo traktas la paketon; ĉio alia restas operacia decido.

Rilataj artikoloj