Dos preguntas deciden dónde pertenece una clave privada de VPN: si el material de la clave puede copiarse fuera del host y si un proceso puede usarla sin nadie en el teclado. La etiqueta comercial de un almacén no responde a ninguna de las dos. Un demonio de túnel que debe volver tras un reinicio necesita uso desatendido, lo que descarta todo lo condicionado a un PIN tecleado por una persona.

Elija entre copiar y usar

Copiar y usar fallan de manera distinta, así que trátelos como dos requisitos en lugar de uno. Un atacante que puede leer los bytes de la clave lleva la identidad a otro host, y la máquina original no se entera. Un atacante que no puede leer los bytes pero alcanza el proceso de firma sigue autenticándose mientras dure ese acceso.

Una clave en archivo es trivialmente copiable, y por eso también es la más fácil de respaldar y restaurar. Un almacén de claves de software cambia la API, no la frontera: el proveedor rechaza sus propias llamadas de exportación, pero el mismo contexto de administrador que instaló la clave suele tener otras rutas hacia el material. No exportable en un proveedor de software es una afirmación sobre operaciones admitidas, no una prueba de un muro de hardware. Trátelo como un badén para la copia casual, no como protección frente a quien ya tiene su sesión.

Un TPM o una tarjeta inteligente ejecuta la operación de firma dentro del hardware y devuelve solo el resultado. Eso cierra la ruta de copia y deja abierta la ruta de uso para cualquier cosa que pueda pedir una firma.

Ajuste el almacén al demonio del túnel

El demonio limita esto más que la política de seguridad. WireGuard toma una clave privada base64 de un archivo o de la entrada de wg set y no tiene ruta hacia un almacén de certificados, así que una clave de interfaz respaldada por TPM no está sobre la mesa. OpenVPN compilado contra OpenSSL 3 puede cargar una clave mediante un URI de proveedor, y strongSwan incluye un complemento TPM junto al soporte de PKCS#11, pero ambos dependen de cómo se compiló su paquete.

Un demonio que no puede alcanzar el almacén elegido convierte la frontera de hardware en decoración. Alguien exporta la clave una vez, la deja en un archivo, y el resto del diseño corre en silencio sobre esa copia.

La renovación es la otra mitad del emparejamiento, y es donde fallan la mayoría de los diseños. Un almacén que funciona para la primera inscripción pero exige un inicio de sesión en consola para cada reemisión se sortea la primera vez que un certificado caduca a una hora incómoda. Pruebe la ruta de reemisión mientras la clave actual aún tiene meses por delante.

Inventaríe la clave antes de moverla

Registre qué es la clave antes de cambiar dónde vive, porque una migración que pierde los subject alternative names rompe el túnel de una forma que se lee como un fallo de enrutamiento. Vuelque el certificado, confirme que la clave privada es legible donde el demonio la espera y compruebe que el par realmente coincide.

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

Los dos últimos resúmenes deben ser idénticos. Si no lo son, el demonio termina su configuración y luego falla en cada intento con un error de certificado o de firma que no apunta cerca de la causa real. El equivalente de WireGuard es más corto, porque la clave pública se deriva directamente de la privada: wg pubkey < /etc/wireguard/wg0.key debe imprimir la clave de par que su servidor ya tiene guardada.

Los permisos pertenecen al mismo inventario. stat -c '%a %U:%G' /etc/wireguard/wg0.key debería devolver 600 root:root, y cualquier cosa legible por el grupo o por el mundo significa que la clave ya ha estado disponible para procesos que usted nunca pretendió.

Compruebe el almacén y la ruta de uso

La verificación tiene tres partes, y la tercera es la que se omite. Confirme que la clave existe en el almacén elegido, confirme que el demonio cargó esa clave y no una copia olvidada, y luego confirme que aún arranca cuando el artefacto de exportación ya no está.

certutil -store -user My
certutil -csp "Microsoft Platform Crypto Provider" -key -user
certutil -verifykeys -user My
ipsec listcerts

En Windows el primer comando lista el almacén personal e imprime el proveedor de claves junto a cada entrada, y ahí aparece un certificado que parece respaldado por hardware pero está en el proveedor de software. El segundo lista las claves que mantiene el proveedor criptográfico de la plataforma, así que una identidad VPN que falta ahí mientras su certificado está presente significa que la mitad privada vive en otro sitio. En una puerta de enlace Linux, ipsec listcerts informa de lo que cargó strongSwan, incluidas las claves que vienen del complemento TPM. Compare huellas o hashes de clave pública con el inventario en vez de fiarse del número de entradas.

La prueba negativa es la que demuestra el diseño. Mueva la clave exportada fuera del directorio de configuración del demonio, reinicie el servicio y lea en el registro qué identidad presenta. Un túnel que sigue subiendo está usando el almacén; un arranque fallido significa que el diseño realmente corría sobre una copia.

Escriba la renovación y la reversión

La reversión difiere mucho entre las dos familias, y esa diferencia pertenece a la nota de diseño, no a una llamada de incidente. Una clave en archivo puede respaldarse cifrada y restaurarse, así que una migración fallida es reversible. Una clave no exportable no puede respaldarse en absoluto, lo que convierte la reemisión y la reinscripción en la única vía de recuperación cuando el dispositivo muere.

Compruebe la caducidad antes de que se convierta en una interrupción: openssl x509 -in vpn.crt -noout -checkend 2592000 termina con un código distinto de cero cuando el certificado caduca dentro de treinta días, así que entra directamente en una comprobación de monitorización. Una ejecución semanal de esa línea atrapa la renovación que nadie programó.

La eliminación ocurre en el servidor: borre el par o revoque el número de serie, y luego confirme que el túnel falla, ya que un cliente con una sesión en caché puede ocultar una revocación a medias durante un tiempo. La revocación también debe llegar a la ruta CRL u OCSP del concentrador, no solo a la base de datos de la CA. Un certificado es un documento público, y el perfil RFC 5280 cubre cómo se valida; nada de esa validación protege una clave privada copiada antes de la rotación.

Escriba la decisión en un solo lugar: qué almacén guarda la clave, qué proceso puede usarla, quién puede reemitirla y cuál es la reversión. Ese párrafo es lo que piden los auditores, y lo que sobrevive a un cambio de personal.

Artículos relacionados