Dva OpenVPN certifikata, jedno CCD ime: šta je pošlo naopako
Serijski broj je jedinstven samo unutar svog izdavaoca, dok OpenVPN bira CCD datoteku po imenu. Rezervišite to efektivno ime pri upisu i kontrolišite obnovu.
Dva klijentska certifikata s različitim serijskim brojevima, različitim ključevima i čak različitim punim subjektima ipak mogu završiti u jednoj datoteci politike, jer server ne gleda ništa od toga. On čita ime iz certifikata i otvara odgovarajuću datoteku konfiguracije klijenta. Ako oba certifikata nose isto ime, drugi nasljeđuje politiku prvog u trenutku kada se poveže.
Sudar nastaje pri upisu i otkriva se tek pri povezivanju, obično kada uređaj dobije adresu ili skup ruta koje pripadaju drugoj mašini. Sprječavanje znači dogovoriti koje polje server preslikava, a zatim rezervisati tu vrijednost prije nego što se bilo šta potpiše.
Vaši alati za certifikate neće vas upozoriti, jer su jedinstvenost unutar X.509 i jedinstvenost imena OpenVPN politike različiti zahtjevi koje provode različiti sistemi.
Server traži ime, a ne otisak prsta
Kod uobičajenog preslikavanja zasnovanog na certifikatima, server uzima uobičajeno ime iz predočenog certifikata i traži datoteku tog imena u svom direktoriju konfiguracije klijenata. Ta datoteka može prikvačiti statičnu adresu, gurati rute ili primijeniti firewall oznake po klijentu. Pretraga je podudaranje niza s imenom datoteke, pa su velika i mala slova, razmaci i interpunkcija svi važni.
Neke implementacije namjerno zamjenjuju preslikavanje tako da autentificirano korisničko ime preuzme ulogu uobičajenog imena, i tada korisničko ime mora biti jedinstveno. U oba slučaja, vrijednost koja bira politiku je vrijednost koju rezervišete. Odlučite koja je to prije nego što bilo šta izdate; nagađanje nakon sudara košta više od pitanja.
Gdje se dva tijela susreću na istom imenu
Organizacija koja prihvata certifikate od više od jednog izdavačkog tijela vodi dva nezavisna procesa upisa koji pišu u jedan imenski prostor. Vlastita pravila jedinstvenosti svakog tijela vrijede unutar njega samog, pa oba mogu legitimno izdati certifikat za isto uobičajeno ime, a da nijedno ne primijeti ništa pogrešno.
Serijski brojevi ne pomažu. X.509 zahtijeva da serijski broj bude jedinstven unutar opsega njegovog izdavaoca, što je svojstvo knjigovodstva tog tijela, a ne globalni identitet uređaja. Provjera subjekta je također drugačiji test od provjere uobičajenog imena: dva certifikata mogu dijeliti CN, a razlikovati se u organizacijskoj jedinici i zato nositi različite subjekte. Svako od tih svojstava može vrijediti dok server i dalje preslikava oba certifikata na jedno ime datoteke.
OpenSSL CA dokumentacija pokriva postavku unique_subject koja upravlja mišljenjem njegove vlastite baze podataka, a poštena početna točka je pročitati vašu konfiguraciju izdavanja umjesto pretpostavke da vrijedi određeni EasyRSA ili OpenSSL zadani izbor.
Rezervišite efektivno ime prije potpisivanja
Vodite registar koji preslikava uređaj u njegov odobreni zapis i odatle u točno ime datoteke politike, tako da se ime dodijeli jednom i ostane dodijeljeno. Rezervacija mora biti atomska, što u praksi znači ograničenje baze podataka ili bravu oko koraka dodijeli-pa-potpiši, a ne tabelu koju uređuju dvije osobe.
Zatim učinite provjeru dijelom izdavanja: odbijte potpisati kada traženo ime već postoji i uključite u tu provjeru svako tijelo kojem server vjeruje, jer je ime rezervisano od strane drugog tijela jednako zauzeto. Odbijen zahtjev s jasnim razlogom jeftiniji je od tikete o uređaju koji stalno dobija tuđu statičnu adresu.
Obnova namjerno ponovno koristi ime
Ponovno izdavanje za postojeći uređaj treba proizvesti novi serijski broj pod istim imenom politike, i to je legitimno ponovno korištenje, a ne sudar. Ono što se mora unaprijed odlučiti je preklapanje: mogu li stari i novi certifikat biti valjani istovremeno, i kako se stara vjerodajnica povlači.
Ne posežite za duplicate-cn da to riješite. Ta serverska opcija upravlja istovremenim vezama koje predočavaju isto ime; ona ne zaključava upis, i njeno omogućavanje ne čini jednu dijeljenu statičnu adresu sigurnom za dvije mašine odjednom. Opovrgavanje obično identificira certifikat po izdavaocu i serijskom broju, pa povlačenje stare vjerodajnice ne mora poništiti njenu zamjenu sve dok server prima i provodi ispravne podatke o opovrgavanju.
Potvrdite preslikavanje alatima na mašini
Prije nego što uređaju predate njegovu novu vjerodajnicu, pročitajte ime iz certifikata onako kako će to učiniti server, a zatim ga uporedite s datotekom politike koju očekujete da bude odabrana.
openssl x509 -in device42.crt -noout -subject -nameopt sep_multiline
ls -l /etc/openvpn/ccd/device42
grep -n "duplicate-cn" /etc/openvpn/server.conf
Prva komanda ispisuje polja subjekta odvojeno, što odmah čini vidljivim zalutalu organizacijsku jedinicu ili udvojeni razmak. Druga potvrđuje da datoteka politike postoji pod točno tim imenom, a treća pokazuje je li server konfigurisan da dopušta nekoliko sesija na jednom imenu. Pokrenite sve tri na novom certifikatu prije nego što napusti korak upisa, dok greška još košta potpis, a ne incident. Sačuvajte izlaz uz tiketu kako bi sljedeća osoba vidjela koje je ime serveru stvarno dato.
Završite stvarnom vezom i uporedite dodijeljenu adresu i gurane rute s datotekom politike, a ne s onim što ste namjeravali napisati. Ako dva uređaja prijave istu statičnu adresu, registar ima sudar koji nikakav pregled certifikata neće otkriti.