Kako preverite prstni odtis certifikata VPN po ločenem kanalu
Prstni odtis dokazuje identiteto le, kadar pričakovana vrednost pride po kanalu, ki ga napadalec ne nadzoruje. Preverjanje izvedite v tem vrstnem redu.
Prstni odtis je le tako zanesljiv, kot je zanesljiv kanal, ki vam je povedal, kaj pričakovati. Če je vrednost, s katero primerjate, prišla po isti povezavi, ki jo preizkušate, primerjava ne dokaže ničesar drugega kot to, da je stran, ki nadzoruje to povezavo, dosledna. Preverjanje mora potekati v ustaljenem vrstnem redu, neuspešen korak pa bi vas moral ustaviti, ne pa potisniti k naslednjemu. To je vrstni red, ki ga uporabljam, ko odjemalec VPN sporoči, da se je certifikat spremenil.
Najprej poimenujte predmet, nato vrednost
Odločite, ali pričakovana vrednost pripada listnemu certifikatu strežnika, izdajatelju CA ali javnemu ključu znotraj lista. To so tri različna preverjanja in spodletijo na različne načine. Ujemajoči se prstni odtis CA strežnika ne pripne, in zgoščena vrednost javnega ključa namerno preživi ponovno izdajo, ki ohrani isti ključ.
Zapišite tudi algoritem. SHA-256 je danes običajno pričakovanje, a starejša orodja so izpisala SHA-1, razen če ste zahtevali drugače, in 40-znakovna šestnajstiška vrednost je znak, da boste pravkar primerjali dve različni stvari.
Pridobite pričakovano vrednost po drugem kanalu
Drugi kanal mora biti tak, da vanj stran, pred katero se varujete, ne more pisati. Sistem za oskrbo, v katerega se že prijavljate, natisnjen zapis v sefu, konfiguracijska zbirka podatkov ali podpisan dokument, ki ga dostavi drug proces, so vsi primerni. Sporočilo v klepetu sodelavca, stran za podporo, dosežena prek zadetka iskanja, in vse, kar je prilepljeno v terminal, v katerem že odpravljate napake, niso primerni.
Zahtevajte celotno vrednost in algoritem, nikoli predpone. Dvopičja in velike ali male črke niso pomembne, a okrnitev spremeni preverjanje 256 bitov v ugibanje.
Če nihče ne more zagotoviti pričakovane vrednosti iz neodvisnega vira, je pošten rezultat, da tega certifikata danes ni mogoče preveriti. To povedati je bolje kot pripeti tisto, kar je odjemalec pravkar prikazal, saj to opozorilo spremeni v navado.
Izvlecite vrednost na svoji strani
Za datoteko certifikata je ukaz openssl x509 -in server.crt -noout -fingerprint -sha256. Jasna zgoščena vrednost je pomembna: brez nje je izhod odvisen od vaše različice OpenSSL. Rezultat je šestnajstiški niz, ločen z dvopičji, zato odstranite dvopičja in pred primerjavo obe strani pretvorite v male črke.
Za končno točko, ki govori TLS neposredno, se povežite in certifikat izpeljite skozi cev: openssl s_client -connect vpn.example.com:443 -servername vpn.example.com < /dev/null | openssl x509 -noout -fingerprint -sha256. To deluje za spletno skrbniško ploščo ali poslušalca TLS, ne pa za OpenVPN, katerega krmilni kanal je znotraj tunela. Za OpenVPN berite certifikat iz profila na disku, namesto da bi ga poskušali ujeti iz vtičnice.
Primerjava bi morala biti mehanska. Normalizirajte obe vrednosti z tr -d ':' in pretvorbo v male črke, nato primerjajte celoten niz. Primerjanje na oko je način, kako ujemajoča se predpona skrije razliko v zadnjem bajtu. Če se niza razlikujeta, obravnavajte razliko kot resnično, preden začnete iskati razlago.
Pogoji za ustavitev
Ustavite se, če se predmet razlikuje, ker prstni odtis CA ne more oprostiti listnega certifikata in list ne more oprostiti CA. Ustavite se, če se algoritem razlikuje, ker vrednost SHA-1 v primerjavi z vrednostjo SHA-256 ne pove ničesar. Ustavite se, če se prstni odtis ujema, a je certifikat potekel, preklican ali izdan za drugo ime; ujemajoča se zgoščena vrednost ni preverjanje veljavnosti in ne popravi pretrgane verige. Ustavite se tudi, če se serijska številka ne ujema s serijsko številko v zapisu, s katerim preverjate, ker je to najcenejši način, da opazite zamenjan certifikat.
Ustavite se, če je nova vrednost prišla po kanalu, ki ste ga preizkušali. Rotacija lahko zakonito spremeni prstni odtis, a nadomestna vrednost mora vseeno priti iz zaupanja vrednega procesa, ne iz opozorilnega pogovornega okna, ki je sprožilo vprašanje.
Ustavite se, če je predlagani popravek izklop preverjanja imena gostitelja ali verige. Prstni odtis doda običajnim preverjanjem omejitev; ne nadomesti jih, razen če se je uvedba zavestno odločila za model samo s pinom, in ta odločitev prinaša lastne obratovalne stroške.
Po primerjavi
Zapišite, kaj ste primerjali, od kod je prišla pričakovana vrednost in kdaj. Če je bil certifikat ponovno izdan, posodobite shranjeno pričakovanje po istem zaupanja vrednem kanalu in zabeležite novo serijsko številko, ker prav serijska številka naredi naslednjo rotacijo revidirljivo.
Nato bodite jasni glede meja. Prstni odtis potrdi, da je certifikat, ki ga imate, tisti, ki vam ga je nekdo povedal pričakovati. Ne pove ničesar o tem, ali je gostitelj nekompromitiran, in ničesar o tem, ali storitev beleži ali omejuje, do česa lahko ta certifikat seže.