Három különböző kérdésre három különböző rész ad választ egy OpenVPN-profilban, és ezek összemosása az, ahogy az emberek végül kikapcsolnak egy működő ellenőrzést. A partner tanúsítványát az általam megbízott hatóság írta alá? A tanúsítvány deklarálja a TLS-kiszolgáló szerepet? Pontosan az a kiszolgáló, amelyet el akartam érni? remote-cert-tls server csak a középső kérdésre válaszol, és ezt a tanúsítványon belüli kiterjesztések olvasásával teszi.

Három ellenőrzés, amelyet könnyű fejben összemosni

A bizalmi horgony a ca utasításban él. A szerepellenőrzés a remote-cert-tls utasításhoz tartozik. Az identitásellenőrzés a verify-x509-name utasításhoz tartozik, amikor egy profil használja, vagy bármilyen névellenőrzéshez, amelyet a telepítés hozzáad.

Különböző hibákat fednek le:

QuestionDirectiveFailure it catches
Who signed this?caCertificate from an unrelated authority
Is this a server?remote-cert-tlsClient certificate presented by a peer
Is this my server?verify-x509-nameAnother valid server from the same CA

Egy profilban mindhárom meg lehet, és mégis gyenge lehet, ha a CA-t túl széles körben osztják meg, ami kulcskezelési kérdés, nem utasítási kérdés.

Mit olvas a szerepellenőrzés

Az utasítás egy makró. Kulcshasználati követelménnyé és a TLS-webkiszolgáló szerepét megnevező kiterjesztett kulcshasználati követelménnyé bővül, ezért a partner tanúsítványának ténylegesen deklarálnia kell ezt a célt. Az ügyfélhitelesítésre kiállított tanúsítvány nem felel meg neki, még akkor sem, ha ugyanaz a hatóság írta alá mindkettőt.

Ez azért fontos, mert a megosztott CA gyakori a kis telepítésekben. Egy hatóság írja alá az összes ügyfelet és a kiszolgálót, és szerepellenőrzés nélkül e tanúsítványok bármelyike befejezhetné a kézfogás kiszolgáló oldalát. Az ellenőrzés nem teszi lehetetlenné ezt a forgatókönyvet, de eltávolítja annak triviális változatát.

Az utasítás tervezésében aszimmetrikus: az ügyfelek remote-cert-tls server hordoznak, a kiszolgálók pedig remote-cert-tls client. Cserélje fel őket, és minden kapcsolat szerephibával hiúsul meg, amely törött tanúsítványnak tűnik.

A régebbi profilok néha ugyanerre a célra a ns-cert-type utasítást használják. A jelenlegi kézikönyvoldalak ezt a lehetőséget meghaladottnak tekintik, ezért az a profil, amely még mindig erre támaszkodik, áttelepítést érdemel, nem hibakeresést.

Miért tűnik javításnak a letiltása

Amikor a szerepellenőrzés meghiúsul, a kapcsolat ellenőrzési hibával leáll, és a kézenfekvő lépés a sor törlése. Ezután a kapcsolat feljön, ami előrelépésnek tűnik, és valójában az a hibamód, amelyet az utasítás meg akar akadályozni. Most olyan partnert fogad el, akinek a tanúsítványa soha nem erre a szerepre készült.

Olvassa inkább a hibát. Megnevezi az ellenőrzést, amely meghiúsult, és a másik oldali tanúsítvány megvizsgálható, hogy lássa, milyen kiterjesztéseket hordoz valójában. Két perc olvasás eldönti, hogy a hiba a kiállításban vagy a konfigurációban van-e. A találgatás egy délutánba kerül, és általában legyengített profillal végződik. A megújított kiszolgálótanúsítvány, amely elvesztette kiterjesztett kulcshasználatát, valódi hiba a megújításban, nem ok arra, hogy lazítsuk az ügyfelet.

A névellenőrzés külön utasítás

A szerepellenőrzés teljesítése azt jelenti, hogy a partner valamilyen, az Ön hatósága által aláírt kiszolgáló. Semmit nem mond arról, hogy melyik, ami akkor számít, amikor ugyanaz a CA több átjáró számára állít ki tanúsítványokat, és egyikük kompromittálódott vagy újrahasznosították.

verify-x509-name összehasonlítja a tanúsítvány tárgyát az Ön által beállított értékkel, pontos tárgyra, előtagra vagy egyetlen mezőre vonatkozó egyeztetési módokkal. Használja azt a mezőt, amely ténylegesen azonosítja az átjárót, és számítson arra, hogy a név változásakor szándékosan frissíteni fogja.

Egyik utasítás sem helyettesíti a jó kulcskezelést. Ha az ügyfélkulcs fájlját a profillal együtt másolgatják, a partner identitása csak annyira erős, mint a terjesztési lista.

Vizsgálja meg a tanúsítványt, mielőtt szerkeszti a profilt

Olvassa el a partner tanúsítványát és az ügyfélnaplót, ebben a sorrendben. A tanúsítvány megmondja, milyen szerepeket deklarál; a napló megmondja, melyik ellenőrzés utasította el.

Ezek a parancsok kiírják a használati kiterjesztéseket és az ellenőrzési sorokat egy részletes kapcsolatból:

openssl x509 -in server.crt -noout -text | grep -A1 -E "Key Usage|Extended Key Usage"
sudo openvpn --config client.ovpn --verb 4 2>&1 | grep -i verify

Ha a kiterjesztések a kiszolgálószerepet mutatják, és a napló továbbra is szerephibát jelent, a profil valószínűleg a rossz tanúsítványfájlra mutat, nem rossz tanúsítványra. Ha a kiterjesztések csak az ügyfélhitelesítést mutatják, hagyja abba az ügyfél vizsgálatát, és javítsa a kiállítást. Mindenképpen állítsa vissza az ellenőrzést, mielőtt egészségesnek nevezi a kapcsolatot, mert az ellenőrzés eltávolítása utáni sikeres kézfogás kevesebbet bizonyít, mint a hiba, amelyet helyettesített.

Kapcsolódó cikkek