iProxy.online logo
Проксі для
Ресурси
Компанія
Search icon
/
UK
English
Português
Русский
Español
Türkçe
Українська
Tiếng Việt
ไทย
中文
हिंदी
Show menu icon

Як ми виявили приховану помилку TLS 1.3 на тисячах Android-пристроїв

База Знань
Середній рейтинг: 0.00 голоси

Якщо ви працюєте з мобільними проксі, вам знайомий цей біль: щось ламається, і ніхто не може пояснити чому. Пристрій знаходиться в іншій країні. Користувач каже «не працює». Жодних логів, жодних повідомлень про помилку, жодних трасувань стека. Просто тиша.

Саме це і сталося з нами — але ми виявили проблему ще до того, як більшість користувачів щось помітила. Ось чому.

Потрібні мобільні проксі?
Створіть проксі просто зараз!
Почніт​​ь 48-годинний пробний період

iProxy постійно виконує мережеву діагностику на кожному пристрої

Наш Android-додаток не просто перенаправляє трафік. Він запускає повний набір перевірок стану мережі — перевіряє підключення, затримку, DNS-резолюцію, доступність через HTTP та HTTPS та інше. Ці перевірки безперервно виконуються на контрольованих серверах, тому ми знаємо стан мережі кожного пристрою в будь-який момент.

network-diagnostics.svg

Саме так ми це і помітили: невеликий відсоток пристроїв почав не проходити перевірки HTTPS, тоді як HTTP працював бездоганно. Збій відбувався на етапі TLS-рукостискання. Жодної помилки, жодного повідомлення про тайм-аут — просто з'єднання, яке тихо нікуди не йшло.

Без вбудованої діагностики це залишилося б непоміченим. Користувачі бачили б нестабільні збої проксі без жодної закономірності й пояснення. Ми б лише здогадувались.

Що насправді відбувалось

Збої були пов'язані саме з TLS 1.3. З'єднання через TLS 1.2 на тому самому пристрої, до того самого сервера, в той самий час — працювали нормально. TLS 1.3 — ні.

Першопричина виявилась поєднанням двох факторів:

tls-handshake-comparison.svg

Сучасні TLS-клієнти надсилають значно більші повідомлення рукостискання, ніж раніше. Go 1.23+ та Chrome 124+ тепер за замовчуванням включають ключові блоки пост-квантової криптографії (ML-KEM). Через це перше повідомлення TLS-з'єднання — ClientHello — стає настільки великим, що виходить за межі одного TCP-пакету. Відповідь сервера в TLS 1.3 також надсилається одним великим блоком (разом із ланцюжком сертифікатів), який може займати 4–6 КБ для таких сайтів, як Google або Cloudflare.

Android-пристрої під тиском нестачі пам'яті погано справляються з буферизацією цих великих повідомлень. Наш додаток діє як TCP-проксі — він зчитує байти з одного сокета і записує в інший. Коли на пристрої мало RAM, ця буферизація може провалюватися непомітно. Дані рукостискання або не пересилаються, або відповідь не повертається назад. Жодної помилки. Жодного збою. Просто нічого.

TLS 1.2 повністю уникає цього: його рукостискання розбите на кілька менших обмінів, і жодне окреме повідомлення не є достатньо великим, щоб спричинити проблеми.

Чому це важливо для якості проксі

Саме такі проблеми відрізняють надійний проксі-сервіс від розчарування.

Без активної діагностики провайдер бачив би скарги користувачів на випадкові збої HTTPS. Підтримка б казала «перезапустіть додаток» або «перевірте підключення до інтернету». Проблема то зникала б, то поверталася. Ніхто б не пов'язав її з версіями TLS або пам'яттю пристрою.

У iProxy ми виявили закономірність автоматично. Наша система діагностики визначила, що TLS 1.3 дає збій, тоді як TLS 1.2 працює — на конкретних пристроях, у конкретний час. Це точно вказало нам, де шукати.

Що ми зробили

Зрозумівши проблему, ми випустили два виправлення:

auto-recovery.svg

Розумний відкат TLS. Коли наша діагностика виявляє шаблон збою TLS 1.3 на пристрої, ми автоматично вносимо корективи. Трафік продовжує надходити без жодних дій з боку користувача.

Автоматичне відновлення. Якщо пристрій переходить у деградований стан, ми можемо ініціювати віддалений перезапуск додатка для очищення тиску пам'яті та відновлення повної функціональності. Діагностика сама визначає, коли це потрібно, і справляється без втручання користувача.

Ми також відстежили і виправили витоки пам'яті в нашому додатку, які сприяли виникненню проблеми. Покращення одразу стало помітним на наших дашбордах моніторингу — частота збоїв TLS 1.3 значно знизилась по всьому парку пристроїв.

Ось що насправді означає «керована проксі-інфраструктура»

Написати додаток, що пересилає TCP-пакети, може будь-хто. Складне — це знати, коли він перестає працювати, чому перестав, і виправити це до того, як користувач відкриє тікет у підтримку.

iProxy відстежує стан мережі на кожному пристрої в режимі реального часу. Ми не чекаємо, поки користувачі повідомлять про проблеми — ми виявляємо їх, діагностуємо і в багатьох випадках виправляємо автоматично. Ось різниця між проксі-додатком і проксі-інфраструктурою.

Наша команда інженерів опублікувала повний технічний розбір цього розслідування. Якщо вас цікавлять деталі — перехоплення пакетів, відмінності між Go та curl, аспект пост-квантової криптографії — читайте тут: Коли TLS 1.3 «тихо» помирає всередині вашого Android-проксі.


iProxy.online надає мобільну проксі-інфраструктуру у 100+ країнах та через 600+ операторів зв'язку. Наш Android-додаток перетворює смартфони на надійні проксі-сервери з вбудованою мережевою діагностикою, автоматичним моніторингом стану та віддаленим керуванням.

Оцініть цю статтю, якщо вона вам подобається: