Sertifikatı ləğv etdiniz, yeni siyahı yaratdınız və köhnə profil hələ də tunel qaldırır. Ləğvetmənin özü xarab deyil: CRL seriya nömrəsinin artıq etibarlı olmadığına dair imzalanmış bəyanatdır və o, qəbul qərarı verilməzdən əvvəl, düzgün emitent üçün TLS-i bitirən komponent onu yüklədikdə erişimi dəyişir. Bu halların çoxu məhz oradadır və buna görə ləğvetmə ilə imtina iki fərqli faktdır.

Aşağıdakı beş yoxlamadan sıra ilə keçin və ilk uyğun gəlməyəndə dayanın, çünki hər sonrakı yoxlama əvvəlkilerin doğru olduğunu fərz edir.

Qəbul qərarını hansı komponentin verdiyini yoxlayın

Müştəri sertifikatını yoxlayan prosesi adlandırın, çünki siyahını yalnız həmin proses tətbiq edə bilər. OpenVPN serverində bu, crl-verify ilə konfiqurasiya edilmiş daemonun özüdür. ocserv-də bu, ocserv.conf daxilindəki crl sətridir. strongSwan-da girişlər yüklənmiş CRL-lər və strictcrlpolicy birlikdədir. VPN-in qarşısında TLS-i bitirən proksi və ya cihaz da əsl yoxlayıcı ola bilər və belədirsə, arxasındakı daemon müştəri sertifikatını heç vaxt görmür.

WireGuard başqa kateqoriyaya aiddir. Sertifikatı və ləğvetmə siyahısı yoxdur; peer konfiqurasiyadaki açıq açarı ilə qəbul edilir, ona görə erişimin dayandırılması həmin açarın silinməsi deməkdir. Yalnız WireGuard olan quraşdırmada CRL axtarırsınızsa, o mexanizm orada yoxdur.

Müştəri tərəfindəki tələyə də diqqət edin. Server sertifikatını bəyənmədiyi üçün qoşulmaqdan imtina edən müştəri serverin zəncirini tətbiq edir, öz mandatını ləğv etmir. İstifadəçi sertifikatı yalnız həmin istifadəçi sertifikatının yoxlandığı yerdə ləğv edilir və bu, demək olar ki, həmişə server tərəfidir.

Siyahının hansı emitent üçün imzalandığını yoxlayın

CRL bir emitent CA ilə məhdudlaşır. Kök və ara CA olduqda yarpaq sertifikatlar aradan gəlir, ona görə vacib siyahı ara CA-nın CRL-sidir; kökün siyahısı o yarpaqlar haqqında heç nə demir. Səhv fayla yönəlmiş yoxlayıcı onu şən şəkildə analiz edir, uyğun qeyd tapmır və hər şeyi qəbul edir.

Daemona toxunmadan əvvəl uyğunluğu təsdiqləyin. Sertifikatdaki emitent siyahının subject-i ilə uyğun olmalıdır:

openssl x509 -in client.crt -noout -issuer -serial
openssl crl  -in intermediate.crl -noout -issuer -lastupdate -nextupdate

Hər ikisi eyni CA-dan gəldikdə, sertifikat üçün çap edilmiş seriya nömrəsi siyahıda görünməli olan dəyərdir. Uyğun gəlmirsə, səhv CRL və ya onun səhv nüsxəsini tutursunuz.

Etibarlılıq eyni yoxlamaya aiddir. Keçmişdəki nextUpdate siyahını köhnəldir və bağlı şəkildə uğursuz olan yoxlayıcı o zaman yalnız ləğv ediləni deyil, hər müştərini rədd edəcək.

Seriya nömrəsinin daemonun yüklədiyi nüsxədə olduğunu yoxlayın

Ləğvetmə CA verilənlər bazasına qeyd yazır, yenidən yaratma isə yeni fayl yazır. Hər iki əməliyyat başlanğıcda köhnə nüsxəni yükləmiş işləyən daemona çatmır. Siyahını boşaldın və seriya nömrəsini axtarın:

openssl crl -in intermediate.crl -noout -text | grep -i -A2 'Serial Number'
openssl ca -revoke client.crt
openssl ca -gencrl -out intermediate.crl

Sonra tətbiqinizin faylı necə götürdüyünü yoxlayın. OpenVPN crl-verify verilən yolu başlanğıcda bir dəfə oxuyur, ona görə yeni siyahı yenidən başlatma və ya yenidən başlatma siqnalı tələb edir; eyni seçim kataloqa yönəldildikdə hər qoşulmada yenidən oxunur və kataloq rejiminin mövcud olmasının səbəbi budur. strongSwan öz mandatlarını yenidən yükləməlidir, məsələn swanctl --load-creds ilə. Faylın diskdə düzgün olması və yoxlayıcının ondan istifadə etməsi iki fərqli faktdır.

Çatışmayan və ya vaxtı keçmiş siyahı üçün siyasəti yoxlayın

Bu, bir çox quraşdırmanın heç vaxt açıq şəkildə vermədiyi qərardır və ləğvetmənin sizi qoruduğuna, yoxsa hamını bayırda bağladığına qərar verir. Fail-closed o deməkdir ki, istifadə edilə bilən ləğvetmə məlumatı olmadan imtina baş verir; fail-open o deməkdir ki, yoxlayıcı onsuz davam edir. strongSwan seçimi strictcrlpolicy kimi təqdim edir. OpenVPN crl-verify ilə oxuya və ya analiz edə bilmədiyi faylda başlamaqdan imtina edir və vaxtı keçmiş siyahı səssiz qəbul yerinə vaxtı keçmiş CRL barədə TLS yoxlama xətası kimi görünür.

State of the revocation dataFail-closed resultFail-open result
List missing or unreadableVerification fails, so expect an outageEvery client connects, including the revoked one
List past nextUpdateValidation errors until a fresh list is deployedOld status is trusted indefinitely
Revoked serial present in the loaded listHandshake rejected for that certificateHandshake rejected for that certificate

Hansı istiqaməti seçsəniz də, avtomatlaşdırma seçimdən daha vacibdir: CRL-ni nextUpdate əvvəl yenidən yaradan iş və yerləşdirilmiş nüsxə köhnəldikdə xəbərdarlıq iki siyasətin də hadisəyə çevrilməsinin qarşısını alır. OCSP ilə onlayn yoxlama təzəliyi cavabdehə köçürür, lakin eyni qayda qüvvədədir, çünki cavabı yoxlamaq üçün konfiqurasiya edilməmiş yoxlayıcı heç nəyi dəyişmir.

Aktiv sessiyanı, sonra açarın nüsxələrini yoxlayın

Ləğvetmə sertifikatın yoxlanılması zamanı qiymətləndirilir, bu qoşulma və yenidən danışıqlar zamanı baş verir. Qurulmuş sessiya yenidən danışıqlar edənə qədər davam edir və OpenVPN-in standart dəyəri reneg-sec 3600 ilə saatda birdir. Şəxs indi şəbəkədən çıxmalıdırsa, siyahını dərc etməklə yanaşı sessiyanı da dayandırın və sonra yenidən qoşulmanın rədd edildiyini təsdiqləyin.

Mandatı onun nüsxələrindən ayırın. Bir noutbukda profili silmək eyni şəxsi açarın başqa nüsxəsinin autentifikasiyasına mane olmur; hər nüsxəni yararsız edən ləğvetmədir və bu yalnız əvvəlki yoxlamalar uyğun olduqda keçərlidir. Ehtiyat cihaza öz sertifikatını verin ki, biri digərinə toxunmadan ləğv edilə bilsin.

Bunu bitmiş saymazdan əvvəl: yoxlayıcı komponent müəyyən edilib, siyahının emitenti yarpağın emitenti ilə uyğundur, ləğv edilmiş seriya nömrəsi daemonun həqiqətən yüklədiyi nüsxədədir, çatışmayan və ya vaxtı keçmiş siyahılar siyasəti qəsdən seçilib və izlənir, aktiv sessiya isə gözlənilmək əvəzinə dayandırılıb. Bütün bunların arxasındaki formatlar RFC 5280 daxilində göstərilib.

Əlaqəli məqalələr