Dva profila oba prineseta datoteko z imenom ca.crt, en tunel se dvigne, drugi pa spodleti z napako verige. Odpiranje obeh datotek drugo ob drugi to redko razreši, izklop preverjanja pa to razreši v napačno smer. Vprašanje, ki ga napaka v resnici postavlja, je ožje: kateri certifikat vsak proces naloži kot svoje sidro zaupanja in ali sta ta dva isti objekt? Najprej odgovorite na to in preostala diagnostika dobi smer. Ime datoteke je oznaka embalaže, tudi pot, zapisana v profilu, ni avtoritativna, zato je vse odvisno od tega, kaj proces resnično prebere.

Poiščite certifikat, ki ga odjemalec resnično naloži

OpenVPN sprejme organ v dveh oblikah, oblika pa odloči, kateri bajti so pomembni. Profil lahko kaže na zunanjo datoteko z ca ali vstavi certifikat v blok <ca> v samem profilu. Ko obstajata oba, zmaga vstavljeni blok in datoteka ob profilu se nikoli ne odpre.

Preberite profil, ki spodleti, in ugotovite, katero obliko uporablja, preden karkoli primerjate. Kopija, vzeta iz sosednje mape ali iz paketa, iz katerega je prišel drugi profil, vam ne pove ničesar o tem, čemu ta proces zaupa. Enako velja za pot v konfiguraciji: razreši se glede na mesto, kjer je bil odjemalec zagnan, to pa ni vedno mapa, ki jo gledate. Berite profil, ne mape.

Certifikati se identificirajo po vsebini: javni ključ, subjekt in izdajatelj, obdobje veljavnosti in podpis nad vsem tem. Dve datoteki z enakimi bajti sta isti certifikat, ne glede na ime, dve datoteki z istim imenom pa sta lahko nepovezana organa. Ime je oznaka embalaže, ne identiteta.

Vzemite prstni odtis obeh kopij z openssl

Prstni odtis je zgoščena vrednost čez DER-kodiranje certifikata, obliko, ki jo pokriva podpis, zato konci vrstic in besedilo glave ne morejo vplivati nanj. Izračunajte ga za vsako datoteko in imate dva s šestnajstiškima števkama zapisana niza, ločena z dvopičjem, ki se bodisi ujemata bodisi ne. Za odgovor na vprašanje primerjave ni treba brati ničesar drugega v certifikatu.

openssl x509 -in /etc/openvpn/office/ca.crt -noout -fingerprint -sha256
openssl x509 -in ~/profiles/lab-ca.pem -noout -fingerprint -sha256

Mikavno je usmeriti openssl na sam profil, vendar ta prebere prvi blok certifikata, ki se pojavi v datoteki, profil pa običajno nosi <cert> pred <ca>. Izvlecite blok organa in nato vzemite prstni odtis izvlečene datoteke, ker je to kopija, ki jo bo odjemalec resnično uporabil.

sed -n '/^<ca>$/,/^<\/ca>$/p' office.ovpn | sed '1d;$d' > /tmp/office-ca.pem
openssl x509 -in /tmp/office-ca.pem -noout -fingerprint -sha256

Enaki prstni odtisi pomenijo, da je material zaupanja isti in da ima napaka verige drug vzrok, kar je druga preiskava. Različni prstni odtisi pomenijo različne certifikate in tam se začne naslednji razdelek.

Preberite neskladje, preden domnevate napad

Različni prstni odtisi pomenijo različne certifikate in nič več. Ponovna izdaja, rotacija, preimenovan organ ali zastarel sveženj vsi ustvarijo različne datoteke s povsem legitimnimi zgodovinami. Katera spada v uvedbo, je vprašanje za operaterja ali evidenco uvedbe, ne za čas spremembe datoteke. Arhivi kopirajo časovne žige, zato novejša datoteka ni samodejno pravilno sidro.

Koren, ki sam podpiše sebe, je običajen, zato najdba takega ni dokaz težave. Naloga preverjevalca je zgraditi pot od certifikata strežnika do sidra, ki mu je bilo izročeno, napaka verige pa običajno pomeni, da te poti ni bilo mogoče dokončati.

Preverite, ali je sidro profila, ki spodleti, organ, iz katerega uvedba še vedno izdaja. Če se prstni odtis ne ujema z ničimer v evidenci uvedbe, je profil preprosto zastarel in nobena nastavitev na strani odjemalca tega ne bo popravila.

Obnovite zaupanje brez izklopa preverjanja

Kratkoročna rešitev je izklop preverjanja ali dodajanje vsakega certifikata v verigi kot sidro. Oboje povzroči, da sporočilo izgine, in oboje spremeni, katere strežnike bo odjemalec odtlej sprejel. Ponovno vklopite preverjanje, namestite predvideno sidro in znova preizkusite.

Če se veriga zdaj zgradi, a se pojavi druga napaka, je to napredek: preverjanje imena, datumi veljavnosti in preklic so ločena preverjanja z ločenimi sporočili. Par prstnih odtisov in izvorno besedilo napake hranite skupaj v zahtevku, da bo naslednja oseba videla, katero sidro je bilo naloženo in katero je bilo pričakovano. Par prstnih odtisov je dovolj majhen za prilepitev v predajno opombo in naslednji primer bo takrat trajal pet minut namesto popoldneva.

Pridobite pravi organ po istem overjenem kanalu, ki je dostavil profil. Vlečenje certifikata s strežnika, ker je njegov subjekt videti znan, je drugo dejanje in tiho širi to, čemu bo odjemalec zaupal.

Sorodni članki