Jūs atsaucāt sertifikātu, ģenerējāt jaunu sarakstu, un vecais profils joprojām uzceļ tuneli. Pats atsaukums nav salauzts: CRL ir parakstīts paziņojums, ka sērijas numurs vairs nav derīgs, un tas maina piekļuvi tikai tad, kad TLS pabeidzošā komponente to ielādē, pareizajam izdevējam, pirms tā pieņem pieņemšanas lēmumu. Tieši tur atrodas lielākā daļa šo gadījumu, un tāpēc atsaukums un atteikums ir divi dažādi fakti.

Izejiet cauri piecām zemāk minētajām pārbaudēm secīgi un apstājieties pie pirmās, kas neizpildās, jo katra nākamā pieņem, ka iepriekšējās ir patiesas.

Pārbaudiet, kura komponente pieņem pieņemšanas lēmumu

Nosauciet procesu, kas validē klienta sertifikātu, jo tikai šis process var piemērot sarakstu. OpenVPN serverī tas ir pats dēmons, konfigurēts ar crl-verify. ocserv tas ir rindiņa crl failā ocserv.conf. strongSwan ievades ir ielādētie CRL kopā ar strictcrlpolicy. TLS pabeidzošs starpniekserveris vai ierīce VPN priekšā arī var būt īstais pārbaudītājs, un, ja tā ir, dēmons aiz tā nekad neredz klienta sertifikātu.

WireGuard pieder citai kategorijai. Tam nav sertifikātu un nav atsaukšanas saraksta; peer tiek pielaists pēc sava publiskā atslēgas konfigurācijā, tāpēc piekļuves izbeigšana nozīmē šīs atslēgas noņemšanu. Ja meklējat CRL izvietojumā tikai ar WireGuard, šī mehānisma tur nav.

Uzmanieties arī no slazda klienta pusē. Klients, kas atsakās savienoties, jo tam nepatīk servera sertifikāts, piemēro servera ķēdi, nevis atsauc savus akreditācijas datus. Lietotāja sertifikāts tiek atsaukts tikai tur, kur šis lietotāja sertifikāts tiek validēts, un tas gandrīz vienmēr ir servera puse.

Pārbaudiet, kuram izdevējam saraksts tika parakstīts

CRL ir ierobežots ar vienu izdevējCA. Ar saknes un starpCA lapu sertifikāti nāk no starpCA, tāpēc svarīgais saraksts ir starpCA CRL; saknes saraksts neko nepasaka par šīm lapām. Pārbaudītājs, kas norāda uz nepareizo failu, to priecīgi parsē, neatrod atbilstošu ierakstu un pieņem visu.

Apstipriniet savienošanu pirms dēmona aizskaršanas. Izdevējam sertifikātā jāatbilst saraksta subject:

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

Ja abi nāk no vienas CA, sertifikātam uzdrukātais sērijas numurs ir vērtība, kurai jāparādās sarakstā. Ja tie nesakrīt, jums ir nepareizs CRL vai nepareiza tā kopija.

Derīgums pieder pie tās pašas pārbaudes. nextUpdate pagātnē padara sarakstu novecojušu, un pārbaudītājs, kas neizdodas aizvērti, tad noraidīs katru klientu, nevis tikai atsaukto.

Pārbaudiet, vai sērijas numurs ir dēmona ielādētajā kopijā

Atsaukums ieraksta ierakstu CA datubāzē, un pārģenerēšana ieraksta jaunu failu. Neviens no abiem darbībām nesasniedz strādājošu dēmonu, kas startēšanas laikā ielādēja veco kopiju. Izgāziet sarakstu un meklējiet sērijas numuru:

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

Pēc tam pārbaudiet, kā jūsu ieviešana paņem failu. OpenVPN nolasa ceļu, kas dots crl-verify, vienreiz startēšanas laikā, tāpēc jaunam sarakstam nepieciešama restartēšana vai restartēšanas signāls; tā pati opcija, kas vērsta uz direktoriju, tiek nolasīta no jauna katram savienojumam, un tāpēc pastāv direktorija režīms. strongSwan ir jāpārlādē savi akreditācijas dati, piemēram, ar swanctl --load-creds. Tas, ka fails diskā ir pareizs, un tas, ka pārbaudītājs to izmanto, ir divi dažādi fakti.

Pārbaudiet politiku trūkstošam vai novecojušam sarakstam

Šis ir lēmums, ko daudzi izvietojumi nekad nepieņem skaidri, un tas nosaka, vai atsaukums jūs aizsargā vai visus aizslēdz ārpusē. Fail-closed nozīmē, ka bez izmantojamas atsaukuma informācijas notiek atteikums; fail-open nozīmē, ka pārbaudītājs turpina bez tās. strongSwan izceļ izvēli kā strictcrlpolicy. OpenVPN ar crl-verify atsakās startēt ar failu, ko nevar nolasīt vai parsēt, un novecojis saraksts izpaužas kā TLS pārbaudes kļūda par novecojušu CRL, nevis kā kluss pieņemšana.

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

Lai kādu virzienu jūs izvēlētos, automatizācija ir svarīgāka par izvēli: uzdevums, kas pārģenerē CRL pirms nextUpdate, un brīdinājums, kad izvietotā kopija noveco, neļauj nevienai politikai kļūt par incidentu. Tiešsaistes pārbaude ar OCSP pārvieto svaigumu uz atbildētāju, bet ir spēkā tas pats noteikums, jo pārbaudītājs, kas nav konfigurēts atbildes pārbaudei, neko nemaina.

Pārbaudiet aktīvo sesiju, pēc tam atslēgas kopijas

Atsaukums tiek novērtēts sertifikāta validācijas laikā, kas notiek savienojoties un pārrunājot no jauna. Izveidota sesija turpinās, līdz tā pārrunā no jauna, un OpenVPN noklusējums ir reizi stundā ar reneg-sec 3600. Ja personai tagad jāiziet no tīkla, pārtrauciet sesiju līdztekus saraksta publicēšanai, un pēc tam apstipriniet, ka atkārtots savienojums tiek noraidīts.

Atdaliet akreditācijas datus no to kopijām. Profila dzēšana vienā portatīvajā datorā neliedz citai tās pašas privātās atslēgas kopijai autentificēties; atsaukums ir tas, kas padara katru kopiju bezjēdzīgu, un tikai tad, kad iepriekšējās pārbaudes ir spēkā. Dodiet aizvietotājierīcei savu sertifikātu, lai vienu varētu atsaukt, neaizskarot otru.

Pirms pasludināt to par pabeigtu: validējošā komponente ir identificēta, saraksta izdevējs atbilst lapas izdevējam, atsauktais sērijas numurs atrodas kopijā, ko dēmons faktiski ielādēja, trūkstošo vai novecojušo sarakstu politika ir apzināta un uzraudzīta, un aktīvā sesija tika pārtraukta, nevis nogaidīta. Formāti, kas ir aiz visa tā, ir norādīti RFC 5280.

Saistītie raksti