SSL (Secure Sockets Layer) и TLS (Transport Layer Security) — оба являются криптографическими протоколами для шифрования интернет-соединений. Практическая разница: все версии SSL устарели и небезопасны. TLS — это то, что на самом деле защищает интернет сегодня. Когда говорят «SSL-сертификат», имеют в виду сертификат, используемый с TLS.
Если вы здесь, чтобы узнать, нужно ли вам что-то делать — перейдите к разделу что вам нужно сделать.
Краткое сравнение
| SSL | TLS | |
|---|---|---|
| Полное название | Secure Sockets Layer | Transport Layer Security |
| Создан | Netscape (1994) | IETF (1999) |
| Последняя версия | SSL 3.0 (1996) | TLS 1.3 (2018) |
| Статус | ⛔ Все версии устарели | ✅ TLS 1.2 и 1.3 активно используются |
| Известные уязвимости | POODLE, BEAST, CRIME, DROWN | Нет (TLS 1.3), немного устранимых (TLS 1.2) |
| Производительность | Медленнее (2+ обмена данными) | TLS 1.3: рукопожатие за 1 RTT |
| Прямая секретность | Опционально (редко использовалась) | Обязательна в TLS 1.3 |
| Наборы шифров | Слабые (RC4, DES, экспортные шифры) | Сильные (AES-GCM, ChaCha20) |
| Аутентификация сообщений | MAC с MD5/SHA-1 | HMAC с SHA-256+ |
| Поддержка браузерами | Удалена из всех браузеров | Универсальная |
Полная история версий
| Год | Протокол | Что произошло |
|---|---|---|
| 1994 | SSL 1.0 | Разработан Netscape. Никогда не выпускался — серьезные уязвимости обнаружены внутри компании до запуска. |
| 1995 | SSL 2.0 | Первый публичный выпуск. Использовался ранними HTTPS-сайтами. Быстро были обнаружены серьезные уязвимости (слабый MAC, подверженность атакам усечения). |
| 1996 | SSL 3.0 | Полная переработка Полом Кохером и Netscape. Широко использовался 18 лет. Взломан атакой POODLE (октябрь 2014). Признан устаревшим IETF в июне 2015 (RFC 7568). |
| 1999 | TLS 1.0 | Стандартизированный IETF протокол на основе SSL 3.0. Незначительные улучшения. Уязвим для атаки BEAST (2011). Признан устаревшим в марте 2021 (RFC 8996). |
| 2006 | TLS 1.1 | Исправлена уязвимость BEAST. Добавлен явный IV для шифров CBC. Признан устаревшим в марте 2021 вместе с TLS 1.0. |
| 2008 | TLS 1.2 | Серьезное обновление. Добавлены шифры AEAD (AES-GCM), удалены MD5/SHA-1 из рукопожатия, добавлено согласование алгоритмов подписи. По-прежнему широко используется и безопасен при правильной настройке. |
| 2018 | TLS 1.3 | Текущий стандарт (RFC 8446). Удалены все устаревшие алгоритмы, рукопожатие за 1 RTT, обязательная прямая секретность, зашифрованное рукопожатие. Представляет фундаментальную переработку. |
Ключевые события:
- Октябрь 2014: Google обнаруживает уязвимость POODLE — SSL 3.0 невозможно исправить, его необходимо отказаться
- Июнь 2015: IETF официально признает SSL 3.0 устаревшим (RFC 7568)
- Март 2021: IETF признает устаревшими TLS 1.0 и 1.1 (RFC 8996)
- 2020-2021: Все основные браузеры прекращают поддержку TLS 1.0/1.1
Почему мы до сих пор говорим «SSL»
Термин «SSL» закрепился, потому что появился первым. Netscape ввел его в 1994 году, и к тому времени, когда TLS заменил его в 1999 году, «SSL» уже был общепринятым понятием. Сегодня:
- «SSL-сертификат» = сертификат, используемый с TLS (не с SSL)
- «SSL/TLS» = безопасное обозначение, охватывающее оба термина
- «SSL» в названиях продуктов = маркетинг, а не фактический протокол
- «Бесплатный SSL» = бесплатный TLS-сертификат
GetHTTPS, Certbot, Let’s Encrypt, ZeroSSL — все они выпускают сертификаты для TLS-соединений, даже когда их названия или маркетинг упоминают «SSL». Сами сертификаты имеют формат X.509 и работают с любой версией TLS.
В этой статье используется термин «SSL-сертификат» так же, как это принято в отрасли: для обозначения сертификата, используемого с TLS.
Технические различия, которые имеют значение
Наборы шифров
SSL опирался на алгоритмы, которые сейчас считаются взломанными:
| Алгоритм | Использовался в | Статус |
|---|---|---|
| RC4 | SSL 2.0, 3.0 | Взломан — RFC 7465 запрещает его |
| DES, 3DES | SSL 2.0, 3.0 | Взломан/устарел |
| MD5 | Рукопожатие SSL | Продемонстрированы атаки на коллизии |
| Экспортные шифры | SSL (политика США) | Намеренно слабые (40/56-битные ключи) |
| AES-GCM | TLS 1.2, 1.3 | ✅ Текущий стандарт |
| ChaCha20-Poly1305 | TLS 1.2, 1.3 | ✅ Отлично подходит для мобильных устройств/ARM |
TLS 1.3 сокращает список наборов шифров до всего 5 вариантов — все безопасные. TLS 1.2 имеет 37+, некоторые из которых слабые. Простота TLS 1.3 означает меньше возможностей для ошибок конфигурации.
Скорость рукопожатия
| SSL 3.0 | TLS 1.2 | TLS 1.3 | |
|---|---|---|---|
| Полное рукопожатие | 2+ обмена | 2 обмена | 1 обмен |
| Возобновленная сессия | 1 обмен | 1 обмен | 0-RTT (данные с первым сообщением) |
| Практическая задержка | 60-120 мс | 40-80 мс | 20-40 мс |
0-RTT возобновление в TLS 1.3 означает, что возвращающиеся посетители могут отправлять зашифрованные данные мгновенно — вообще без задержки рукопожатия.
Прямая секретность
Прямая секретность означает, что каждое соединение использует уникальный ключ. Даже если кто-то украдет закрытый ключ сервера, он не сможет расшифровать прошлые переговоры.
- SSL 3.0: Не поддерживал прямую секретность
- TLS 1.0-1.2: Поддерживает (через ECDHE), но также допускает обмен ключами RSA (без прямой секретности)
- TLS 1.3: Обязательна — обмен ключами RSA полностью удален
Аутентификация сообщений
- SSL: Использовал MAC с MD5 или SHA-1 — оба сейчас считаются слабыми
- TLS: Использует HMAC с SHA-256 или сильнее — без известных слабостей
Что вам нужно сделать
Для большинства владельцев сайтов: вероятно, ничего. Если вы:
- Имеете действующий SSL/TLS-сертификат (от Let’s Encrypt или любого CA)
- Используете достаточно современный веб-сервер (Nginx 1.13+, Apache 2.4.37+, IIS 10)
- Не отключали явно TLS 1.2/1.3 в конфигурации
…то вы уже используете TLS. Ваш «SSL-сертификат» работает с TLS 1.2 и 1.3 автоматически — одни и те же файлы .pem обслуживают оба протокола.
Одна вещь для проверки: Убедитесь, что TLS 1.0 и 1.1 отключены на вашем сервере. Они признаны устаревшими с 2021 года.
Nginx:
ssl_protocols TLSv1.2 TLSv1.3;
Apache:
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Как проверить текущую версию TLS:
# Показывает, какая версия TLS согласована
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | grep "Protocol"
# Ожидается: TLSv1.2 или TLSv1.3
Онлайн-инструмент: SSL Labs Server Test показывает, какие именно протоколы поддерживает ваш сервер.
Распространение TLS 1.3
По состоянию на начало 2026 года 62% сайтов поддерживают TLS 1.3. Все основные браузеры его поддерживают. Если ваш сервер обновлен, вы, скорее всего, уже используете TLS 1.3.
Серверы, поддерживающие TLS 1.3 из коробки (без специальной настройки):
- Nginx 1.13+ (с OpenSSL 1.1.1+)
- Apache 2.4.37+ (с OpenSSL 1.1.1+)
- Caddy (все версии — всегда использует последнюю версию TLS)
- Cloudflare (автоматически)
- AWS ALB/CloudFront (автоматически)
Что впереди: постквантовая криптография
Следующее крупное изменение TLS — постквантовый обмен ключами — защита от будущих квантовых компьютеров, которые смогут взломать текущие алгоритмы обмена ключами (ECDHE, RSA). Google Chrome и Cloudflare уже начали экспериментировать с гибридным обменом ключами (классический + постквантовый) в TLS 1.3.
Для этого не потребуются новые сертификаты — изменения касаются механизма обмена ключами, а не формата сертификатов. Ваш сертификат Let’s Encrypt будет работать с постквантовым TLS, когда он появится.
Часто задаваемые вопросы
Нужен ли мне другой сертификат для TLS по сравнению с SSL?
Нет. Один и тот же сертификат работает с любой версией TLS. «SSL-сертификат» и «TLS-сертификат» обозначают один и тот же файл X.509. Когда вы получаете сертификат от GetHTTPS, он работает с TLS 1.2 и 1.3 — никакой специальной настройки не требуется.
TLS 1.2 все еще безопасен?
Да. TLS 1.2 с наборами шифров AEAD (AES-GCM или ChaCha20-Poly1305) безопасен для промышленного использования. TLS 1.3 лучше (быстрее, проще, обеспечивает прямую секретность), но TLS 1.2 остается надежным. Рекомендуемая конфигурация: TLSv1.2 TLSv1.3.
Стоит ли принудительно использовать только TLS 1.3?
Пока нет. Около 38% сайтов не поддерживают TLS 1.3, и некоторые устаревшие клиенты (корпоративные среды, встроенные устройства, Java 8) могут поддерживать только TLS 1.2. Отказ от TLS 1.2 сегодня заблокирует некоторых реальных пользователей. Поддерживайте оба.
Перестанут ли работать «SSL-сертификаты»?
Нет. Несмотря на название, «SSL-сертификаты» — это сертификаты X.509, которые работают с любой версией TLS. Название — исторический артефакт. Ваши сертификаты продолжат работать, пока CA является доверенным и сертификат не истек.
HTTPS — это то же самое, что SSL или TLS?
HTTPS — это HTTP + TLS. Это результат применения TLS-шифрования к HTTP-соединениям. Когда вы посещаете https://example.com, ваш браузер использует протокол TLS для шифрования HTTP-трафика. HTTPS — это не отдельный протокол от TLS, а HTTP, работающий внутри TLS-туннеля.
Что такое атака POODLE?
POODLE (Padding Oracle On Downgraded Legacy Encryption) была обнаружена Google в октябре 2014 года. Она эксплуатировала уязвимость в заполнении CBC-шифров SSL 3.0. Атака позволяла злоумышленнику в той же сети расшифровывать отдельные байты зашифрованного трафика. Поскольку уязвимость была в самом дизайне протокола (а не в конкретной реализации), SSL 3.0 невозможно было исправить — его пришлось полностью отказаться. Это стало последним гвоздем в гроб SSL.