Miért nem állítja meg a puszta titkosítás az újrajátszott csomagot
Egy régi csomag érvényes hitelesítési címkét őriz, ezért az integritás soha nem bizonyít frissességet. A sorozatszám-állapot és a vevő ablaka végzi ezt a munkát.
A védett csomagok kriptográfiailag nem járnak le, ezért az öt perccel ezelőtt érvényes csomag most is érvényes, mert a titkosítás és az integritásvédelem semmit sem mond arról, mikor készültek a bájtok. Egy támadónak, aki el tudja fogni és újra el tudja küldeni a forgalmat, nem kell feltörnie a rejtjelet. Ezért minden komoly alagútprotokoll sorozatszám-állapotot hordoz a kulcsai mellett.
A mechanizmus kicsi, és hibaállapotai könnyen összetéveszthetők a csomagvesztéssel.
Az érvényes rejtjelszöveg nem friss rejtjelszöveg
A hitelesítés egyetlen kérdésre válaszol: ezek a bájtok változatlanul egy kulcsbirtokostól származnak-e. Arra nem válaszol, hogy a vevő most látja-e először őket. Az újrajátszott csomag tökéletesen átmegy az első próbán, és éppen ezért az integritásellenőrzés önmagában nem tudja megállítani az újrajátszást, és ezért a protokollnak szüksége van egy második szabályra az elfogadásról. Az a vevő, amely csak hitelesít, védelem nélkül áll egy felvétellel rendelkező támadóval szemben.
Ez a szabály olcsón megvalósítható és olcsón kimondható: fogadj el egy adott védett csomagot egyszer, egy adott kulcs alatt. Ezen a területen minden más abból következik, hogyan követi a megvalósítás azt az egyszeri alkalmat.
Az újrajátszás elvetését visszafejtési hibaként olvasni teljesen rossz alrendszerhez küld.
Sorozatszám és ablak
Az IPsec ESP sorozatszámot hordoz, és a vevő a nemrég elfogadott értékek csúszó ablakát tartja, miközben az ESP specifikáció leírja az alapértelmezett ablakméretet és a bővítés lehetőségét. A WireGuard más utat jár: kulcsonkénti számláló és kifejezett ellenőrzés ellene. Egyik tervezés sem feltételezi, hogy a csomagok sorrendben érkeznek, mert a valódi hálózatok átrendezik őket. Mindkettő tűri az átrendezést, és egyik sem tűri az ismétlést.
Az ablak teszi lehetővé ezt a toleranciát. A legmagasabb látott értéknél kicsit lemaradó csomag még elfogadható, ha korábban nem fogadták el; a messze lemaradó, vagy az, amelynek helye már meg van jelölve, eldobódik. Növeld az ablakot, és több átrendezést tűrsz el több állapot árán asszociációnként.
A diagnosztikai számlálók megmutatják, melyik esetben vagy. Az újrajátszás-elvetések egy meghatározott számlálót növelnek, nem általános hibát, és ennek a számlálónak az olvasása az első hasznos megfigyelés.
nstat -az | grep -i XfrmIn
ip -s xfrm state | head -n 30
wg show wg0 transfer
Az állapot a kulcshoz tartozik, nem a gazdagéphez
A számláló állapota biztonsági asszociációhoz vagy kulcskorszakhoz kötődik, ezért a kulcscsere friss kontextust és saját sorozatteret hoz létre. Egy számláló törlése a kulcs cseréje nélkül, vagy egy asszociáció újrafelhasználása kézi visszaállítás után megtöri azt a feltevést, amelyre a vevő ablaka támaszkodik. Ezért létezik protokollvezérelt kulcscsere, és nem egy üzemeltető számára látható visszaállítógomb.
Amikor egy alagút kézi beavatkozás után rosszul viselkedik, kérdezd meg, hogy a beavatkozás hozzányúlt-e a sorozatállapothoz. Egy azonosnak látszó konfiguráció másképp viselkedhet, mert az örökölt állapot nem az, amit vár.
Diagnosztizáld az okot, mielőtt bármit letiltasz
Veszteség, átrendezés, duplikált forgalom és megvalósítási hiba mind újraküldésként jelenik meg, és csak az egyik újrajátszási probléma. Az ellenőrzés letiltása a zaj elhallgattatására eltávolítja azt a tulajdonságot, amelyre támaszkodtál, és nehezebbé teszi az eredeti ok megtalálását, mert most az újraküldéseknek egyáltalán nincs magyarázatuk.
Gyűjts korlátozott bizonyítékot: asszociációazonosítók, sorozatszámok és számlálók, a hasznos terhelések nélkül. Ez elég ahhoz, hogy megkülönböztesd a duplikátumot az átrendezett érkezéstől, és nem teszi diagnosztikai fájlodat a felhasználó forgalmának másolatává.
Mit nem ígér az ellenőrzés
Az újrajátszás elleni védelem egyetlen protokollon belüli csomagfeldolgozás tulajdonsága. Nem jelenti azt, hogy az üzemeltető nem vezet naplókat, hogy egy webhely nem ismerhet fel fiókot, vagy hogy egy munkamenet névtelen. Ezek külön kérdések külön rendszerekről, és egy erős újrajátszásellenes tervezés egyikre sem válaszol.
A támogatott beállításokkal karbantartott szoftver az a gyakorlati kontroll, amely a felhasználó rendelkezésére áll. A csomagot a protokoll kezeli; minden más üzemeltetési döntés marad.