Що перевіряє 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. Перевіряйте робочу конфігурацію, а не шаблон, потім підтвердьте, що клієнти й партнери узгоджують ту саму конструкцію.
Замкніть цикл тими доказами, які справді потрібні: група, про яку домовився тунель, довжина параметрів у файлі та рядок політики, якому ця довжина відповідає. Успішна перевірка — лише один пункт у цьому списку. Вважати її всією відповіддю — саме так коротка група переживає аудит, який мав її зловити.