Блокировка «Телеграма»
В комментариях на вчерашний саркастический пост дали ссылку на одну технику обхода блокировок трёхлетней давности — «domain fronting», где-то её назвали по-русски «крышеванием доменов».
В интернете есть очень объёмное исследование суть которого надеюсь станет понятна из моей кратенькой выжимки.
Как наверняка многим известно, на одном айпи-адресе может быть несколько доменов. Так как всё устроено таким образом, что с сервером мы соединяемся используя айпи, внутри протокола прикладного уровня специальным заголовком мы указываем какой же домен мы имели ввиду.
Теперь следите за руками. Идём с копеечкой, к примеру, к «Гуглу», покупаем у них облачко и сажаем на него сервер с запрещёнкой. Сервер быстро банят, но мы не унываем, а соединяемся на «google.com», но внутри, в специальном заголовке указываем свой домен. И нас соединят с запрещённым сервером! Самое ценное, что снаружи будет полная видимость соединения с поисковиком.
В статье приводятся несколько облачных хостингов, где это работало, я проверил, у «Гугла» уже не воспроизводится. И вообще немного странно, что такой фокус срабатывал, по всей видимости, когда ты очень большой, так делать проще — инфраструктура получает запрос, потом единообразно его внутри перенаправляет куда надо.
Как бы то ни было, «Телеграм» сделал хитрее. Есть такая штука, называется пуш-уведомления. Через них работает масса полезного и смысл у них в том, что не смартфон всё время у всех спрашивает «нет ли чего новенького» — это очень накладно, особенно когда нужно опросить очень много разных сервисов, а сами сервисы присылают это новенькое по мере появления. В силу специфики работы, эту штуку не забанишь.
«Телеграм» приспособил пуш-уведомления для того, чтобы рассылать клиентам адрес по которому нужно соединяться с сервером. Банят один, рассылается другой. Выглядит очень устойчиво к блокировкам.
Хотя, конечно, ничего не мешает по этому же каналу получать адрес и сразу его копировать в чёрный список. А «Телеграму» в ответ присылать туда адреса каких-то важных для страны сервисов. В общем, извечная битва меча с щитом. А страдать будут все, пока одна из сторон не сдастся.
Отличное описание!
Несколько недель назад Сигнал в своей реализации domain fronting перешёл с домена Google App Engine на CDN крупнейшего в арабском мире онлайн-магазина Souq.com (AWS?). С комментарием «In preparation for Google shutting down domain fronting».
https://github.com/signalapp/Signal-Android/commit/a573ab7c7668360c3ab411627bbb23109ef9facc
Видимо, считают, что Египет и ОАЭ (для них включен domain fronting), не станут блокировать Souq.
Отмену «крышевания доменов» Гуглом уже связали с «Телеграмом»: https://www.gazeta.ru/tech/2018/04/19/11721871/google_prohibits.shtml
Амазону не понравилось, что Сигнал использует домен Souq.com: https://signal.org/blog/looking-back-on-the-front/