Криптография и аутентификация
Цель
Объяснить, какие задачи решают шифрование, целостность и аутентификация в VPN-инфраструктуре.
Теория
Криптография в VPN-сценариях обычно решает три задачи: скрывает содержимое трафика, защищает его от незаметного изменения и помогает сторонам убедиться, что они подключаются к ожидаемому участнику обмена.
Аутентификация отвечает на вопрос "кто имеет право подключиться". Это может быть пароль, ключ, UUID, сертификат, токен или комбинация нескольких механизмов.
История
Ранние VPN-решения часто опирались на корпоративные учетные записи и сертификаты. Современные proxy- и VPN-стеки используют более разнообразные модели: предварительные секреты, клиентские идентификаторы, TLS-сертификаты, Reality-подобные схемы и внешние панели управления доступом.
Архитектура
Минимальная модель защиты включает:
- алгоритм шифрования;
- проверку целостности;
- обмен ключами или другой способ согласования секретов;
- проверку сервера клиентом;
- проверку клиента сервером;
- хранение и отзыв учетных данных;
- обновление криптографических материалов.
Настройка
Для каждой конфигурации нужно явно определить:
- как клиент проверяет сервер;
- как сервер проверяет клиента;
- где хранятся секреты;
- как секреты ротируются;
- как отзывается скомпрометированный клиент;
- какие логи могут раскрывать чувствительные данные.
Разбор параметров
certificate— сертификат для подтверждения сервера или клиента.private key— закрытый ключ, который нельзя раскрывать.uuid— идентификатор клиента в некоторых протоколах.password— секрет, используемый для допуска клиента.tls— слой защиты соединения.fingerprint— признак, по которому клиент может проверять ожидаемый сервер
или профиль TLS-поведения.
rotation— плановая замена секретов.
Пример разделения задач:
| Механизм | На какой вопрос отвечает | Типовая ошибка |
|---|---|---|
| Шифрование | Можно ли прочитать трафик третьей стороне | Считать его заменой аутентификации |
| Целостность | Был ли трафик изменен | Не проверять ошибки проверки |
| Аутентификация сервера | Тот ли это сервер | Отключать проверку сертификата |
| Аутентификация клиента | Имеет ли клиент право доступа | Использовать один общий секрет |
Типовые ошибки
- переиспользовать один секрет для всех клиентов;
- хранить приватные ключи с широкими правами доступа;
- отключать проверку сертификата ради быстрого теста;
- не иметь процедуры отзыва клиента;
- публиковать клиентские ссылки в открытых каналах;
- логировать чувствительные параметры.
Безопасность
Сильная криптография не компенсирует слабую операционную безопасность. Если секреты раскрыты, панель доступна посторонним или сервер не обновляется, защищенность протокола резко теряет практическое значение.
Чек-лист
- Сервер проверяется клиентом.
- Клиент проверяется сервером.
- Секреты уникальны для пользователей или групп.
- Приватные ключи защищены правами доступа.
- Есть процедура ротации и отзыва.
- Логи не раскрывают чувствительные данные.