diff --git a/docs/readme.txt b/docs/readme.txt index 2da296f..f8f22a7 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -219,11 +219,24 @@ nfqws 4. поддельная 1-я часть пакета, поле данных заполнено нулями. отсылка 2-й раз. Оригинальный пакет дропается всегда. Параметр --dpi-desync-split-pos позволяет указать байтовую позицию, на которой происходит разбивка. По умолчанию - 3. Если позиция больше длины пакета, позиция выбирается 1. -Этой последовательностью для DPI максимально усложняется задача реконструкции начального сообщения, по которому принимается решение о блокировке. -Некоторым DPI хватит и tcp сегментов в неправильном порядке, поддельные части сделаны для дополнительной надежности и более сложных -алгоритмов реконструкции. +Этой последовательностью для DPI максимально усложняется задача реконструкции начального сообщения, +по которому принимается решение о блокировке. Некоторым DPI хватит и tcp сегментов в неправильном порядке, +поддельные части сделаны для дополнительной надежности и более сложных алгоритмов реконструкции. Режим 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 будет ошибка. Хосты извлекаются из Host: хедера обычных http запросов и из SNI в TLS ClientHello. Субдомены учитываются автоматически. Поддерживаются листы gzip.