Большинство споров о дайджестах OpenVPN начинается не с того пакета. Читать auth SHA256 как «принимать только тех партнёров, которые предлагают SHA256», — первое, от чего нужно отвыкнуть. Опция называет дайджест для определённых пакетов, и то, какие это пакеты, зависит от канала и от того, является ли этот канал AEAD. Пройдите четыре вопроса ниже по порядку; каждый сужает то, что настройка может означать в вашем развёртывании.

Назовите канал, который настройка должна защищать

OpenVPN имеет управляющий канал, несущий трафик рукопожатия TLS, и канал данных, несущий полезную нагрузку туннеля. Дайджест auth играет роль в обоих, но не одну и ту же, и профиль редко делает разницу видимой. Запишите, какой из двух вы пытаетесь ограничить, прежде чем трогать файл конфигурации.

Таблица ниже — краткая версия того, как одна и та же опция попадает в каждый контекст.

ContextWhat the auth digest does
Data channel without AEADSelects the HMAC digest that authenticates each data packet
Data channel with AEAD, such as GCMUnused for the data channel; the cipher authenticates its own packets
Control channel protected by tls-authSelects the HMAC digest for that protection, even when data is AEAD

Проверьте, является ли канал данных AEAD, прежде чем на него полагаться

Если согласованный шифр данных — AES-GCM или CHACHA20-POLY1305, канал данных аутентифицирует сам себя, и отдельный дайджест не выполняет ту работу, которую вы, возможно, представляете. Оба являются конструкциями AEAD, поэтому целостность создаётся той же операцией, что шифрует нагрузку. Это не понижение уровня, но означает, что политика, обоснованная как «каждый пакет данных — HMAC-SHA256», фактически неверна на этом туннеле. Подтвердите согласованное значение в журнале сервера или в выводе состояния клиента, прежде чем переписывать политику.

Изучайте шифр, который действительно был согласован, а не список в профиле, потому что переговоры могут остановиться на другом члене набора. data-ciphers AES-256-GCM:AES-128-GCM — это список для переговоров, и обе записи AEAD, поэтому ни одна из них не расходует дайджест auth на защиту нагрузки.

Относитесь к защите управляющего канала как к отдельному решению

tls-auth добавляет HMAC к пакетам управляющего канала и берёт свой дайджест из настройки auth, поэтому у туннеля AEAD всё ещё может быть осмысленно настроенный дайджест. tls-crypt — другая схема с собственной фиксированной защитой, поэтому не предполагайте, что она наследует каждое свойство tls-auth. Читайте документацию выбранного механизма, а не переносите допущения между ними.

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

Держите auth отдельно от переговоров о шифрах и от сертификатов

Три настройки постоянно путают: дайджест auth, список шифров данных и алгоритм подписи сертификата. Изменение первой не перевыпускает сертификат, не выбирает его дайджест подписи и не создаёт метод «пользователь-пароль». Определения опций протокола в исходниках OpenVPN 2.6 описывают каждую в своём разделе, что служит полезным напоминанием: это независимые регуляторы.

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

Запишите политику и сравните её с работающими конфигурациями

Заявление на уровне парка должно в одном предложении явно назвать разрешённые режимы канала данных и выбранную защиту управляющего канала. Это предложение проверяемо; «мы используем SHA256» — нет. Затем сравните его с действующими профилями сервера и клиента, а не с шаблоном в репозитории.

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

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