To OpenVPN-sertifikat, eitt CCD-namn: kva gjekk gale
Eit serienummer er berre unikt innanfor utstedaren sin, medan OpenVPN vel CCD-fila etter namn. Reserver det effektive namnet ved påmelding og kontroller fornyinga.
To klientsertifikat med ulike serienummer, ulike nøklar og til og med ulike fulle subjekt kan framleis hamne i same policyfil, fordi tenaren ikkje ser på noko av det. Han les eit namn frå sertifikatet og opnar den tilhøyrande klientkonfigurasjonsfila. Viss begge sertifikata ber same namn, arvar det andre policyen til det første i det augneblinken det koplar til.
Kollisjonen oppstår ved påmeldinga og blir først oppdaga ved tilkopling, vanlegvis når eininga får ein adresse eller eit rutessett som høyrer til ein annan maskin. Å hindre det betyr å bli samde om kva felt tenaren mappar, og deretter reservere den verdien før noko blir signert.
Sertifikatverktøya dine åtvarar deg ikkje, fordi unikskap inne i X.509 og unikskap av eit OpenVPN-policynamn er ulike krav som blir handheva av ulike system.
Tenaren slår opp eit namn, ikkje eit fingeravtrykk
Med den vanlege sertifikatbaserte mappinga tek tenaren det vanlege namnet frå sertifikatet som blir lagt fram, og ser etter ei fil med det namnet i klientkonfigurasjonskatalogen sin. Den fila kan feste ein statisk adresse, pushe ruter eller bruke brannmurmerke per klient. Oppslaget er ein strengsamanlikning mot eit filnamn, så store og små bokstavar, mellomrom og teiknsetjing spelar alle ei rolle.
Nokre utrullingar byter med vilje om mappinga slik at eit autentisert brukarnamn overtek det vanlege namnet, og då er det brukarnamnet som må vere unikt. Uansett er verdien som vel policy, den verdien du reserverer. Bestem kva for ein det er før du gir ut noko; å gisse etter ein kollisjon kostar meir enn å spørje.
Der to styresmakter treffer same namn
Ein organisasjon som godtek sertifikat frå meir enn éi utstedande styresmakt, driv to uavhengige påmeldingsprosessar som skriv i eitt namnerom. Kvar styresmakt sine eigne unikskapsreglar gjeld internt, så begge kan lovleg gi ut for det same vanlege namnet utan at nokon av dei merkar noko gale.
Serienummer hjelper ikkje. X.509 krev at eit serienummer er unikt innanfor området til utstedaren sin, noko som er ein eigenskap ved rekneskapen til den styresmakta og ikkje ein global einingsidentitet. Ein subjektkontroll er òg ein annan test enn ein vanleg-namn-kontroll: to sertifikat kan dele ein CN og likevel skilje seg i organisasjonseining og difor bere ulike subjekt. Kvar av desse eigenskapane kan halde medan tenaren framleis mappar begge sertifikata til eitt filnamn.
OpenSSL CA-dokumentasjonen dekkjer innstillinga unique_subject som styrer meininga til den eigne databasen, og det ærlege utgangspunktet er å lese utstedinga si konfigurasjon i staden for å gå ut frå at ein bestemt EasyRSA- eller OpenSSL-standard gjeld.
Reserver det effektive namnet før signering
Før eit register som mappar eit apparat til den godkjende posten sin og derifrå til eit nøyaktig policyfilnamn, slik at eit namn blir tildelt éin gong og held fram med å vere tildelt. Reservasjonen må vere atomisk, noko som i praksis tyder ein databaserestriksjon eller ei lås rundt trinnet tildel-og-deretter-signer, ikkje eit rekneark som to personar redigerer.
Gjer deretter kontrollen til ein del av utgivinga: nekt å signere når det førespurde namnet allereie finst, og ta med kvar styresmakt tenaren stolar på i den kontrollen, fordi eit namn som er reservert av den andre styresmakta er like oppteke. Ein avvist førespurnad med klår grunngiving er billegare enn ei sak om eit apparat som stadig får den statiske adressa til nokon annan.
Utgiving på nytt brukar namnet med vilje
Utgiving på nytt for eit eksisterande apparat bør gi eit nytt serienummer under same policynamn, og det er lovleg gjenbruk og ikkje ein kollisjon. Det som må avgjerast på førehand, er overlappinga: om gammalt og nytt sertifikat kan vere gyldige samstundes, og korleis den gamle påloggingsinformasjonen blir trekt tilbake.
Ikkje grip etter duplicate-cn for å løyse dette. Det tenaralternativet styrer samtidige tilkoplingar som legg fram same namn; det låser ikkje påmeldinga, og å slå det på gjer ikkje éi delt statisk adresse trygg for to maskinar samstundes. Tilbakekalling identifiserer vanlegvis eit sertifikat ved utstedar og serienummer, så tilbaketrekking av den gamle påloggingsinformasjonen treng ikkje gjere erstatninga ugyldig så lenge tenaren tek imot og handhevar rette tilbakekallingsdata.
Stadfest mappinga med verktøya på maskinen
Før du gir eit apparat den nye påloggingsinformasjonen sin, les namnet ut av sertifikatet slik tenaren vil gjere det, og samanlikn det deretter med policyfila du ventar blir vald.
openssl x509 -in device42.crt -noout -subject -nameopt sep_multiline
ls -l /etc/openvpn/ccd/device42
grep -n "duplicate-cn" /etc/openvpn/server.conf
Den første kommandoen skriv ut subjektfelt separat, noko som gjer ei villfaren organisasjonseining eller eit dobbelt mellomrom synleg med ein gong. Den andre stadfestar at det finst ei policyfil under nøyaktig det namnet, og den tredje viser om tenaren er konfigurert til å tillate fleire økter på eitt namn. Køyr alle tre mot eit nytt sertifikat før det forlèt påmeldingstrinnet, medan ein feil enno kostar ein signatur i staden for ei hending. Ta vare på utdata saman med saka, slik at neste person kan sjå kva namn tenaren faktisk fekk.
Avslutt med ei ekte tilkopling og samanlikn den tildelte adressa og dei pushe rutene med policyfila i staden for med det du meinte å skrive. Viss to apparat rapporterer same statiske adresse, har registeret ein kollisjon som ingen sertifikatinspeksjon nokosinne vil avdekkje.