On ha de viure una clau privada de VPN: fitxer, CNG o TPM?
Trieu entre un fitxer de clau, un magatzem de programari no exportable i un TPM per a una identitat VPN, i demostreu l'elecció amb ordres i un pla de reversió.
Dues preguntes decideixen on pertany una clau privada de VPN: si el material de la clau es pot copiar fora de l'amfitrió i si un procés la pot fer servir sense ningú al teclat. L'etiqueta comercial d'un magatzem no respon a cap de les dues. Un dimoni de túnel que ha de tornar després d'un reinici necessita ús desatès, cosa que descarta tot el que depèn d'un PIN teclejat per una persona.
Trieu entre copiar i fer servir
Copiar i fer servir fallen de maneres diferents, així que tracteu-los com dos requisits en lloc d'un. Un atacant que pot llegir els bytes de la clau porta la identitat a un altre amfitrió, i la màquina original no se n'adona. Un atacant que no pot llegir els bytes però arriba al procés de signatura continua autenticant-se mentre duri aquest accés.
Una clau en fitxer és trivialment copiable, i per això també és la més fàcil de fer-ne còpia de seguretat i restaurar. Un magatzem de claus de programari canvia l'API, no la frontera: el proveïdor rebutja les seves pròpies crides d'exportació, però el mateix context d'administrador que va instal·lar la clau sol tenir altres vies cap al material. No exportable en un proveïdor de programari és una afirmació sobre operacions admeses, no una prova d'un mur de maquinari. Tracteu-ho com un ressalt per a la còpia casual, no com a protecció contra algú que ja té la vostra sessió.
Un TPM o una targeta intel·ligent executa l'operació de signatura dins del maquinari i retorna només el resultat. Això tanca la via de còpia i deixa oberta la via d'ús per a qualsevol cosa que pugui demanar una signatura.
Ajusteu el magatzem al dimoni del túnel
El dimoni limita això més que la política de seguretat. WireGuard pren una clau privada base64 d'un fitxer o de l'entrada de wg set i no té cap via cap a un magatzem de certificats, així que una clau d'interfície amb suport TPM no és sobre la taula. OpenVPN compilat contra OpenSSL 3 pot carregar una clau mitjançant un URI de proveïdor, i strongSwan inclou un connector TPM al costat del suport de PKCS#11, però tots dos depenen de com es va compilar el paquet.
Un dimoni que no pot arribar al magatzem triat converteix la frontera de maquinari en decoració. Algú exporta la clau una vegada, la deixa en un fitxer, i la resta del disseny funciona en silenci sobre aquesta còpia.
La renovació és l'altra meitat de l'aparellament, i és on fallen la majoria de dissenys. Un magatzem que funciona per a la primera inscripció però exigeix un inici de sessió a la consola per a cada reemissió s'evita la primera vegada que un certificat caduca a una hora incòmoda. Proveu la ruta de reemissió mentre la clau actual encara té mesos per davant.
Inventarieu la clau abans de moure-la
Registreu què és la clau abans de canviar on viu, perquè una migració que perd els subject alternative names trenca el túnel d'una manera que es llegeix com una fallada d'encaminament. Bolqueu el certificat, confirmeu que la clau privada és llegible on el dimoni l'espera i comproveu que la parella realment coincideix.
openssl x509 -in vpn.crt -noout -subject -ext subjectAltName
openssl pkey -in vpn.key -check -noout
openssl x509 -in vpn.crt -noout -pubkey | openssl sha256
openssl pkey -in vpn.key -pubout | openssl sha256
Els dos darrers resums han de ser idèntics. Si no ho són, el dimoni acaba la configuració i després falla cada intent amb un error de certificat o de signatura que no apunta enlloc a prop de la causa real. L'equivalent de WireGuard és més curt, perquè la clau pública es deriva directament de la privada: wg pubkey < /etc/wireguard/wg0.key ha d'imprimir la clau de parell que el vostre servidor ja té desada.
Els permisos pertanyen al mateix inventari. stat -c '%a %U:%G' /etc/wireguard/wg0.key hauria de retornar 600 root:root, i qualsevol cosa llegible pel grup o pel món significa que la clau ja ha estat disponible per a processos que no havíeu previst mai.
Comproveu el magatzem i la via d'ús
La verificació té tres parts, i la tercera és la que se salta. Confirmeu que la clau existeix al magatzem triat, confirmeu que el dimoni ha carregat aquesta clau i no una còpia oblidada, i després confirmeu que encara arrenca quan l'artefacte d'exportació ja no hi és.
certutil -store -user My
certutil -csp "Microsoft Platform Crypto Provider" -key -user
certutil -verifykeys -user My
ipsec listcerts
A Windows la primera ordre llista el magatzem personal i imprimeix el proveïdor de claus al costat de cada entrada, i és aquí que apareix un certificat que sembla recolzat per maquinari però seu al proveïdor de programari. La segona llista les claus que manté el proveïdor criptogràfic de la plataforma, així que una identitat VPN que hi falta mentre el seu certificat hi és present significa que la meitat privada viu en un altre lloc. En una passarel·la Linux, ipsec listcerts informa del que ha carregat strongSwan, incloses les claus que vénen del connector TPM. Compareu empremtes o hashes de clau pública amb l'inventari en lloc de confiar en el nombre d'entrades.
La prova negativa és la que demostra el disseny. Moveu la clau exportada fora del directori de configuració del dimoni, reinicieu el servei i llegiu al registre quina identitat presenta. Un túnel que encara puja està fent servir el magatzem; un arrencament fallit significa que el disseny realment corria sobre una còpia.
Escriviu la renovació i la reversió
La reversió difereix molt entre les dues famílies, i aquesta diferència pertany a la nota de disseny, no a una trucada d'incident. Una clau en fitxer es pot desar xifrada i restaurar, així que una migració fallida és reversible. Una clau no exportable no es pot desar de cap manera, cosa que fa de la reemissió i la reinscripció l'única via de recuperació quan el dispositiu mor.
Comproveu la caducitat abans que es converteixi en una interrupció: openssl x509 -in vpn.crt -noout -checkend 2592000 acaba amb un codi diferent de zero quan el certificat caduca dins de trenta dies, així que encaixa directament en una comprovació de monitoratge. Una execució setmanal d'aquesta línia atrapa la renovació que ningú no havia planificat.
L'eliminació passa al servidor: esborreu el parell o revoqueu el número de sèrie, i després confirmeu que el túnel falla, ja que un client amb una sessió en memòria cau pot amagar una revocació a mitges durant un temps. La revocació també ha d'arribar a la ruta CRL o OCSP del concentrador, no només a la base de dades de la CA. Un certificat és un document públic, i el perfil RFC 5280 cobreix com es valida; res d'aquesta validació protegeix una clau privada copiada abans de la rotació.
Escriviu la decisió en un sol lloc: quin magatzem guarda la clau, quin procés la pot fer servir, qui la pot reemetre i quina és la reversió. Aquest paràgraf és el que demanen els auditors, i el que sobreviu a un canvi de personal.