Ответ luis2gerallit в «Как MAX помогает РКН строить железный занавес: VPN-детект, сбор IP и проверки на Госуслуги»14
Чтож, посмотрим.
URL сервисов для определения IP спрятаны в коде как массивы чисел (например, {104, 116, 116, 112, 115...})
Это делается не для того, чтобы что-то скрыть от пользователя, а для уменьшения размера APK-файла, защиты от конкурентов и усложнения работы автоматических сканеров уязвимостей.
Я, конечно, не спец в андроид разработке, но каким образом это может помочь уменьшить объем файла? Один символ в кодировке UTF-8 занимает 1-2 байта, одно число типа int (а, судя по исходному посту, там используются именно они) занимает 4 байта. Т.е. массив чисел занимает где-то в 2-4 раза больше места, чем аналогичная строка. Про усложнение работы автоматических сканеров и так было написано в исходном посте.
MAX при каждом открытии тайно определяет ваш внешний IP через шесть сервисов (Яндекс, Amazon, Mail.ru и другие).
Пользователь и его собеседник сидит за роутерами, и чтобы установить прямое P2P-соединение, приложение должно узнать свой внешний IP и порт. Для этого оно стучится к STUN-серверу.
Вот именно, внешний IP и порт. Причем эта информация нужна не самому клиенту, а собеседнику, чтобы "стучаться" к этому клиенту. При этом, в оригинальном посте указана следующая информация, которая отправляется на сервер:
{
"type": "HOST_REACHABILITY",
"event": "GET_HOST_REACHABILITY",
"userId": 123456789,
"sessionId": 987654321,
"time": 1712847600000,
"params": {
"hosts": {
"api.oneme.ru": true,
"gstatic.com": true,
"calls.okcdn.ru": true,
"gosuslugi.ru": true,
"mtalk.google.com": true
},
"operator": "25001:MTS",
"connection_type": 0,
"ip": "185.xxx.xxx.xxx",
"vpn": 1
}
}
Кто-нибудь видит здесь порт? Вот и я не вижу. А как стучаться только по IP без порта (который назначается рандомным образом) - я понятия не имею. Нет, это не P2P, это именно слежка. К тому же в "разоблачении" почему-то тактично упущен тот момент, что на сервер также летит еще и информация о статусе VPN.
В MAX встроены ASR (распознавание речи), идентификация голоса и детект ключевых слов во время звонков. Модели доставляются с сервера. Это система прослушки.
Наличие ASR-модели — это давно норма для приложения с поддержкой голосового ввода. Крупные мессенджеры внедряют локальные модели для голосового управления («Ответить», «Завершить вызов», «Отключить микрофон»), для шумоподавления и для определения активности речи. Модель работает локально на вашем телефоне.
Так автор и не отрицает, что модель работает локально на телефоне. Его претензия сводится к тому, что она доставляется с сервера, и сервер может подсунуть туда всё что угодно. Она может распознавать какие угодно ключевые слова и слать отчеты на сервер. При этом, даже не придется обновлять приложение. Да и распознавание ключевых слов происходит именно во время звонка, а не для "голосового управления". Что это, если не потенциальная прослушка?
MAX проверяет, установлен ли Telegram на устройстве!
Эту глупость даже комментировать не хочется. Это нужно для кнопки «Поделиться» — чтобы поставить Telegram первым в списке приложений!
А теперь читаем полную цитату из оригинального поста:
Отдельно: MAX проверяет, установлен ли Telegram на вашем устройстве — ищет три варианта приложения: основной, бета и веб-версию. Официально это для кнопки «Поделиться» (Telegram ставится первым в списке).
Т.е. там изначально буквально это и написано. Зачем это нужно было упоминать в ответном посте - понятия не имею. Наверно просто для того, чтобы обосрать автора лишний раз.
Вывод
Автор разбирается в сетевой безопаности, но читал исходные посты с закрытыми глазами или умышленно вводит вас в заблуждение ¯\_(ツ)_/¯.
