Что проверяет openssl dhparam -check и что он упускает
Успешная проверка параметров — не аудит безопасности. Посмотрите, что она доказывает о вашем DH-файле, как читать размер группы и как избежать повторной генерации.
Успешно пройти dhparam -check кажется приговором настройке Diffie-Hellman вашего VPN. Это не так. Команда сравнивает один файл параметров с арифметикой, которой он якобы удовлетворяет, и ничего не говорит о том, соответствует ли размер группы вашей политике и загружает ли туннель этот файл вообще. Читать это как аудит безопасности — предположение, которое стоит исправить первым.
Файл параметров содержит простое число и генератор. Корректность — свойство этих чисел, тогда как стойкость — суждение о вашей модели угроз и ваших партнёрах, и эти две вещи не взаимозаменяемы.
Что на самом деле подтверждает проверка корректности
Запустите проверку для имеющегося файла и прочитайте ответ. openssl dhparam -in dh.pem -check -noout выполняет проверки параметров и подавляет закодированный вывод. Сообщение о том, что параметры выглядят нормально, означает, что значения структурно согласованы; оно не означает, что короткая группа приемлема в вашей среде.
Генерация без -dsaparam даёт безопасные простые числа, где (p-1)/2 тоже простое, поэтому это занимает так много времени. Путь в стиле DSA строит параметры быстрее и преобразует их в форму DH, а руководство OpenSSL связывает с их использованием дополнительные требования к свежим ключам. Ни одна из конструкций не является сессионным секретом: файл — публичный конфигурационный материал, а не закрытый ключ сертификата и не общий секрет канала управления.
Прочитайте размер и генератор, прежде чем судить о файле
Результат проверки значит больше, когда вы знаете, что именно проверялось. Выведите параметры с помощью openssl dhparam -in dh.pem -text -noout, затем отметьте длину простого числа и значение генератора.
Сравните эту длину с письменной политикой, а не с привычкой. Если ваше требование — одобренная именованная группа из современного стека TLS, файл, созданный вручную, может оказаться совершенно неподходящим артефактом. Запишите оба числа в журнал изменений, чтобы следующему рецензенту не пришлось выводить их заново.
Не превращайте осмотр в повторную генерацию
Режим отказа здесь — команда, которая выглядит как проверка, а ведёт себя как генератор. Добавление битовой длины, как в openssl dhparam -check 2048, запрашивает новые параметры, а входной файл игнорируется. Опция генератора может делать то же самое. Если вы хотели только осмотреть, передайте -in и -check и ничего, что описывает размер.
Запись вывода поверх исходного пути заслуживает того же недоверия, потому что руководство предупреждает: запись в файл не атомарна. Сбой посреди записи оставляет усечённый файл параметров и службу, которая не запустится.
Согласуйте группу с протоколом, а не с трендом
Политика размера — решение, которое инструмент не прочитает за вас. Группа конечного поля на 2048 бит — обычный нижний порог, а большие группы стоят времени рукопожатия, поэтому выберите число, которое называет ваша собственная базовая линия, и запишите его. Широко используемые группы не слабы потому, что публичны; неизвестность здесь ничего не добавляет.
Там, где стек поддерживает одобренные именованные группы, следуйте этому документированному порядку, а не генерируйте необычные параметры, чтобы они выглядели уникальными. Именованная группа — это то, что партнёр может узнать, а рецензент — найти, и это ценнее, чем заказной файл, который никто не сможет классифицировать.
Убедитесь, что VPN вообще загружает файл
Правильный файл параметров, который не читает ни один процесс, ничего не меняет. В OpenVPN серверная директива — dh с путём, а развёртывания, полагающиеся на ECDH или обмен ключами TLS 1.3, могут вместо этого задать dh none. Проверяйте работающую конфигурацию, а не шаблон, затем убедитесь, что клиенты и партнёры договариваются об одной и той же конструкции.
Замкните цикл теми доказательствами, которые действительно нужны: группа, о которой договорился туннель, длина параметров в файле и строка политики, которой эта длина соответствует. Успешная проверка — лишь один пункт в этом списке. Считать её всем ответом — именно так короткая группа переживает аудит, который должен был её поймать.