Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add an anti-DPI option to stealth mode: "Hide TLS server name" #1615

Closed
ameshkov opened this issue Mar 24, 2022 · 10 comments
Closed

Add an anti-DPI option to stealth mode: "Hide TLS server name" #1615

ameshkov opened this issue Mar 24, 2022 · 10 comments

Comments

@ameshkov
Copy link
Member

Currently, most of the DPI systems out there rely on detecting TLS SNI.

There are many use cases when this method of DPI used.

  1. ISPs track users traffic and sell this data to third-parties.
  2. ISPs use it to block access to websites.

The normal solution would be to enforce ECH for all TLS connections. However, ECH is far from being production ready and we have a different issue to track this: #1565. Moreover, it requires the server-side to support it and I doubt it will be that wide-spread.

I suggest using a different (and very popular) approach for doing this. We should split the ClientHello in two parts: 1 byte and the rest. This way the DPI systems that ISPs use will not detect that the protocol TLS and therefore won't try to extract the server name from it.

The working name: "Hide traffic from DPI"

@zubrRB
Copy link

zubrRB commented Apr 28, 2022

После атак хакеров в Беларуси закрыли внешний доступ сайты государственных органов, учреждений, организаций.
При включении защиты от DPI на сайтах ТВ https://tvr.by и правовых актов https://pravo.by ERR_CONNECTION_RESET.
Национального оператора, непосредственно ответственного за DPI https://beltelecom.by ERR_CONNECTION_CLOSED.
У него же (монополия на пропуск внешнего трафика) при перезагрузке дополнительно ERR_SSL_PROTOCOL_ERROR.

@ameshkov
Copy link
Member Author

@sfionov может нам сделать, чтобы $stealth-исключения работали и отключали anti-DPI?

@sfionov
Copy link
Member

sfionov commented Apr 29, 2022

@ameshkov Хорошая идея!

@nikanorov
Copy link

nikanorov commented Apr 29, 2022

https://www.gosuslugi.ru/ у меня с anit-DPI тож не открывает (ERR_CONNECTION_RESET)

@NUser2018
Copy link

NUser2018 commented May 2, 2022

@ameshkov @sfionov @ngorskikh

Adguard для Windows 7.10 beta 1

Помогает только для сайтов использующих и поддерживающих SSL (HTTPS) и не работает для сайтов неиспользующих\неподдерживающих SSL (т.е. работающих только по HTTP). Для некоторых сайтов использующих и поддерживающих SSL (HTTPS) также не помогает Хотя похожее и довольно известное бесплатное и свободно доступное решение справляется во всех аналогичных (т.е. с этими же сайтами и включая сайты работающие только по HTTP) случаях чаще всего даже с его настройками\параметрами по умолчанию (хотя тут уже зависит конечно от конкретного провайдера и иногда требуется все же подстройка при помощи различных дополнительных параметров). Надо бы продумать и доработать новую функцию в Adguard в эту сторону.

@ameshkov
Copy link
Member Author

ameshkov commented May 3, 2022

@sfionov выделишь в отдельные задачи plain HTTP и stealth-исключения?

@NUser2018
Copy link

@sfionov может нам сделать, чтобы $stealth-исключения работали и отключали anti-DPI?

@sfionov выделишь в отдельные задачи plain HTTP и stealth-исключения?

@ameshkov @sfionov @ngorskikh

Внесу важную ясность, в дополнение ко всему ранее написанному мною здесь, на данный момент есть минимум две категории сайтов использующих HTTPS (SSL):

  1. сайты которые не открываются при включенной новой функции (всякие ошибки соединения), но для которых по сути anti-DPI и не нужен (это вижу в отзывах других пользователей выше, но сам пока не сталкивался с таким, возможно потому что коротко попробовал бэту и nightly и откатил систему обратно из бэкапа с релизной версией Adguard). Тут всё просто и понятно: доработать stealth-исключения чтобы они отключали и новую функцию anti-DPI

  2. Но есть и другая категория сайтов использующих HTTPS (SSL), которые также не открываются при включенной новой функции (всякие ошибки соединения) но для которых anti-DPI был бы вполне очень даже нужен. Даже за короткое тестирование новой функции столкнулся с этим как минмум на одном сайте. В этом случае доработка по принципу доработать stealth-исключения чтобы они отключали и новую функцию anti-DPI не поможет решить такие проблемы.

@NUser2018
Copy link

NUser2018 commented May 4, 2022

https://www.gosuslugi.ru/ у меня с anit-DPI тож не открывает (ERR_CONNECTION_RESET)

С anti-DPI в Adguard действительно так.

Но также проверил на примере Госуслуг и подобного альтернативного решения, которое я уже упоминал здесь ранее не называя его, оно этим не страдает и работает корректно и замечу не по принципу белого списка (т.е. исключения каких-то ресурсов из анти-DPI-фильтрации) а просто так из коробки с настройками по умолчанию. Так что идея, задумка и функция новая anti-DPI в Adguard конечно хорошая, но с ней есть ещё над чем работать.

@zubrRB
Copy link

zubrRB commented May 4, 2022

Столкнулся ещё с такой ситуацией, когда открывается основной домен, а его поддомен выдаёт ошибки или наоборот.

https://beltelecom.byERR_CONNECTION_CLOSED / ERR_SSL_PROTOCOL_ERROR
https://my.beltelecom.by

https://www.torproject.org
https://blog.torproject.orgERR_EMPTY_RESPONSE / ERR_TIMED_OUT / ERR_CONNECTION_RESET

@zubrRB
Copy link

zubrRB commented Jan 21, 2023

В Беларуси в последние месяцы массовая проблема при использовании данной опции из-за того, что сайты внутри страны размещаются на нескольких защищённых хостингах, которые внедрили что-то, в результате чего при попытке зайти на сайты на государственном защищённом хостинге они вообще не открываются, а сайты на частном хостинге открываются через пень-колоду. Причём сайты не только банков, но и сетевых магазинов, провинциальных СМИ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants