Неудачная попытка VPN: какой класс учётных данных пересёк границу?
Неудачная попытка могла не отправить ничего или передать пароль тому, кто ответил. Классифицируйте артефакт, прежде чем решать, что отзывать.
Вы подключились к неправильному VPN, и клиент сообщил об ошибке. Имело ли это значение, зависит от того, что прошло по линии до ошибки, а само слово вам этого не говорит. Некоторые рукопожатия вообще не несут секрета, а другие передают пароль любому, кто ответил на адрес. Определите, какой из двух случаев произошёл, прежде чем что-либо отзывать.
Остановитесь и сохраните доказательства
Сохраните журнал клиента, выбранный профиль, введённый адрес и примерное время. Запишите их вне клиента, потому что редактирование профиля или переустановка уничтожает запись, которая вам понадобится. Приостановите любую дальнейшую попытку, пока конечная точка не будет подтверждена путём, который вы контролируете.
Никогда не публикуйте неотредактированный профиль или журнал на публичном форуме, спрашивая, была ли попытка безопасной. Эти документы часто содержат путь к закрытому ключу, внутреннее имя хоста или токен, поэтому сначала отредактируйте и поделитесь с администратором, которому принадлежит конечная точка.
Что может пересечь границу
Большая часть путаницы возникает из-за того, что каждая ошибка считается одним типом события. На другую сторону могут попасть четыре разные вещи: открытый сертификат, подпись, доказывающая использование ключа, пароль или одноразовый код, и файл, который вы выбрали сами. У каждой своё последствие и своё исправление. Классификация артефакта — это шаг, который определяет всё дальнейшее.
Случай с сертификатом самый мягкий, потому что путешествующее по сети по своей природе открыто, а его идентифицирующие поля уже видны каждому, кто подключается. Подпись над вызовом говорит, что ключ использовался, а не что он был отправлен. Пароль — обратный случай: тот, кто его получил, может попробовать его в другом месте, а служба, созданная для проверки паролей, является намеченным получателем именно этого значения.
Доказательство ключа — это не загрузка ключа
Современный TLS намеренно разделяет эти две идеи. RFC 8446 описывает сообщение CertificateVerify, в котором клиент подписывает вызов закрытым ключом, соответствующим его сертификату. Подпись доказывает владение, не перенося ключ, поэтому попытка с аутентификацией по сертификату не является автоматически компрометацией ключа.
У этого успокоения есть граница, которую стоит назвать. Доказательство показывает, что ключ участвовал в том обмене, и ничего не говорит о том, что локальная программа на машине могла уже прочитать. Оно также ничего не говорит о том, как далеко на самом деле продвинулась неизвестная попытка, поэтому журнал по-прежнему важнее теории.
Пароли подчиняются совершенно другой модели доверия. Концентратор, настроенный с внешним проверяющим, может передать представленное значение дальше, поэтому его получение является предусмотренной функцией, а неверный адресат — реальной утечкой, а не теоретической.
Восстановите попытку по журналу
Четыре факта восстанавливают попытку: адрес, с которым действительно связались, проверялась ли подлинность сервера, какой метод аутентификации выбран и где процесс остановился. Каждый из них виден в журнале клиента, и каждый исключает свою версию. Ошибка о маршрутах или выданном адресе ничего не говорит о том, что уже было на линии, потому что аутентификация могла завершиться до того, как настройка туннеля не удалась.
Извлеките эти факты из собственного журнала клиента, а не из памяти. Узкий фильтр оставляет вывод достаточно коротким, чтобы его отредактировать и передать:
grep -n -i -E 'verify|authentication|certificate|error|timeout' client.log | tail -30
Не заменяйте имя хоста ничем из этого. Знакомое имя, текущий ответ DNS и предупреждение о сертификате, которое показывает программа, описывают настоящее, а не прежнее подключение. Запрос пароля тоже не доказывает, что что-то было отправлено, потому что клиент мог отказать ещё до его отправки.
Решите, затем действуйте
Решение вытекает из артефакта, а не из того, насколько тревожной выглядела ошибка. Прочитайте четыре строки напротив восстановленных фактов:
| Decision | Evidence that puts you here | Evidence that rules it out |
|---|---|---|
| Change the password now | A password was submitted and a server reply arrived | The log stops before any submission |
| Review active sessions | A one-time code was accepted by the wrong endpoint | The code was never sent, or was rejected before use |
| Revoke and reissue | The file you selected contained key material, not just settings | The upload was a profile with no embedded key |
| No further action | The attempt ended before any authentication value was offered | You later find an earlier attempt you had forgotten |
Если пароль достиг нежелательной службы, смените его через канал управления учётной записью и проверьте, где ещё он использовался повторно. Истёкший одноразовый код закрывает этот путь, но созданный с ним сеанс — нет, поэтому попросите администратора удостоверений проверить сеансы. Если файл ключа действительно был загружен, следуйте процедуре отзыва организации-эмитента, а не ждите доказательств злоупотребления.
Затем запишите ограниченный результат: что было отправлено, что остаётся неизвестным и какие учётные данные требуют действий. Именно эту запись запросит последующая проверка, и она полезнее любого из двух удобных выводов.