Рубрика «mtproto»

В последнее время на Хабре стали чаще появляться посты о том, как хорош Telegram, как гениальны и опытны братья Дуровы в построении сетевых систем, и т.п. В то же время, очень мало кто действительно погружался в техническое устройство — как максимум, используют достаточно простой (и весьма отличающийся от MTProto) Bot API на базе JSON, а обычно просто принимают на веру все те дифирамбы и пиар, что крутятся вокруг мессенджера. Почти полтора года назад мой коллега по НПО "Эшелон" Василий (к сожалению, его учетку на Хабре стёрли вместе с черновиком) начал писать свой собственный клиент Telegram с нуля на Perl, позже присоединился и автор этих строк. Почему на Perl, немедленно спросят некоторые? Потому что на других языках такие проекты уже есть На самом деле, суть не в этом, мог быть любой другой язык, где еще нет готовой библиотеки, и соответственно автор должен пройти весь путь с нуля. Тем более, криптография дело такое — доверяй, но проверяй. С продуктом, нацеленным на безопасность, вы не можете просто взять и положиться на готовую библиотеку от производителя, слепо ему поверив (впрочем, это тема более для второй части). На данный момент библиотека вполне работает на "среднем" уровне (позволяет делать любые API-запросы).

Тем не менее, в данной серии постов будет не так много криптографии и математики. Зато будет много других технических подробностей и архитектурных костылей (пригодится и тем, кто не будет писать с нуля, а будет пользоваться библиотекой на любом языке). Итак, главной целью было — попытаться реализовать клиент с нуля по официальной документации. То есть, предположим, что исходный код официальных клиентов закрыт (опять же во второй части подробнее раскроем тему того, что это и правда бывает так), но, как в старые времена, например, есть стандарт по типу RFC — возможно ли написать клиент по одной лишь спецификации, "не подглядывая" в исходники, хоть официальных (Telegram Desktop, мобильных), хоть неофициальных Telethon?

Читать полностью »

Содержание

  • Предыстория
  • Сбор статистики
  • Отображение статистики
  • Визуализация и ведение статистики
  • Развертка
  • Заключение

Предыстория

Привет хабр, телеграм сейчас на пике популярности, все скандалы, интриги, блокировки вертятся вокруг него, в связи с чем телеграм выкатил свой вариант прокси под названием MTProto Proxy который призван помочь с обходом блокировки. Однако предоставленные телеграмом сервисы для мониторинга MTProto Proxy не дают возможности наблюдать статистику в реальном времени и собирать её для наблюдения за её изменениями, потому мы будем решать проблему своими силами.
Читать полностью »

image

Недавно разработчики Telegram выложили исходные тексты прокси-сервера, работающего по протоколу MTProto. На хабре вышли статьи об особенностях его сборки и перепаковке докер-контейнера с ним. Официальный прокси сервер, написанный на С, удивляет объемом кода — примерно 23 тысячи строк. Одновременно с этим, а иногда и чуть раньше, вышло несколько альтернативных реализаций, но ни одна из них не поддерживала возможность рекламы своего канала.

В данной статье хотелось бы, во-первых, рассказать о малоизвестных особенностях протокола общения прокси-сервера с внешними серверами и, во-вторых, рассказать о собственной разработке — реализации прокси-сервера на Python, которая только что достигла релиза и доступна всем желающим под свободной лицензией MIT.
Читать полностью »

Как все уже слышали, в конце мая Telegram зарелизил официальный MTProto Proxy (aka MTProxy) сервер, написанный на сях. В 2018 году без Docker мало куда, потому он сопровождается таким же «официальным» образом в формате zero-config. Все бы хорошо, но три «но» чуток испортили впечатление от релиза: image весит >130 Mb (там достаточно толстенький Debian, а не привычный Alpine), в силу «zero-config» оно не всегда удобно конфигурируется (только параметрами среды окружения) и ребята забыли, походу, выложить Dockerfile.

5.94-метровый docker-образ с Telegram MTProxy - 1

TL;DR Мы сделаем практически 1-в-1 официальный alpine-based docker image размером 5.94MB и положим его сюда (а Dockerfile сюда); попутно разберемся, как иногда можно подружить софт с Alpine с помощью кусачек и напильника, и чуток поиграемся размером, исключительно фана для.
Читать полностью »

Установка MTProto Telegram прокси из исходников на Centos 7 - 1

simply run 'make'

Всем привет. Обойдусь без лишних прелюдий — многие ждали официального релиза, и вот — дождались. На хабре уже есть парочка статей как установить MTProxy из докера.
А вот с установкой из исходников многие обломались — после simply run 'make' выдаются ошибки. Как установить MTProxy из исходников без ошибок на Centos 7 — под катом
Читать полностью »

Прокси-сервер является посредником между клиентом и сервером. Для обхода ограничений прокси-сервер должен быть установлен там, где нет ограничений доступа к требуемой информации, при этом не должно быть таковых ограничений и между клиентом и прокси-сервером.
image

Обновлённая поддержка прокси-серверов в клиентах Telegram

  • Новый MTProto-прокси. Работает с родным для Telegram протоколом MTProto
  • Открытый исходный код сервера на GitHub
  • Docker-образ на DockerHub
  • В мобильных клиентах появилась возможность добавлять несколько прокси-серверов каждого типа. Пользователь может выбрать наиболее подходящий

Читать полностью »

image

Сразу после событий с блокировками Telegram в Иране и России, в бета-версиях мессенджера начал появлятся новый тип Proxy, а если быть точным, новый протокол — MTProto Proxy.

Этот протокол был создан командой Telegram для решения проблем обхода блокировок, но так ли он хорош?
Читать полностью »

Open!
Безопасность переписки уже стала широко обсуждаемой темой. Как вы знаете, в этой сфере широко известен написанный петербуржцами Telegram. Команда уверяет в 146% безопасности, но если вы уже пользовались этим мессенджером, знайте, как минимум названия ваших чатов уже скомпроментированы. На момент публикации уязвимость уже закрыта (что приятно, закрыли меньше чем за пятнадцать минут после репорта).
Читать полностью »

Внимательный читатель, перечитывая протокол Диффи — Хеллмана, может обратить внимание на строчку «Предполагается, что злоумышленник может получить оба этих значения (об открытых ключах), но не модифицировать их (то есть у него нет возможности вмешаться в процесс передачи)». Будучи паранойком, автор не мог просто проигнорировать это условие, потому что сервер Telegram (далее просто сервер) является активным участником взаимодействия. Запросы API идут к серверу, от него же пользователь получает ответ. Если гипотетически предположить, что сервер находится под контролем злоумышленника, протокол MTProto должен защищаться не просто от атаки MITM, а даже от подмены трафика.

Как такое возможно? Давайте разбираться.
Читать полностью »

Измученный сомнениями со стороны сообщества разработчиков и криптографов в стойкости криптографического протокола MTProto, который используется в Telegram, Павел Дуров решился на крайнюю меру. Он объявил награду $200 тыс. любому, кто «расшифрует трафик Telegram и расскажет, как он это сделал».

«Насколько я вижу, там не столько анонимусы, сколько создатели местного конкурента — TextSecure под Android, — пытается Дуров идентифицировать критиков из вышеупомянутого обсуждения. — Telegram собрал много пользователей, и они справедливо засуетились. Ребята мечутся между аргументом «Ваш алгоритм слишком новый, зачем это, если есть проверенные» и позицией «Ваш алгоритм слишком старый, зачем это, если есть новые».

Думаю, хорошим завершением дебатов будет объявление конкурса на дешифрацию трафика Telegram. Скажем, я готов открыть трафик всей моей переписки с момента регистрации в Telegram и вручить $200 000 любому, кто его расшифрует и расскажет, как. В результате Telegram либо обнаружит и закроет лазейку для спецслужб, либо — что более вероятно — получит ещё одно доказательство нерушимости своего протокола».
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js