OpenVPN клієнт, який працював минулого місяця, тепер падає під час запуску з ca md too weak, а профіль на диску байт у байт збігається з тим, що працював. Повідомлення стосується підпису на сертифікаті центру сертифікації, а не шифру даних, auth-дайджесту чи пароля облікового запису. Три умови визначають, чи виправленням є новий матеріал ідентичності, новий ланцюг або свідома зміна політики. Пройдіть їх по черзі, і ви уникнете звичного результату, коли тунель повертається ціною ослаблення кожного TLS-з'єднання на хості.

Що насправді називає помилка

OpenSSL піднімає цю помилку перевірки під час побудови ланцюга, коли сертифікат, що діє як CA, несе дайджест підпису, який рівень безпеки бібліотеки більше не приймає. MD5 відхиляється на типовому рівні, а SHA-1 відхиляється, щойно рівень підвищено. Дайджест на листовому сертифікаті тут менш важливий, ніж дайджест видавця, який його підписує. Та сама політика може відхилити корінь, який у день випуску був цілком звичайним.

Тому редагування auth або data-ciphers нічого не дає для цієї відмови. Ці налаштування керують тим, як пакети захищаються після рукостискання, а відкинутий об'єкт — це документ ідентичності, який перевіряють до появи тунелю. Сертифікат може спокійно лежати в межах вікна дійсності й усе одно нести підпис, який бібліотека не прийме.

Тримайте перевірки окремо в голові, і помилка перестане здаватися загадковою. Дати чинності, використання ключа і дайджест підпису — незалежні тести, і рівно один із них щойно провалився.

Умова перша: відкинутий об'єкт — це корінь?

Надрукуйте кожен сертифікат у профілі та прочитайте поля subject і issuer. Самопідписаний корінь показує однакове значення в обох, і його алгоритм підпису — той, на якому тримається весь ланцюг. Коли слабкий дайджест сидить саме там, кожен лист під ним успадковує проблему. Запишіть алгоритм поруч із subject, щоб подальше порівняння було механічним, а не з пам'яті.

Об'єднані файли CA часто містять кілька блоків, тому визначте, який блок насправді завантажується, а не припускайте, що винний перший. Команда openssl x509 -in ca.pem -noout -subject -issuer -text описує один сертифікат за раз, тобто за наявності кількох пакет спершу треба розділити. Порівняйте надрукований алгоритм підпису з дайджестом, якого можна очікувати з епохи створення кореня.

Лист, підписаний SHA-256 під слабким коренем, усе одно падає, бо перевірка ланцюга йде до самого верху. Саме цей порядок робить наступну умову важливою.

Умова друга: чи контролюєте ви видавця?

Якщо корінь належить вашій організації, тривале виправлення — новий корінь із сучасним дайджестом плюс перевипущені листи, доставлені одним оновленням профілю. Це коштує вікна обслуговування та плану для пристроїв, які не можуть прийняти оновлення того самого дня.

Якщо ланцюг випустила третя сторона, виправлення — це запит до того оператора, а єдина корисна локальна дія — перестати покладатися на старий матеріал. Редагування тексту PEM або повторне збереження файлу не змінює нічого з того, що покриває підпис.

Один проміжний випадок вартий назви: внутрішній корінь, старший за поточні типові значення, але який досі підписує матеріал, якому довіряють інші системи. Його заміна означає аудит кожного споживача, включно з пристроями, що прикріплюють старий сертифікат за відбитком. Порахуйте цих споживачів перед плануванням зміни, бо заміна кореня, що пропустила одного, міняє помилку запуску на простій.

Умова третя: що ще приймає зниження рівня

Зниження рівня безпеки або вибір застарілого профілю сертифікатів OpenVPN змушує клієнт знову приймати старий дайджест. Це також послаблює інші перевірки в тій самій бібліотеці — для кожного з'єднання, яке робить цей процес.

Це може бути виправдано в лабораторії або як короткий міст, поки готується замінний матеріал, якщо виняток обмежений одним профілем і має дату завершення. Як постійне налаштування на спільному хості він тихо розширює те, чому довірятиме кожен TLS-клієнт там.

Запишіть виняток із власником і кроком видалення. Недокументована зміна рівня через пів року не відрізняється від помилки, і наступний інженер не знатиме, що це колись було рішенням.

Рішення, записане як правило

Замінюйте ланцюг, коли контролюєте видавця і можете перелічити його споживачів. Звертайтеся до видавця, коли не контролюєте. Знижуйте рівень лише як датований, обмежений виняток із уже запланованою заміною. Усе інше залишає той самий сертифікат на місці й переносить ризик туди, де його менше видно.

Потім перевірте профіль знову з чистого клієнта, підтвердьте, що рукостискання завершується, і збережіть точний текст відмови, якщо він усе ще падає. Точне повідомлення про помилку — найдешевше, що можна передати власнику наступного шару.

Схожі статті