Журнал OpenVPN: шифр управляющего канала против шифра канала данных
DHE-RSA-AES256-SHA в журнале описывает управляющий канал TLS, а не шифр, защищающий ваш трафик. Найдите отдельный результат канала данных.
Строка журнала, в которой указан DHE-RSA-AES256-SHA, не является сводкой всего соединения. Она относится к TLS-рукопожатию, которое защищает управляющий канал, а трафик внутри туннеля может быть зашифрован совсем иначе. Выдавать её за шифр данных VPN — ошибка, которой нужно избегать.
Важны два результата, и они отвечают на разные вопросы. Один — согласованный набор TLS для управляющего канала; другой — шифр данных для пакетов, которые несёт туннель.
Два результата, два вопроса
Управляющий канал несёт рукопожатие и управляющие сообщения между сторонами. Его шифр выбирает стек TLS, поэтому имя следует соглашениям TLS. Канал данных несёт пользовательский трафик, и его настраивает собственное согласование шифра OpenVPN.
Решите, на какой вопрос вы отвечаете, прежде чем читать любую из строк. Зашифрован ли туннель и является ли рукопожатие надёжным — это не один и тот же вопрос.
Полезен тот фрагмент журнала, где показаны обе строки. Читайте управляющую строку ради версии и набора TLS, а строку данных — ради алгоритма, который действительно защищает полезную нагрузку.
Разберите имя набора TLS в его собственном контексте
В историческом имени в стиле OpenSSL, таком как DHE-RSA-AES256-SHA, каждый компонент описывает отдельное решение. DHE — это эфемерное согласование ключей Диффи — Хеллмана, RSA — метод аутентификации, AES256 — AES-256 в режиме CBC для записей TLS, а SHA — MAC записи на основе SHA-1.
Последний компонент не является отпечатком сертификата, и читать его так — распространённая ошибка. Имя также само по себе не указывает версию протокола, потому что TLS 1.3 использует совершенно другую схему именования. TLS_AES_256_GCM_SHA384 следует более новой форме, где завершающий хеш входит в построение набора, а не является выбором MAC. Применяйте разбор по компонентам только к старому стилю именования.
Справочник наборов OpenSSL сопоставляет эти имена их определениям, если какой-то компонент незнаком.
Прочитайте результат канала данных для переносимого трафика
Для переносимого трафика читайте строку канала данных из той же сессии. Список data-ciphers в конфигурации — это разрешённый набор, а не доказательство того, что был согласован конкретный алгоритм. Журнал фиксирует выбор; конфигурация перечисляет меню.
Шифр AEAD, например AES-GCM, несёт собственную проверку целостности, поэтому отдельный HMAC канала данных не входит в этот путь.
Директива auth не обновляет TLS, сертификаты или шифр данных. Она выбирает дайджест для тех частей протокола, которые всё ещё его используют, а при шифре данных AEAD отдельного HMAC данных настраивать не нужно.
Держите проверки идентичности за пределами результата шифра
Алгоритм подписи сертификата, проверка цепочки доверия и проверка имени партнёра — это ещё три свойства, о которых имя шифра ничего не говорит. Просроченный сертификат не проходит независимо от того, насколько силён набор. Несовпадающее имя сервера не проходит так же. Исправление настройки дайджеста в профиле не исправляет ни того, ни другого.
Держите эти проверки в заметках к обзору рядом с результатом шифра, а не слитыми с ним.
Запишите согласованные результаты текущей сессии
Возьмите результаты текущего соединения и запишите вместе с ними версии клиента и сервера. Журнал только с дописыванием может содержать строку более старой сессии, и цитировать её как текущую — это способ, которым исправленная проблема выглядит сохраняющейся.
Для обзора политик передайте владельцу конфигурации согласованные версию и набор TLS, выбранный шифр данных и настройки проверки сертификатов вместе. Измените этот слой, а затем прочитайте новый журнал, чтобы подтвердить новые согласованные значения.