[{"data":1,"prerenderedAt":229},["ShallowReactive",2],{"article-80-en":3,"related-80":60,"ArticleBody_aY8ph6NWU6GtW2ghSRz9hVzfwtDXiYzEx4nCVJ8":224},{"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":57,"translated":58,"indexable":59},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,62,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},"Источники","en",false,true,[61,100,114,127,144,166,180,193,200,211],{"id":62,"title":63,"slug":64,"content":65,"description":65,"coverUrl":9,"views":66,"likes":18,"createdAt":67,"category":68,"tags":70,"author":97},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":69},{"id":20,"value":21,"content":22,"sortOrder":18},[71,75,79,80,81,85,89,93],{"id":72,"value":73,"content":74},18,"gayd","гайд",{"id":76,"value":77,"content":78},19,"pravila","правила",{"id":25,"value":26,"content":27},{"id":29,"value":30,"content":31},{"id":82,"value":83,"content":84},116,"instrukciya","Инструкция",{"id":86,"value":87,"content":88},117,"tutorial","Туториал",{"id":90,"value":91,"content":92},119,"ustanovka","Установка",{"id":94,"value":95,"content":96},120,"sovety","Советы",{"id":98,"name":99,"slug":9},109,"serv.host",{"id":101,"title":102,"slug":103,"content":104,"description":104,"coverUrl":9,"views":105,"likes":11,"createdAt":106,"category":107,"tags":109,"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":108},{"id":20,"value":21,"content":22,"sortOrder":18},[110,111,112,113],{"id":72,"value":73,"content":74},{"id":76,"value":77,"content":78},{"id":29,"value":30,"content":31},{"id":94,"value":95,"content":96},{"id":115,"title":116,"slug":117,"content":118,"description":118,"coverUrl":9,"views":119,"likes":18,"createdAt":120,"category":121,"tags":123,"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":122},{"id":20,"value":21,"content":22,"sortOrder":18},[124,125,126],{"id":76,"value":77,"content":78},{"id":29,"value":30,"content":31},{"id":94,"value":95,"content":96},{"id":128,"title":129,"slug":130,"content":131,"description":131,"coverUrl":9,"views":62,"likes":18,"createdAt":132,"category":133,"tags":135,"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":134},{"id":20,"value":21,"content":22,"sortOrder":18},[136,137,141,142,143],{"id":76,"value":77,"content":78},{"id":138,"value":139,"content":140},113,"monitoring","Мониторинг",{"id":25,"value":26,"content":27},{"id":29,"value":30,"content":31},{"id":82,"value":83,"content":84},{"id":145,"title":146,"slug":147,"content":148,"description":148,"coverUrl":9,"views":149,"likes":11,"createdAt":150,"category":151,"tags":153,"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":152},{"id":20,"value":21,"content":22,"sortOrder":18},[154,155,156,157,158,159,160,161,165],{"id":72,"value":73,"content":74},{"id":76,"value":77,"content":78},{"id":138,"value":139,"content":140},{"id":25,"value":26,"content":27},{"id":29,"value":30,"content":31},{"id":82,"value":83,"content":84},{"id":86,"value":87,"content":88},{"id":162,"value":163,"content":164},118,"nastroyka","Настройка",{"id":94,"value":95,"content":96},{"id":167,"title":168,"slug":169,"content":170,"description":170,"coverUrl":9,"views":171,"likes":11,"createdAt":172,"category":173,"tags":175,"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":174},{"id":20,"value":21,"content":22,"sortOrder":18},[176,177,178,179],{"id":72,"value":73,"content":74},{"id":76,"value":77,"content":78},{"id":29,"value":30,"content":31},{"id":94,"value":95,"content":96},{"id":181,"title":182,"slug":183,"content":184,"description":184,"coverUrl":9,"views":185,"likes":11,"createdAt":186,"category":187,"tags":189,"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":188},{"id":20,"value":21,"content":22,"sortOrder":18},[190,191,192],{"id":76,"value":77,"content":78},{"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":194,"likes":11,"createdAt":12,"category":195,"tags":197,"author":9},63,{"id":15,"value":16,"content":17,"sortOrder":18,"parent":196},{"id":20,"value":21,"content":22,"sortOrder":18},[198,199],{"id":25,"value":26,"content":27},{"id":29,"value":30,"content":31},{"id":201,"title":202,"slug":203,"content":204,"description":204,"coverUrl":9,"views":10,"likes":11,"createdAt":205,"category":206,"tags":208,"author":9},79,"Почему IP попадают в блэклисты и как получить «чистый» IP","pochemu-ip-popadayut-v-bleklisty-i-kak-poluchit-chistyy-ip","Почему IP попадают в блэклисты - и как получить «чистый» IP Вообще я микроразработчик, со мной можно связаться как угодно, я открыт ко всему Сторонний мой проек","2026-08-07T20:38:40.819Z",{"id":15,"value":16,"content":17,"sortOrder":18,"parent":207},{"id":20,"value":21,"content":22,"sortOrder":18},[209,210],{"id":25,"value":26,"content":27},{"id":94,"value":95,"content":96},{"id":212,"title":213,"slug":214,"content":215,"description":215,"coverUrl":9,"views":10,"likes":11,"createdAt":216,"category":217,"tags":219,"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":218},{"id":20,"value":21,"content":22,"sortOrder":18},[220,221,222,223],{"id":25,"value":26,"content":27},{"id":29,"value":30,"content":31},{"id":82,"value":83,"content":84},{"id":94,"value":95,"content":96},["Island",225],{"key":226,"result":227},"ArticleBody_aY8ph6NWU6GtW2ghSRz9hVzfwtDXiYzEx4nCVJ8",{"head":228},{},1788480054711]