Pakartotinai išduodant nešiojamojo kompiuterio sertifikatą tuo pačiu bendruoju vardu, tai atrodo kaip pakeitimas, ir visi mano, kad senasis jau miręs. Taip nėra. Pirmtakas lieka galiojantis sertifikatas, pasirašytas tos pačios institucijos, ir bet kokia kontrolė, kuri priima klientus pagal vardą, ir toliau jį priims. Tai, kas atskiria tapatybės patikrą nuo prisijungimo duomenų patikros, yra serijos numeris, ir būtent ten turi būti taisymas.

Pradėkite nuo serverio naudojamos vardų suteikimo politikos

Du kontrolės priemonės painiojamos: kliento priėmimas dėl to, kuo jis teigia esąs, ir vieno konkretaus sertifikato pašalinimas iš tarnybos. Pirmoji yra vardo patikra, antroji – atšaukimo patikra. Jos atsako į skirtingus klausimus, ir diegimas gali turėti vieną be kitos.

Perskaitykite serverio konfigūraciją ir atkreipkite dėmesį, kuris tapatybės šaltinis naudojamas. username-as-common-name paverčia autentifikuotą vartotojo vardą veiksmingu vardu kliento lygio užklausoms. Be jo naudojamas sertifikato subjekto bendrasis vardas. Kad ir koks būtų atsakymas, užsirašykite jį prieš liesdami bet kokį leidžiamąjį sąrašą.

Abu keliai tam pačiam sertifikatui suteikia skirtingą leidžiamų vardų rinkinį. Spėlioti čia reiškia redaguoti netinkamą failą ir padaryti išvadą, kad kontrolė neveikia.

Patikrinkite, kas iš tikrųjų priima klientą

Su atitinkamu failu susietas client-config-dir teikia kliento lygio parinktis; pats savaime jis nėra priėmimo taisyklė. Priėmimui pagal vardą reikia ccd-exclusive, kuri atsisako klientų, neturinčių atitinkamo failo. Įjungus tai veikiančiame diegime, atjungiami visi, kurių vardas neturi failo, todėl prieš ką nors perjungdami suskaičiuokite failus.

grep -nE 'ccd-exclusive|client-config-dir|username-as-common-name' /etc/openvpn/server/server.conf
ls -1 /etc/openvpn/ccd/

Skaičius ir yra patikra: palyginkite katalogo sąrašą su tapatybėmis, kurias tikitės prisijungiančių.

Tada patikrinkite, ar kiekvienas failo vardas tiksliai atitinka veiksmingą tapatybę, įskaitant raidžių dydį ir tarpus. office-laptop skirtas failas nieko nepadaro sertifikatui, kurio subjektas nurodytas kaip Office-Laptop. Tarpai failo pabaigoje taip pat paslepia jį nuo paprasto sąrašo, todėl failas, kuris atrodo esantis, lieka neperskaitytas.

Patikrinkite CRL, kurią įkelia šliuzas

CRL įvardija atšauktus sertifikatus pagal išdavėją ir serijos numerį, ir tai yra detalumas, kurio trūksta vardo patikrai. Du sertifikatai gali turėti tą patį bendrąjį vardą ir skirtis serijos numeriu, ir tik serijos lygio sąrašas juos atskiria.

Prieš apskritai pasitikėdami failu, patvirtinkite sukonfigūruotą kelią, išdavimo datą ir kito atnaujinimo lauką.

openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate
openssl x509 -in office-laptop.crt -noout -serial -subject

Palyginkite CRL esantį serijos numerį su serijos numeriu sertifikato, kurį ketinate pasilikti. Tas palyginimas ir yra visas testas, o vieną kartą tai padaryti akimis verta daugiau nei pasitikėti scenarijumi, kurio niekas neskaitė. Paskirstykite atnaujintą CRL tuo keliu, kurį šliuzas jau skaito. Netinkamame kataloge esanti CRL nieko neįgyvendina, ir joks kliento žurnalas apie tai neužsimins.

Pakeiskite, tada įrodykite abu rezultatus

Išduokite pakaitalą tuo pačiu bendruoju vardu, užrašykite abu serijos numerius ir tik tada atšaukite senąjį. Tokia tvarka išlaiko veikiančią tapatybę prieinamą, kol ruošiate pakeitimą.

Pirmiausia išbandykite pakaitalą: jis turėtų autentifikuotis ir pasiekti tai, kam jo vardas turi teisę. Tada išbandykite senąjį sertifikatą ir įsitikinkite, kad jis atmetamas, nes sėkmingas pakeitimas nieko nesako apie atšaukimą. Jei abu vis dar jungiasi, atšaukimo įvestis neskaitoma arba senasis serijos numeris niekada nebuvo įtrauktas. Jei nesijungia nė vienas, sugadinote priėmimo taisyklę, o ne prisijungimo duomenis.

Jau užmegztos sesijos yra atskiras dalykas, nes atšaukimas taikomas naujoms autentifikacijoms, nebent šliuzas taip pat sukonfigūruotas nutraukti aktyvius ryšius. Nuspręskite, ar reikia nedelsiant pašalinti, prieš ką nors kam nors žadėdami.

Ko vardo patikra niekada negali padaryti

Leidžiamasis sąrašas atsako, ar ši tapatybė gali jungtis. Jis negali pasakyti, kurį sertifikatą ta tapatybė naudojo, ir priims senesnius prisijungimo duomenis tol, kol jie išlieka galiojantys ir neatšaukti. Ši spraga išryškėja per incidentą, kai pakaitalas išduotas prieš mėnesius, o pirmtakas vis dar veikia.

Kai reikia sertifikato lygio kontrolės, naudokite mechanizmą, kuris įvardija sertifikatą: CRL įrašus arba patikros kabliuką, kuris tikrina operatoriaus palaikomą piršto atspaudą. Abu reikalauja priežiūros, ir abu yra sąžiningi dėl objekto, kurį tikrina. OpenVPN 2.6 vadovas dokumentuoja crl-verify ir kliento lygio priėmimą kaip atskiras parinktis, būtent dėl šios priežasties.

Užsirašykite, kuri kontrolė atlieka kurį darbą, tada išbandykite neigiamą atvejį. Atšaukimas, kuris niekada nebuvo stebėtas atsisakant ryšio, yra konfigūracija, kuria tikimasi, kad veiks.

Susiję straipsniai