Pull to refresh
64K+
130
Сергей@seriyPS

backend

18,1
Rating
33
Subscribers
Send message

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

Если вам нужно просто аксесс-лог, то нужно дополнительно фильтровать. Могу подумать над опциями, если опишете ваш сценарий.

домены перебирать - как оно сейчас работает:

Допустим Вася оплатил месяц использования, получил ссылку, в этой ссылке ee<общий-на-всех-секрет><поддомен> , скажем ee XXXXXX vasia А есть Петя, он оплачивал доступ ранее и ему выдавало ссылку с ee XXXXXX petya общий секрет XXXXX он достаёт из своей ссылки и потом пробует подключиться к прокси с ee XXXXX lena, ee XXXX dima и т.п. и в какой-то момент находит чужой аккаунт и сидит через него.

А в новой схеме не будет общего секрета, у каждого будет свой ee XXXXXX vasia, ee YYYYY petya и т.п.

Количество подключений - так и есть, приложение Телеграма может открывать/закрывать до 8 подключений. Одно для переписок и остальные - для скачивания картинок / видео и тп

Шикарно 💪

Круто что получилось показать количество онлайн!

Не знаю заметили или нет, но уже после статьи я добавил ещё более хитрую версию персональных секретов, тут можно не бояться, что кто-то найдёт поддомены перебором: https://github.com/seriyps/mtproto_proxy#strengthening-personal-proxies-with-per-sni-derived-secrets

Текущая статистика: 950 подключений, ~1600 “юзеров” в базе

$ /opt/personal_mtproxy/bin/personal_mtproxy remote_console
Erlang/OTP 25 [erts-13.2.2.5] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [jit]

Eshell V13.2.2.5  (abort with ^G)
(personal_mtproxy@ip-172-31-13-189)1> maps:get(active_connections, ranch:info(mtp_ipv4)).
950
(personal_mtproxy@ip-172-31-13-189)2> length(pm_registry:list()).
1591
(personal_mtproxy@ip-172-31-13-189)3> 
User switch command
 --> q
$ uptime
<..>,  load average: 0.02, 0.06, 0.08

по-прежнему CPU ниже 5%

image.png
image.png

Да, как выше написали, телеграм после того как договорился с властями в 2018 и его перестали банить, полностью забил на обновление прокси/FakeTLS. А суть FakeTLS в том, что он должен притворяться СОВРЕМЕННЫМ браузером - не выделяться их толпы. А за те 6 лет браузеры обновились, а телега нет и её трафик выглядит как крестьянин в лаптях и сорочке шагающий по улице современного мегаполиса 😄 Плюс кроме устаревания, там были прям ошибки в реализации TLS.

РКН это подметил и 1 апреля выкатил обновление фильтров, которые это отлавливали. Ну и за прошлую неделю телеграму накидали пулл-реквестов и пинали их чтоб они обновили FakeTLS, что они и сделали, теперь ждём пока обновление разойдётся по аппсторам.

Проблема в том, что держать большой прокси это дорого - оно жрёт очень много трафика. Я уверен что, если блокировки будут продолжаться, а FakeTLS останется эффективным, то ситуация с прокси будет примерно такая (по опыту наблюдения за ситуацией в Иране):

  • 90% пользователей будет пользоваться прокси, найдеными в различных агрегаторах ссылок на прокси, будут заполнять свои списки прокси десятками. Эти прокси будут постоянно отваливаться, тормозить под нагрузкой и баниться ркн и пользователи будут недовольны нестабильностью. Эти прокси монетизируются через рекламируемые каналы.

  • какие-то прокси будут раздавать большие каналы и будут стараться делать эти прокси стабильными (ротировать IP), чтоб не терять аудиторию

  • какие-то прокси будут поднимать айтишники “для друзей”

  • ну и будут 5-10% кому не хочется бегать искать публичные прокси и они как раз могут искать платную версию в обмен на обещание продавца, что “у нас аптайм 99.99 и нет ограничений по скорости”

Я сам это не очень хорошо помню. Но примерно так:

  • в ClientHello есть специальное поле random, оно как-то используется в реальном TLS, но Fake-TLS туда подсовывает, условно SHA256(stripped_client_hello + proxy_secret) где stripped_client_hello это ClientHello в котором тот участок в бинаре где должен храниться этот random забито нулями (в Erlang прокси клиентская часть протокола реализована для юнит-тестов, так что можно посмотреть прям в коде)

  • сервер соответственно при получении ClientHello достаёт это random поле, заменяет его нулями, считает SHA256(stripped_client_hello + proxy_secret) и сравнивает с тем, что в поле random.

Возможно в мелочах ошибаюсь (в поле random кладётся не сырой sha256 а XOR с чем-то), но идея примерно такая.

Меня немного пугает, что там 50+ тыс строк кода (Erlang всего 3500). Но сообщество там собрали впечатляющее, браво!

Кстати, в Erlang клиент LDAP входит в стандартную библиотеку (под мелодичным названием ЕЛдап). Так что это элементарно 😂

С одной сторны согласен - с 2018 (после того как дуров договорился с властями и в РФ перестали банить) FakeTLS был заброшен. Но буквально на прошлой и этой неделе сделали обновление, осталось дождаться пока выйдет во всех сторах.

Судя по Readme реализовано так же как в Python - последовательным перебором всех секретов по-очереди пока один из них не сработает, на каждый коннект. До 100-200 секретов ещё терпимо, но потом начинает давить на CPU и растут задержки на подклчение.

Реалиация из статьи работает со скоростью O(1). Например прям сейчас в демке уже зарегистрировано за 500 “аккаунтов”, 450 онлайн-соединений и при этом CPU меньше 2% (Amazon t4g.micro).

$ uptime
 <..>,  load average: 0.13, 0.05, 0.01
$ /opt/personal_mtproxy/bin/personal_mtproxy remote_console
Erlang/OTP 25 [erts-13.2.2.5] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [jit]

Eshell V13.2.2.5  (abort with ^G)
(personal_mtproxy@ip-172-31-13-189)1> maps:get(active_connections, ranch:info(mtp_ipv4)).
456
(personal_mtproxy@ip-172-31-13-189)2> length(pm_registry:list()).
507

При последовательном переборе секретов было бы уже за 30-40%.

Старые протоколы тоже работают, перечисляешь в конфиге какие включить и оно будет пускать подключения и по ним:

{allowed_protocols, [mtp_fake_tls, mtp_secure, mtp_abridged, mtp_intermediate]},

Но именно “персональные” секреты на базе SNI возможны только с Fake-TLS.

Фиксы FakeTLS уже смержены во все официальные клиенты и библиотеки, так что ждём пока раскатится

Если вы лично не пользуетесь, возможно эта статья позволит вам заработать на тех, кто хочет пользоваться 😄

Иран
...
Во время массовых волнений 2017 года был заблокирован Telegram, но позже опала была снята, поскольку мессенджер использовали 40 миллионов человек и запрет Телеграма грозил уже экономике страны.

Телеграм в Иране всё ещё заблокирован. В 2019м вроде бы отключали вообще весь интернет на несколько дней, что было в 17м не знаю. Но телеграм уже очень давно заблокирован; многие всё равно пользуются через mtproto proxy (которые тоже блокируют).

является ли совпадением релиз нашей первой игры Battle Prime и персональная юридическая атака на наших сотрудников

Да уж наверняка не совпадение. Правда, не спец по мобильным играм… Этот их шутер Battle Prime может конкурировать с WoT Blitz?


приобретён компанией Wargaming в качестве Open Source технологии, распространяемой по лицензии BSD3, и с 2014 по 2018 продолжал разрабатываться на базе СООО «Гейм Стрим» с ведома всех уполномоченных и ответственных лиц в Wargaming по той же BSD3 лицензии

Как я понимаю, то, что движок был изначально под BSD3 не мешает компании сделать свой приватный форк и запретить разработчикам публиковать изменения из этого форка. Вопрос в том согласована была публикация форка или нет...

Дичь какая-то. Посмотрел свои выписки — 27% получилось разница между заявленной ЗП и той, которую на руки получаю (это предварительно, в конце года могут быть корректировки).

Видимо недостаточно. Или у вас есть другие объяснения?

Из того что я читал — основная проблема SCTP в том, что его не понимает сетевое оборудование (в отличие от TCP и UDP).


В разработке HTTP/3 + QUIC не только гугл участвует (Mozilla, Cloudflare, Netflix), видимо не у одного него есть к TCP + TLS претензии.

Ну как бы… Сейчас уже "всё интернет-сообщество" признало, что TCP+TLS1.2 не очень-то подходит для современных реалий (мобильные устройства, частые подключения-отключения, смена IP). Из за этого сделали TLS1.3 и HTTP/3 + QUIC на подходе.
Мессенджеры в этом плане первыми начали с такими проблемами сталкиваться. Делали бы telegram в 2019м — наверное сделали бы на TLS1.3 или QUIC (в статье же писали, что они UDP тоже пытались написать, но не осилили).

1
23 ...

Information

Rating
505-th
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity