Друзі привіт, як ваш день?
Сподіваюсь ви в безпеці, день вже до кінця добігає, заварюйте чай і читайте, бо без нього TLS взагалі виглядає як чорна магія.
Протоколи для QA - TLS
Що я маю вам сказати одразу:
TLS - це не “просто замочок у браузері”.
Це окремий протокол, який вирішує як саме клієнт і сервер домовляються про безпечне спілкування.
І дуже часто, коли:
“API не працює”,
“мобілка не конектиться”,
“у браузері ок, а в апці ні” -
це не бекенд і не фронт.
Це TLS.
Працює вроді складно але просто)
Клієнт приходить і каже:
- я підтримую такі версії TLS
- такі шифри
- ось мій ClientHello
Сервер відповідає:
- ок, беремо ось цю версію
- ось цей cipher
- ось сертифікат
Далі йде перевірка сертифіката, ключів і тільки потім реальні дані.
І якщо десь тут не зійшлись - з’єднання навіть не почнеться.
Типові куа-проблеми з TLS, які бачать реально не всі:
- У браузері працює, а в мобільній апці ні
- На старих девайсах не відкривається
- curl працює, Postman - ні (або навпаки)
- Падає тільки на конкретному регіоні
- Помилка типу handshake failed без деталей
Чому саме так:
- різні TLS-версії (1.0 / 1.2 / 1.3)
- різні набори cipher suites
- старі Android / iOS не підтримують нові шифри
- сервер заблокував “слабкі” алгоритми
- firewall або proxy лізе в TLS і ламає все
Окремий кайф це в TLS 1.3:
- менше раундів
- швидший handshake
- менше логів і менше “зрозуміло що відбувається”
Для користувача - швидше.
а от для куа - інколи складніше дебажити.
КУА реально повинен вміти
- розуміти різницю між TLS і HTTPS
- знати, що сертифікат ≠ TLS
- вміти перевірити версію TLS і cipher
- не плутати “network issue” з “handshake issue”
Що я хочу до вам донести
TLS - це рівень до API.
Якщо він не встав - ніякий REST, GraphQL чи WebSocket не врятує.
І дуже часто “рандомні” баги - це просто різні клієнти, які по-різному домовляються про безпеку.
Всім гарного вечора і стабільних handshakes.
Обняв🤗🤗🤗
Note: сподіваюсь діаграмка вам дасть розуміня більше чучуть)
Post #757
753


- ❤ 17
- 🔥 3
- 💯 2
- 🤝 2
- 🤩 1
- 🤨 1
- 🤗 1