Du OpenVPN sertifikatai, vienas CCD vardas: kas nepavyko
Serijos numeris unikalus tik savo išdavėjo ribose, o OpenVPN CCD failą renkasi pagal vardą. Rezervuokite tą veiksmingą vardą registracijos metu ir kontroliuokite atnaujinimą.
Du kliento sertifikatai su skirtingais serijos numeriais, skirtingais raktais ir net skirtingais pilnais subjektais vis tiek gali patekti į vieną politikos failą, nes serveris į nieką iš to nežiūri. Jis nuskaito vardą iš sertifikato ir atidaro atitinkamą kliento konfigūracijos failą. Jei abu sertifikatai turi tą patį vardą, antrasis paveldi pirmojo politiką tą akimirką, kai prisijungia.
Susidūrimas atsiranda registracijos metu ir atskleidžiamas tik prisijungiant, paprastai kai įrenginys gauna adresą ar maršrutų rinkinį, priklausantį kitai mašinai. Norint to išvengti, reikia susitarti, kurį lauką serveris susieja, ir tada rezervuoti tą reikšmę prieš ką nors pasirašant.
Jūsų sertifikatų įrankiai neįspės, nes unikalumas X.509 viduje ir OpenVPN politikos vardo unikalumas yra skirtingi reikalavimai, kuriuos vykdo skirtingos sistemos.
Serveris ieško vardo, o ne piršto atspaudo
Įprasto sertifikatais pagrįsto susiejimo atveju serveris paima bendrą vardą iš pateikto sertifikato ir ieško to vardo failo savo kliento konfigūracijos kataloge. Tas failas gali prisegti statinį adresą, stumti maršrutus arba taikyti ugniasienės žymes kiekvienam klientui. Paieška yra eilutės atitikimas failo vardui, todėl raidžių dydis, tarpai ir skyryba visi svarbūs.
Kai kurie diegimai sąmoningai sukeičia susiejimą, kad autentifikuotas naudotojo vardas perimtų bendrą vardą, ir tada būtent naudotojo vardas turi būti unikalus. Bet kuriuo atveju politika pasirenkanti reikšmė yra ta, kurią rezervuojate. Nuspręskite, kuri tai yra, prieš ką nors išduodami; spėlioti po susidūrimo brangiau nei paklausti.
Kur dvi institucijos sutampa tame pačiame varde
Organizacija, priimanti sertifikatus iš daugiau nei vienos išduodančios institucijos, vykdo du nepriklausomus registracijos procesus, rašančius į vieną vardų erdvę. Kiekvienos institucijos pačios unikalumo taisyklės galioja jos viduje, todėl abi gali teisėtai išduoti tam pačiam bendram vardui ir nė viena nepastebi nieko netinkamo.
Serijos numeriai nepadeda. X.509 reikalauja, kad serijos numeris būtų unikalus savo išdavėjo apimtyje, o tai yra tos institucijos apskaitos savybė, ne pasaulinė įrenginio tapatybė. Subjekto patikra taip pat yra kitas testas nei bendro vardo patikra: du sertifikatai gali turėti tą patį CN, bet skirtis organizacine dalimi ir todėl turėti skirtingus subjektus. Visos šios savybės gali galioti, o serveris vis tiek susieja abu sertifikatus su vienu failo vardu.
OpenSSL CA dokumentacija aprašo nuostatą unique_subject, kuri valdo jos pačios duomenų bazės nuomonę, ir sąžininga pradžia yra perskaityti savo išdavimo konfigūraciją, o ne manyti, kad galioja koks nors konkretus EasyRSA ar OpenSSL numatytasis nustatymas.
Rezervuokite veiksmingą vardą prieš pasirašydami
Tvarkykite registrą, kuris susieja įrenginį su jo patvirtintu įrašu ir iš ten su tiksliu politikos failo vardu, kad vardas būtų paskirtas vieną kartą ir liktų paskirtas. Rezervacija turi būti atominė, o tai praktiškai reiškia duomenų bazės apribojimą arba užraktą aplink paskirk-ir-tada-pasirašyk žingsnį, o ne skaičiuoklę, kurią redaguoja du žmonės.
Tada padarykite patikrą išdavimo dalimi: atsisakykite pasirašyti, kai prašomas vardas jau egzistuoja, ir įtraukite į tą patikrą kiekvieną instituciją, kuria pasitiki serveris, nes kitos institucijos rezervuotas vardas yra taip pat užimtas. Atmestas prašymas su aiškia priežastimi yra pigesnis nei bilietas apie įrenginį, kuris nuolat gauna svetimą statinį adresą.
Atnaujinimas sąmoningai naudoja vardą iš naujo
Pakartotinis išdavimas esamam įrenginiui turėtų duoti naują serijos numerį po tuo pačiu politikos vardu, ir tai yra teisėtas pakartotinis naudojimas, o ne susidūrimas. Iš anksto reikia nuspręsti dėl persidengimo: ar senas ir naujas sertifikatas gali būti galiojantys vienu metu, ir kaip senasis kredencialas išimamas.
Nesiekite duplicate-cn šiam dalykui spręsti. Ta serverio parinktis valdo vienalaikes jungtis, pateikiančias tą patį vardą; ji neužrakina registracijos, ir jos įjungimas nepadaro vieno bendro statinio adreso saugaus dviem mašinoms vienu metu. Atšaukimas paprastai identifikuoja sertifikatą pagal išdavėją ir serijos numerį, todėl seno kredencialo išėmimas neturi padaryti negaliojančio jo pakaitalo, kol serveris gauna ir taiko teisingus atšaukimo duomenis.
Patvirtinkite susiejimą įrankiais, esančiais mašinoje
Prieš perduodami įrenginiui jo naują kredencialą, nuskaitykite vardą iš sertifikato taip, kaip tai darys serveris, ir tada palyginkite jį su politikos failu, kurį tikitės pamatyti pasirinktą.
openssl x509 -in device42.crt -noout -subject -nameopt sep_multiline
ls -l /etc/openvpn/ccd/device42
grep -n "duplicate-cn" /etc/openvpn/server.conf
Pirmoji komanda spausdina subjekto laukus atskirai, todėl nuklydusi organizacinė dalis ar padvigubintas tarpas iškart matomi. Antroji patvirtina, kad politikos failas egzistuoja būtent tuo vardu, o trečioji parodo, ar serveris sukonfigūruotas leisti kelias sesijas su vienu vardu. Vykdykite visas tris su nauju sertifikatu, kol jis dar nepakliuvo iš registracijos žingsnio, kai klaida dar kainuoja parašą, o ne incidentą. Išsaugokite išvestį su bilietu, kad kitas žmogus matytų, kokį vardą serveris tikrai gavo.
Užbaikite tikra jungtimi ir palyginkite priskirtą adresą bei nustumtus maršrutus su politikos failu, o ne su tuo, ką ketinote parašyti. Jei du įrenginiai praneša tą patį statinį adresą, registre yra susidūrimas, kurio jokia sertifikatų patikra niekada neatskleis.