P12 lama gagal pada OpenSSL 3: kata laluan salah atau sifer lama?
Bezakan frasa laluan yang tersalah taip daripada himpunan RC2 lama yang enggan dibuka oleh OpenSSL 3, kemudian meterai semula fail itu tanpa membuang perlindungan kunci.
Dialog import mengambil kata laluan anda, berputar seketika, lalu menyatakan ia tidak dapat membaca himpunan itu. Tiada apa dalam mesej itu memberitahu sama ada anda tersalah menaip frasa laluan atau fail itu dimeterai dengan sifer yang tidak lagi disertakan pelanggan. Itu kegagalan berbeza dengan pembaikan berbeza, dan pilihan yang salah membawa kepada penurunan versi pelanggan yang hanya menangguhkan keputusan. Memerhati peringkat tempat pelanggan berhenti memisahkan keduanya dalam kira-kira seminit.
Apa yang berlaku antara dialog dan senarai sijil
Fail .p12 ialah bekas, bukan sijil. Di dalamnya ada satu atau lebih beg sijil dan beg kunci peribadi yang disulitkan dengan kunci terbitan daripada kata laluan anda, serta pemeriksaan integriti dipanggil MAC ke atas seluruh fail. Membukanya bermakna mengesahkan MAC itu, menyahsulit beg kunci dan memadankan sijil dengan kunci yang keluar.
Masalah kata laluan tiba pada peringkat MAC. Masalah sifer tiba kemudian, apabila beg kunci perlu dibuka dan binaan yang membukanya tiada pelaksanaan bagi algoritma yang dinamakan dalam fail itu.
Kes kedua biasa pada sistem hari ini kerana OpenSSL 3 memindahkan sekumpulan algoritma lama ke legacy provider pilihan. Himpunan yang dieksport oleh OpenSSL 1.x lazimnya memeteraikan sijil dengan RC2 40-bit dan kunci peribadi dengan Triple DES tiga kunci. Binaan OpenSSL 3 lalai masih mengesahkan MAC dengan kata laluan anda yang betul dan kemudian gagal pada beg itu, jadi kata laluan itu tidak pernah salah dan menaipnya semula tidak mengubah apa-apa.
Baca bekas itu tanpa menulis kunci keluar
Minta binaan OpenSSL pada mesin anda menghuraikan fail itu dan membaca titik tempat ia menyerah. Pemeriksaan tanpa fail output membiarkan kunci tersulit pada cakera, dan itulah satu-satunya sebab langkah ini selamat dijalankan pada hos dikongsi.
openssl pkcs12 -in vpn-identity.p12 -info -nooutPada himpunan lama dengan kata laluan betul, ini mencetak atribut beg dan kemudian berhenti dengan digital envelope routines::unsupported. Dengan kata laluan salah anda mendapat Mac verify error: invalid password? sebelum mana-mana beg dibaca. Kedua-dua mesej menunjuk arah bertentangan, dan itulah tepat maklumat yang disorokkan oleh pelanggan.
Jika kegagalan itu yang berkenaan algoritma tidak disokong, jalankan semula arahan yang sama dengan -legacy ditambah dan tiada apa lain diubah. Bendera itu memuatkan legacy provider untuk proses tunggal itu sahaja. Ia tidak memaksa pelanggan VPN menghuraikan himpunan lama, ia tidak menyentuh dasar kripto seluruh sistem, dan ia ialah pengukuran bukan pembaikan, kerana fail itu masih perlu diganti.
Ralat mana bermaksud peringkat mana
Jadual pendek memisahkan tiga hasil, dan perkataan yang digunakan lebih penting daripada tempat dialog itu muncul.
| 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 |
Teks seperti not enough data atau header too long tidak tergolong dalam mana-mana dua kumpulan pertama. Itu masalah format: fail DER yang dinamakan semula kepada .pem, salinan yang dirosakkan oleh editor yang menulis semula hujung baris, atau muat turun yang tidak lengkap. Bandingkan jumlah semak dengan yang dihantar oleh pengeluar sebelum anda mula meneliti sifer.
Anggap Mac verify error sebagai bukti tentang kata laluan sahaja. Ia bermakna MAC yang dikira daripada apa yang anda taip tidak sepadan dengan nilai tersimpan, yang berlaku akibat salah taip, kata laluan yang dicache daripada import terdahulu, atau fail yang dieksport semula di bawah frasa laluan lain. Ia tidak menyatakan apa-apa tentang sama ada algoritma di dalamnya sudah lama.
Bina himpunan yang benar-benar boleh dibuka pelanggan
Sebaik penghurai legacy mengesahkan fail itu sihat, pembaikan kekal ialah pengganti yang algoritmanya disokong pelanggan sasaran: AES-256-CBC untuk beg kunci dan sijil, PBKDF2 dengan SHA-256 untuk terbitan, dan SHA-256 untuk MAC. Pentadbir PKI anda boleh mengeksportnya daripada bahan kunci yang sama, dan sijil di dalamnya kekal yang sudah dipercayai oleh pelayan anda.
Apabila anda perlu menukar secara setempat, minta alat pkcs12 memeterai semula beg itu dan bukan membuangnya dahulu. Jauhkan kedua-dua frasa laluan daripada sejarah shell anda dengan membacanya daripada fail.
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.passPenukaran yang berjaya tidak menyatakan apa-apa tentang luput, penggunaan kunci, padanan kunci peribadi, atau sama ada pelayan mempercayai rantaian pengeluar. Membungkus semula ialah perubahan pengangkutan, bukan pembaharuan, dan setiap satu daripadanya masih memerlukan pemeriksaan sendiri.
Langkau mana-mana resipi yang menulis kunci perantaraan tanpa perlindungan atau kata laluan output kosong hanya kerana pelanggan kemudian menerima fail itu. Himpunan yang boleh dibaca dengan perlindungan dibuang ialah hasil yang lebih buruk daripada kegagalan import yang anda mulakan.
Sahkan pelanggan mengimport fail yang anda bina
Penghuraian bersih dalam terminal membuktikan bekas itu sah. Ia tidak membuktikan pelanggan memilihnya, kerana profil yang tertinggal boleh terus menunjuk kepada fail lama, dan sesetengah pelanggan menyimpan cache identiti yang diimport di bawah nama yang anda tidak pilih.
Cetak identiti yang akan anda import dan bandingkan dengan apa yang ditunjukkan pelanggan dalam paparan sijilnya.
openssl pkcs12 -in vpn-identity-aes.p12 -clcerts -nokeys -passin file:new.pass \
| openssl x509 -noout -subject -dates -fingerprint -sha256Buang entri profil lapuk dahulu, kemudian import. Jika pelanggan mencatat subjek atau cap jari yang dimuatkan, padankan dengan baris di atas; jika ia hanya memaparkan nama mesra, periksa tarikh luput sebaliknya, kerana itu lebih sukar dikelirukan dengan sijil lain daripada pengeluar yang sama.
Rujukan PKCS12 menyenaraikan provider, frasa laluan dan pilihan output yang digunakan di sini. Menyimpan legacy provider di luar persekitaran pelanggan ialah intinya: ukur dengannya, hantar tanpanya, dan biarkan kunci peribadi terlindung pada cakera.