La vostra passarel·la accepta un certificat de client que no ha vist mai, perquè allò amb què està configurada és una entitat emissora de confiança, i el certificat arriba durant l’aplec de mans. Així és com el protocol ha de funcionar, i per això mateix un llistat de directori al servidor és un inventari deficient. L’emissor sap què ha creat, el servidor sap què s’hi ha connectat, i l’estat de revocació sap què s’ha retirat. Un inventari que barreja aquests tres registres acaba afirmant una cosa que cap d’ells no ha dit.

La passarel·la confia en un emissor, no en un llistat de fitxers

La validació compara un certificat presentat amb una àncora de confiança, de manera que una identitat creada ahir pel mateix emissor es connecta sense haver existit mai al disc del servidor. No cal copiar res perquè això passi, i ningú no ho ha d’aprovar a mà. Els registres propis del servidor descriuen, doncs, arribades, no la població d’identitats que podrien arribar.

La bretxa inversa és igual de molesta. Un directori pot contenir certificats caducats, revocats i identitats emeses per a dispositius que mai no es van desplegar. Comptar fitxers respon quants fitxers hi ha, que és una pregunta que ningú no ha fet. Comenceu en canvi pels registres que tenen significat.

Quatre preguntes, quatre registres diferents

Cada tipus de registre respon bé una pregunta i malament les altres, i per això un informe que els fusiona sembla complet mentre és incorrecte d’una manera concreta. La taula següent els ordena per la pregunta que resolen i no pel sistema que els produeix.

Question you are answeringWhere the answer livesHow quickly it changesWhat it will never show
Was this identity ever created?The issuer's issuance databaseOnly when something is issuedWhether the device still exists
Is a copy sitting on this host?The paths you actually inspectedWhenever anyone copies filesCertificates that were never copied here
Has the issuer withdrawn it?Published revocation stateWhen the issuer next publishesWithdrawals that are not published yet
Is it connected right now?The live session tableContinuouslyAnything about past or future sessions

Un arxiu de certificats públics no és un secret, ja que no conté claus privades, però tampoc no és per compartir. Els subjectes i els noms de dispositiu revelen detalls operatius, i l’informe ha de quedar-se amb el públic que el necessita. Les claus privades queden completament fora de l’inventari, perquè l’inventari necessita metadades i no credencials.

Emissor més número de sèrie és l’única clau estable

Els subjectes es reciclen i els noms de fitxer es reutilitzen, de manera que un nom que l’any passat identificava un dispositiu ara pot identificar-ne un altre. Cap dels dos no és una clau, i un informe basat en qualsevol d’ells acabarà fusionant dues identitats en una línia.

La parella emissor i número de sèrie identifica un certificat de manera única, i tots dos camps surten del mateix certificat. Enregistreu-los amb el subjecte, les dates de validesa, la font d’on ha vingut la còpia i la persona o el dispositiu responsable. Afegiu l’estat de revocació i de desplegament com a camps separats amb els seus propis temps d’observació, perquè un certificat dins de la seva finestra de validesa no queda autoritzat automàticament. Aquests dos fets viuen en sistemes diferents, i fusionar-los amaga el cas en què una identitat s’ha retirat mentre el seu fitxer encara sembla vigent.

Llegiu un certificat alhora

Un comodí que s’expandeix per un directori no és una interfície per lots, i amaga quin fitxer ha produït quina sortida. Llegiu les metadades certificat a certificat, i llegiu la part de revocació des del seu propi artefacte. La referència d’OpenSSL x509 llista els camps que imprimeixen aquestes opcions.

openssl x509 -in <cert>.pem -noout -issuer -serial -subject -dates -fingerprint -sha256
openssl crl -in <issuer>.crl -noout -text | head -n 40

Per a un PKI Easy-RSA gestionat, consulteu la base de dades d’emissió a través del flux de treball que l’eina admet en lloc de suposar una disposició de directoris, i manteniu els originals en només lectura mentre es munta l’inventari. El format del registre és prou regular per comptar les entrades vàlides i llistar les retirades sense obrir la base de dades a mà.

grep -c '^V' pki/index.txt
grep '^R' pki/index.txt | cut -f4,5

Un inventari que sobreviu a la propera emissió

Un abocament puntual d’un directori queda obsolet en el moment que s’emet el certificat següent, així que construïu l’informe a partir del flux d’emissió i deixeu que s’actualitzi com a part del funcionament normal. Això també fa l’informe reproduïble, cosa que importa quan dues persones discrepen sobre què s’ha emès.

Utilitzeu el resultat per a decisions de renovació i retirada i no com un exercici de full de càlcul. Esborrar una còpia local no invalida les còpies remotes que ja existeixen. Retireu la identitat pel flux de revocació i autorització configurat, i després enregistreu la retirada amb la seva data. Una identitat que ha desaparegut del servidor però que l’emissor encara confia no s’ha retirat, i aquesta diferència separa un inventari exacte d’un que només és tranquil·litzador.

Articles relacionats