Die lees van 'n sertifikaat se openbare velde vereis nooit dat die private sleutel wat daarby pas, vertoon word nie, en die gereedskap daarvoor kom saam met elke stelsel wat 'n VPN termineer. Die risiko lê een stap vroeër: die lêer wat jy oorhandig is, is dalk glad nie 'n sertifikaat nie. 'n PEM-sertifikaat, 'n DER-blok, 'n PKCS#12-bundel en 'n OpenVPN-profiel kan met dieselfde naam aankom en heel verskillende materiaal bevat, so identifiseer die houer voordat jy 'n opdrag kies.

Drie feite bepaal watter opdrag veilig is: wat die lêer bevat, wat jy daaruit moet lees, en wie die uitset sal sien. Kry enige een daarvan verkeerd, en die inspeksie self word die voorval.

Watter van drie lêers jy oorhandig is

'n PEM-sertifikaat is teks met sigbare BEGIN- en END-merkers, 'n DER-lêer is binêr en benodig 'n invoerformaat-vlag, en 'n bundel is 'n houer wat 'n sleutel langs die sertifikaat kan hou. file server.crt skei teks van binêr in 'n sekonde, en 'n blik op die eerste reël skei 'n kaal sertifikaat van 'n profiel wat een insluit. Om hier te raai, is wat 'n inspeksie in 'n voorval omskep.

As die lêer 'n profiel eerder as 'n sertifikaat is, behandel dit as 'n geloofsbrief totdat die teendeel bewys is. Daardie aanname kos niks, en dit voorkom die mees algemene fout in hierdie hele taak.

Die openbare velde van 'n PEM-sertifikaat lees

Vir 'n sertifikaat wat jy gemagtig is om te inspekteer, druk die x509-subopdrag met -noout net die velde wat jy kies en niks anders nie. Om die liggaam te onderdruk, is wat die uitset tot metadata beperk, en dit is ook wat dit veilig maak om in 'n kaartjie te plak. Die keuses hieronder is die openbare een, en die openssl x509-dokumentasie lys die res.

openssl x509 -in server.crt -noout -subject -issuer -dates -fingerprint -sha256

Op 'n plaaslik geskepte toetscertifikaat druk daardie opdrag 'n onderwerp- en uitreiker-reël, die notBefore- en notAfter-paar, en een SHA-256-vingerafdruk. Daardie velde identifiseer die objek; hulle vestig nie 'n geldige vertrouenspad nie, wat 'n aparte verifikasietaak met sy eie opdrag en sy eie antwoord is. 'n Kettinglêer kan ook net die eerste sertifikaat druk tensy jy self oor die lêer itereer. Om twee lêers so te vergelyk kos een opdrag en besleg watter een die eweknie werklik voorhou.

Bundels wat 'n sleutel langs die sertifikaat hou

'n .p12- of .pfx-lêer kan 'n private sleutel dra, en die ontledingsopdrag druk dit tensy jy daardie deel van die uitset onderdruk. Met -nokeys rapporteer dieselfde opdrag steeds die houer se struktuur, insluitend 'n bedekte sleutelsak, sonder om enige sleutelmateriaal uit te stuur; laat daardie vlag weg en 'n sleutelblok verskyn in jou terminal en in jou dopgeskiedenis.

openssl pkcs12 -in bundle.p12 -nokeys -info -passin env:P12PASS

'n OpenVPN-profiel sluit dieselfde materiaal as teks in, so die grens is sigbaar as jy weet waar om te kyk. Openbare materiaal sit tussen BEGIN CERTIFICATE en END CERTIFICATE, terwyl alles tussen BEGIN PRIVATE KEY en sy ooreenstemmende END-reël die sleutel is en nie die gasheer mag verlaat nie. Om die profiel heel te kopieer, publiseer albei.

Die verwysingswaarde elders kry

'n Vingerafdruk wat uit die verbinding gelees is wat jy probeer verifieer, bewys niks, want die party wat jy wantrou, het dit verskaf. Dit is nie 'n argument teen vingerafdrukke nie; dit is 'n argument oor herkoms. Vergelyk die waarde met een wat verkry is deur 'n kanaal waaraan die eweknie nie kan skryf nie, soos die sertifikaat wat in 'n interne bewaarplek gepubliseer is of die hash wat in 'n ondertekende veranderingsrekord gedruk is.

Waar 'n vertrouensbewaarplek die validering doen, laat dit toe, en lees die fout wat dit lewer eerder as om jou eie vergelyking in die plek daarvan te stel. Die onderskeid wat saak maak, is wie die verwysing verskaf het, nie watter hashfunksie gebruik is nie.

Die resultaat deel, en wat om na 'n fout te doen

Stuur die presiese valideringsfout, die relevante datums en net die identiteitsbesonderhede wat die ontvanger nodig het. Interne gasheername en rekeningidentifiseerders bly sensitief selfs wanneer geen sleutel teenwoordig is nie, en 'n openbare plakdiens is die verkeerde bestemming vir enigiets daarvan. Plak dit in die kaartjie, nie in 'n krapbuffer wat iemand anders deel nie.

As sleutelmateriaal wel op die skerm of in 'n lêer verskyn het, behandel dit as gekompromitteer en roteer dit in plaas daarvan om te hoop niemand het gekyk nie. Skryf dan neer watter lêer geïnspekteer is, watter opdrag gebruik is en waar die uitset heen gegaan het, want daardie rekord is wat 'n skrik in 'n prosedure omskep. Rotasie is goedkoop teenoor die koste om te aanvaar dat niemand 'n skermkiekie gehou het nie, en dieselfde rekord vertel die volgende ingenieur watter lêers hoegenaamd aangeraak is. Doen albei voordat die kaartjie gesluit word.

Verwante artikels