- PVSM.RU - https://www.pvsm.ru -
Несмотря на желтый заголовок, дальше будет не желтая статья. Всех нас (я надеюсь именно здесь я наконец-таки смогу сказать от всего сообщества) уже достали действия Роскомнадзора. А так же его постоянное появление в рекомендованном на хабре. Поэтому эта новость вам понравится. Хоть что-то важное. Новость [1] кстати еще от декабря 2018.
Если в двух словах, сейчас основой эффективный способ DPI это проверка поля SNI в пакете. Чтобы не повторяться, я отправлю вас на статью [2] ValdikSS [3]. Не то, чтобы там вся информация, но основные моменты изложены верно. Добавлю только, что теперь оборудование оператора научилось вставлять https TLS 1.2 сертификат, который не проходит валидацию в браузере и имеет общее имя MGTS. (Даже не mgts.ru, ха-ха, то есть это даже не домен, не то, чтобы у них могло получиться создать его, со всеми этими Certificate Transparency [4], который создал Google.) Кроме того сейчас уже не понятно, заблокирован ли ip полностью. Т.е. все порты, например, как ping.pe/www.7-zip.org [5]. или вам отвечает DPI. Тут решение у сайтов только одно: постоянно менять ip адрес.
Rutracker имеет всего лишь три официальных зеркала (хотя можно создать свое, персональное, нужен лишь свой домен): rutracker.net [6] rutracker.nl [7] и rutrackerripnext.onion [8]. Все они имеют определенное отношение к Cloudflare (авторитативный DNS сервер от cloudflare или tor, а у rutracker.nl и ip от cloudflare bgp.he.net/ip/104.28.16.16 [9]):
root@kali:~# dig @8.8.8.8 IN SOA rutracker.nl && dig @8.8.8.8 IN A rutracker.nl
;; ANSWER SECTION:
rutracker.nl. 3599 IN SOA buck.ns.cloudflare.com. dns.cloudflare.com. 2031873434 10000 2400 604800 3600
;; ANSWER SECTION:
rutracker.nl. 231 IN A 104.28.17.16
rutracker.nl. 231 IN A 104.28.16.16
;; Query time: 22 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Sep 23 16:46:24 MSK 2019
;; MSG SIZE rcvd: 73
Тем, кто читал статьи habr.com/ru/post/424857 [10] habr.com/ru/company/globalsign/blog/427563 [11] уже все понятно. Кстати, если у вас предубеждение перед cloudflare… Там вся идея была в том, что 35% все доменов в мире держат зону на авторитативных серверах cloudflare (en. wiki), кроме того какой-то процент еще и хостят там сервера. И если сразу везде активировать eSNI, то это будет существенно… Что и было сделано.
Но для тех, кто не читал: eSNI (encrypted Server Name Indication) по умолчанию работает на Cloudflare
root@kali:~# dig @8.8.8.8 IN TXT _esni.rutracker.nl
; <<>> DiG 9.11.5-P4-5.1+b1-Debian <<>> @8.8.8.8 IN TXT _esni.rutracker.nl
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33017
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;_esni.rutracker.nl. IN TXT
;; ANSWER SECTION:
_esni.rutracker.nl. 3599 IN TXT "/wF+a004ACQAHQAgtyygbWc/bwQo5RPSszvuzK+0BIucwJhOLHZ0iCqrCjsAAhMBAQQAAAAAXYTNUAAAAABdjLZQAAA="
;; Query time: 42 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Sep 23 16:54:07 MSK 2019
;; MSG SIZE rcvd: 152
Итак, как заставить его работать? Во-первых, работает eSNI только в Mozilla Firefox. В Chromium (а значит и Chrome) поддержка будет добавлена не скоро, да и работать оно не будет, поскольку Google будет использовать [14] IN ESNI запись, которая будет видимо поддерживаться только Google (ни cloudflare, ни Firefox это не поддерживают). Можете перейти по ссылкам и высказать свое фе гуглу и IETF. Нужен лишь google и/или github аккаунт.
Кратенькая инструкция: в firefox в about:config меняете network.security.esni.enabled на true. Для работы eSNI желательна работа (на самом деле она не нужна, но есть проблема: в windows сложно сделать такой запрос (IN TXT) асинхронно bugzilla.mozilla.org/show_bug.cgi?id=1500289 [15]) DNS over HTTPS, так как публичный ключ для шифрования sni берётся с поддомена _esni.example.com IN TXT, так что желателен зашифрованный транспорт dns, чтобы большое око Саурона провайдера не увидело этого. Для этого network.trr.mode выставляете в 2 (или 3, чтобы был только TRR), а network.trr.uri выставляете в mozilla.cloudflare-dns.com/dns-query [16]
Можно еще прописать network.trr.bootstrapAddress, иначе resolve самого mozilla.cloudflare-dns.com [17] будет происходить через системный resolver и лишь дальше установлена DoH сессия с DNS, что вызывает проблемы, если сразу запустить Firefox (Можно поставить 1.0.0.1, 1.1.1.1 2606:4700:4700::1111 или 2606:4700:4700::1001 или что там будет у dig mozilla.cloudflare-dns.com [18]. (А там не обязательно эти адреса, но и любые из динамического облака cloudflare.)) Подробнее про trr resolver: github.com/bagder/TRRprefs [19]
Дальше нужно проверить, что все заработало)) Заходите на cloudflare.com/ssl/encrypted-sni [20] и нажимаете на Check My Browser
Вот после этого заходите, например, на rutracker.nl [21], заблокированный РКН (2-6-20/ 2019-04-25-699-АИ от 29.05.2019 от налоговой службы). И… все работает! Небольшой бонус: реализация для Android ровно такая же, так что там тоже всё работает. К сожалению нативная работа DNS over TLS в Android 9 не дает насладится eSNI, нужен TRR внутри браузера. Увы и ах. Опять таки высказываем свое фе, не стесняемся. bugzilla.mozilla.org/show_bug.cgi?id=1542754 [22]
Будем надеяться, что это уничтожит в ближайшее время DPI и Нумерационному совету (NRO [23]) RIR не придется выносить ноту протеста РФ. Ничего хорошего не будет, если они попробуют отозвать Автономные Системы у крупных операторов РФ, как это недавно обсуждалось.
Также слудует сказать, что отсутствующее поле SNI может [24] заставить некторые DPI сбоить и т.д. Впрочем на МГТС это работает.
Автор: Balling
Источник [25]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/dns-2/331012
Ссылки в тексте:
[1] Новость : https://rutracker.nl/forum/viewtopic.php?t=5633157
[2] статью: https://habr.com/ru/post/335436/
[3] ValdikSS: https://habr.com/ru/users/valdikss/
[4] Certificate Transparency: https://habr.com/ru/post/269729/
[5] ping.pe/www.7-zip.org: http://ping.pe/www.7-zip.org
[6] rutracker.net: https://rutracker.net/
[7] rutracker.nl: https://rutracker.nl/
[8] rutrackerripnext.onion: http://rutrackerripnext.onion/
[9] bgp.he.net/ip/104.28.16.16: https://bgp.he.net/ip/104.28.16.16
[10] habr.com/ru/post/424857: https://habr.com/ru/post/424857/
[11] habr.com/ru/company/globalsign/blog/427563: https://habr.com/ru/company/globalsign/blog/427563/
[12] хостинге: https://www.reg.ru/?rlink=reflink-717
[13] github.com/tlswg/draft-ietf-tls-esni/pull/144: https://github.com/tlswg/draft-ietf-tls-esni/pull/144
[14] будет использовать: https://bugs.chromium.org/p/boringssl/issues/detail?id=275#c_ts1568219378
[15] bugzilla.mozilla.org/show_bug.cgi?id=1500289: https://bugzilla.mozilla.org/show_bug.cgi?id=1500289
[16] mozilla.cloudflare-dns.com/dns-query: https://mozilla.cloudflare-dns.com/dns-query
[17] mozilla.cloudflare-dns.com: https://mozilla.cloudflare-dns.com
[18] mozilla.cloudflare-dns.com: http://mozilla.cloudflare-dns.com
[19] github.com/bagder/TRRprefs: https://github.com/bagder/TRRprefs
[20] cloudflare.com/ssl/encrypted-sni: https://cloudflare.com/ssl/encrypted-sni/
[21] rutracker.nl: https://rutracker.nl
[22] bugzilla.mozilla.org/show_bug.cgi?id=1542754: https://bugzilla.mozilla.org/show_bug.cgi?id=1542754
[23] NRO: https://en.wikipedia.org/wiki/Regional_Internet_registry#Number_Resource_Organization
[24] может: https://github.com/net4people/bbs/issues/10#issuecomment-532035677
[25] Источник: https://habr.com/ru/post/468603/?utm_source=habrahabr&utm_medium=rss&utm_campaign=468603
Нажмите здесь для печати.