В обновлении Telegram 12.6 в профилях пользователей появилась новая предупреждающая плашка: аккаунт использует неофициальный клиент, а переписка с ним может быть менее защищенной.
На примере декомпилированной Android beta
12.6.4 видно, что это не локальная эвристика и не косметическая UI-правка. При открытии профиля клиент запрашивает у сервера профиль пользователя через users.getFullUser.TLRPC.TL_users_getFullUser tL_users_getFullUser = new TLRPC.TL_users_getFullUser();
tL_users_getFullUser.id = getInputUser(user);
Дальше сервер возвращает
TL_users_userFull, внутри которого в UserFull появился новый флаг unofficial_security_risk. Он читается напрямую из flags2, то есть приходит уже в готовом виде со стороны Telegram.this.flags2 = inputSerializedData.readInt32(z);
this.unofficial_security_risk = TLObject.hasFlag(this.flags2, 67108864);
Это подтверждают и логи
users.getFullUser. Для профиля с такой плашкой сервер отдавал:flags2=67108864 0x04000000
unofficial_security_risk=true
Причина срабатывания флага: наличие активной сессии Telega. Пока сессия Telega была активна, плашка в профиле отображалась. Сразу после завершения этой сессии плашка исчезла.
Дополнительный эксперимент показал, что триггер завязан именно на API-идентификаторы Telega. В клиенте достаточно заменить только
app_id и app_hash в BuildVars на значения Telega, чтобы после логина аккаунт получил ту же самую плашку. Это напрямую связывает плашку с клиентом Telega, в отношении которого уже опубликовано исследование с анализом безопасности использования клиента. Согласно этому разбору, Telega использует MITM-схему с подменой серверов, что потенциально позволяет перехватывать трафик, читать переписки, подменять содержимое сообщений и ослаблять встроенные механизмы защиты Telegram.
Но это не означает, что плашка создана исключительно под Telega. Скорее, Telega стала первым зафиксированным случаем применения этого механизма. В дальнейшем Telegram может использовать тот же серверный флаг и для других клиентов, если сочтет их небезопасными, например для Nekogram и Cherrygram.
Выводы каждый сделает сам
