3x-ui Admin Guide
Теория VPN

Криптография и аутентификация

Теория VPN. Глава 5 из 38.

Криптография и аутентификация

Цель

Объяснить, какие задачи решают шифрование, целостность и аутентификация в VPN-инфраструктуре.

Теория

Криптография в VPN-сценариях обычно решает три задачи: скрывает содержимое трафика, защищает его от незаметного изменения и помогает сторонам убедиться, что они подключаются к ожидаемому участнику обмена.

Аутентификация отвечает на вопрос "кто имеет право подключиться". Это может быть пароль, ключ, UUID, сертификат, токен или комбинация нескольких механизмов.

История

Ранние VPN-решения часто опирались на корпоративные учетные записи и сертификаты. Современные proxy- и VPN-стеки используют более разнообразные модели: предварительные секреты, клиентские идентификаторы, TLS-сертификаты, Reality-подобные схемы и внешние панели управления доступом.

Архитектура

Минимальная модель защиты включает:

  • алгоритм шифрования;
  • проверку целостности;
  • обмен ключами или другой способ согласования секретов;
  • проверку сервера клиентом;
  • проверку клиента сервером;
  • хранение и отзыв учетных данных;
  • обновление криптографических материалов.
Криптография и аутентификация
Криптография и аутентификация

Настройка

Для каждой конфигурации нужно явно определить:

  • как клиент проверяет сервер;
  • как сервер проверяет клиента;
  • где хранятся секреты;
  • как секреты ротируются;
  • как отзывается скомпрометированный клиент;
  • какие логи могут раскрывать чувствительные данные.

Разбор параметров

  • certificate — сертификат для подтверждения сервера или клиента.
  • private key — закрытый ключ, который нельзя раскрывать.
  • uuid — идентификатор клиента в некоторых протоколах.
  • password — секрет, используемый для допуска клиента.
  • tls — слой защиты соединения.
  • fingerprint — признак, по которому клиент может проверять ожидаемый сервер

или профиль TLS-поведения.

  • rotation — плановая замена секретов.

Пример разделения задач:

МеханизмНа какой вопрос отвечаетТиповая ошибка
ШифрованиеМожно ли прочитать трафик третьей сторонеСчитать его заменой аутентификации
ЦелостностьБыл ли трафик измененНе проверять ошибки проверки
Аутентификация сервераТот ли это серверОтключать проверку сертификата
Аутентификация клиентаИмеет ли клиент право доступаИспользовать один общий секрет

Типовые ошибки

  • переиспользовать один секрет для всех клиентов;
  • хранить приватные ключи с широкими правами доступа;
  • отключать проверку сертификата ради быстрого теста;
  • не иметь процедуры отзыва клиента;
  • публиковать клиентские ссылки в открытых каналах;
  • логировать чувствительные параметры.

Безопасность

Сильная криптография не компенсирует слабую операционную безопасность. Если секреты раскрыты, панель доступна посторонним или сервер не обновляется, защищенность протокола резко теряет практическое значение.

Чек-лист

  • Сервер проверяется клиентом.
  • Клиент проверяется сервером.
  • Секреты уникальны для пользователей или групп.
  • Приватные ключи защищены правами доступа.
  • Есть процедура ротации и отзыва.
  • Логи не раскрывают чувствительные данные.