Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Блокировка «Телеграма»

«██████» показывает интернет, который мы заслужили. В битве Давида и Голиафа страдает вся страна

В комментариях на вчерашний саркастический пост дали ссылку на одну технику обхода блокировок трёхлетней давности — «domain fronting», где-то её назвали по-русски «крышеванием доменов».

В интернете есть очень объёмное исследование суть которого надеюсь станет понятна из моей кратенькой выжимки.

Как наверняка многим известно, на одном айпи-адресе может быть несколько доменов. Так как всё устроено таким образом, что с сервером мы соединяемся используя айпи, внутри протокола прикладного уровня специальным заголовком мы указываем какой же домен мы имели ввиду.

Теперь следите за руками. Идём с копеечкой, к примеру, к «Гуглу», покупаем у них облачко и сажаем на него сервер с запрещёнкой. Сервер быстро банят, но мы не унываем, а соединяемся на «google.com», но внутри, в специальном заголовке указываем свой домен. И нас соединят с запрещённым сервером! Самое ценное, что снаружи будет полная видимость соединения с поисковиком.

В статье приводятся несколько облачных хостингов, где это работало, я проверил, у «Гугла» уже не воспроизводится. И вообще немного странно, что такой фокус срабатывал, по всей видимости, когда ты очень большой, так делать проще — инфраструктура получает запрос, потом единообразно его внутри перенаправляет куда надо.

Как бы то ни было, «Телеграм» сделал хитрее. Есть такая штука, называется пуш-уведомления. Через них работает масса полезного и смысл у них в том, что не смартфон всё время у всех спрашивает «нет ли чего новенького» — это очень накладно, особенно когда нужно опросить очень много разных сервисов, а сами сервисы присылают это новенькое по мере появления. В силу специфики работы, эту штуку не забанишь.

«Телеграм» приспособил пуш-уведомления для того, чтобы рассылать клиентам адрес по которому нужно соединяться с сервером. Банят один, рассылается другой. Выглядит очень устойчиво к блокировкам.

Хотя, конечно, ничего не мешает по этому же каналу получать адрес и сразу его копировать в чёрный список. А «Телеграму» в ответ присылать туда адреса каких-то важных для страны сервисов. В общем, извечная битва меча с щитом. А страдать будут все, пока одна из сторон не сдастся.

3 комментария
Алексей Шамрин 2018

Отличное описание!

Несколько недель назад Сигнал в своей реализации 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.

Евгений Степанищев 2018

Отмену «крышевания доменов» Гуглом уже связали с «Телеграмом»: https://www.gazeta.ru/tech/2018/04/19/11721871/google_prohibits.shtml

Alexey Shamrin 2018

Амазону не понравилось, что Сигнал использует домен Souq.com: https://signal.org/blog/looking-back-on-the-front/