From 778b611f8653ccc3996307880a292be569d56b14 Mon Sep 17 00:00:00 2001 From: bol-van Date: Sun, 16 Mar 2025 17:06:24 +0300 Subject: [PATCH] readme: md5sig with fakedsplit/fakeddisorder warning --- docs/readme.en.md | 4 +++- docs/readme.md | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/readme.en.md b/docs/readme.en.md index 00e102b6..23975599 100644 --- a/docs/readme.en.md +++ b/docs/readme.en.md @@ -219,7 +219,9 @@ There're attacks based on TCP sequence numbers. Methods can be combined in many Fakes are separate generated by nfqws packets carrying false information for DPI. They must either not reach the server or be rejected by it. Otherwise TCP connection or data stream would be broken. There're multiple ways to solve this task. -* **md5sig** does not work on all servers +* **md5sig** does not work on all servers. It typically works only on Linux servers. MD5 tcp option requires additional space in TCP header + and can cause MTU overflow during fakedsplit/fakeddisorder on low positions when multisegment query (TLS kyber) is transmitted. + `nfqws` cannot redistribute data between original TCP segments. The error displayed is 'message too long'. * **badsum** doesn't work if your device is behind NAT which does not pass invalid packets. The most common Linux NAT router configuration does not pass them. Most home routers are Linux based. The default sysctl configuration `net.netfilter.nf_conntrack_checksum=1` causes contrack to verify tcp and udp checksums diff --git a/docs/readme.md b/docs/readme.md index 2d16393d..8d52957d 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -261,6 +261,10 @@ dvtws, собираемый из тех же исходников (см. [док Есть ряд методов для решения этой задачи. * `md5sig` добавляет TCP опцию **MD5 signature**. Работает не на всех серверах. Пакеты с md5 обычно отбрасывают только linux. + Требуется значительное увеличение длины tcp пакета, чтобы вместить tcp option. При обработке многосегментных запросов (TLS Kyber) + первый пакет идет полный под MTU. При fakedsplit/fakeddisorder на небольших позициях отдельные tcp сегменты достаточно велики, чтобы внедрение + md5 tcp option вызвало переполнение MTU и ошибку отправки "message too long". `nfqws` не умеет перераспределять данные между tcp сегментами, + поэтому надо или отказываться от kyber, или увеличивать сплит-позицию, или отказываться от fakedsplit/fakeddisorder. * `badsum` портит контрольную сумму TCP. Не сработает, если ваше устройство за NAT, который не пропускает пакеты с инвалидной суммой. Наиболее распространенная настройка NAT роутера в Linux их не пропускает. На Linux построено большинство домашних роутеров. Непропускание обеспечивается так : настройка ядра sysctl по умолчанию @@ -347,6 +351,9 @@ dvtws, собираемый из тех же исходников (см. [док Размеры фейков соответствуют длинам отсылаемых частей. Цель этих режимов - максимально усложнить выявление оригинальных данных среди фейков. +Использование `fakedsplit` или `fakeddisorder` на TLS kyber с md5sig fooling может привести к ошибкам "message too long", если позиция сплита мала, +поскольку будет превышение MTU из-за md5 tcp option. + Для определения позиций нарезки используются маркеры. * **Абсолютный положительный маркер** - числовое смещение внутри пакета или группы пакетов от начала.