Ответ
SSL (Secure Sockets Layer) и его преемник TLS (Transport Layer Security) — это криптографические протоколы, обеспечивающие безопасную передачу данных по сети.
Основные цели:
- Шифрование (Конфиденциальность): Защита данных от перехвата.
- Аутентификация (Проверка подлинности): Гарантия, что клиент общается с настоящим сервером (через SSL-сертификаты).
- Целостность данных: Гарантия, что данные не были изменены при передаче.
Как это работает (упрощенно):
- «Рукопожатие» (Handshake): Клиент и сервер договариваются о параметрах шифрования, сервер предъявляет сертификат.
- Проверка сертификата: Клиент проверяет сертификат на валидность и доверие к центру сертификации (CA).
- Обмен ключами: Создается общий сеансовый ключ для симметричного шифрования.
- Безопасная передача: Данные шифруются и передаются.
Практическая проверка (Python с requests):
import requests
# Попытка запроса с проверкой сертификата (по умолчанию verify=True)
try:
response = requests.get('https://example.com')
print(f'Успех. Статус: {response.status_code}. Сертификат валиден.')
except requests.exceptions.SSLError as e:
print(f'Ошибка SSL: {e}') # Например, самоподписанный или просроченный сертификат
Важно: Термин «SSL» исторически устоялся, но современные системы используют преимущественно TLS (версии 1.2, 1.3). Без него протокол HTTP уязвим для атак «человек посередине» (MitM).