Slik verifiserer du fingeravtrykket til eit VPN-sertifikat over ein eigen kanal
Eit fingeravtrykk beviser berre identitet når den forventa verdien kjem over ein kanal som åtakkaren ikkje kontrollerer. Køyr kontrollen i denne rekkjefølgja.
Eit fingeravtrykk er berre så godt som kanalen som fortalde deg kva du skulle vente. Dersom verdien du samanliknar med kom over den same sambindinga du testar, beviser samanlikninga ingenting utover at den som kontrollerer sambindinga, er konsistent. Kontrollen må gå i ei fast rekkjefølgje, og eit mislukka steg bør stoppe deg i staden for å skyve deg vidare til det neste. Her er rekkjefølgja eg brukar når ein VPN-klient rapporterer at eit sertifikat er endra.
Namngje objektet før du namngjev verdien
Avgjer om den forventa verdien høyrer til bladsertifikatet til tenaren, den utsendande CA-en eller den offentlege nøkkelen inne i bladet. Det er tre ulike kontrollar, og dei sviktar på ulike måtar. Eit CA-fingeravtrykk som stemmer, pinnar ikkje tenaren, og ein hash av den offentlege nøkkelen overlever med vilje ein gjenutgiving som held på same nøkkel.
Skriv òg ned algoritmen. SHA-256 er den normale forventninga no, men eldre verktøy skreiv ut SHA-1 med mindre du bad om noko anna, og ein hex-verdi på 40 teikn er eit teikn på at du er i ferd med å samanlikne to ulike ting.
Hent den forventa verdien over ein andre kanal
Den andre kanalen må vere ein som parten du vernar deg mot, ikkje kan skrive til. Eit klargjeringssystem du alt autentiserer deg mot, ei trykt oppføring i eit pengeskap, ein konfigurasjonsdatabase eller eit signert dokument levert av ein annan prosess kvalifiserer alle. Ei chatmelding frå ein kollega, ei støtteside nådd via eit søkjeresultat og alt som blir lima inn i terminalen du alt feilsøkjer i, kvalifiserer ikkje.
Be om den fulle verdien og algoritmen, aldri eit prefiks. Kolonner og store eller små bokstavar spelar inga rolle, men avkorting gjer ein kontroll på 256 bit til eit gjettespel.
Dersom ingen kan produsere den forventa verdien frå ein uavhengig kjelde, er det ærlege resultatet at dette sertifikatet ikkje kan verifiserast i dag. Å seie det er betre enn å pinne det klienten nettopp viste, som gjer ei åtvaring til ein vane.
Trekk ut verdien på di side
For ei sertifikatfil er kommandoen openssl x509 -in server.crt -noout -fingerprint -sha256. Den eksplisitte digesten er viktig: utan han avheng utdataa av OpenSSL-versjonen din. Resultatet er ein kolonavdelt hex-streng, så fjern kolonna og gjer begge sider om til små bokstavar før du samanliknar.
For eit endepunkt som snakkar TLS direkte, kople til og pump sertifikatet ut: openssl s_client -connect vpn.example.com:443 -servername vpn.example.com < /dev/null | openssl x509 -noout -fingerprint -sha256. Dette fungerer for eit webadministrasjonspanel eller ein TLS-lyttar, ikkje for OpenVPN, der kontrollkanalen ligg inne i tunnelen. For OpenVPN, les sertifikatet frå profilen på disken i staden for å prøve å fange det frå sockelen.
Samanlikninga bør vere mekanisk. Normaliser begge verdiane med tr -d ':' og omgjering til små bokstavar, og samanlikn deretter heile strengen. Å gjere det på auget er måten eit samsvarande prefiks gøymer ein skilnad i den siste byten. Dersom strengane er ulike, handsam skilnaden som reell før du leitar etter ei forklaring.
Stoppvilkår
Stopp dersom objektet er ulikt, fordi eit CA-fingeravtrykk ikkje kan frikjenne eit bladsertifikat, og eit blad kan ikkje frikjenne CA-en. Stopp dersom algoritmen er ulik, fordi ein SHA-1-verdi samanlikna med ein SHA-256-verdi ikkje seier deg noko. Stopp dersom fingeravtrykket stemmer, men sertifikatet er utlope, tilbakekalla eller gitt ut til eit anna namn; ein samsvarande hash er ikkje ein gyldighetskontroll og reparerer ikkje ei broten kjede. Stopp òg dersom serienummeret ikkje stemmer med serienummeret i oppføringa du kontrollerer mot, fordi det er den billegaste måten å oppdage eit bytt sertifikat.
Stopp dersom den nye verdien kom gjennom kanalen du testa. Rotasjon kan lovleg endre eit fingeravtrykk, men erstatningsverdien må framleis kome frå den betrudde prosessen, ikkje frå åtvaringdialogen som utløyste spørsmålet.
Stopp dersom den føreslåtte rettinga er å slå av vertsnamn- eller kjedevegrifisering. Eit fingeravtrykk legg til ei avgrensing på dei normale kontrollane; det erstattar dei ikkje med mindre utrullinga med vilje har valt ein modell med berre pin, og det valet har sine eigne driftskostnader.
Etter samanlikninga
Noter kva du samanlikna, kvar den forventa verdien kom frå, og når. Dersom sertifikatet vart gitt ut på nytt, oppdater den lagra forventninga via same betrudde kanal og noter det nye serienummeret, fordi serienummeret er det som gjer neste rotasjon reviderbar.
Ver så klar over grensene. Eit fingeravtrykk stadfestar at sertifikatet du har, er det nokon fortalde deg å vente. Det seier ingenting om korvidt verten er ukompromittert, og ingenting om korvidt tenesta loggar eller avgrensar kva det sertifikatet kan nå.