readme: some DPI info

This commit is contained in:
bol-van 2020-01-07 23:52:29 +03:00
parent 696c04ae1b
commit b2821e51e5

View File

@ -219,11 +219,24 @@ nfqws
4. поддельная 1-я часть пакета, поле данных заполнено нулями. отсылка 2-й раз. 4. поддельная 1-я часть пакета, поле данных заполнено нулями. отсылка 2-й раз.
Оригинальный пакет дропается всегда. Параметр --dpi-desync-split-pos позволяет указать байтовую позицию, на которой Оригинальный пакет дропается всегда. Параметр --dpi-desync-split-pos позволяет указать байтовую позицию, на которой
происходит разбивка. По умолчанию - 3. Если позиция больше длины пакета, позиция выбирается 1. происходит разбивка. По умолчанию - 3. Если позиция больше длины пакета, позиция выбирается 1.
Этой последовательностью для DPI максимально усложняется задача реконструкции начального сообщения, по которому принимается решение о блокировке. Этой последовательностью для DPI максимально усложняется задача реконструкции начального сообщения,
Некоторым DPI хватит и tcp сегментов в неправильном порядке, поддельные части сделаны для дополнительной надежности и более сложных по которому принимается решение о блокировке. Некоторым DPI хватит и tcp сегментов в неправильном порядке,
алгоритмов реконструкции. поддельные части сделаны для дополнительной надежности и более сложных алгоритмов реконструкции.
Режим disorder2 отключает отправку поддельных частей. Он может быть использован как более быстрая альтернатива --wsize. Режим disorder2 отключает отправку поддельных частей. Он может быть использован как более быстрая альтернатива --wsize.
Есть DPI, которые анализируют ответы от сервера, в частности сертификат из ServerHello, где прописаны домены.
Подтверждением доставки ClientHello является ACK пакет от сервера с номером ACK sequence, соответствующим длине ClientHello+1.
В варианте disorder обычно приходит сперва частичное подтверждение (SACK), потом полный ACK.
Если вместо ACK или SACK идет RST пакет с минимальной задержкой, то DPI вас отсекает еще на этапе вашего запроса.
Если RST идет после полного ACK спустя задержку, равную примерно двухкратному пингу до сервера,
тогда вероятно DPI реагирует на ответ сервера.
DPI может отстать от потока, если ClientHello его удовлетворил и не проверять ServerHello.
Тогда вам повезло. Вариант fake может сработать.
Если же он не отстает и упорно проверяет ServerHello, еще и выполняя реконструкцию сегментов TCP,
то сделать с этим что-либо вряд ли возможно без помощи со стороны сервера.
Лучшее решение - включить на сервере поддержку TLS 1.3. В нем сертификат сервера передается в зашифрованном виде.
Это рекомендация ко всем админам блокируемых сайтов. Включайте TLS 1.3. Так вы дадите больше возможностей преодолеть DPI.
hostlist относится только к атаке desync. он не работает для других параметров. при попытке запустить nfqws с hostlist и без dpi-desync будет ошибка. hostlist относится только к атаке desync. он не работает для других параметров. при попытке запустить nfqws с hostlist и без dpi-desync будет ошибка.
Хосты извлекаются из Host: хедера обычных http запросов и из SNI в TLS ClientHello. Хосты извлекаются из Host: хедера обычных http запросов и из SNI в TLS ClientHello.
Субдомены учитываются автоматически. Поддерживаются листы gzip. Субдомены учитываются автоматически. Поддерживаются листы gzip.