Коротке оглавлення:

  1. TLS простими словами

  2. Від чого захищає TLS і де його межі

  3. Як працює TLS handshake

  4. Сертифікати та PKI: чому браузер довіряє сайту

  5. TLS 1.2 і TLS 1.3: ключові відмінності

  6. Важливі технології поруч: SNI, ALPN, HSTS, OCSP stapling

  7. Типові помилки й як налаштувати правильно

  8. Чекліст безпеки для власника сайту

Що таке TLS і як він працює

TLS (Transport Layer Security) — це протокол, який забезпечує захищене з’єднання між браузером користувача та вашим сервером. У повсякденному житті TLS найчастіше проявляється як HTTPS і “замочок” у адресному рядку. Його задача — зробити так, щоб дані не можна було непомітно перехопити або підмінити по дорозі.

1) Від чого TLS захищає

TLS закриває три ключові задачі:

1) Конфіденційність (шифрування).
Усе, що користувач відправляє на сайт (логін/пароль, форми, токени, кошик, персональні дані), шифрується так, що сторонній спостерігач у мережі бачить лише “набір байтів”.

2) Цілісність (захист від підміни).
TLS додає перевірки, які не дозволяють непомітно змінити трафік під час передачі. Це критично, бо без TLS зловмисник може підмінити скрипт, вставити шкідливий код або змінити реквізити оплати.

3) Автентичність сервера (довіра).
Браузер перевіряє сертифікат сайту, щоб переконатися, що користувач спілкується саме з вашим доменом, а не з підробкою “посередині”.

Межі TLS: що він НЕ робить

TLS не “лікує” вразливості вашого сайту. Якщо в коді є SQL-ін’єкція, XSS, слабкі паролі, уразливий плагін — TLS цього не зупинить. Він захищає канал, але не замінює безпеку застосунку та сервера.

2) Як працює TLS handshake (коротко, але по суті)

Під час встановлення з’єднання клієнт і сервер роблять “рукостискання” — домовляються, як саме шифрувати трафік.

Типова логіка така:

  1. ClientHello: браузер повідомляє, які версії TLS підтримує, які алгоритми шифрування (cipher suites), і надсилає випадкові дані.

  2. ServerHello: сервер обирає версію TLS та набір алгоритмів, надсилає свої параметри і сертифікат.

  3. Перевірка сертифіката: браузер перевіряє, що сертифікат дійсний, домен збігається, ланцюжок довіри коректний.

  4. Обмін ключами: сторони генерують спільний “сеансовий” ключ (зазвичай через (EC)DHE), який буде використовуватися для швидкого симетричного шифрування.

  5. Шифрований канал готовий: після цього весь HTTP-трафік іде всередині TLS.

У TLS 1.3 цей процес скорочено і прискорено, а слабкі/застарілі механізми прибрані.

3) Сертифікат і PKI: чому браузер довіряє

Сертифікат TLS — це документ, який пов’язує публічний ключ із доменом. Його підписує центр сертифікації (CA). Браузери містять список довірених CA, тому можуть перевірити підпис і переконатися, що сертифікат виданий легітимно.

Практично тобі важливо розуміти:

  • DV (Domain Validation) підтверджує контроль над доменом і зазвичай достатній для більшості сайтів.

  • OV/EV додають перевірки компанії, але не роблять “шифрування сильнішим” — це радше про довіру та комплаєнс.

  • SAN/мультидоменні сертифікати покривають кілька доменів, wildcard — піддомени.

4) TLS 1.2 vs TLS 1.3: що реально змінилось

TLS 1.3:

  • швидший handshake (менше раундів обміну);

  • за замовчуванням сучасні й безпечні алгоритми;

  • прибрані застарілі й ризикові механізми;

  • краще працює на мобільних мережах і при високій затримці.

TLS 1.2 усе ще використовується, але потребує уважного підбору cipher suites і коректних налаштувань.

5) SNI, ALPN, HSTS, OCSP stapling — що це і навіщо

  • SNI дозволяє одному IP обслуговувати багато HTTPS-сайтів і віддавати правильний сертифікат.

  • ALPN потрібен для узгодження протоколів на кшталт HTTP/2.

  • HSTS змушує браузер завжди відкривати сайт через HTTPS і зменшує ризик downgrade-атак.

  • OCSP stapling прискорює перевірку відкликання сертифіката і зменшує залежність від зовнішніх запитів.

6) Типові помилки в налаштуваннях TLS

  1. Дозволені старі протоколи (TLS 1.0/1.1).

  2. Слабкі cipher suites або відсутність пріоритетів.

  3. Неправильний ланцюжок сертифіката (браузери показують помилки).

  4. Змішаний контент: сторінка HTTPS, а картинки/скрипти — по HTTP.

  5. Редіректи і “петлі” між www/non-www або http/https.

  6. Сертифікат скоро закінчується — і сайт “падає” для користувачів.

7) Чекліст: як зробити TLS безпечним

  • Увімкни TLS 1.3 і TLS 1.2, вимкни старі версії.

  • Використовуй сучасні cipher suites і forward secrecy.

  • Налаштуй автоматичне оновлення сертифікатів (щоб не пропустити expiration).

  • Увімкни HSTS (після перевірки, що HTTPS працює стабільно).

  • Перевір mixed content і виправ усі HTTP-ресурси.

  • Додай моніторинг сертифікатів і алерти.