Замена скомпрометированного ключа VPN: что должен сделать сервер
Удаление файла ничего не меняет на сервере. Замена означает новую личность, которая работает, и старую, которую шлюз действительно отклоняет, именно в этом порядке.
Потерян ноутбук с клиентским ключом, и первым действием обычно становится удаление локальной копии. Это ничего не меняет на сервере, у которого всё ещё есть авторизация, принимающая этот ключ, пока кто-то её не удалит. Замена — это две операции, и только вторая касается старой учётной записи.
Локальная копия — не власть
Учётные данные VPN принимаются потому, что так задаёт конфигурация на стороне сервера. Для сертификатов это значит, что сертификат выстраивается в цепочку к доверенному издателю и не числится в списке отзыва, который проверяет шлюз. Для WireGuard это значит, что открытый ключ партнёра указан в конфигурации интерфейса. Удаление файла на клиенте убирает одну копию секрета и оставляет правило приёма нетронутым.
Поэтому украденный ключ продолжает работать после очевидной уборки, и поэтому инцидент кажется нерешённым даже после установки новой конфигурации.
Начните с правила сервера, затем двигайтесь наружу, к клиенту.
Сертификаты: решение принимает сервер
Выпустите замену через собственный процесс издателя, чтобы новая личность была зарегистрирована, затем отзовите старую подписанным отзывом. Шлюз должен быть настроен на проверку этого источника отзыва и должен перечитать его, иначе файл лежит на диске, а туннель продолжает принимать старый серийный номер. Активные сессии тоже могут пережить до повторного согласования, поэтому планируйте переподключение.
Убедитесь, что замена работает для целевого приложения, затем в рамках утверждённого процесса убедитесь, что выведенный сертификат больше не даёт доступа.
Это два разных теста, и нужны оба. RFC 5280 определяет семантику сертификатов и отзыва, на которую опирается шлюз.
WireGuard: ключ партнёра — это личность
В WireGuard нет уровня сертификатов: открытый ключ партнёра — это личность, а запись allowed-ips на сервере — авторизация. Удаление старого партнёра из конфигурации интерфейса и есть отзыв, и он сразу действует для новых рукопожатий.
Существующие сессии завершаются, когда следующее рукопожатие не удаётся, что обычно происходит в течение нескольких минут, а не мгновенно.
Распространяйте новую конфигурацию по каналу, которому доверили бы пароль, потому что закрытый ключ и есть учётные данные. Держите один ключ на устройство, чтобы одно потерянное устройство не вынуждало менять все.
Что ещё было в том пакете
Клиентский пакет часто несёт больше, чем закрытый ключ: статический ключ TLS, имя пользователя и пароль, заранее общий секрет или токен подготовки. Ограничьте инцидент тем, что действительно раскрыто, и смените также эти элементы. Смена сертификата при сохранении общего статического ключа закрывает одну дверь и оставляет открытой другую.
Если пакет был общим для нескольких устройств, каждое устройство, которое его носит, наследует раскрытие.
Запишите, что было сменено, потому что следующий аудит это спросит.
Докажите отказ, затем зафиксируйте замену
Замена завершена, когда выполняются два факта: новая личность работает для нужной службы, а старая отклоняется. Проверьте второй выведенными учётными данными из тестовой среды или контролируемой попыткой, одобренной организацией, и прочитайте журналы шлюза, чтобы подтвердить: отказ пришёл из политики, а не из опечатки. Затем зафиксируйте старый идентификатор, новый и время изменения, потому что именно эти три значения нужны аудитору для восстановления картины. Ничто другое в заявке не объяснит этот пробел.
Держите закрытые ключи вне заявок и переписки, и в соответствии с политикой удалите устаревшие выгрузки из хранилища и резервных копий.
Замена без теста отказа — это предположение, а не исправление.