Dva klijentska sertifikata sa različitim serijskim brojevima, različitim ključevima i čak različitim punim subjektima i dalje mogu završiti u istoj datoteci politike, jer server ne gleda ništa od toga. On čita ime iz sertifikata i otvara odgovarajuću datoteku konfiguracije klijenta. Ako oba sertifikata nose isto ime, drugi nasleđ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. Sprečavanje znači dogovoriti koje polje server preslikava, a zatim rezervisati tu vrednost pre nego što se bilo šta potpiše.

Vaši alati za sertifikate vas neće upozoriti, jer su jedinstvenost unutar X.509 i jedinstvenost imena OpenVPN politike različiti zahtevi koje sprovode različiti sistemi.

Server traži ime, a ne otisak prsta

Kod uobičajenog preslikavanja zasnovanog na sertifikatima, server uzima uobičajeno ime iz predočenog sertifikata i traži datoteku tog imena u svom direktorijumu konfiguracije klijenata. Ta datoteka može prikovati statičnu adresu, gurati rute ili primeniti oznake vatrozida po klijentu. Pretraga je podudaranje niza sa imenom datoteke, pa su velika i mala slova, razmaci i interpunkcija svi važni.

Neke implementacije namerno zamjenjuju preslikavanje tako da autentifikovano korisničko ime preuzme ulogu uobičajenog imena, i tada korisničko ime mora biti jedinstveno. U svakom slučaju, vrednost koja bira politiku jeste vrednost koju rezervišete. Odlučite koja je pre nego što bilo šta izdate; nagađanje posle sudara košta više od pitanja.

Gde se dva tela sreću na istom imenu

Organizacija koja prihvata sertifikate od više od jednog izdavalačkog tela vodi dva nezavisna postupka upisa koji pišu u jedan prostor imena. Vlastita pravila jedinstvenosti svakog tela važe unutar njega samog, pa oba mogu zakonito izdati za isto uobičajeno ime, a da nijedno ne primeti ništa pogrešno.

Serijski brojevi ne pomažu. X.509 zahteva da serijski broj bude jedinstven unutar opsega njegovog izdavaoca, što je svojstvo knjigovodstva tog tela, a ne globalni identitet uređaja. Provera subjekta je takođe drugačiji test od provere uobičajenog imena: dva sertifikata mogu deliti CN, ali se razlikovati u organizacionoj jedinici i zato nositi različite subjekte. Svako od tih svojstava može važiti dok server i dalje preslikava oba sertifikata na jedno ime datoteke.

Dokumentacija OpenSSL CA obrađuje postavku unique_subject koja upravlja mišljenjem njegove sopstvene baze podataka, a poštena početna tačka je pročitati svoju konfiguraciju izdavanja umesto pretpostavke da važi neka podrazumevana vrednost EasyRSA ili OpenSSL-a.

Rezervišite efektivno ime pre potpisivanja

Vodite registar koji preslikava uređaj u njegov odobreni zapis i odatle u tačno ime datoteke politike, tako da se ime dodeli jednom i ostane dodeljeno. Rezervacija mora biti atomska, što u praksi znači ograničenje baze podataka ili bravu oko koraka dodeli-pa-potpiši, a ne tabelu koju uređuju dve osobe.

Zatim učinite proveru delom izdavanja: odbijte potpisati kada traženo ime već postoji i uključite u tu proveru svako telo kojem server veruje, jer je ime koje je rezervisalo drugo telo jednako zauzeto. Odbijen zahtev sa jasnim razlogom jeftiniji je od tiketa o uređaju koji stalno dobija tuđu statičnu adresu.

Obnova namerno ponovo koristi ime

Ponovno izdavanje za postojeći uređaj treba da proizvede novi serijski broj pod istim imenom politike, i to je zakonito ponovno korišćenje, a ne sudar. Ono što se mora unapred odlučiti je preklapanje: mogu li stari i novi sertifikat biti važeći istovremeno, i kako se stara akreditacija povlači.

Ne posežite za duplicate-cn da to rešite. Ta serverska opcija upravlja istovremenim vezama koje predočavaju isto ime; ona ne zaključava upis i njeno omogućavanje ne čini jednu deljenu statičnu adresu bezbednom za dve mašine istovremeno. Opovrgnuće obično identifikuje sertifikat po izdavaocu i serijskom broju, pa povlačenje stare akreditacije ne mora poništiti njenu zamenu sve dok server prima i sprovodi ispravne podatke o opovrgnuću.

Potvrdite preslikavanje alatima na mašini

Pre nego što uređaju predate njegovu novu akreditaciju, pročitajte ime iz sertifikata onako kako će to učiniti server, a zatim ga uporedite sa datotekom politike za koju očekujete da će biti izabrana.

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 organizacionu jedinicu ili udvojeni razmak. Druga potvrđuje da datoteka politike postoji pod tačno tim imenom, a treća pokazuje da li je server konfigurisan da dopušta nekoliko sesija na jednom imenu. Pokrenite sve tri na novom sertifikatu pre nego što napusti korak upisa, dok greška još košta potpis, a ne incident. Sačuvajte izlaz uz tiketu kako bi sledeća osoba videla koje je ime server stvarno dobio.

Završite stvarnom vezom i uporedite dodeljenu adresu i gurane rute sa datotekom politike, a ne sa onim što ste nameravali da napišete. Ako dva uređaja prijave istu statičnu adresu, registar ima sudar koji nikakav pregled sertifikata neće otkriti.

Povezani članci