Что такое SSL/TLS и какова его роль в веб-безопасности?

«Что такое SSL/TLS и какова его роль в веб-безопасности?» — вопрос из категории Тестирование безопасности, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

SSL (Secure Sockets Layer) и его современный преемник TLS (Transport Layer Security) — это криптографические протоколы, предназначенные для обеспечения безопасной и конфиденциальной связи по сети (чаще всего по HTTP, превращая его в HTTPS).

Основные функции и цели:

  1. Шифрование (Encryption): Преобразует передаваемые данные в нечитаемый формат для всех, кроме предполагаемого получателя. Защищает конфиденциальную информацию (логины, пароли, номера карт, персональные данные) от перехвата (атаки "человек посередине").
  2. Аутентификация (Authentication): С помощью SSL-сертификатов, выпущенных доверенными центрами сертификации (CA), подтверждает подлинность сервера. Пользователь может быть уверен, что подключился именно к bank.com, а не к фишинговому сайту.
  3. Целостность данных (Data Integrity): Гарантирует, что данные при передаче не были подменены или повреждены, с помощью криптографических контрольных сумм (MAC).

Как это работает (упрощённо):

  1. Клиент (браузер) запрашивает безопасное соединение с сервером.
  2. Сервер отправляет свой SSL-сертификат.
  3. Браузер проверяет сертификат на доверенность и срок действия.
  4. Если проверка пройдена, стороны согласовывают симметричный сессионный ключ для шифрования всего дальнейшего трафика.

Значение для тестирования и разработки:

  • Обязательный стандарт: Все современные сайты должны использовать HTTPS. Браузеры помечают сайты без него как «Небезопасные».
  • Тестирование безопасности: Проверка корректной настройки SSL/TLS (актуальные версии протоколов, стойкие шифры, валидные сертификаты) — часть тестирования безопасности (пентеста). Инструменты вроде SSL Labs дают подробную оценку.
  • Влияние на тестирование: При тестировании API или веб-приложений необходимо учитывать HTTPS-соединения. Например, запросы по HTTP могут блокироваться или автоматически перенаправляться.
# Пример проверки SSL-сертификата сайта с помощью OpenSSL
openssl s_client -connect example.com:443 -servername example.com