Vana P12 ei tööta OpenSSL 3-ga: vale parool või vananenud šiffer?
Eristage valesti trükitud paroolifraas vananenud RC2-paketist, mille OpenSSL 3 keeldub lahti pakkimast, ja pitseerige fail seejärel uuesti, eemaldamata võtme kaitset.
Importdialoog võtab teie parooli, keerleb hetke ja ütleb siis, et ei suuda paketti lugeda. Miski selles teates ei ütle, kas trükkisite paroolifraasi valesti või pitseeriti fail šifriga, mida klient enam ei tarni. Need on erinevad tõrked erinevate parandustega ja vale valik viib kliendi versiooni langetamiseni, mis ainult lükkab otsust edasi. Vaadates, millises etapis klient peatub, eristate neid umbes minutiga.
Mis toimub dialoogi ja sertifikaatide loendi vahel
.p12 fail on konteiner, mitte sertifikaat. Selle sees on üks või mitu sertifikaadikotti ja privaatvõtmekott, mis on krüpteeritud teie paroolist tuletatud võtmega, lisaks kogu faili hõlmav tervikluse kontroll nimega MAC. Selle avamine tähendab selle MAC-i kontrollimist, võtmekoti dekrüpteerimist ja sertifikaadi sobitamist võtmega, mis sealt välja tuleb.
Parooliprobleem ilmneb MAC-i etapis. Šifriprobleem ilmneb hiljem, kui võtmekott tuleb lahti pakkida ja seda tegev build ei oma failis nimetatud algoritmi implementatsiooni.
Teine juhtum on tänapäevastes süsteemides tavaline, sest OpenSSL 3 viis rühma vanu algoritme valikulisse legacy-pakkujasse. OpenSSL 1.x eksporditud paketid pitseerisid sertifikaadid tavaliselt 40-bitise RC2-ga ja privaatvõtme kolme võtmega Triple DES-iga. OpenSSL 3 vaikebuild kontrollib endiselt MAC-i teie õige parooliga ja ebaõnnestub seejärel kotil, seega parool ei olnud kunagi vale ja selle uuesti trükkimine ei muuda midagi.
Lugege konteinerit võtit välja kirjutamata
Paluge oma masina OpenSSL-buildil faili parsida ja lugeda koht, kus see alla annab. Kontroll ilma väljundfailita jätab võtme kettale krüpteerituna ja see on ainus põhjus, miks see samm on jagatud hostis ohutu.
openssl pkcs12 -in vpn-identity.p12 -info -nooutVananenud paketil õige parooliga prindib see koti atribuudid ja peatub seejärel digital envelope routines::unsupported-ga. Vale parooliga saate Mac verify error: invalid password? enne, kui ükski kott loetakse. Need kaks teadet osutavad vastassuundades ja täpselt see ongi info, mille klient tagasi hoidis.
Kui tõrge on toetamata algoritmi oma, käivitage sama käsk uuesti -legacy lisatud ja midagi muud muutmata. See lipp laadib legacy-pakkuja ainult selle ühe protsessi jaoks. See ei pane VPN-klienti vanu pakette parsima, ei puuduta süsteemset krüptopoliitikat ja on mõõtmine, mitte parandus, sest fail tuleb ikkagi asendada.
Milline viga tähendab millist etappi
Lühike tabel hoiab kolm tulemust lahus ja sõnastus loeb rohkem kui see, kus dialoog ilmus.
| 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 |
Tekst nagu not enough data või header too long ei kuulu kummasegi kahte esimesse rühma. See on vorminguprobleem: .pem-ks ümber nimetatud DER-fail, redaktori rikutud koopia, mis kirjutas rea lõpud ümber, või mittetäielik allalaadimine. Võrrelge kontrollsummat sellega, mille saatja saatis, enne kui hakkate šifreid vaatama.
Käsitlege Mac verify error tõendina ainult parooli kohta. See tähendab, et teie trükitud tekstist arvutatud MAC ei ühti salvestatud väärtusega, mis juhtub trükivea, varasemast impordist vahemällu jäänud parooli või teise paroolifraasiga uuesti eksporditud faili puhul. See ei ütle midagi selle kohta, kas seesmised algoritmid on vanad.
Ehitage pakett, mille klient tõesti avada suudab
Kui legacy-parser on kinnitanud, et fail on korras, on püsiv lahendus asendus, mille algoritme sihtklient toetab: AES-256-CBC võtme- ja sertifikaadikottidele, PBKDF2 SHA-256-ga tuletamiseks ja SHA-256 MAC-i jaoks. Teie PKI-administraator saab selle eksportida samast võtmematerjalist ja sees olev sertifikaat jääb see, mida teie serverid juba usaldavad.
Kui peate lokaalselt teisendama, paluge pkcs12-tööriistal kotid uuesti pitseerida, selle asemel et need kõigepealt välja valada. Hoidke mõlemad paroolifraasid oma kestaajaloost väljas, lugedes need failist.
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.passEdukas teisendus ei ütle midagi aegumise, võtme kasutuse, privaatvõtme sobivuse ega selle kohta, kas server usaldab väljaandja ahelat. Ümberpakendamine on transpordi muudatus, mitte uuendus, ja igaüks neist vajab endiselt oma kontrolli.
Jätke vahele iga retsept, mis kirjutab kaitsmata vahevõtme või tühja väljundparooli, ainult sellepärast, et klient faili hiljem aktsepteeris. Loetav pakett, millelt kaitse on maha võetud, on halvem tulemus kui imporditõrge, millega alustasite.
Kinnitage, et klient importis just teie ehitatud faili
Puhas parsering terminalis tõestab, et konteiner on kehtiv. See ei tõesta, et klient selle valis, sest alles jäänud profiil võib endiselt vanale failile osutada ja mõned kliendid vahemällu salvestavad imporditud identiteedi nime all, mida te ei valinud.
Printige identiteet, mida kavatsete importida, ja võrrelge seda sellega, mida klient oma sertifikaatide vaates näitab.
openssl pkcs12 -in vpn-identity-aes.p12 -clcerts -nokeys -passin file:new.pass \
| openssl x509 -noout -subject -dates -fingerprint -sha256Eemaldage kõigepealt vananenud profiilikirje ja importige siis. Kui klient logib laaditud subjekti või sõrmejälje, sobitage see ülaloleva reaga; kui see näitab ainult sõbralikku nime, kontrollige selle asemel aegumiskuupäeva, sest seda on raskem segi ajada teise sama väljaandja sertifikaadiga.
PKCS12 viide loetleb siin kasutatud pakkuja-, paroolifraasi- ja väljundvalikud. Mõte on hoida legacy-pakkuja kliendi keskkonnast väljas: mõõtke sellega, tarnige ilma selleta ja jätke privaatvõti kettale kaitstuks.