← Назад к вопросам

В чём разница между SSL и TLS?

2.2 Middle🔥 131 комментариев
#Веб-тестирование

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

SSL и TLS — Безопасность в сети

SSL (Secure Sockets Layer) и TLS (Transport Layer Security) — это протоколы, которые обеспечивают зашифрованную и защищённую коммуникацию между клиентом и сервером. Для QA-специалистов важно понимать эту терминологию при тестировании безопасности веб-приложений.

Исторический контекст

SSL (Secure Sockets Layer) был разработан компанией Netscape в 1990-х годах как первый протокол для защиты данных в интернете.

TLS (Transport Layer Security) — это современный, более безопасный преемник SSL. TLS был впервые стандартизирован в 1999 году как улучшенная версия SSL 3.0.

Временная шкала:

  • SSL 2.0 (1995) — первая версия, содержала уязвимости
  • SSL 3.0 (1996) — значительные улучшения безопасности
  • TLS 1.0 (1999) — основан на SSL 3.0, но с улучшениями
  • TLS 1.1 (2006) — добавлена защита от определённых атак
  • TLS 1.2 (2008) — значительное усиление безопасности
  • TLS 1.3 (2018) — современный стандарт, быстрее и безопаснее

Основные различия

1. Название и статус

АспектSSLTLS
Полное имяSecure Sockets LayerTransport Layer Security
СтатусУстарел, в production не используетсяТекущий стандарт
Версии2.0, 3.0 (обе DEPRECATED)1.0, 1.1, 1.2, 1.3 (актуальны)
БезопасностьСодержит уязвимостиЗащищён от известных атак

2. Терминология в индустрии

Практика: В современной индустрии люди часто говорят "SSL сертификат" или "SSL/TLS", но имеют в виду именно TLS.

Когда видишь надпись "SSL сертификат" — это почти всегда TLS
Когда видишь в браузере🔒 значок замка — это TLS соединение

3. Технические различия

Алгоритмы:

  • SSL использует MD5 и SHA-1 хеширование (слабые)
  • TLS использует SHA-256 и более (безопасные)

Handshake (процесс установления соединения):

  • SSL: явный, многошаговый процесс
  • TLS: оптимизирован, быстрее (особенно TLS 1.3)

Алерты (сообщения об ошибках):

  • SSL: не имеет чётких механизмов обработки ошибок
  • TLS: улучшенная система алертов для отладки

Как это работает в браузере

1. Клиент (браузер) подключается к серверу
   ↓
2. TLS Handshake (согласование)
   • Клиент отправляет поддерживаемые версии и алгоритмы
   • Сервер выбирает самую безопасную версию
   • Обмен сертификатами
   ↓
3. Шифрование установлено
   ↓
4. Данные передаются в зашифрованном виде
   ↓
5. Замок 🔒 появляется в адресной строке

HTTPS = HTTP + TLS

HTTPS не существует как отдельный протокол. Это просто HTTP с TLS шифрованием.

HTTP (порт 80) → НЕЗАЩИЩЁННОЕ
HTTPS (порт 443) → HTTP + TLS ШИФРОВАНИЕ

Примеры в тестировании

1. Проверка сертификата

Утилита openssl для проверки:

# Проверить сертификат сервера
openssl s_client -connect example.com:443

# Вывод будет содержать:
# - Версию TLS: TLSv1.3
# - Используемые алгоритмы
# - Срок действия сертификата
# - Издателя сертификата

2. Проверка поддерживаемых версий

# Проверить какие версии TLS поддерживает сервер
nmap --script ssl-enum-ciphers -p 443 example.com

# Результат:
# TLSv1.0: slabые алгоритмы (DEPRECATED)
# TLSv1.2: сильные алгоритмы (ХОРОШО)
# TLSv1.3: новейшие алгоритмы (ОТЛИЧНО)

3. Тестирование в Postman

В Postman можно отключить проверку сертификата:

  • Settings → SSL Certificate Verification → OFF

Это полезно при работе с self-signed сертификатами в development окружении.

Уязвимости и атаки

SSL Уязвимости

POODLE (Padding Oracle on Downgraded Legacy Encryption)

  • Атака на SSL 3.0
  • Позволяет дешифровать данные
  • Решение: отключить SSL 3.0

TLS Уязвимости

BEAST (браузер Exploit Against SSL/TLS)

  • Атака на TLS 1.0
  • Решение: обновить до TLS 1.1+

HEARTBLEED (CVE-2014-0160)

  • Уязвимость в OpenSSL
  • Позволяла утечку памяти
  • Решение: обновить OpenSSL

Современное состояние

Поддержка браузерами:

  • SSL 2.0 — не поддерживается
  • SSL 3.0 — отключён в большинстве браузеров
  • TLS 1.0, 1.1 — есть, но deprecated
  • TLS 1.2 — стандарт для производства
  • TLS 1.3 — новейший, рекомендуемый

Требования PCI DSS (платёжная индустрия):

  • Обязательно TLS 1.2 минимум
  • SSL/TLS старше 1.2 запрещены

Практические рекомендации для QA

1. Проверьте HTTPS в production

curl -I https://example.com

# Правильный ответ:
HTTP/2 200
Strict-Transport-Security: max-age=31536000

2. Проверьте версию TLS

nmap -sV --script ssl-enum-ciphers -p 443 example.com
# Должно быть TLS 1.2 или 1.3

3. Проверьте валидность сертификата

ssllabs.com/ssltest/analyze.html?d=example.com
# Google SSL Labs проверит оценку безопасности

4. Тестирование в своём окружении

  • Для dev: использовать self-signed сертификаты
  • Для staging: использовать Let's Encrypt (бесплатные)
  • Для production: использовать сертификаты от trusted CA

Ключевые моменты для запоминания

SSL — устарел, в production не используется ✅ TLS — современный протокол, используется везде ✅ HTTPS = HTTP + TLS шифрование ✅ "SSL сертификат" в современности обычно означает TLS ✅ TLS 1.3 — текущий стандарт безопасности ✅ Port 443 — стандартный порт для HTTPS/TLS

Заключение

Сегодня SSL — это просто историческое имя. Все современные приложения используют TLS, а не SSL. При тестировании веб-приложений важно:

  1. Убедиться, что используется HTTPS (TLS)
  2. Проверить версию TLS (должна быть 1.2 или выше)
  3. Валидировать сертификаты
  4. Проверить отсутствие уязвимостей
  5. Убедиться в правильных заголовках безопасности

Понимание SSL/TLS критично для тестирования безопасности веб-приложений.

В чём разница между SSL и TLS? | PrepBro