[{"data":1,"prerenderedAt":228},["ShallowReactive",2],{"article-80-hi":3,"related-80":59,"ArticleBody_HByYmZkgseA0Sn5f7EQkUyTlSakr3MkV1hnI86Dnk":223},{"id":4,"title":5,"slug":6,"content":7,"metaTitle":5,"metaDescription":8,"coverUrl":9,"views":10,"likes":11,"createdAt":12,"updatedAt":13,"category":14,"tags":23,"author":9,"tableOfContents":32,"locale":9,"translated":57,"indexable":58},80,"Domain fronting: как работал обход SNI-фильтрации и почему умер","domain-fronting-kak-rabotal-obhod-sni-filtracii-i-pochemu-umer","# Domain fronting: как работал обход SNI-фильтрации и почему умер\n\n**Вообще я микроразработчик, со мной можно связаться как угодно, я открыт ко всему**\n\n**Сторонний мой проект: [Zapret2UI.](https://github.com/Asterlike/zapret2UI)**\n\n---\n\nАпрель 2018-го. Роскомнадзор второй месяц пытается заблокировать Telegram, Telegram огрызается, перекидывая инфраструктуру на облака Google и Amazon. Роскомнадзор в ответ банит уже не сам Telegram, а целые подсети - 18 штук плюс россыпь отдельных адресов - принадлежащих Google и Amazon. Через несколько дней куски рунета, вообще не имеющие отношения к Telegram, начинают отваливаться: у кого-то ломается авторизация через сторонние сервисы, у кого-то - платёжные виджеты, у кого-то просто резко потухли облачные бэкенды.\n\nА ещё через пару недель сам Google, а следом и Amazon, закрывают лазейку, на которой всё это держалось - и Telegram тут не единственная причина, был повод пожёстче. Технология называлась **domain fronting**, и это тот редкий случай, когда история интереснее самого механизма.\n\n**Кому пригодится:** если любите разбираться, как на самом деле устроены обходные технологии, а не просто пользоваться готовым; если интересна история блокировок рунета; или если просто хочется понять термин, который то и дело всплывает в старых статьях про Tor и Signal.\n\n> Статья историческая. Технология не работает уже который год, ниже - разбор того, как это было устроено и почему заглохло, а не рабочий гайд. Обычно я пишу что-то более полезное, но тут скорее дискавери включили в 3 часа ночи и там что-то такое рассказывают\n\n---\n\n## Содержание\n\n1. [Сначала - что вообще такое SNI](#сначала-что-вообще-такое-sni)\n2. [Сама идея domain fronting](#сама-идея-domain-fronting)\n3. [Почему это вообще работало](#почему-это-вообще-работало)\n4. [Кто этим пользовался](#кто-этим-пользовался)\n5. [Российский эпизод: Telegram и бан половины Google с Amazon](#российский-эпизод-telegram-и-бан-половины-google-с-amazon)\n6. [Апрель 2018: как Google и Amazon всё закрыли](#апрель-2018-как-google-и-amazon-всё-закрыли)\n7. [Почему это не работает сейчас](#почему-это-не-работает-сейчас)\n8. [ECH: похожая цель, другой путь](#ech-похожая-цель-другой-путь)\n9. [Короткий итог](#короткий-итог)\n\n[Источники](#источники)\n\n---\n\n## Сначала - что вообще такое SNI\n\nБез этого дальше будет непонятно, откуда вообще растёт вся история.\n\nКогда браузер стучится на HTTPS-сайт, до того как соединение зашифруется, происходит рукопожатие TLS. И на одном IP-адресе сегодня почти всегда висит не один сайт, а сотни - серверу нужно заранее знать, какой именно сертификат показывать клиенту. Для этого клиент в самом начале рукопожатия, ещё **открытым текстом**, называет домен, к которому идёт - это поле и есть **SNI** (Server Name Indication).\n\nОтсюда и самый простой способ цензуры: не нужно разбирать зашифрованный трафик, достаточно читать одно это поле. Увидел в SNI запрещённый домен - оборвал соединение. Дёшево и почти всегда работает, потому что до появления шифрования самого SNI (об этом ниже, в разделе про ECH) поле реально шло в открытую, его видел кто угодно на пути пакета.\n\n---\n\n## Сама идея domain fronting\n\nА теперь фокус. TLS-рукопожатие с открытым SNI - только первый шаг. Дальше, уже **внутри** зашифрованного соединения, браузер отправляет обычный HTTP-запрос, и там тоже есть поле с именем домена - заголовок `Host`. По-хорошему оба поля, SNI и Host, должны совпадать. Но правило это не техническое, а просто вежливость - и до 2018 года крупные CDN вроде Google и Amazon его не проверяли.\n\nОтсюда и трюк: в SNI пишем один домен - безобидный, крупный, который цензор точно не станет блокировать (скажем, какой-нибудь известный поддомен самого Google). А в зашифрованном `Host`-заголовке, который цензор физически не видит, - настоящий адрес, тот самый заблокированный сервис. Цензор смотрит на SNI, видит «Google», пожимает плечами и пропускает пакет. А CDN на своей стороне читает уже `Host` и честно отдаёт контент того сервиса, который там реально указан.\n\nНазвание говорит само за себя: вы «фронтите» - прикрываетесь спереди - чужим, приличным доменом, хотя едете совсем в другое место.\n\n> Аналогия, чтобы прям на пальцах. Представьте посылку с двумя адресами: снаружи на коробке - адрес крупного, уважаемого склада, который таможня пропускает не глядя. А внутри, в сопроводительном листе, который таможня не вскрывает - настоящий адрес получателя. Курьерская служба свою же коробку доставляет туда, куда сказано внутри, а не туда, что написано снаружи.\n\n---\n\n## Почему это вообще работало\n\nКлючевое условие - у обоих доменов, фронтового и настоящего, должен быть **один и тот же провайдер**, который обслуживает тысячи разных клиентов на общем пуле IP-адресов и внутри себя маршрутизирует именно по `Host`, а не по SNI. Google App Engine, Amazon CloudFront, одно время Fastly, Azure - у всех крупных облаков за один IP пряталось множество совершенно разных сайтов и сервисов.\n\nЕсли ваш сервис уже был клиентом такого облака (или мог арендовать там хотя бы дешёвый инстанс), вы получали право «прятаться» за любым другим доменом этого же облака - хоть за самим `google.com`. Заблокировать такой фронт для цензора означало заблокировать вообще весь диапазон крупного облачного провайдера - а это уже задевает половину интернета, а не одного нарушителя.\n\n---\n\n## Кто этим пользовался\n\nСписок получился не маленький - около десятка технологий, так или иначе завязанных на приватность и обход блокировок:\n\n- **Tor** - плагин `meek`, один из pluggable transports, фронтил через Google App Engine, а после его закрытия переехал на Amazon CloudFront.\n- **Signal** - прятал трафик за доменами Google, а когда Google прикрыл лавочку, на короткое время перебрался на амазоновский `souq.com` (крупнейший на тот момент интернет-магазин на Ближнем Востоке, тоже хостившийся на AWS) - в отчаянной попытке продержаться ещё немного.\n- **Psiphon**, **Lantern**, исследовательский проект **Telex**, площадка **GreatFire.org** - все в разное время строились на той же идее.\n- И, как отдельная и самая заметная в рунете история - **Telegram** весной 2018-го, о ней ниже подробно.\n\n---\n\n## Российский эпизод: Telegram и бан половины Google с Amazon\n\n13 апреля 2018 года суд обязал заблокировать Telegram в России - после того как мессенджер отказался передавать ФСБ ключи шифрования. Telegram эту блокировку попросту игнорировал технически: перекинул часть инфраструктуры на Google Cloud и AWS, пользуясь ровно той же логикой domain fronting, чтобы прятаться за чужими, незаблокированными доменами этих облаков.\n\nРоскомнадзор ответил тяжёлой артиллерией. Глава ведомства Александр Жаров заявил о блокировке 18 подсетей и ещё россыпи отдельных IP-адресов, принадлежащих Google и Amazon - вместо точечного бана самого Telegram под нож попала облачная инфраструктура целыми кусками. Дальше - предсказуемо: под раздачу попадал любой сторонний сервис в России, который просто имел неосторожность работать через те же облака, Telegram тут был лишь поводом. Обвал был настолько заметным, что об этом писали далеко за пределами рунета.\n\nСам Telegram, к слову, заблокировать так толком и не вышло - он попросту перескакивал на новые адреса быстрее, чем Роскомнадзор успевал их банить.\n\n---\n\n## Апрель 2018: как Google и Amazon всё закрыли\n\nИ вот тут по времени всё сходится почти день в день. В середине апреля 2018-го Google отключает domain fronting у себя. Amazon следует буквально через пару недель, в конце апреля - начале мая.\n\nОфициальная причина шире, чем просто Telegram или цензура в целом, хотя коллатеральный ущерб от истории с Россией точно не добавил доверия к технологии. Основной публично называемый повод жёстче: domain fronting активно использовали и для откровенно вредоносных целей. Самый громкий пример - группировка **APT29**, которую связывают с российской разведкой (ФСБ), использовала эту же технику для скрытной связи вредоносного ПО со своими командными серверами. Получилась своеобразная историческая ирония: тот же приём, что помогал Telegram уворачиваться от блокировки внутри России, использовался (по независимым от этой истории данным) структурами, близкими к российским спецслужбам, для вредоносной инфраструктуры - и именно совокупность такого злоупотребления в итоге и закрыла лавочку для всех разом, включая инструменты правозащитной направленности вроде Signal и Tor.\n\nТехнически закрыли просто: обе площадки перестали слепо доверять `Host`-заголовку и начали сверять его с тем, что было в SNI на этапе рукопожатия. Не совпадает - соединение рвётся. Без этого совпадения весь фокус с «фронтом» рассыпался мгновенно.\n\n---\n\n## Почему это не работает сейчас\n\nС 2018 года ничего принципиально не изменилось - крупные облака как проверяли соответствие SNI и `Host`, так и проверяют. Технология не «стала сложнее», она просто перестала быть возможной архитектурно на всех сколько-нибудь крупных площадках. Изредка встречаются рассказы про мелкие или неправильно настроенные CDN, где по случайности такое всё ещё проходит - но это не рабочая стратегия, а разовая случайность, которая закроется при первом же обновлении конфигурации провайдера.\n\nЕсли где-то в старой статье встретите domain fronting как актуальный совет - смело считайте это историческим анахронизмом, а не рабочим рецептом.\n\n---\n\n## ECH: похожая цель, другой путь\n\nУ современных протоколов есть свой ответ на ту же исходную проблему - «цензор читает SNI открытым текстом» - но решает её принципиально иначе. **Encrypted Client Hello (ECH)** не пытается обмануть цензора чужим именем, а просто шифрует само поле SNI целиком, так что снаружи его вообще не видно - ни настоящего домена, ни поддельного.\n\nМеханизм там совсем другой: сервер заранее публикует в DNS специальный публичный ключ (через записи `HTTPS`/`SVCB`), клиент на этом ключе шифрует настоящее имя домена перед отправкой. Технология молодая, местами сама уже становится мишенью отдельной блокировки в некоторых странах, и это уже тема для отдельного разговора. Тут коротко: идейно ECH ближе всего к тому, что когда-то пытался решить domain fronting, просто более честным и устойчивым способом.\n\n---\n\n## Короткий итог\n\n- **Domain fronting** играл на разнице между двумя полями: открытым SNI (там - безобидный домен) и зашифрованным `Host`-заголовком (там - настоящий адрес), пока крупные CDN не сверяли одно с другим.\n- Работало это только пока фронтовый и настоящий домен сидели на одном облаке с общим пулом IP - Google App Engine, Amazon CloudFront и подобные.\n- Технологией пользовались Tor (`meek`), Signal, Psiphon, Lantern и другие - и Telegram весной 2018-го при попытке обойти блокировку в России.\n- Попытка Роскомнадзора забанить Telegram через блокировку подсетей Google и Amazon зацепила половину несвязанных сервисов рунета коллатералом.\n- В апреле-мае 2018-го Google и Amazon закрыли лазейку - официально из-за злоупотреблений вроде вредоносной инфраструктуры APT29, цензурный контекст был не единственной причиной.\n- С тех пор технология не работает на любой сколько-нибудь крупной площадке - это история, а не рабочий метод.\n\n---\n\n**Вообще я микроразработчик, со мной можно связаться как угодно, я открыт ко всему**\n\n**Сторонний мой проект: [Zapret2UI.](https://github.com/Asterlike/zapret2UI)**\n\n---\n\n## Источники\n\n- [Domain fronting - Wikipedia](https://en.wikipedia.org/wiki/Domain_fronting)\n- [Amazon Follows Google in Banning \"Domain Fronting\" - BleepingComputer](https://www.bleepingcomputer.com/news/cloud/amazon-follows-google-in-banning-domain-fronting/)\n- [Google and Amazon have turned off domain fronting - Slate](https://slate.com/technology/2018/05/google-and-amazon-have-turned-off-domain-fronting.html)\n- [Russia blocks Google, Amazon IP addresses in bid to ban Telegram - CNBC](https://www.cnbc.com/2018/04/18/russia-blocks-google-amazon-ip-addresses-in-bid-to-ban-telegram.html)\n- [Google, AWS IPs blocked by Russia in Telegram crackdown - The Register](https://www.theregister.com/2018/04/17/russia_blocks_google_aws_ip_addresses_to_get_telegram/)\n- [Telegram Block Gets Help from Google and Amazon - Bloomberg](https://www.bloomberg.com/opinion/articles/2018-05-03/telegram-block-gets-help-from-google-and-amazon)\n","Domain fronting: как работал обход SNI-фильтрации и почему умер Вообще я микроразработчик, со мной можно связаться как угодно, я открыт ко всему Сторонний мой п",null,63,1,"2026-08-07T20:39:32.556Z","2026-09-01T19:52:01.000Z",{"id":15,"value":16,"content":17,"sortOrder":18,"parent":19},24,"gaydy","Гайды",0,{"id":20,"value":21,"content":22,"sortOrder":18},23,"obshchee","Общее",[24,28],{"id":25,"value":26,"content":27},114,"bezopasnost","Безопасность",{"id":29,"value":30,"content":31},115,"rukovodstvo","Руководство",[33,34,37,39,41,43,45,47,49,51,53,55],{"level":11,"text":5},{"level":35,"text":36},2,"Содержание",{"level":35,"text":38},"Сначала - что вообще такое SNI",{"level":35,"text":40},"Сама идея domain fronting",{"level":35,"text":42},"Почему это вообще работало",{"level":35,"text":44},"Кто этим пользовался",{"level":35,"text":46},"Российский эпизод: Telegram и бан половины Google с Amazon",{"level":35,"text":48},"Апрель 2018: как Google и Amazon всё закрыли",{"level":35,"text":50},"Почему это не работает сейчас",{"level":35,"text":52},"ECH: похожая цель, другой путь",{"level":35,"text":54},"Короткий итог",{"level":35,"text":56},"Источники",false,true,[60,99,113,126,143,165,179,192,198,210],{"id":61,"title":62,"slug":63,"content":64,"description":64,"coverUrl":9,"views":65,"likes":18,"createdAt":66,"category":67,"tags":69,"author":96},89,"Что такое uptime VPS и почему 99,9% - это не 100%","chto-takoe-uptime-vps","Что такое uptime VPS и почему 99,9% - это не 100% == Когда выбирают VPS, одним из первых показателей, на который обращают внимание, становится uptime. Провайдер",92,"2026-08-17T14:22:17.023Z",{"id":15,"value":16,"content":17,"sortOrder":18,"parent":68},{"id":20,"value":21,"content":22,"sortOrder":18},[70,74,78,79,80,84,88,92],{"id":71,"value":72,"content":73},18,"gayd","гайд",{"id":75,"value":76,"content":77},19,"pravila","правила",{"id":25,"value":26,"content":27},{"id":29,"value":30,"content":31},{"id":81,"value":82,"content":83},116,"instrukciya","Инструкция",{"id":85,"value":86,"content":87},117,"tutorial","Туториал",{"id":89,"value":90,"content":91},119,"ustanovka","Установка",{"id":93,"value":94,"content":95},120,"sovety","Советы",{"id":97,"name":98,"slug":9},109,"serv.host",{"id":100,"title":101,"slug":102,"content":103,"description":103,"coverUrl":9,"views":104,"likes":11,"createdAt":105,"category":106,"tags":108,"author":9},86,"ИИ в технической работе: где помогает, а где нельзя доверять","ii-v-tehnicheskoy-rabote-gde-pomogaet-a-gde-nelzya-doveryat","ИИ в технической работе: где помогает, а где нельзя доверять Вообще я микроразработчик, со мной можно связаться как угодно, я открыт ко всему Сторонний мой прое",100,"2026-08-09T09:26:13.317Z",{"id":15,"value":16,"content":17,"sortOrder":18,"parent":107},{"id":20,"value":21,"content":22,"sortOrder":18},[109,110,111,112],{"id":71,"value":72,"content":73},{"id":75,"value":76,"content":77},{"id":29,"value":30,"content":31},{"id":93,"value":94,"content":95},{"id":114,"title":115,"slug":116,"content":117,"description":117,"coverUrl":9,"views":118,"likes":18,"createdAt":119,"category":120,"tags":122,"author":9},85,"Почему ИИ делает не то, что просили, и врёт слишком правдоподобно.","pochemu-ii-delaet-ne-to-chto-prosili-i-vret-slishkom-pravdopodobno","Почему ИИ делает не то, что просили, и врёт слишком правдоподобно. Вообще я микроразработчик, со мной можно связаться как угодно, я открыт ко всему Сторонний мо",97,"2026-08-09T08:51:02.943Z",{"id":15,"value":16,"content":17,"sortOrder":18,"parent":121},{"id":20,"value":21,"content":22,"sortOrder":18},[123,124,125],{"id":75,"value":76,"content":77},{"id":29,"value":30,"content":31},{"id":93,"value":94,"content":95},{"id":127,"title":128,"slug":129,"content":130,"description":130,"coverUrl":9,"views":61,"likes":18,"createdAt":131,"category":132,"tags":134,"author":9},84,"Почему пинг ничего не говорит: jitter, потери пакетов и bufferbloat","pochemu-ping-nichego-ne-govorit-jitter-poteri-paketov-i-bufferbloat","Почему пинг ничего не говорит: jitter, потери пакетов и bufferbloat Вообще я микроразработчик, со мной можно связаться как угодно, я открыт ко всему Сторонний м","2026-08-09T05:55:28.579Z",{"id":15,"value":16,"content":17,"sortOrder":18,"parent":133},{"id":20,"value":21,"content":22,"sortOrder":18},[135,136,140,141,142],{"id":75,"value":76,"content":77},{"id":137,"value":138,"content":139},113,"monitoring","Мониторинг",{"id":25,"value":26,"content":27},{"id":29,"value":30,"content":31},{"id":81,"value":82,"content":83},{"id":144,"title":145,"slug":146,"content":147,"description":147,"coverUrl":9,"views":148,"likes":11,"createdAt":149,"category":150,"tags":152,"author":9},83,"Свой мониторинг: Uptime Kuma или Prometheus с Grafana, и почему он обязан жить на отдельном сервере","svoy-monitoring-uptime-kuma-ili-prometheus-s-grafana-i-pochemu-on-obyazan-jit-na-otdelnom-servere","Свой мониторинг: Uptime Kuma или Prometheus с Grafana, и почему он обязан жить на отдельном сервере Вообще я микроразработчик, со мной можно связаться как угодн",93,"2026-08-09T05:54:48.670Z",{"id":15,"value":16,"content":17,"sortOrder":18,"parent":151},{"id":20,"value":21,"content":22,"sortOrder":18},[153,154,155,156,157,158,159,160,164],{"id":71,"value":72,"content":73},{"id":75,"value":76,"content":77},{"id":137,"value":138,"content":139},{"id":25,"value":26,"content":27},{"id":29,"value":30,"content":31},{"id":81,"value":82,"content":83},{"id":85,"value":86,"content":87},{"id":161,"value":162,"content":163},118,"nastroyka","Настройка",{"id":93,"value":94,"content":95},{"id":166,"title":167,"slug":168,"content":169,"description":169,"coverUrl":9,"views":170,"likes":11,"createdAt":171,"category":172,"tags":174,"author":9},82,"TLS-фингерпринтинг: как сервер узнаёт твой клиент (JA3/JA4, uTLS)","tls-fingerprinting-kak-server-uznaet-tvoy-klient-ja3ja4-utls","TLS-фингерпринтинг: как сервер узнаёт твой клиент (JA3/JA4, uTLS) Вообще я микроразработчик, со мной можно связаться как угодно, я открыт ко всему Сторонний мой",66,"2026-08-07T21:34:46.778Z",{"id":15,"value":16,"content":17,"sortOrder":18,"parent":173},{"id":20,"value":21,"content":22,"sortOrder":18},[175,176,177,178],{"id":71,"value":72,"content":73},{"id":75,"value":76,"content":77},{"id":29,"value":30,"content":31},{"id":93,"value":94,"content":95},{"id":180,"title":181,"slug":182,"content":183,"description":183,"coverUrl":9,"views":184,"likes":11,"createdAt":185,"category":186,"tags":188,"author":9},81,"Whois-приватность: кто на самом деле видит твои данные при регистрации домена","whois-privatnost-kto-na-samom-dele-vidit-tvoi-dannye-pri-registracii-domena","Whois-приватность: кто на самом деле видит твои данные при регистрации домена Вообще я микроразработчик, со мной можно связаться как угодно, я открыт ко всему С",59,"2026-08-07T21:03:10.184Z",{"id":15,"value":16,"content":17,"sortOrder":18,"parent":187},{"id":20,"value":21,"content":22,"sortOrder":18},[189,190,191],{"id":75,"value":76,"content":77},{"id":25,"value":26,"content":27},{"id":29,"value":30,"content":31},{"id":4,"title":5,"slug":6,"content":8,"description":8,"coverUrl":9,"views":10,"likes":11,"createdAt":12,"category":193,"tags":195,"author":9},{"id":15,"value":16,"content":17,"sortOrder":18,"parent":194},{"id":20,"value":21,"content":22,"sortOrder":18},[196,197],{"id":25,"value":26,"content":27},{"id":29,"value":30,"content":31},{"id":199,"title":200,"slug":201,"content":202,"description":202,"coverUrl":9,"views":203,"likes":11,"createdAt":204,"category":205,"tags":207,"author":9},79,"Почему IP попадают в блэклисты и как получить «чистый» IP","pochemu-ip-popadayut-v-bleklisty-i-kak-poluchit-chistyy-ip","Почему IP попадают в блэклисты - и как получить «чистый» IP Вообще я микроразработчик, со мной можно связаться как угодно, я открыт ко всему Сторонний мой проек",62,"2026-08-07T20:38:40.819Z",{"id":15,"value":16,"content":17,"sortOrder":18,"parent":206},{"id":20,"value":21,"content":22,"sortOrder":18},[208,209],{"id":25,"value":26,"content":27},{"id":93,"value":94,"content":95},{"id":211,"title":212,"slug":213,"content":214,"description":214,"coverUrl":9,"views":203,"likes":11,"createdAt":215,"category":216,"tags":218,"author":9},78,"Как находят настоящий IP сайта за Cloudflare и как его спрятать по-настоящему","kak-nahodyat-nastoyashchiy-ip-sayta-za-cloudflare-i-kak-ego-spryatat-po-nastoyashchemu","Как находят настоящий IP сайта за Cloudflare - и как его спрятать по-настоящему Вообще я микроразработчик, со мной можно связаться как угодно, я открыт ко всему","2026-08-07T20:37:51.437Z",{"id":15,"value":16,"content":17,"sortOrder":18,"parent":217},{"id":20,"value":21,"content":22,"sortOrder":18},[219,220,221,222],{"id":25,"value":26,"content":27},{"id":29,"value":30,"content":31},{"id":81,"value":82,"content":83},{"id":93,"value":94,"content":95},["Island",224],{"key":225,"result":226},"ArticleBody_HByYmZkgseA0Sn5f7EQkUyTlSakr3MkV1hnI86Dnk",{"head":227},{},1788480055384]