Никой не е пипал профила, а същият клиент сега иска паролна фраза за частния ключ при всяко стартиране. Когато тази промяна настъпи в рамките на дни след обновяване на дистрибуцията, вероятната причина е самото обновяване: OpenSSL 3 преорганизира поддръжката на алгоритми и ключ, който старата библиотека е чела без проблем, може да стане нечетим, без да се промени дори един байт. Изпълнете проверките по ред, защото две от тях изглеждат еднакви, ако се гледа само заявката.

Първият въпрос е дали ключът е криптиран, а вторият — дали тази сборка може да го декриптира. Промени в конфигурацията имат смисъл само след като са известни и двата отговора.

Проверете дали ключът е криптиран

Прочетете първия ред на файла и след това оставете библиотеката да го анализира, защото името на файла не доказва нищо. PEM блок с етикет ENCRYPTED PRIVATE KEY е криптиран PKCS#8, а по-стар RSA PRIVATE KEY блок с Proc-Type: 4,ENCRYPTED е традиционната форма и двата очакват паролна фраза. Нешифрованият PRIVATE KEY блок изобщо не би трябвало да иска такава. Стартирайте анализа като акаунта, който притежава файла, защото проблем с правата дава друга и много по-безинтересна грешка.

Ако ключът наистина е нешифрован, а клиентът продължава да пита, спрете да гледате криптографията и проверете дали профилът не сочи файл askpass, който услугата все още може да прочете.

Проверете дали тази сборка може да го декриптира

OpenSSL 3 раздели поддръжката на алгоритми на доставчици и набор от по-стари шифри сега се намира в legacy доставчика, а не в подразбиращия се. Ключ, криптиран с един от тези шифри, остава валиден, но библиотека, заредена без legacy доставчика, не може да го декодира. При някои клиенти това се проявява като повтаряща се заявка, при други — като твърд провал веднага след паролната фраза.

Анализирайте същия ключ два пъти със същия бинарник: първо само с подразбиращия се доставчик, после с legacy и подразбиращ се, поискани заедно от командния ред. Ако вторият опит успее там, където първият се провали, диагнозата се основава на доказателства, а не на времето на обновяването. Ако и двата се провалят по идентичен начин, паролната фраза е грешна или файлът е повреден и никаква настройка на доставчика не поправя нито едното, нито другото.

Проверете най-тясното налично решение

Предпочитайте промяна, ограничена до клиента, пред такава за цялата система. Някои сборки 2.6 приемат опция в профила, която зарежда двата доставчика за процеса на този демон, затова сверте директивата с ръководството за точната ви версия, преди да разчитате на нея; редактирането на системния openssl.cnf вместо това засяга всяка програма OpenSSL на хоста. По-тясната настройка също е много по-лесна за откат, след като ключът бъде прекодиран.

Не изтривайте паролната фраза, за да изчезне заявката. Това превръща защитените идентификационни данни в текстови файл и тихо променя риска за всяко резервно копие, копие и пакет за поддръжка, в които се появи. Важната разлика е между ключ, който се нуждае от паролната си фраза, и ключ, който тази библиотека не може да декодира.

Проверете контекста на услугата, после прекодирайте

След като ключът може да бъде отключен, криптирайте го отново с актуален алгоритъм така че зависимостта да изчезне. Запишете новия файл със модерен шифър, проверете че се анализира, обновете профила и пазете стария файл само докато връзката успее. Никога не поставяйте паролната фраза в команден ред, където всеки локален потребител може да я прочете от списъка с процеси. Изтрийте стария файл само след като новият се свърже от акаунта на услугата, а не само от вашата обвивка.

След това проверете модула, който всъщност стартира клиента. Ключ, четим в обвивката ви, може да е нечетим за услуга, работеща под друг акаунт или със затегната настройка на домашната директория.

Запишете настройката на доставчика до профила и дръжте теста с две команди при него. Когато по-късно обновяване премахне legacy доставчика, пуснете теста отново, за да видите дали ключът още се нуждае от него или профилът може да бъде изваден от заобиколното решение.

Заявката е симптом с поне три причини и само една от тях е липсваща паролна фраза.

Подобни статии