Абароненыя пакеты не губляюць сапраўднасці крыптаграфічна, таму той, што быў сапраўдны пяць хвілін таму, сапраўдны і цяпер, бо шыфраванне і ахова цэласнасці нічога не кажуць пра час стварэння байтаў. Зламыснік, які можа перахапіць і зноў адправіць трафік, не абавязаны ўзламваць шыфр. Таму кожны сур’ёзны тунельны пратакол трымае стан паслядоўнасці побач з ключамі.

Механізм невялікі, і яго адмовы лёгка зблытаць з стратай пакетаў.

Сапраўдны шыфратэкст не бывае свежым

Аўтэнтыфікацыя адказвае на адно пытанне: ці прыйшлі гэтыя байты ад уладальніка ключа без змен. Яна не адказвае, ці бачыць атрымальнік іх упершыню. Паўторна перасланы пакет бездакорна праходзіць першую праверку, і менавіта таму адна праверка цэласнасці не можа спыніць паўтор, і таму пратаколу патрэбна другое правіла пра прыём. Атрымальнік, які толькі аўтэнтыфікуе, не мае абароны ад зламысніка з запісам.

Гэтае правіла танна рэалізаваць і танна сфармуляваць: прыняць дадзены абаронены пакет адзін раз, пад дадзеным ключом. Усё астатняе ў гэтай галіне вынікае з таго, як рэалізацыя адсочвае гэты адзін раз.

Чытанне адкіду паўтору як збою расшыфроўкі вядзе вас зусім не ў той падсістэме.

Нумар паслядоўнасці і акно

IPsec ESP нясе нумар паслядоўнасці, а атрымальнік трымае слізгальнае акно нядаўна прынятых значэнняў, прычым спецыфікацыя ESP апісвае памер акна па змаўчанні і магчымасць яго пашырыць. WireGuard ідзе іншым шляхам: лічыльнік на кожны ключ і яўная праверка супраць яго. Ні адна схема не мяркуе, што пакеты прыходзяць па парадку, бо рэальныя сеткі іх перазаказваюць. Абедзве церпяць перазаказ, і ні адна не церпіць паўтору.

Менавіта акно робіць гэтую цярпімасць магчымай. Пакет, які трохі адстае ад найвышэйшага ўбачанага значэння, яшчэ можна прыняць, калі яго не прымалі раней; пакет, які адстае моцна, або той, чыё месца ўжо пазначана, адкідаецца. Павялічце акно — і вы церпіце больш перазаказу коштам большага стану на асацыяцыю.

Дыягнастычныя лічыльнікі паказваюць, у якім вы выпадку. Адкіды паўтору павялічваюць пэўны лічыльнік, а не агульную памылку, і чытанне гэтага лічыльніка — першае карыснае назіранне.

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

Стан належыць ключу, а не хосту

Стан лічыльніка прывязаны да асацыяцыі бяспекі або да эпохі ключа, таму змена ключа стварае новы кантэкст і ўласную прастору паслядоўнасці. Ачыстка лічыльніка без замены ключа або паўторнае выкарыстанне асацыяцыі пасля ручнога скіду ламае дапушчэнне, на якім трымаецца акно атрымальніка. Таму існуе змена ключоў, кіраваная пратаколам, а не бачная аператару кнопка скіду.

Калі тунель паводзіць сябе няправільна пасля ручнога ўмяшання, спытайце, ці закранула ўмяшанне стан паслядоўнасці. Канфігурацыя, якая выглядае аднолькава, можа паводзіць сябе інакш, бо стан, які яна атрымала ў спадчыну, не той, якога яна чакае.

Дыягнастуйце прычыну, перш чым нешта адключаць

Страты, перазаказ, дубляваны трафік і дэфект рэалізацыі ўсё выглядаюць як паўторныя перадачы, і толькі адна з гэтых прычын — праблема паўтору. Адключэнне праверкі, каб заглушыць шум, прыбірае ўласцівасць, на якую вы спадзяваліся, і робіць першасную прычыну цяжэйшай для пошуку, бо цяпер паўторныя перадачы не маюць ніякага тлумачэння.

Збірайце абмежаваныя доказы: ідэнтыфікатары асацыяцыі, нумары паслядоўнасці і лічыльнікі, без карыснай нагрузкі. Гэтага дастаткова, каб адрозніць дублікат ад перазаказанага прыходу, і гэта не ператварае ваш дыягнастычны файл у копію трафіку карыстальніка.

Чаго праверка не абяцае

Абарона ад паўтору — уласцівасць апрацоўкі пакетаў унутры аднаго пратакола. Яна не азначае, што аператар не вядзе журналаў, што сайт не можа пазнаць уліковы запіс або што сеанс ананімны. Гэта асобныя пытанні пра асобныя сістэмы, і моцная схема супраць паўтору не адказвае ні на адно з іх.

Праграмнае забеспячэнне, якое падтрымліваецца, з падтрыманымі наладамі — гэта практычны кантроль, даступны карыстальніку. Пакет апрацоўвае пратакол; усё астатняе застаецца аперацыйным рашэннем.

Падобныя артыкулы