Atsaukts VPN sertifikāts joprojām savienojas? Pārbaudiet CRL piemērošanu
Atsaukti sertifikāti joprojām savienojas, kad CRL nekad nesasniedz pārbaudītāju. Pārbaudiet šādā secībā izdevēju, ielādēto sērijas numuru, pārlādes uzvedību un aktīvās sesijas.
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 -nextupdateJa 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.crlPē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 data | Fail-closed result | Fail-open result |
|---|---|---|
| List missing or unreadable | Verification fails, so expect an outage | Every client connects, including the revoked one |
List past nextUpdate | Validation errors until a fresh list is deployed | Old status is trusted indefinitely |
| Revoked serial present in the loaded list | Handshake rejected for that certificate | Handshake 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.