Dva profila oba donose datoteku nazvanu ca.crt, jedan tunel se podiže, a drugi pada s greškom u lancu. Otvaranje dviju datoteka jednu uz drugu rijetko to rješava, a isključivanje provjere rješava to u pogrešnom smjeru. Pitanje koje greška zapravo postavlja uže je: koji certifikat svaki proces učitava kao svoje sidro povjerenja i jesu li to dva ista objekta? Odgovorite prvo na to i ostatak dijagnostike dobiva smjer. Naziv datoteke je oznaka pakiranja, a put zapisan u profilu također nije mjerodavan, pa sve ovisi o tome što proces stvarno čita.

Pronađite certifikat koji klijent stvarno učitava

OpenVPN prihvaća ustanovu u dva oblika, a oblik odlučuje koji bajtovi su važni. Profil može pokazivati na vanjsku datoteku s ca ili ugraditi certifikat u blok <ca> u samom profilu. Kad postoje oba, ugrađeni blok pobjeđuje i datoteka pokraj profila nikada se ne otvara.

Pročitajte neuspjeli profil i otkrijte koji oblik koristi prije nego što bilo što usporedite. Kopija izvučena iz susjednog direktorija ili iz paketa iz kojeg je došao drugi profil ne govori vam ništa o tome čemu ovaj proces vjeruje. Isto vrijedi i za put u konfiguraciji: razrješava se relativno prema mjestu gdje je klijent pokrenut, a to nije uvijek direktorij koji gledate. Čitajte profil, ne mapu.

Certifikati se identificiraju po svom sadržaju: javni ključ, subjekt i izdavatelj, razdoblje valjanosti i potpis preko svega toga. Dvije datoteke s identičnim bajtovima isti su certifikat kako god se zvale, a dvije datoteke s istim nazivom mogu biti nepovezane ustanove. Naziv je oznaka pakiranja, ne identitet.

Zabilježite otisak obiju kopija pomoću openssl

Otisak je hash preko DER kodiranja certifikata, oblika koji potpis pokriva, pa završeci redaka i tekst zaglavlja ne mogu na njega utjecati. Izračunajte ga za svaku datoteku i imate dva heksadecimalna niza odvojena dvotočkom koji se ili podudaraju ili ne. Ništa drugo u certifikatu ne treba čitati da bi se odgovorilo na pitanje usporedbe.

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

Primamljivo je usmjeriti openssl na sam profil, ali on čita prvi blok certifikata koji se pojavi u datoteci, a profil obično nosi <cert> prije <ca>. Izvucite blok ustanove, zatim zabilježite otisak izvučene datoteke, jer to je kopija koju će klijent stvarno upotrijebiti.

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

Identični otisci znače da je materijal povjerenja isti i da greška u lancu ima neki drugi uzrok, što je druga istraga. Različiti otisci znače različite certifikate i tu počinje sljedeće poglavlje.

Pročitajte nepodudarnost prije nego pretpostavite napad

Različiti otisci znače različite certifikate i ništa više. Ponovno izdavanje, rotacija, preimenovana ustanova ili zastarjeli paket svi stvaraju različite datoteke s posve legitimnim povijestima. Koja pripada raspoređivanju pitanje je za operatera ili evidenciju raspoređivanja, a ne za vrijeme izmjene datoteke. Arhive kopiraju vremenske oznake, pa novija datoteka nije automatski ispravno sidro.

Korijen koji sam sebe potpisuje normalan je, pa pronalazak jednoga nije dokaz problema. Posao je provjeravatelja izgraditi put od certifikata poslužitelja do sidra koje mu je predano, a greška u lancu obično znači da taj put nije mogao biti dovršen.

Provjerite je li sidro neuspjelog profila ustanova iz koje raspoređivanje još uvijek izdaje. Ako se otisak ne podudara ni s čim u evidenciji raspoređivanja, profil je jednostavno zastario i nikakvo podešavanje na strani klijenta to neće popraviti.

Obnovite povjerenje bez isključivanja provjere

Kratkoročno rješenje je isključiti provjeru ili dodati svaki certifikat u lancu kao sidro. Oboje čini da poruka nestane i oboje mijenja koje će poslužitelje klijent od tada prihvaćati. Ponovno uključite provjeru, instalirajte željeno sidro i ponovno testirajte.

Ako se lanac sada izgradi, ali pojavi se druga greška, to je napredak: provjera naziva, datumi valjanosti i opoziv odvojene su provjere s odvojenim porukama. Držite par otisaka i izvorni tekst greške zajedno u zahtjevu, kako bi sljedeća osoba vidjela koje je sidro učitano i koje se očekivalo. Par otisaka dovoljno je malen da se zalijepi u napomenu o primopredaji, a sljedeći slučaj tada traje pet minuta umjesto poslijepodneva.

Nabavite ispravnu ustanovu istim autentificiranim kanalom koji je dostavio profil. Izvlačenje certifikata s poslužitelja jer njegov subjekt izgleda poznato drugi je čin i tiho proširuje ono čemu će klijent vjerovati.

Povezani članci