Схема обхода государственной цензуры через крышевание доменов, из научной работы 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)


  1. Andrusha
    23.12.2016 21:41
    +5

    Самый надёжный — это домен Google, который не решилась заблокировать ещё ни одна страна мира (судя по всему, даже в КНДР поисковая система ещё не блокируется).
    Да ну, в Китае, как минимум, ничего из гугловских сервисов не работает.


    1. Rumlin
      24.12.2016 09:08

      Далеко ходить не надо — в Крыму этот софт тоже не будет работать.


      1. aryanatha
        24.12.2016 19:18
        +2

        в крыму работает почта гугла, поиск гула, примерно половина сервисов
        не работают: гугловый вебмастер, адсенс, андроидный маркет с программами и т.п. даже virustotal блокируется


        1. Rumlin
          26.12.2016 11:33
          +1

          Всё, что предназначено для коммерческого, профессионального использования. Например, developer.google.com firebase.google.com, всё что крутится на google app engine — кто создал сайт на этой платформе, часто не догадаются, что их ресурс не доступен в Крыму.


      1. equeim
        24.12.2016 19:48
        +4

        Только в Крыму блокировка со стороны Гугла.


        1. unxed
          25.12.2016 07:57

          Можно ещё через:

          Amazon CloudFront
          Microsoft Azure
          Akamai
          Fastly
          Level 3

          Или они все тоже в Крыму блокируются?


          1. 9uvwyuwo6pqt
            25.12.2016 08:10
            +2

            Level 3 — Брумфилд, Колорадо США, Fastly — San Francisco США, Akamai — Кэмбридж Массачусетс (США), Microsoft — США, Amazon — США Сиэтл. Да, им всем могут запретить работать в Крыму.


            1. shifttstas
              25.12.2016 11:29
              +1

              Так тут решение проблемы при блокировке со стороны государства а не со стороны сервиса


    1. dmitryredkin
      24.12.2016 11:41
      +1

      Про КНДР так может говорить только человек, не знающий, что такое кванмён


  1. unxed
    23.12.2016 23:20
    +1

    1. zelenin
      24.12.2016 03:58

      Похожий метод ретрансляторов применяется в других системах обхода государственной цензуры — Tor, Lantern и Psiphon.


  1. funca
    23.12.2016 23:37
    +1

    Зачем форсить слово «крышевание», как будто технология связана с каким-нибудь ОПС-криминалом? Хотите показать, что у редактора айтишного ресура есть проблемы с адаптацией айтишной терминологии для айтишной аудитории, используйте «единственное оружие школоты в интернетах и в жизни» (с), чО уж.


    1. yul
      24.12.2016 12:28

      Аналогия очень правильная и точная, а цензура в сети как раз очень похожа на какой-нибудь «ОПС-криминал».


      1. itconsulting
        24.12.2016 19:47
        +4

        Аналогия абсолютно неправильная от слова совсем. Использованный оригинальный термин «to front» действительно произошло из криминального сленга, но означает он не крышевание (racquet, т.е. вымогательство под видом предоставления «охраны»), а создание легальной «ширмы» для нелегального бизнеса (пиццерия служит «ширмой» для карточного клуба, казино — ширмой для отмывки денег и т.п.). В данном случае термин точно описывает суть трюка — показывать цензору один домен, а на самом деле делать запрос к другому.


  1. sleeply4cat
    24.12.2016 00:40
    +5

    По факту, речь идёт о банальном прокси через инфраструктуру гугла? Или я чего-то совсем не понял?


    1. vikarti
      24.12.2016 03:08

      Почти.
      Только с одной маленькой особенностью — с точки зрения DPI — это запрос на www.google.com (хотя реально это запрос на xyz.appspot.com, просто адрес хоста указывается в нескольких местах), разумеется так можно не на любой домен делать редирект.


      1. unxed
        25.12.2016 07:58

        А на какие можно, на какие нельзя?


        1. 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 января в России только юрлицо потому что НДС)


  1. wtigga
    24.12.2016 07:53
    +1

    Самый надёжный — это домен Google, который не решилась заблокировать ещё ни одна страна мира (судя по всему, даже в КНДР поисковая система ещё не блокируется).


    Ха-ха.


    1. servermen
      24.12.2016 17:56

      пользователи из Египта и ОАЭ

      Я не думаю, что в этих странах смогут отказаться от этой популярной поисковой системы.
      для этой цели можно использовать Amazon CloudFront, Azure, Fastly, CloudFlare, Akamai, Level 3 и тому подобные сервисы CDN

      У меня как раз Amazon AWS и не работает. Отсюда и Github не работает и проблемы с обновлениями и поиском плагинов в Brackets. Собственно, разбираясь с Brackets'ом, я и выявил этот факт. Проблему решил с помощью Psiphon'а.


  1. SBKarr
    24.12.2016 09:55

    А никого не беспокоит, что через сервера компаний, торгующих личными данными (ну формально, таргетированной рекламой) пакеты проходят в расшифрованном виде? Или там есть ещё один уровень шифрования, и знание содержимого HTTP-пакета ничего не даст?


    1. vsb
      24.12.2016 13:46
      +1

      В Signal используется E2E шифрование. Данные расшифровываются только на конечном устройстве.


    1. Dimly
      24.12.2016 19:18

      Если пускать траффик без доступа к контенту через сервера компаний торгующих личными данными — они очень скоро закроют эту лавочку. Это цена за условно бесплатные сервисы, за счет торговли данными они и содержат свои огромные серверные парки, совершенствуют алгоритмы, развивают технологии.

      Не совсем разбираюсь в вопросе, но разве нельзя само тело шифровать дополнительно, помимо SSL? Тогда они будут видеть реальный заголовок, не не контент.


      1. shifttstas
        25.12.2016 11:33

        Так компания получит деньги за пропущенный трафик, по сути это оплата хостинга


        1. Dimly
          25.12.2016 14:44

          Вот тут я вообще профан… а от кого компании получают деньги за траффик? И каков порядок цифр?
          Например я плачу местному провайдеру 20 долларов в месяц, и использую интернет в полный рост. Мой провайдер платит гуглу?


          1. Ziptar
            26.12.2016 10:26

            В данном случае OWS — разработчик Signal — платит Google.


  1. u9925
    24.12.2016 13:53
    +1

    Мне кажется это больше похоже на способ забанить гугл ап энжин в некоторых странах.


  1. General_Failure
    24.12.2016 16:27
    +2

    Пока читал эту статью, вылетело приложение на телефоне (через него и читал)
    Причём не просто вылетело, а плюс к тому потерялись все настройки, в т.ч. логин

    Товарищ майор, я понимаю, вы не хотите чтоб люди стали про способы обхода блокировок, но настойки-то зачем стёрли? Или в них были следы вашего входа на мой телефон?


  1. shonuff
    24.12.2016 19:17

    Свои зеркала на appspot довольно давно имеют заблокированные grani.ru и kinozal.tv.


    1. shonuff
      24.12.2016 21:05

      Причём у граней до этого было заблокировано больше 700 зеркал. Когда перешли appspot блокировки прекратились. Кинозал сделал зеркало на appspot ещё до блокировки и на нем до сих пор не заблокирована не одна раздача.


  1. 9uvwyuwo6pqt
    24.12.2016 20:38

    Приложение meduza тоже делает как-то так )


  1. Rulexec
    25.12.2016 12:26
    -1

    Сейчас Telegram очень интересный протокол связи использует (не менее интересно, что похоже он пока не задокументирован). При первом сообщении к серверу он генерирует 256-битный AES-ключ (32 байта), который записывает в заголовок первого пакета. И сразу же шифрует им же всё, кроме самого ключа.

    В итоге мы получаем сразу две плюшки:

    • Надёжнейшую контрольную сумму, если где-то поменялся бит — оно расшифруется в невалидную кашу
    • Невозможно определить протокол сервиса, ибо все наши данные это полнейший рандомный фарш


    1. hdfan2
      26.12.2016 07:42
      +1

      1) Это не контрольная сумма. Контрольная сумма должна давать возможность узнать, правильно ли был передан текст. Здесь этого нет. Кроме того, в большинстве схем шифрования, если поменялся бит, то в кашу превратится не весь текст, а только после этого испорченного бита (и, возможно, за несколько байт до него — в зависимости от размера блока).
      2) Поскольку ключ лежит тут же, это security by obscurity. Продержится очень недолго.


  1. therealman_tm
    25.12.2016 19:34
    +1

    Не случайно Касперская говорит, что цифровой суверенитет — это хорошо.


  1. redmanmale
    27.12.2016 16:58

    Полумеры. Надо переходить на Tox.