Короткоживущие VPN-сертификаты
VPN-клиент доверяет серверу, к которому подключается, через сертификат. Этот сертификат подтверждает, что сервер — тот, за кого себя выдаёт. Если сертификат скомпрометирован — украден с украденного ноутбука, утёк из бэкапа, вытащен из неправильно настроенного S3-бакета — атакующий может выдавать себя за сервер. Пока кто-то вручную не отзовёт этот сертификат, каждый клиент, который подключится, получит man-in-the-middle без всякого предупреждения.
Большинство потребительских VPN выдают сертификаты на месяцы. Некоторые — на годы. Fexyn выдаёт на 24 часа. Этот пост объясняет, почему 24 — это правильное число.
Проблема отзыва сертификатов, о которой никто не говорит
Стандартный ответ на «а что если сертификат утёк» — «мы его отзовём». Механизм — Certificate Revocation List (CRL) или его современный родственник OCSP (Online Certificate Status Protocol). Клиент проверяет CRL, видит что сертификат отозван, отказывается ему доверять.
На практике оба механизма ненадёжны.
CRL медленно распространяются. PKI публикует новый CRL по расписанию — обычно раз в час или раз в сутки. Клиенты кешируют CRL между проверками. Между моментом отзыва и распространением каждый клиент по-прежнему доверяет отозванному сертификату.
CRL большие. Долгоживущая PKI накапливает отзывы. CRL растёт неограниченно, пока сертификат не устаревает естественно. CRL по несколько мегабайт — обычное дело. Клиенты, которые скачивают полный CRL на каждое подключение, замедляются по мере старения PKI. Те, кто не скачивают — отстают по статусу отзыва.
OCSP должен это решать, делая проверки реал-таймовыми по каждому сертификату вместо батчевых по CRL. На практике OCSP-респондеры падают. Когда респондер недоступен, клиент стоит перед выбором: fail closed (заблокировать соединение) или fail open (доверять сертификату всё равно). Большинство выбирает fail open, потому что fail closed ломает UX каждый раз, когда OCSP-респондер икнёт. Так что на практике OCSP тоже не ловит отзывы надёжно.
Браузеры в итоге сдались. Chrome перестал делать OCSP по умолчанию в 2012-м. Firefox — следом. Они перешли на CRLSets и CRLite — выверенные подмножества отзывов, которые пушатся в обновлениях браузера. Лучше, но конкретно для браузеров, не для VPN.
Для VPN PKI: если твой сертификат утёк и ты его отозвал — надейся, что каждый клиент обновит CRL до того, как атакующий им воспользуется. Надейся, что они не сделают fail open во время короткой недоступности OCSP. Надейся, что в окне ничего не произошло.
Короткоживущие сертификаты обходят проблему
Прозрение Let's Encrypt: если сертификаты истекают достаточно быстро, тебе не нужно их отзывать. Сертификат исчезает раньше, чем это начинает иметь значение.
Let's Encrypt выдаёт 90-дневные сертификаты. Веб-экосистема перестроила свою автоматизацию вокруг этого ограничения. ACME, certbot, автоматическое обновление — всё это существует, потому что кто-то решил, что 90 дней достаточно мало, чтобы отзыв стал примечанием, а не функцией.
Для VPN-клиентов можно идти короче. Компромисс:
- Длинные сертификаты (месяцы, годы): низкая операционная нагрузка, ужасный blast radius при компрометации.
- Короткие сертификаты (часы): выше операционная нагрузка, малый blast radius.
24 часа — sweet spot для VPN-клиентов. Достаточно долго, чтобы один цикл sleep/resume не вызывал переоформление. Достаточно коротко, чтобы украденная креденциалка истекла раньше, чем большинство атакующих успеют ею воспользоваться.
Как это реализовано в Fexyn
Fexyn использует HashiCorp Vault PKI как издатель сертификатов. Конфигурация:
- Корневой CA офлайн, на хардварных токенах. Вне досягаемости любой компрометации работающей инфраструктуры.
- Промежуточный CA онлайн, подписывает серверные и клиентские сертификаты.
- TTL клиентского сертификата: 24 часа.
- TTL серверного сертификата: 24 часа, ротируется автоматически.
Поток при подключении:
- Fexyn-клиент аутентифицируется в API через креденшалы аккаунта.
- API запрашивает свежий сертификат из Vault для твоего клиента.
- Vault подписывает новый сертификат сроком на 24 часа.
- Клиент использует этот сертификат для VPN-туннеля.
- Сертификат истекает. Следующее подключение запускает свежее оформление.
Сертификат никогда не лежит на диске дольше, чем его срок жизни. Нет долгоживущего секрета на твоём ноутбуке, который должен переживать сессии.
Threat models, которые это закрывает
Украденный ноутбук. У вора есть 24-часовое окно, чтобы выдать себя за тебя в VPN до того, как сертификат умрёт. По сравнению с долгоживущим сертификатом, валидным месяцами — драматическое улучшение.
Изъятие на границе. Пересечение границ с ноутбуком в любой стране, где у таможни широкие полномочия по изъятию. Если они снимают образ диска или вытаскивают креденциалы — эти креденциалы истекают на следующий день. Не нужно судорожно отзывать; система разруливает это естественным устареванием.
Скомпрометированный бэкап. Если бэкап украли и атакующий вытащил VPN-креденциалку — та же история. У атакующего часы, не месяцы.
Скомпрометированная инфраструктура. Если Fexyn-сервер скомпрометирован так, что его сертификат раскрыт, ущерб ограничен оставшимся сроком сертификата. Мы ротируем серверные сертификаты ежедневно; худший случай — 24-часовое окно, когда вредоносный сервер мог бы выдавать себя за нас. Это сочетается с pinning сертификатов на стороне клиента, что ловит подмену до того, как она имеет значение.
Чем это не является
Короткоживущие сертификаты не заменяют:
- Сильную аутентификацию аккаунта. Если твой пароль зафишен и атакующий зашёл в твой Fexyn-аккаунт, он получит свежие сертификаты из API. Срок сертификата не помогает. Используй менеджер паролей и включай MFA.
- Безопасность endpoint'а. Скомпрометированный ноутбук может быть бэкдорнут так, что сертификаты тихо эксфильтруются в момент выдачи. PKI это не лечит.
- Компрометацию на сетевом уровне за пределами туннеля. Если твой провайдер делает TLS-перехват с предустановленным CA на твоей машине — это другая атака, и VPN PKI ниже уровня, на котором мог бы помочь.
PKI ограничивает один конкретный режим сбоя: утёкшие креденциалы остаются полезными бесконечно. Это значимое улучшение, не полная защита.
Почему ни один другой потребительский VPN так не делает
Технически это несложно. Vault PKI — open source. ACME-style автоматизация хорошо задокументирована. Причина, по которой большинство VPN-провайдеров остаются с долгоживущими сертификатами — операционная:
- Долгоживущие сертификаты означают меньше нагрузки на инфраструктуру PKI.
- Они означают, что клиенты могут подключаться, даже если PKI временно недоступна.
- Они означают меньше тикетов в поддержку с «у меня VPN не подключается» из-за ошибки обновления.
Это реальные опасения. Чтобы их решить, нужно встроить процесс обновления в клиента так, чтобы он был незаметен. Это инженерная работа, которую средняя VPN-команда не приоритизирует, потому что маркетинг не продаёт на гигиене PKI.
Fexyn приоритизировал, потому что для пользователей в более высокорискованных позициях это значимая разница в безопасности: журналистов, активистов, удалённых работников с чувствительными данными.
Связанное чтение
- Обзор безопасности
- VPN для удалённой работы
- VPN для журналистов
- Политика отсутствия логов
- Как выбрать VPN в 2026
Попробуй Fexyn бесплатно 7 дней — твой первый сертификат на 24 часа, и думать о нём не нужно.