Ответ
TLS (Transport Layer Security) — это криптографический протокол, предназначенный для обеспечения безопасной связи по сети (например, Интернет). Он является преемником устаревшего и небезопасного протокола SSL.
Основные цели TLS:
- Шифрование: Защищает передаваемые данные от прослушивания (конфиденциальность).
- Аутентификация: Проверяет подлинность сервера (с помощью сертификатов), а при Mutual TLS — и клиента.
- Целостность данных: Гарантирует, что данные не были подменены в пути (с помощью кодов аутентификации сообщений).
Как это работает (упрощённо):
- "Рукопожатие" (Handshake): Клиент и сервер договариваются о параметрах шифрования, проверяют сертификаты и создают общий секретный ключ.
- Шифрование приложения: Данные приложения шифруются симметричным шифром с использованием этого ключа.
Пример проверки TLS-соединения на Python:
import requests
import ssl
# Стандартный запрос с проверкой сертификата (verify=True по умолчанию)
try:
response = requests.get('https://example.com')
print(f"Успех. Используется: {response.raw.connection.socket.version()}")
except requests.exceptions.SSLError as e:
print(f"Ошибка TLS/SSL: {e}")
# Пример создания безопасного контекста
context = ssl.create_default_context()
context.minimum_version = ssl.TLSVersion.TLSv1_2 # Запрет устаревших версий
Актуальные версии: Используйте TLS 1.2 или TLS 1.3. Версии TLS 1.0 и 1.1 считаются уязвимыми и не должны применяться. Где используется: HTTPS (HTTP over TLS), защищённые API (REST/gRPC), VPN, электронная почта (SMTPS, IMAPS), передача файлов (FTPS).