Mastodon Mastodon Mastodon Mastodon

Протокол TLS [TLS, SSL]

Оновлено: · CyberSecureFox Editorial Team

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

Як працює TLS

TLS прийшов на зміну протоколу SSL компанії Netscape: TLS 1.0 вийшов у 1999 році, TLS 1.2 — у 2008 році (RFC 5246), TLS 1.3 — у 2018 році (RFC 8446). Усі версії SSL і TLS 1.0/1.1 визнано застарілими (RFC 8996). З’єднання починається з рукостискання:

  • клієнт і сервер узгоджують версію протоколу й набір шифрів;
  • сервер підтверджує свою справжність цифровим сертифікатом, який перевіряє клієнт;
  • сторони виробляють сеансові ключі — у TLS 1.3 завжди через ефемерний протокол Діффі — Геллмана, що забезпечує пряму секретність;
  • далі дані застосунку шифруються й захищаються від підробки автентифікованими шифрами, як-от AES-GCM чи ChaCha20-Poly1305.

TLS 1.3 позбувся застарілих алгоритмів і скоротив рукостискання до одного циклу обміну.

Чому TLS важливий

TLS захищає HTTPS, передавання пошти (SMTP, IMAP), VPN, API та безліч застосунків від прослуховування й підміни даних. Його історія показує основні ризики:

  • Помилки реалізації — Heartbleed (CVE-2014-0160) в OpenSSL у 2014 році спричиняв витік пам’яті сервера, зокрема закритих ключів.
  • Слабкості протоколу — BEAST (2011) і POODLE (2014) атакували старі версії; FREAK і Logjam (2015) були атаками на зниження версії до слабкої «експортної» криптографії.
  • Використання зловмисниками — більшість шкідливого ПЗ і фішингових сайтів теж використовують TLS, тому захисники покладаються на інспекцію TLS і відбитки на кшталт JA3/JA4 для виявлення шкідливих з’єднань.

Рекомендації

  • Дозволяти лише TLS 1.2 і 1.3 та вимкнути застарілі набори шифрів.
  • Автоматизувати поновлення сертифікатів і захищати закриті ключі.
  • Правильно перевіряти сертифікати в застосунках і ніколи не вимикати перевірку в коді.
  • Регулярно тестувати конфігурацію інструментами на кшталт SSL Labs або testssl.sh.
Синоніми:
transport layer security, протокол захисту транспортного рівня, ssl/tls