Схема обхода государственной цензуры через крышевание доменов, из научной работы 2015 года
С 21 декабря 2016 года криптомессенджер Signal от Open Whisper Systems стал использовать оригинальный метод обхода государственной цензуры, из-за которой от сети оказались отключены пользователи из Египта и ОАЭ. Метод называется «крышевание доменов» (domain fronting) и подробно описан в 2015 году в научной работе исследователей из университетов Калифорнии, Беркли и Принстона.
Цензор видит только домены, указанные в DNS-запросе и в поле TLS SNI, но он не видит HTTP заголовок Host, в котором система и прячет реальное доменное имя для отправки трафика. Реальное доменное имя надёжно спрятано с помощью шифрования HTTPS.
С недавних пор правительства Египта и ОАЭ пытаются отключить в странах Signal, блокируя серверы для списка контактов. Теперь, когда пользователи из этих стран отправляют сообщение через Signal, оно проходит через рефлектор (простой скрипт на App Engine) и внешний прокси, но при этом выглядит как обычный HTTPS-запрос к www.google.com. Таким образом, чтобы заблокировать Signal, этим государствам придётся блокировать домены google.com, gmail.com, googleapis.com и многие другие домены, которые разрешено использовать в качестве «крыши» для приложения на Google App Engine. Похожий метод ретрансляторов применяется в других системах обхода государственной цензуры — Tor, Lantern и Psiphon.
Как понятно из иллюстрации внизу, схема предусматривает использование промежуточной «крыши» — это сервер фронтенда на промежуточном веб-сервисе. Для такой «крыши» используется легальный посторонний домен. Для этого подходят домены различных облачных сервисов, которые пропускают трафик. Самый надёжный — это домен Google.
Схема обхода государственной цензуры через крышевание доменов, из научной работы 2015 года
Кроме Google App Engine, для этой цели можно использовать Amazon CloudFront, Azure, Fastly, CloudFlare, Akamai, Level 3 и тому подобные сервисы CDN. По стоимости трафика предпочтительно выглядит и Azure, и Google App Engine, но стоимость трафика зависит от ряда условий, в том числе объёма трафика, количества инстансов, динамически поднятых для обслуживания трафика, количества часов их работы, района расположения дата-центра (такие тарифы в Amazon CloudFront) и некоторых других параметров. Отдельные CDN вроде Akamai вообще не публикуют тарифы для пропускаемого трафика, так что их приходится узнавать у реселлеров.
В целом, тарифы у разных «крыш» начинаются примерно от $0,08 за гигабайт. Для сервиса передачи текстовых сообщений, даже для бесплатного сервиса, восемь центов — не очень большие деньги. Даже великий Tor, который пропускает большое количество трафика, платит за «крышу» всего $2043 в месяц. Это цифра за май 2015 года, в тот месяц через эти каналы прошло 11 666 ГБ трафика. Tor использует Google App Engine, Amazon CloudFront и (предположительно) Microsoft Azure.
Приходится немного жертвовать скоростью передачи сообщений. Немного возрастает пинг и скорость передачи данных, но здесь издержки не такие уж большие. При передаче текстовых сообщений скоростью передачи данных вообще спокойно можно пожертвовать.
В общем, Signal подаёт очень хороший пример другим мобильным приложениям и сервисам, которые хотят обезопасить себя от государственной цензуры, а заодно дополнительно защитить секретность частной переписки своих пользователей. Вполне вероятно, что с такой проблемой ещё столкнутся многие приложения, поскольку правительства разных стран мира проявляют всё больший интерес к частной переписки граждан через интернет-сервисы и мобильные приложения, особенно если там применяется стойкая криптография.
Как показывает опыт Signal, когда государство теряет возможность прослушивать трафик, оно пытается его блокировать.
Ситуация особенно опасна для стран с небольшим количеством интернет-провайдеров, которые контролируют внешние каналы связи. В случае необходимости они могут вообще временно отключить связь с внешнем миром и оставить пользователям доступ только к внутреннему сегменту интернета. С этой позиции цель Signal — сделать блокировку сервиса возможной только в том случае, если государство полностью перекроет гражданам доступ к интернету.
После обновления мобильного приложения под Android пользователи Signal могут беспрепятственно пользоваться сервисом, спокойно путешествия даже по странам с действующей государственной цензурой. Теперь не требуется использовать услуги VPN. Соответствующая версия приложения Signal для iOS пока находится в бета-версии и тоже скоро выйдет в официальном релизе. В случае необходимости можно подписаться на бета-канал и получить бета-версию уже сейчас, отправив письмо на адрес
support@whispersystems.org
.Специалисты по безопасности называют Signal одним из самых безопасных интернет-мессенджеров. Его открытый и проверенный протокол end-to-end шифрования используется и другими популярными мессенджерами, в том числе Facebook Messenger и WhatsApp.
Комментарии (35)
unxed
23.12.2016 23:20+1Tor так давно может.
zelenin
24.12.2016 03:58Похожий метод ретрансляторов применяется в других системах обхода государственной цензуры — Tor, Lantern и Psiphon.
funca
23.12.2016 23:37+1Зачем форсить слово «крышевание», как будто технология связана с каким-нибудь ОПС-криминалом? Хотите показать, что у редактора айтишного ресура есть проблемы с адаптацией айтишной терминологии для айтишной аудитории, используйте «единственное оружие школоты в интернетах и в жизни» (с), чО уж.
yul
24.12.2016 12:28Аналогия очень правильная и точная, а цензура в сети как раз очень похожа на какой-нибудь «ОПС-криминал».
itconsulting
24.12.2016 19:47+4Аналогия абсолютно неправильная от слова совсем. Использованный оригинальный термин «to front» действительно произошло из криминального сленга, но означает он не крышевание (racquet, т.е. вымогательство под видом предоставления «охраны»), а создание легальной «ширмы» для нелегального бизнеса (пиццерия служит «ширмой» для карточного клуба, казино — ширмой для отмывки денег и т.п.). В данном случае термин точно описывает суть трюка — показывать цензору один домен, а на самом деле делать запрос к другому.
sleeply4cat
24.12.2016 00:40+5По факту, речь идёт о банальном прокси через инфраструктуру гугла? Или я чего-то совсем не понял?
vikarti
24.12.2016 03:08Почти.
Только с одной маленькой особенностью — с точки зрения DPI — это запрос на www.google.com (хотя реально это запрос на xyz.appspot.com, просто адрес хоста указывается в нескольких местах), разумеется так можно не на любой домен делать редирект.unxed
25.12.2016 07:58А на какие можно, на какие нельзя?
vikarti
25.12.2016 09:44+2в случае с гуглом — на те что гугл разрешит разумеется.
смотрим http://www.pcworld.idg.com.au/article/611972/encrypted-messaging-app-signal-uses-google-bypass-censorship/
Their research revealed that many cloud service providers and content delivery networks allow HTTP host header redirection, including Google, Amazon Cloudfront, Amazon S3, Azure, CloudFlare, Fastly and Akamai. However, most of them only allow it for domains that belong to their customers, so one must become a customer in order to use this technique.
Google, for example, allows redirection through the HTTP host header from google.com to appspot.com. This domain is used by Google App Engine, a service that allows users to create and host web applications on Google's cloud platform.
This means that someone can create a simple reflector script, host it on Google App Engine and then use the HTTP host header trick to hide its location from censors. Someone monitoring user traffic will only see HTTPS requests going to www.google.com, but those requests will reach the reflector script on Google App Engine and will be forwarded to a hidden destination.
А на App Engine кто угодно может создать (правда есть у меня подозрение что легально с 1 января в России только юрлицо потому что НДС)
wtigga
24.12.2016 07:53+1Самый надёжный — это домен Google, который не решилась заблокировать ещё ни одна страна мира (судя по всему, даже в КНДР поисковая система ещё не блокируется).
Ха-ха.servermen
24.12.2016 17:56пользователи из Египта и ОАЭ
Я не думаю, что в этих странах смогут отказаться от этой популярной поисковой системы.
для этой цели можно использовать Amazon CloudFront, Azure, Fastly, CloudFlare, Akamai, Level 3 и тому подобные сервисы CDN
У меня как раз Amazon AWS и не работает. Отсюда и Github не работает и проблемы с обновлениями и поиском плагинов в Brackets. Собственно, разбираясь с Brackets'ом, я и выявил этот факт. Проблему решил с помощью Psiphon'а.
SBKarr
24.12.2016 09:55А никого не беспокоит, что через сервера компаний, торгующих личными данными (ну формально, таргетированной рекламой) пакеты проходят в расшифрованном виде? Или там есть ещё один уровень шифрования, и знание содержимого HTTP-пакета ничего не даст?
vsb
24.12.2016 13:46+1В Signal используется E2E шифрование. Данные расшифровываются только на конечном устройстве.
Dimly
24.12.2016 19:18Если пускать траффик без доступа к контенту через сервера компаний торгующих личными данными — они очень скоро закроют эту лавочку. Это цена за условно бесплатные сервисы, за счет торговли данными они и содержат свои огромные серверные парки, совершенствуют алгоритмы, развивают технологии.
Не совсем разбираюсь в вопросе, но разве нельзя само тело шифровать дополнительно, помимо SSL? Тогда они будут видеть реальный заголовок, не не контент.shifttstas
25.12.2016 11:33Так компания получит деньги за пропущенный трафик, по сути это оплата хостинга
Dimly
25.12.2016 14:44Вот тут я вообще профан… а от кого компании получают деньги за траффик? И каков порядок цифр?
Например я плачу местному провайдеру 20 долларов в месяц, и использую интернет в полный рост. Мой провайдер платит гуглу?
u9925
24.12.2016 13:53+1Мне кажется это больше похоже на способ забанить гугл ап энжин в некоторых странах.
General_Failure
24.12.2016 16:27+2Пока читал эту статью, вылетело приложение на телефоне (через него и читал)
Причём не просто вылетело, а плюс к тому потерялись все настройки, в т.ч. логин
Товарищ майор, я понимаю, вы не хотите чтоб люди стали про способы обхода блокировок, но настойки-то зачем стёрли? Или в них были следы вашего входа на мой телефон?
shonuff
24.12.2016 19:17Свои зеркала на appspot довольно давно имеют заблокированные grani.ru и kinozal.tv.
shonuff
24.12.2016 21:05Причём у граней до этого было заблокировано больше 700 зеркал. Когда перешли appspot блокировки прекратились. Кинозал сделал зеркало на appspot ещё до блокировки и на нем до сих пор не заблокирована не одна раздача.
Rulexec
25.12.2016 12:26-1Сейчас Telegram очень интересный протокол связи использует (не менее интересно, что похоже он пока не задокументирован). При первом сообщении к серверу он генерирует 256-битный AES-ключ (32 байта), который записывает в заголовок первого пакета. И сразу же шифрует им же всё, кроме самого ключа.
В итоге мы получаем сразу две плюшки:
- Надёжнейшую контрольную сумму, если где-то поменялся бит — оно расшифруется в невалидную кашу
- Невозможно определить протокол сервиса, ибо все наши данные это полнейший рандомный фарш
hdfan2
26.12.2016 07:42+11) Это не контрольная сумма. Контрольная сумма должна давать возможность узнать, правильно ли был передан текст. Здесь этого нет. Кроме того, в большинстве схем шифрования, если поменялся бит, то в кашу превратится не весь текст, а только после этого испорченного бита (и, возможно, за несколько байт до него — в зависимости от размера блока).
2) Поскольку ключ лежит тут же, это security by obscurity. Продержится очень недолго.
therealman_tm
25.12.2016 19:34+1Не случайно Касперская говорит, что цифровой суверенитет — это хорошо.
Andrusha
Rumlin
Далеко ходить не надо — в Крыму этот софт тоже не будет работать.
aryanatha
в крыму работает почта гугла, поиск гула, примерно половина сервисов
не работают: гугловый вебмастер, адсенс, андроидный маркет с программами и т.п. даже virustotal блокируется
Rumlin
Всё, что предназначено для коммерческого, профессионального использования. Например, developer.google.com firebase.google.com, всё что крутится на google app engine — кто создал сайт на этой платформе, часто не догадаются, что их ресурс не доступен в Крыму.
equeim
Только в Крыму блокировка со стороны Гугла.
unxed
Можно ещё через:
Amazon CloudFront
Microsoft Azure
Akamai
Fastly
Level 3
Или они все тоже в Крыму блокируются?
9uvwyuwo6pqt
Level 3 — Брумфилд, Колорадо США, Fastly — San Francisco США, Akamai — Кэмбридж Массачусетс (США), Microsoft — США, Amazon — США Сиэтл. Да, им всем могут запретить работать в Крыму.
shifttstas
Так тут решение проблемы при блокировке со стороны государства а не со стороны сервиса
dmitryredkin
Про КНДР так может говорить только человек, не знающий, что такое кванмён