Revocarea nu pătrunde niciodată într-un tunel în funcțiune pentru a șterge o sesiune. Lista este o intrare a verificării certificatului și este consultată în timpul schimbului canalului de control care deschide o sesiune TLS. Acest singur fapt explică ambele surprize: un client revocat se reconectează pentru că lista nu a ajuns niciodată la verificator, iar o sesiune existentă supraviețuiește pentru că nimeni nu a reverificat nimic.

O listă este o intrare, nu o acțiune

La stabilirea sesiunii, serverul validează certificatul clientului față de ancorele sale de încredere, iar directiva de revocare adaugă acestei decizii o căutare în listă. Verificarea are loc pe server, așa că clientul nu poate vedea că certificatul i-a fost revocat și continuă să îl ofere pe același. Un profil care se conectează în continuare demonstrează doar că un verificator a acceptat lanțul, nu că revocarea a eșuat.

Lista este ea însăși un obiect semnat, cu o dată de emitere și o dată de actualizare următoare. O listă fără legătură, una semnată de altă autoritate sau una a cărei actualizare următoare a trecut nu o înlocuiește pe cea curentă, iar dacă o listă veche este respinsă sau acceptată în tăcere depinde de implementare.

Conexiune nouă față de sesiune în curs

Revocarea este evaluată la stabilirea sau renegocierea unei sesiuni, nu față de canalul de date la fiecare pachet. Un client deja conectat are chei de trafic, așa că lasă în continuare pachetele să treacă după ce certificatul său apare pe listă. Intervalul de renegociere implicit se măsoară în ore, de aceea o listă actualizată poate intra în vigoare pentru cei noi în timp ce un tunel în funcțiune rămâne.

SituationWhat the list doesWhen it applies
Fresh connectionBlocks the handshakeAt verification, immediately
RenegotiationBlocks the new exchangeAt the next renegotiation interval
Established data channelNothingUntil the session ends

Aplicarea imediată cere o acțiune deliberată și nu doar lista. Repornirea serviciului obligă fiecare client să se reconecteze, în timp ce încheierea unei singure sesiuni prin interfața de administrare le lasă pe celelalte neatinse. Alegeți una pentru fiecare incident și notați pe care ați folosit-o. Cele două opțiuni au o rază de impact diferită, iar aceasta este decizia reală.

Livrează fișierul pe care verificatorul îl citește într-adevăr

Lista trebuie generată din evidența autorității și apoi copiată pe fiecare mașină care verifică certificate. Să o generezi pe gazda CA și să nu o instalezi niciodată pe server este cea mai frecventă defecțiune și arată exact ca o funcție de revocare stricată.

ca ca.crt
cert server.crt
key server.key
crl-verify /etc/openvpn/crl.pem

Două detalii decid dacă fișierul este într-adevăr citit. O cale relativă se rezolvă față de directorul de configurare, așa că o copie lăsată în directorul personal al unui operator poate să nu fie găsită niciodată. Iar demonul renunță de obicei la privilegii după pornire, așa că contul de execuție are nevoie de permisiune de căutare pe fiecare director părinte și de permisiune de citire pe fișier. Verificați ambele cu contul de execuție, nu cu root, altfel testul demonstrează lucrul greșit.

Pe gazde systemd o unitate întărită poate ascunde și ea calea, cu o vizualizare doar pentru citire sau un director de sistem protejat. Din interiorul serviciului acest lucru nu se distinge de un fișier lipsă, așa că verificați restricțiile unității înainte de a căuta o eroare de permisiuni. Citiți fișierul unității înainte de a da vina pe modul fișierului.

Confirmați pe server, nu pe client

Jurnalul serverului numește ce s-a întâmplat: deschiderea listei, încărcarea ei sau verificarea eșuată cu numărul de serie revocat. Clientul raportează doar o eroare generică de handshake, de aceea jurnalele clientului sunt un loc prost pentru a căuta o decizie de revocare.

Verificați cu o încercare nouă din profilul revocat și apoi opriți-vă. O conexiune reușită din acel profil este semnalul pentru a inspecta calea fișierului și contul de execuție, nu pentru a presupune că lista a fost greșită. Păstrați acea încercare reușită ca test de acceptare și nu numărați o reconectare pe care nu ați observat-o.

Ce nu revocă nimic

Ștergerea profilului de pe un laptop, scoaterea fișierului certificatului de la client sau spunerea utilizatorului să nu se mai conecteze nu schimbă nimic pe server. Certificatul rămâne valid până când autoritatea înregistrează revocarea și verificatorul citește lista rezultată.

De aceea merită scris lanțul: înregistrați revocarea, generați și semnați lista, distribuiți exact acel fișier și confirmați că contul serviciului îl poate citi. Fiecare verigă este scurtă, iar oricare lipsă lasă un client revocat să se conecteze vesel. O listă de verificare de patru rânduri bate o presupunere fără niciun rând.

Articole similare