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

Профиль — это не документация о туннеле. Это идентичность туннеля, выписанная.

Объекты в файле не имеют одинакового уровня секретности

Публичный сертификат CA предназначен для передачи. Закрытый ключ клиента — нет. Когда оба оказываются в одном файле, безобидный заставляет всё вложение выглядеть безопасным. В этом и ловушка.

OpenVPN по своему устройству усугубляет это. Он позволяет встраивать сертификаты, ключи и материалы аутентификации прямо в файл. Это удобно для развёртывания и катастрофично для передачи. Файл, который начинается с читаемого блока сертификата, продолжается в закрытую половину.

WireGuard говорит об этом прямее. Раздел интерфейса содержит закрытый ключ, а каждый peer может дополнительно нести заранее общий ключ. Никакой двусмысленности в том, какие строки важны, нет. Важна почти каждая строка.

Снимок экрана — это та же утечка в другом формате

Кодирование конфигурации в виде QR-кода не делает её предпросмотром. Код несёт те же байты, и любая камера телефона в комнате может его расшифровать. То же относится к снимку экрана окна клиентской конфигурации, где ключ читается в углу.

Файлы аутентификации и указанные пути к ключам относятся к одному и тому же аудиту. Профиль, указывающий на внешний файл, не становится автоматически безопаснее, потому что путь может вести туда, куда дотянется читатель. Токен в файле аутентификации так же применим, как пароль, и редко выглядит как он.

Отправляйте текст ошибки, а не ключ

Для диагностики нужны текст ошибки, версия клиента и названия испробованных параметров. Ключ не нужен. Напишите вопрос с этими тремя вещами и замените каждый секрет и каждый ненужный сетевой идентификатор, прежде чем файл покинет вашу машину.

Раздел руководства OpenVPN о встроенных файлах — полезная карта того, где находятся эти объекты. Он также напоминает, сколько их может содержать один профиль.

# which lines in this profile look like secrets?
grep -n -E 'PrivateKey|PresharedKey|password|auth-user-pass|BEGIN .*PRIVATE KEY' wg0.conf

# OpenVPN: show the structure without printing key material
awk '/BEGIN/{print NR": "$0} /^[a-z-]+ /{print NR": "$1}' office.ovpn

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

После раскрытия ротация — единственное лечение

Удаление публикации ничего не отзывает. У того, кто получил файл, всё ещё есть действующие учётные данные, поэтому издатель должен отозвать или заменить их через собственный процесс сервиса. Удаление локальной копии ничего не меняет на дальнем конце.

Храните рабочие профили защищённым способом и намеренно удаляйте устаревшие импортированные записи, а не оставляйте три копии в папке загрузок. Профиль, которым вы больше не пользуетесь, остаётся учётными данными, пока его не отзовут.

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

Похожие статьи