Inspeccionar un certificat VPN sense abocar-ne la clau
Llegeix camps públics, dates i empremtes sense imprimir material de clau. Quina ordre és segura depèn del que conté el fitxer i de qui rep la sortida.
Llegir els camps públics d'un certificat mai no requereix mostrar la clau privada que hi correspon, i les eines per fer-ho venen amb cada sistema que acaba un VPN. El risc és un pas abans: el fitxer que us han lliurat potser no és cap certificat. Un certificat PEM, un blob DER, un paquet PKCS#12 i un perfil OpenVPN poden arribar amb el mateix nom i contenir material molt diferent, així que identifiqueu el contenidor abans de triar una ordre.
Tres fets decideixen quina ordre és segura: què conté el fitxer, què cal llegir-ne i qui veurà la sortida. Equivoqueu-vos en un de sol i la inspecció mateixa es converteix en l'incident.
Quin dels tres fitxers us han lliurat
Un certificat PEM és text amb marcadors BEGIN i END visibles, un fitxer DER és binari i necessita un indicador de format d'entrada, i un paquet és un contenidor que pot portar una clau al costat del certificat. file server.crt separa text de binari en un segon, i una ullada a la primera línia separa un certificat nu d'un perfil que n'incrusta un. Endevinar aquí és el que converteix una inspecció en un incident.
Si el fitxer és un perfil i no un certificat, tracteu-lo com una credencial fins que es demostri el contrari. Aquesta suposició no costa res i evita l'error més comú de tota la tasca.
Llegir els camps públics d'un certificat PEM
Per a un certificat que teniu autorització per inspeccionar, la subordre x509 amb -noout imprimeix els camps que trieu i res més. Suprimir el cos és el que manté la sortida en metadades, cosa que també la fa segura per enganxar en un tiquet. Els selectors de sota són els públics, i la documentació d'openssl x509 llista la resta.
openssl x509 -in server.crt -noout -subject -issuer -dates -fingerprint -sha256
En un certificat de prova generat localment, aquesta ordre imprimeix una línia de subjecte i emissor, el parell notBefore i notAfter i una empremta SHA-256. Aquests camps identifiquen l'objecte; no estableixen una ruta de confiança vàlida, que és una tasca de verificació a part amb la seva pròpia ordre i la seva pròpia resposta. Un fitxer de cadena també pot imprimir només el primer certificat si no itereu el fitxer vosaltres mateixos. Comparar dos fitxers d'aquesta manera costa una ordre i resol quin presenta realment l'altra part.
Paquets que porten una clau al costat del certificat
Un fitxer .p12 o .pfx pot portar una clau privada, i l'ordre d'anàlisi la imprimeix si no suprimiu aquesta part de la sortida. Amb -nokeys la mateixa ordre encara informa de l'estructura del contenidor, inclòs un paquet de clau embolcallat, sense emetre cap material de clau; traieu aquest indicador i apareixerà un bloc de clau al terminal i a l'historial de l'intèrpret d'ordres.
openssl pkcs12 -in bundle.p12 -nokeys -info -passin env:P12PASS
Un perfil OpenVPN incrusta el mateix material com a text, així que la frontera és visible si sabeu on mirar. El material públic se situa entre BEGIN CERTIFICATE i END CERTIFICATE, mentre que tot el que hi ha entre BEGIN PRIVATE KEY i la seva línia END corresponent és la clau i no ha de sortir de l'amfitrió. Copiar el perfil sencer publica les dues coses.
Obtenir el valor de referència d'un altre lloc
Una empremta llegida de la connexió que intenteu verificar no demostra res, perquè l'ha proporcionada la part que no confieu. Això no és un argument contra les empremtes; és un argument sobre la procedència. Compareu el valor amb un obtingut per un canal on l'altra part no pugui escriure, com el certificat publicat en un repositori intern o el hash imprès en un registre de canvi signat.
On un magatzem de confiança fa la validació, deixeu-lo fer-la i llegiu l'error que produeix en lloc de substituir-lo per la vostra pròpia comparació. La distinció que importa és qui ha proporcionat la referència, no quina funció de hash s'ha fet servir.
Compartir el resultat i què fer després d'un descuit
Envieu l'error de validació exacte, les dates rellevants i només les dades d'identitat que el destinatari necessita. Els noms d'amfitrió interns i els identificadors de compte continuen sent sensibles fins i tot quan no hi ha cap clau, i un servei d'enganxar públic és la destinació equivocada per a qualsevol d'aquestes dades. Enganxeu-ho al tiquet, no en un buffer temporal que algú altre comparteixi.
Si el material de clau sí que ha aparegut a la pantalla o en un fitxer, tracteu-lo com a compromès i rotau-lo en comptes d'esperar que ningú no hagi mirat. Després anoteu quin fitxer s'ha inspeccionat, quina ordre s'ha fet servir i on ha anat la sortida, perquè aquest registre és el que converteix un ensurt en un procediment. La rotació és barata comparada amb el cost de suposar que ningú no ha guardat una captura de pantalla, i el mateix registre diu al següent enginyer quins fitxers s'han tocat. Feu les dues coses abans que es tanqui el tiquet.