![](https://habrastorage.org/files/964/0f0/cda/9640f0cda01347d09ea9e435204de5bd.png)
Схема обхода государственной цензуры через крышевание доменов, из научной работы 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.
![](https://habrastorage.org/files/a44/855/978/a4485597876646bbb10f4fe327894d55.png)
Схема обхода государственной цензуры через крышевание доменов, из научной работы 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.