Å lese et sertifikats offentlige felt krever aldri at man viser den private nøkkelen som hører til, og verktøyet for å gjøre det følger med alle systemer som avslutter en VPN. Risikoen ligger ett steg tidligere: filen du fikk kan ikke være et sertifikat i det hele tatt. Et PEM-sertifikat, en DER-blob, en PKCS#12-pakke og en OpenVPN-profil kan komme med samme navn og inneholde svært ulikt materiale, så identifiser beholderen før du velger kommando.

Tre fakta avgjør hvilken kommando som er trygg: hva filen inneholder, hva du trenger å lese ut av den, og hvem som vil se utdataene. Tar du feil på ett av dem, blir inspeksjonen selv hendelsen.

Hvilken av tre filer du fikk

Et PEM-sertifikat er tekst med synlige BEGIN- og END-markører, en DER-fil er binær og trenger et flagg for inndataformat, og en pakke er en beholder som kan inneholde en nøkkel ved siden av sertifikatet. file server.crt skiller tekst fra binært på et sekund, og et blikk på første linje skiller et bart sertifikat fra en profil som bygger inn ett. Det er gjettingen her som gjør en inspeksjon til en hendelse.

Hvis filen er en profil og ikke et sertifikat, behandle den som en legitimasjon til det motsatte er bevist. Den antakelsen koster ingenting, og den forhindrer den vanligste feilen i hele denne oppgaven.

Lese de offentlige feltene i et PEM-sertifikat

For et sertifikat du har lov til å inspisere, skriver x509-underkommandoen med -noout ut feltene du velger og ingenting annet. Å undertrykke kroppen er det som holder utdataene til metadata, som også er det som gjør dem trygge å lime inn i en sak. Velgerne nedenfor er de offentlige, og dokumentasjonen for openssl x509 lister opp resten.

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

På et lokalt generert testsertifikat skriver den kommandoen ut en linje for subject og issuer, paret notBefore og notAfter, og ett SHA-256-fingeravtrykk. Disse feltene identifiserer objektet; de etablerer ikke en gyldig tillitskjede, som er en egen verifiseringsoppgave med sin egen kommando og sitt eget svar. En kjede-fil kan også skrive ut bare det første sertifikatet med mindre du itererer over filen selv. Å sammenligne to filer på denne måten koster én kommando og avgjør hvilken av dem motparten faktisk presenterer.

Pakker som holder en nøkkel ved siden av sertifikatet

En .p12- eller .pfx-fil kan bære en privat nøkkel, og parserkommandoen skriver den ut med mindre du undertrykker den delen av utdataene. Med -nokeys rapporterer den samme kommandoen fortsatt beholderens struktur, inkludert en tilslørt nøkkelbag, uten å sende ut noe nøkkelmateriale; fjerner du flagget, dukker en nøkkelblokk opp i terminalen og i shell-historikken din.

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

En OpenVPN-profil bygger inn det samme materialet som tekst, så grensen er synlig hvis du vet hvor du skal se. Offentlig materiale ligger mellom BEGIN CERTIFICATE og END CERTIFICATE, mens alt mellom BEGIN PRIVATE KEY og den tilhørende END-linjen er nøkkelen og ikke må forlate verten. Å kopiere profilen i sin helhet publiserer begge.

Skaffe referanseverdien et annet sted

Et fingeravtrykk lest fra tilkoblingen du prøver å verifisere beviser ingenting, fordi parten du mistror leverte det. Det er ikke et argument mot fingeravtrykk; det er et argument om opprinnelse. Sammenlign verdien med en som er hentet gjennom en kanal motparten ikke kan skrive til, for eksempel sertifikatet som er publisert i et internt repositorium eller hashen som er trykt i en signert endringsoppføring.

Der et tillitslager utfører validering, la det gjøre det, og les feilen det produserer i stedet for å erstatte den med din egen sammenligning. Forskjellen som betyr noe, er hvem som leverte referansen, ikke hvilken hashfunksjon som ble brukt.

Dele resultatet, og hva du gjør etter en glipp

Send den nøyaktige valideringsfeilen, de relevante datoene og bare identitetsopplysningene mottakeren trenger. Interne vertsnavn og kontoidenter forblir sensitive selv når ingen nøkkel er til stede, og en offentlig innlimingstjeneste er feil sted for noe av det. Lim inn i saken, ikke i en midlertidig buffer noen andre deler.

Hvis nøkkelmateriale faktisk dukket opp på skjermen eller i en fil, behandle det som kompromittert og roter det i stedet for å håpe at ingen så det. Skriv deretter ned hvilken fil som ble inspisert, kommandoen som ble brukt og hvor utdataene gikk, fordi den oppføringen er det som gjør en skremsel om til en prosedyre. Rotasjon er billig sammenlignet med kostnaden ved å anta at ingen tok et skjermbilde, og samme oppføring forteller neste ingeniør hvilke filer som ble berørt i det hele tatt. Gjør begge før saken lukkes.

Relaterte artikler