🔒 Мережі · Безпека
📅 Березень 2026⏱ 10 хв читання🟡 Середній · Останнє оновлення: 28 травня 2026 р.

HTTPS і TLS 1.3: як працюють захищені з'єднання

Замочок у вашому браузері означає Transport Layer Security (TLS) — протокол, який автентифікує сервер, потайки узгоджує сеансовий ключ, а потім шифрує кожен байт даних в обох напрямках. TLS 1.3 (2018) робить усе це за один цикл обміну (round-trip) і нині використовується на понад 90% сайтів із HTTPS.

1. Що забезпечує TLS

TLS забезпечує три властивості безпеки для TCP-з'єднання:

HTTPS — це просто HTTP, що працює поверх TLS. Літера «s» у https:// означає, що TCP-з'єднання обгортається в TLS ще до того, як буде надіслано будь-які HTTP-дані.

2. Сертифікати X.509

TLS-сертифікат — це документ із цифровим підписом, що містить: доменне ім'я сервера, його відкритий ключ, термін дії та цифровий підпис центру сертифікації (CA), який засвідчує цю інформацію.

Ваш браузер/ОС постачаються зі 100+ довіреними кореневими CA (DigiCert, Let's Encrypt, Comodo тощо). Коли сервер пред'являє свій сертифікат, браузер проходить ланцюжок сертифікатів: сертифікат сервера → сертифікат проміжного CA → сертифікат кореневого CA у вашому сховищі довіри. Якщо ланцюжок підписів дійсний і домен збігається, автентифікація успішна.

Let's Encrypt видає безкоштовні TLS-сертифікати з автоматичним поновленням через протокол ACME. Від запуску 2015 року він видав мільярди сертифікатів, допомігши зробити HTTPS типовим стандартом у вебі. Він використовує перевірку домену (Domain Validation, DV) — доводить контроль над доменом, але не юридичну особу організації.

3. Рукостискання TLS 1.3

TLS 1.3 завершує автентифікацію та обмін ключами за один цикл обміну (1-RTT). Відновлення сеансу може бути 0-RTT. Послідовність:

→ Клієнт
ClientHello
Версія TLS, випадкові байти, список підтримуваних наборів шифрів, key_share (відкритий ECDHE-ключ клієнта для кожної підтримуваної групи, наприклад X25519)
← Сервер
ServerHello
Обраний набір шифрів, key_share (відкритий ECDHE-ключ сервера). Тепер обидві сторони можуть вивести сеансові ключі.
← Сервер
EncryptedExtensions
Додаткові розширення, усі зашифровані виведеним ключем рукостискання.
← Сервер
Certificate + CertificateVerify
Ланцюжок X.509-сертифікатів сервера та підпис над стенограмою рукостискання (доводить володіння закритим ключем).
← Сервер
Finished
HMAC над усім рукостисканням, що перевіряє цілісність.
→ Клієнт
Finished
Клієнт перевіряє все та надсилає своє Finished. Тепер можуть передаватися дані застосунку.

Загальна додаткова затримка: 1 цикл обміну перед даними застосунку. TLS 1.2 потребував 2 цикли обміну — TLS 1.3 помітно швидший для завантаження сторінок.

4. Обмін ключами ECDHE

ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) дозволяє двом сторонам вивести спільний секрет, не передаючи його. На прикладі еліптичної кривої X25519 (найпоширенішої в TLS 1.3):

Той, хто прослуховує, бачить A і B, але не може обчислити a × b × G без розв'язання задачі дискретного логарифма на еліптичній кривій. Слово «Ephemeral» (ефемерний) означає, що для кожного сеансу TLS генеруються нові пари ключів, що забезпечує пряму секретність.

5. Рівень записів і AEAD

Після рукостискання всі дані застосунку шифруються за допомогою AEAD (Authenticated Encryption with Associated Data — автентифіковане шифрування зі зв'язаними даними). TLS 1.3 передбачає лише два набори шифрів:

AEAD забезпечує і шифрування, і MAC (тег автентифікації). Структура запису: [заголовок][зашифроване корисне навантаження + 16-байтовий тег автентифікації]. Якщо змінено хоча б один байт шифротексту, перевірка тегу не проходить, і з'єднання розривається. Окремий HMAC не потрібен.

6. Пряма секретність

TLS 1.3 передбачає досконалу пряму секретність (PFS): навіть якщо закритий ключ сервера буде викрадено пізніше, записаний минулий трафік не вдасться розшифрувати, оскільки ефемерні ECDHE-ключі відкидаються після кожного сеансу.

TLS 1.2 дозволяв неефемерний обмін ключами RSA, який не мав прямої секретності — супротивник державного рівня міг записати весь зашифрований трафік і розшифрувати його пізніше, отримавши закритий ключ сервера. Цю вразливість використовували в програмах масового стеження.

7. HSTS і поширені помилки

HTTP Strict Transport Security (HSTS): заголовок відповіді, що наказує браузеру завжди використовувати HTTPS для цього домену протягом N секунд — запобігає атакам пониження версії. Великі сайти входять до списку попереднього завантаження HSTS (HSTS Preload List), що постачається з браузерами.

Поширені проблеми неправильного налаштування: