Ескі P12 файлы OpenSSL 3-те ашылмайды: құпиясөз қате ме, әлде ескі шифр ма?
Қате терілген құпиясөзді OpenSSL 3 ашпайтын ескі RC2 жинағынан ажыратып, файлды кілт қорғанысын алып тастамай қайта инкапсуляциялаңыз.
Импорт диалогы құпиясөзді қабылдап, бір сәт айналып тұрады да, жинақты оқи алмайтынын хабарлайды. Бұл хабарлама құпиясөзді қате тергеніңізді ме, әлде файл клиент енді тасымалдамайтын шифрмен жабылғанын ба, оны ажыратпайды. Бұл екі түрлі ақау және олардың түзетуі де бөлек, ал дұрыс емес таңдау клиентті төмендетуге әкеліп, шешімді тек кейінге қалдырады. Клиент қай кезеңде тоқтағанын бақылау оларды бір минуттай уақытта ажыратады.
Диалог пен сертификаттар тізімінің арасында не болады
.p12 файлы — сертификат емес, контейнер. Ішінде бір немесе бірнеше сертификат қапшығы және құпиясөзіңізден туындатылған кілтпен шифрланған жеке кілт қапшығы, сонымен қатар бүкіл файл бойынша MAC деп аталатын тұтастық тексерісі бар. Оны ашу дегеніміз — сол MAC-ты тексеру, кілт қапшығын шифрдан шығару және сертификатты шыққан кілтке сәйкестендіру.
Құпиясөз мәселесі MAC кезеңінде шығады. Шифр мәселесі кейінірек, кілт қапшығын ашу қажет болғанда және ашуды орындайтын құрастырылымда файлда көрсетілген алгоритмнің іске асырылуы болмағанда пайда болады.
Екінші жағдай қазіргі жүйелерде жиі кездеседі, себебі OpenSSL 3 ескі алгоритмдер тобын қосымша legacy provider құрамына көшірді. OpenSSL 1.x шығарған жинақтар әдетте сертификаттарды 40-биттік RC2-мен, ал жеке кілтті үш кілтті Triple DES-пен жабатын. Әдепкі OpenSSL 3 құрастырылымы дұрыс құпиясөзіңізбен MAC-ты әлі де тексереді, содан кейін қапшықта сәтсіздікке ұшырайды, сондықтан құпиясөз ешқашан қате болған жоқ және оны қайта теру ештеңені өзгертпейді.
Контейнерді кілтті жарыққа шығармай оқу
Өз машинаңыздағы OpenSSL құрастырылымына файлды талдап, ол қай жерде тоқтайтынын көрсетуді сұраңыз. Шығыс файлынсыз тексеру кілтті дискіде шифрланған күйінде қалдырады, бұл қадамды ортақ хостта іске қосуға қауіпсіз ететін жалғыз себеп.
openssl pkcs12 -in vpn-identity.p12 -info -nooutДұрыс құпиясөзі бар ескі жинақта бұл қапшық атрибуттарын шығарады да, содан кейін digital envelope routines::unsupported қатесімен тоқтайды. Қате құпиясөзбен кез келген қапшық оқылмай тұрып Mac verify error: invalid password? шығады. Бұл екі хабарлама қарама-қарсы бағытты көрсетеді, дәл осы ақпаратты клиент жасырып қалған еді.
Егер ақау қолдау көрсетілмейтін алгоритмге байланысты болса, сол пәрменді -legacy қосып, басқа ештеңені өзгертпей қайта іске қосыңыз. Бұл жалауша legacy provider-ді тек сол бір процесс үшін жүктейді. Ол VPN клиентін ескі жинақтарды талдауға мәжбүрлемейді, жүйелік криптографиялық саясатқа тимейді және жөндеу емес, өлшеу болып табылады, өйткені файлды әлі де ауыстыру керек.
Қай қате қай кезеңге жатады
Қысқа кесте үш нәтижені ажыратып тұрады, ал мәтіннің өзі диалог қайда пайда болғанынан маңыздырақ.
| Text you see | Stage | What it tells you |
|---|---|---|
Mac verify error: invalid password? | Integrity check | Passphrase or cached credential, not the cipher |
digital envelope routines::unsupported | Bag decrypt | Algorithm missing from the default provider |
not enough data / header too long | Container format | Wrong encoding, edited file, or truncated download |
not enough data немесе header too long сияқты мәтін алғашқы екі топтың ешқайсысына жатпайды. Бұл формат мәселесі: .pem деп қайта аталған DER файлы, жол соңдарын қайта жазған редактордан бүлінген көшірме немесе толық жүктелмеген файл. Шифрларға үңілмес бұрын бақылау сомасын шығарушы жіберген сомамен салыстырыңыз.
Mac verify error белгісін тек құпиясөзге қатысты дәлел ретінде қабылдаңыз. Бұл тергеніңізден есептелген MAC сақталған мәнге сәйкес келмейтінін білдіреді, бұл қате тергенде, бұрынғы импорттан кэштелінген құпиясөзде немесе басқа құпиясөзбен қайта экспортталған файлда болады. Ол ішіндегі алгоритмдердің ескі екені туралы ештеңе айтпайды.
Клиент шынымен аша алатын жинақ құру
Legacy талдағыш файлдың сау екенін растағаннан кейін, тұрақты шешім — мақсатты клиент қолдайтын алгоритмдері бар ауыстырма: кілт пен сертификат қапшықтары үшін AES-256-CBC, туындату үшін SHA-256 бар PBKDF2 және MAC үшін SHA-256. PKI әкімшіңіз оны сол кілт материалынан экспорттай алады, ал ішіндегі сертификат серверлеріңіз бұрыннан сенетін сертификат болып қалады.
Жергілікті түрлендіру қажет болса, pkcs12 құралынан қапшықтарды алдымен төгіп тастауды емес, қайта жабуын сұраңыз. Екі құпиясөзді де файлдан оқып, shell тарихыңыздан тыс ұстаңыз.
openssl pkcs12 -in vpn-identity.p12 -out vpn-identity-aes.p12 \
-keypbe AES-256-CBC -certpbe AES-256-CBC -macalg sha256 \
-passin file:old.pass -passout file:new.passСәтті түрлендіру мерзімінің бітуі, кілттің қолданылуы, жеке кілттің сәйкестігі немесе сервердің шығарушы тізбекке сенетіні туралы ештеңе айтпайды. Қайта қаптау — тасымалдау өзгерісі, жаңарту емес, және олардың әрқайсысы әлі де жеке тексеруді қажет етеді.
Клиент файлды содан кейін қабылдады деп қана қорғалмаған аралық кілтті жазатын немесе шығыс құпиясөзін бос қалдыратын кез келген рецепттен бас тартыңыз. Қорғанысы алынған, оқылатын жинақ — басындағы импорт ақауынан да нашар нәтиже.
Клиент өзіңіз құрған файлды импорттағанын тексеру
Терминалдағы таза талдау контейнердің жарамды екенін дәлелдейді. Ол клиенттің оны таңдағанын дәлелдемейді, өйткені қалған профиль ескі файлды көрсетіп қалуы мүмкін, ал кейбір клиенттер импортталған идентификацияны өзіңіз таңдамаған атпен кэштейді.
Импорттағалы отырған идентификацияны шығарып, оны клиент сертификат көрінісінде көрсететінмен салыстырыңыз.
openssl pkcs12 -in vpn-identity-aes.p12 -clcerts -nokeys -passin file:new.pass \
| openssl x509 -noout -subject -dates -fingerprint -sha256Алдымен ескірген профиль жазбасын жойып, содан кейін импорттаңыз. Клиент жүктеген субъект немесе саусақ ізін журналға жазса, оны жоғарыдағы жолмен салыстырыңыз; егер ол тек достық атауды көрсетсе, оның орнына мерзімінің біту күнін тексеріңіз, өйткені оны сол шығарушының басқа сертификатымен шатастыру қиынырақ.
PKCS12 анықтамасы осында қолданылған provider, құпиясөз және шығыс параметрлерін тізіп көрсетеді. Legacy provider-ді клиент ортасынан тыс ұстау — мәселенің түйіні: онымен өлшеңіз, онсыз жеткізіңіз және жеке кілтті дискіде қорғалған күйде қалдырыңыз.