Заметки о сетях

Как устроен VPN

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

Три буквы

VPN расшифровывается как Virtual Private Network — «виртуальная частная сеть». Идея появилась задолго до массового интернета: компании с несколькими офисами хотели, чтобы машины в разных городах видели друг друга так, будто стоят в одной серверной. Тянуть между городами собственный кабель дорого, поэтому частную сеть стали строить поверх общей — виртуально.

Слово «виртуальная» здесь ключевое. Физически данные идут по тем же линиям, что и весь остальной трафик. Отличие в том, что перед отправкой они упаковываются в дополнительную оболочку, а распаковать её может только вторая сторона соединения.

Что такое туннель

Туннель — это соглашение между двумя узлами о том, как заворачивать пакеты. Отправитель берёт готовый сетевой пакет целиком, шифрует его и кладёт внутрь нового пакета, адресованного удалённому узлу. Для промежуточного оборудования это выглядит как обычный трафик к одному конкретному адресу: содержимое и настоящий получатель скрыты внутри.

устройство ──[ шифрование ]──▶ узел сети ──▶ интернет
            └─ снаружи виден только факт соединения с узлом

Порядок действий при подключении примерно такой:

  1. Проверка сторон. Узлы убеждаются, что говорят с тем, с кем собирались — по сертификату, паре ключей или общему секрету.
  2. Согласование ключей. Стороны вырабатывают сеансовый ключ, который не передаётся по сети целиком и живёт только до конца сессии.
  3. Поднятие интерфейса. В системе появляется виртуальный сетевой адаптер, и часть маршрутов начинает вести через него.
  4. Передача. Пакеты шифруются, упаковываются, уходят на удалённый узел и там распаковываются обратно.

Зачем это организациям

Исторически основной сценарий — не приватность, а доступ. Внутренние системы компании (таск-трекер, база данных, файловое хранилище) обычно не выставляются в открытый интернет. Сотрудник, подключившись к корпоративной сети, получает адрес внутри неё и видит эти ресурсы так же, как из офиса.

Второй сценарий — объединение площадок: два офиса и облачный сегмент связывают постоянным туннелем, и для приложений это выглядит как единая локальная сеть. Третий — защита трафика в недоверенных сетях: в общедоступном Wi-Fi шифрование не даёт соседям по точке доступа читать содержимое соединений.

Протоколы

IPsec
Набор стандартов, встроенный в стек IP. Работает на сетевом уровне, применяется в основном для постоянных соединений между площадками и в оборудовании операторов.
OpenVPN
Реализация поверх TLS, появившаяся в 2001 году. Гибкая в настройке, кроссплатформенная, за счёт объёма кода сложнее в аудите.
WireGuard
Современный протокол с намеренно небольшой кодовой базой — около нескольких тысяч строк против сотен тысяч у предшественников. Фиксированный набор криптографических примитивов вместо согласования алгоритмов; с 2020 года входит в ядро Linux.

Чего технология не делает

Вокруг темы много преувеличений, поэтому полезно очертить границы.

Правовой режим использования подобных технологий различается от страны к стране и меняется со временем. Этот текст описывает техническую сторону вопроса и не является юридической консультацией.

Мини-словарь

Пакет
Порция данных с заголовком: кому, от кого, какого размера. Единица передачи в IP-сетях.
Инкапсуляция
Упаковка одного пакета внутрь другого. Механизм, на котором держится любой туннель.
Сеансовый ключ
Ключ шифрования, действующий в пределах одной сессии. Регулярная смена ограничивает ущерб от его возможной компрометации.
Хендшейк
Начальный обмен сообщениями, в котором стороны проверяют друг друга и договариваются о параметрах шифрования.

Что почитать дальше

Тем, кто хочет глубже: RFC 4301 описывает архитектуру IPsec, документация ядра Linux — устройство сетевых интерфейсов, а курс по основам криптографии объясняет, почему обмен ключами по открытому каналу вообще возможен. Практика полезнее теории: поднимите туннель между двумя виртуальными машинами и посмотрите на трафик анализатором пакетов — станет видно, что именно скрыто, а что остаётся на виду.