Ответ
SSL (Secure Sockets Layer) и его современный преемник TLS (Transport Layer Security) — это криптографические протоколы, предназначенные для обеспечения безопасной и конфиденциальной связи по сети (чаще всего по HTTP, превращая его в HTTPS).
Основные функции и цели:
- Шифрование (Encryption): Преобразует передаваемые данные в нечитаемый формат для всех, кроме предполагаемого получателя. Защищает конфиденциальную информацию (логины, пароли, номера карт, персональные данные) от перехвата (атаки "человек посередине").
- Аутентификация (Authentication): С помощью SSL-сертификатов, выпущенных доверенными центрами сертификации (CA), подтверждает подлинность сервера. Пользователь может быть уверен, что подключился именно к
bank.com, а не к фишинговому сайту. - Целостность данных (Data Integrity): Гарантирует, что данные при передаче не были подменены или повреждены, с помощью криптографических контрольных сумм (MAC).
Как это работает (упрощённо):
- Клиент (браузер) запрашивает безопасное соединение с сервером.
- Сервер отправляет свой SSL-сертификат.
- Браузер проверяет сертификат на доверенность и срок действия.
- Если проверка пройдена, стороны согласовывают симметричный сессионный ключ для шифрования всего дальнейшего трафика.
Значение для тестирования и разработки:
- Обязательный стандарт: Все современные сайты должны использовать HTTPS. Браузеры помечают сайты без него как «Небезопасные».
- Тестирование безопасности: Проверка корректной настройки SSL/TLS (актуальные версии протоколов, стойкие шифры, валидные сертификаты) — часть тестирования безопасности (пентеста). Инструменты вроде SSL Labs дают подробную оценку.
- Влияние на тестирование: При тестировании API или веб-приложений необходимо учитывать HTTPS-соединения. Например, запросы по HTTP могут блокироваться или автоматически перенаправляться.
# Пример проверки SSL-сертификата сайта с помощью OpenSSL
openssl s_client -connect example.com:443 -servername example.com