Un nom comú, dos certificats: llista permesa o revocació?
Reemetre un certificat per al mateix nom comú deixa el vell vàlid. Una llista permesa de noms no els pot distingir; només una CRL o una comprovació del número de sèrie poden fer-ho.
Reemetre un certificat d’ordinador portàtil amb el mateix nom comú sembla un reemplaçament, i tothom assumeix que el vell és mort. No ho és. El predecessor continua sent un certificat vàlid signat per la mateixa autoritat, i qualsevol control que admeti clients pel nom continuarà admetent-lo. El que separa una comprovació d’identitat d’una comprovació de credencial és el número de sèrie, i aquí és on ha d’anar la correcció.
Comenceu per la política de noms que utilitza el servidor
Es confonen dos controls: admetre un client pel que diu ser i treure un certificat concret del servei. El primer és una comprovació de nom, el segon una comprovació de revocació. Responen preguntes diferents, i una implantació pot tenir-ne un sense l’altre.
Llegiu la configuració del servidor i anoteu quina font d’identitat hi intervé. username-as-common-name fa que el nom d’usuari autenticat sigui el nom efectiu per a les consultes específiques del client. Sense això, s’utilitza el nom comú del subjecte del certificat. Sigui quina sigui la resposta, anoteu-la abans de tocar cap llista permesa.
Els dos camins produeixen un conjunt diferent de noms permesos per al mateix certificat. Endevinar aquí significa editar el fitxer equivocat i concloure que el control no funciona.
Comproveu què admet realment un client
Un client-config-dir amb un fitxer coincident proporciona opcions per client; per si sol no és una regla d’admissió. L’admissió pel nom requereix ccd-exclusive, que rebutja els clients que no tenen cap fitxer coincident. Activar-ho en una implantació en funcionament desconnecta tothom que no tingui fitxer pel seu nom, així que compteu els fitxers abans de canviar res.
grep -nE 'ccd-exclusive|client-config-dir|username-as-common-name' /etc/openvpn/server/server.conf
ls -1 /etc/openvpn/ccd/El recompte és la comprovació: compareu el llistat del directori amb les identitats que espereu que es connectin.
Després confirmeu que cada nom de fitxer coincideix exactament amb la identitat efectiva, incloent-hi majúscules i minúscules i espais. Un fitxer per a office-laptop no fa res per a un certificat el subjecte del qual diu Office-Laptop. Els espais finals també s’amaguen d’un llistat simple, i així un fitxer que sembla present queda sense llegir.
Comproveu la CRL que carrega la passarel·la
Una CRL anomena els certificats revocats per emissor i número de sèrie, que és la granularitat que falta a una comprovació de nom. Dos certificats poden compartir un nom comú i diferir en el número de sèrie, i només una llista a nivell de número de sèrie els separa.
Confirmeu el camí configurat, la data d’emissió i el camp de propera actualització abans de confiar en el fitxer.
openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate
openssl x509 -in office-laptop.crt -noout -serial -subjectCompareu el número de sèrie de la CRL amb el número de sèrie del certificat que voleu conservar. Aquesta comparació és tota la prova, i fer-la una vegada a ull val més que confiar en un script que ningú no ha llegit. Distribuïu la CRL actualitzada pel camí que la passarel·la ja llegeix. Una CRL al directori equivocat no imposa res, i cap registre de client no ho esmentarà.
Substituïu, i després demostreu els dos resultats
Emeteu la substitució amb el mateix nom comú, registreu els dos números de sèrie i només després revoqueu el vell. Aquest ordre manté disponible una identitat funcional mentre prepareu el canvi.
Proveu primer la substitució: ha d’autenticar-se i arribar a tot allò a què té dret el seu nom. Després proveu el certificat vell i confirmeu que es rebutja, perquè una substitució correcta no diu res sobre la revocació. Si tots dos encara es connecten, l’entrada de revocació no es llegeix o el número de sèrie vell no es va incloure mai. Si no se’n connecta cap, heu trencat la regla d’admissió, no la credencial.
Les sessions ja establertes són una qüestió a part, ja que la revocació s’aplica a autenticacions noves tret que la passarel·la també estigui configurada per deixar caure connexions vives. Decidiu si cal una eliminació immediata abans de prometre-ho a algú.
Què no pot fer mai una comprovació de nom
Una llista permesa respon si aquesta identitat es pot connectar. No pot dir quin certificat va utilitzar aquesta identitat, i admetrà una credencial més antiga mentre la credencial continuï sent vàlida i no revocada. Aquest buit apareix durant un incident, quan la substitució es va emetre fa mesos i el predecessor encara funciona.
On cal un control a nivell de certificat, utilitzeu un mecanisme que anomeni el certificat: entrades de CRL, o un hook de verificació que comprovi una empremta que manté l’operador. Tots dos costen manteniment, i tots dos són honestos sobre l’objecte que examinen. El manual d’OpenVPN 2.6 documenta crl-verify i l’admissió específica del client com a opcions separades per aquesta raó.
Anoteu quin control fa quina feina, i després proveu el cas negatiu. Una revocació que mai no heu vist rebutjar una connexió és una configuració que espereu que funcioni.