Beskyttede pakker utløper ikke kryptografisk, så en pakke som var gyldig for fem minutter siden er fortsatt gyldig nå, fordi kryptering og integritetsbeskyttelse ikke sier noe om når bytene ble produsert. En angriper som kan fange og sende trafikk på nytt, trenger ikke å bryte chifferen. Derfor bærer enhver seriøs tunnelprotokoll sekvenstilstand sammen med nøklene sine.

Mekanismen er liten, og feilmodusene er lette å forveksle med pakketap.

Gyldig chiffertekst er ikke fersk chiffertekst

Autentisering svarer på ett spørsmål: kom disse bytene uendret fra noen som har nøkkelen. Det svarer ikke på om det er første gang mottakeren ser dem. En gjenavspilt pakke består den første prøven perfekt, og nettopp derfor kan integritetskontroll alene ikke stoppe en gjenavspilling, og derfor trenger protokollen en annen regel om aksept. En mottaker som bare autentiserer, har ingen forsvar mot en angriper med en opptak.

Den regelen er billig å implementere og billig å formulere: aksepter en gitt beskyttet pakke én gang, under en gitt nøkkel. Alt annet på dette området følger av hvordan implementasjonen holder rede på den ene gangen.

Å lese en gjenavspillingsforkastelse som en dekrypteringsfeil sender deg til det helt gale delsystemet.

Et sekvensnummer og et vindu

IPsec ESP bærer et sekvensnummer, og mottakeren holder et glidevindu over nylig aksepterte verdier, mens ESP-spesifikasjonen beskriver standardvindustørrelsen og muligheten for å utvide det. WireGuard tar en annen vei med en teller per nøkkel og en eksplisitt kontroll mot den. Ingen av designene forutsetter at pakker ankommer i rekkefølge, fordi ekte nettverk omorganiserer dem. Begge tåler omorganisering, og ingen av dem tåler gjentakelse.

Vinduet er det som gjør den toleransen mulig. En pakke litt bak den høyeste verdien som er sett, kan fortsatt aksepteres hvis den ikke er akseptert før; en langt bak, eller en der plassen allerede er markert, forkastes. Øk vinduet, og du tåler mer omorganisering på bekostning av mer tilstand per assosiasjon.

Diagnostiske tellere viser deg hvilket tilfelle du er i. Gjenavspillingsforkastelser øker en spesifikk teller i stedet for en generisk feil, og å lese den telleren er den første nyttige observasjonen.

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

Tilstand hører til nøkkelen, ikke til verten

Tellertilstand er knyttet til en sikkerhetsassosiasjon eller en nøkkelepoke, så en nøkkelutskifting skaper en fersk kontekst og sitt eget sekvensrom. Å tømme en teller uten å skifte ut nøkkelen, eller å gjenbruke en assosiasjon etter en manuell tilbakestilling, bryter forutsetningen mottakervinduet avhenger av. Derfor finnes protokollstyrt nøkkelutskifting i stedet for en tilbakestillingsknapp operatøren kan se.

Når en tunnel oppfører seg dårlig etter en manuell inngripen, spør om inngripenen rørte sekvenstilstanden. En konfigurasjon som ser identisk ut kan oppføre seg annerledes fordi tilstanden den arvet ikke er tilstanden den forventer.

Diagnostiser årsaken før du deaktiverer noe

Tap, omorganisering, duplisert trafikk og en implementasjonsfeil viser seg alle som retransmisjoner, og bare én av dem er et gjenavspillingsproblem. Å deaktivere kontrollen for å dempe støy fjerner egenskapen du var avhengig av, og gjør den opprinnelige årsaken vanskeligere å finne, fordi retransmisjonene nå ikke har noen forklaring i det hele tatt.

Samle avgrenset bevis: assosiasjons-ID-er, sekvensnumre og tellere, uten nyttelast. Det er nok til å skille en duplikat fra en omorganisert ankomst, og det gjør ikke diagnosefilen din til en kopi av brukerens trafikk.

Hva kontrollen ikke lover

Gjenavspillingsbeskyttelse er en egenskap ved pakkebehandling inne i én protokoll. Det betyr ikke at operatøren ikke fører logger, at et nettsted ikke kan kjenne igjen en konto, eller at en økt er anonym. Det er separate spørsmål om separate systemer, og et sterkt anti-gjenavspillingsdesign svarer på ingen av dem.

Vedlikeholdt programvare med støttede innstillinger er den praktiske kontrollen en bruker har. Protokollen håndterer pakken; alt annet forblir en driftsbeslutning.

Relaterte artikler