Доброго времени суток! Изучаю ситуацию в Белоруссии. Большинство сайтов, находящихся в РБ недоступны (ошибка подключения) при этом пинг (ICMP) идет нормально. Ресурсы, работающие на UDP - без перебоев. Подключения по TCP устанавливаются. Проблемы только с HTTPS (возможно, любыми SSL / TLS соединениями) Пример. Запрос без шифрования: Spoiler: http://symbal.by/robots.txt curl -vvv http://symbal.by/robots.txt * About to connect() to symbal.by port 80 (#0) * Trying 178.172.136.136... * connected * Connected to symbal.by (178.172.136.136) port 80 (#0) > GET /robots.txt HTTP/1.1 > User-Agent: curl/7.26.0 > Host: symbal.by > Accept: */* > * additional stuff not fine transfer.c:1037: 0 0 * HTTP 1.1 or later with persistent connection, pipelining supported < HTTP/1.1 301 Moved Permanently < Server: nginx/1.16.1 < Date: Tue, 11 Aug 2020 12:54:24 GMT < Content-Type: text/html < Transfer-Encoding: chunked < Connection: keep-alive < Location: https://symbal.by:443/robots.txt < <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx/1.16.1</center> </body> </html> * Connection #0 to host symbal.by left intact * Closing connection #01 Spoiler: Тот же запрос по https curl -vvv https://symbal.by/robots.txt * About to connect() to symbal.by port 443 (#0) * Trying 178.172.136.136... * connected * Connected to symbal.by (178.172.136.136) port 443 (#0) * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs * SSLv3, TLS handshake, Client hello (1): До состояния SSLv3, TLS handshake, Server hello соединение не доходит, хотя после TCP Syn-Ack еще какие-то пакеты идут в обоих направлениях. Белорусский Whois лежит. Spoiler: OpenSSL подвисает в таком же состоянии openssl s_client -connect symbal.by:443 -status -servername symbal.by CONNECTED(00000003) ^C Какие будут мысли или кто знает достоверно, как это реализовано технически? В чем сбой и как от таких защититься? (я не про использование TOR / VPN, я именно про восстановление работы HTTPS)
Достоверно не знаю, но скорее всего идёт перехват пакетов через провайдеров по 443 порту, при этом возможно несколько вариантов: * Либо сбрасывают все входящие (ingress) пакеты на 443 порте, т.е. сервер просто не видит никаких соединений/запросов * Либо сбрасывают все исходящие (egress) пакеты с 443 порта, т.е. все ответы сервера не доходят до клиента. * IPS/IDS может распознавать SSL-пакеты по заголовкам, т.е. "Client Hello" в начале идёт не зашифрованный и сразу блокируется.
"Белорус-канал" ну то что нагнули провайдера, и не только главного, а вообще всех - это ясно. Но вопрос был же в том, как технически это осуществили.
Стоит ТС поинтересовать себя за google://магистральные+пиринговые+интернет+каналы+беларусь "DPI - deep packet inspection" https://www.vice.com/en_us/article/...et-and-tried-to-make-it-look-like-an-accident
С "Client Hello" в начале идёт не зашифрованный, после чего либо он не доходит до сервера, либо ответ от сервера не доходит клиенту - понятно. Не понятно, почему физически TCP соединение устанавливается успешно и с кем оно реально устанавливается - с целевым узлом, или это все MITM. Судя по IP (в DNS он же стоит) подмены не происходит. Для чего держать открытым столько соединений до таймаута? Не проще сразу его сбрасывать? Белорусские новости сообщали о хакерских атаках из-за пределов страны. Реально ли положить SSL вот таким вот образом, без влияния на проходимость UDP / ICMP / прочих датаграмм, без повышения пинга, без помех при обычном TCP / HTTP трафике? Кажется, что нет.
я не знаю как у вас но у меня при вызове Code: sudo traceroute -T -p 443 symbal.by .... 6 185.11.76.46 (185.11.76.46) 7 msq.te-5-1.gate-3.bn.by (212.98.160.145) 8 178-172-136-136.hosterby.com (178.172.136.136) Так вот этот самый раутер под номером 6 с ip 185.11.76.46 принадлежит Code: whois 185.11.76.46 .... inetnum: 185.11.76.0 - 185.11.76.255 netname: NTEC-Interconnections descr: NTEC Interconnections Subnet descr: Republican Unitary Enterprise "National Traffic Exchange Center" org: ORG-RUET1-RIPE country: BY Смотрим на сайт: "Республиканское унитарное предприятие «Национальный центр обмена трафиком» создано согласно Указу Президента Республики Беларусь от 30 сентября 2010 года № 515 «О некоторых мерах по развитию сети передачи данных в Республике Беларусь» в целях развития в Республике Беларусь современной инфраструктуры сети передачи данных на основе внедрения новых информационно-коммуникационных технологий, привлечения в эту сферу отечественных и иностранных инвестиций, повышения качества и снижения стоимости оказываемых услуг передачи данных." ... и понимаем что весь трафик пропускается через эту пиринговую сеть. При этом любой трафик который пропускает через себя раутер, он может как минимум просматривать, параллельно сливать в любую другую систему и в конце концов изменять. Вот пример, или вот. Но там скорее всего стоят другие машины за очень много $$$$$. Тоесть, конечно же можно трафик изменять выборочно так что это будет очень трудно заметить на уровне сети. Update: Вот все тоже самое на англицком. А стоило это всё как минимум 2,5М$