Tal vez solo estoy pidiendo los términos de búsqueda correctos.
mod_nss y la idea de información / diseño de NSS es que si el dispositivo de almacenamiento de claves (en este caso, un HSM) es capaz de realizar un protocolo de enlace DH / SSL, entonces se utilizará el dispositivo (la clave no se extrae de la HSM, y luego se utiliza en el host para el protocolo de enlace, en lugar de dejarlo en el servidor HSM, y se utiliza el HSM para realizar el protocolo de enlace). La idea es que si está lo suficientemente paranoico (o regulado) como para usar un HSM, no querrá que sus claves se extraigan en el host, ya que eso las expone a un compromiso.
Apretón de manos gestionado por HSM demasiado lento
El problema es la duración del apretón de manos. Incluso sin un PCIe, HSM de conexión directa, el tiempo necesario para un solo saludo de TLS es medible. Si de repente intentas usar un HSM para los handshakes, estás limitado por el cuello de botella de PCIe y todos los gastos generales involucrados: los HSM generalmente se crean por seguridad, no por un alto rendimiento.
El HSM se convierte en un cuello de botella para los servicios que admiten "suficientes" conexiones / segundo, definiendo "suficiente" como "suficiente para inundar el HSM".
Para intercambiar entre la seguridad del HSM y el rendimiento de las sacudidas de mano TLS basadas en host (que pueden beneficiarse de múltiples núcleos, etc.), debemos almacenar la clave en el HSM, pero usar la clave en el host.
La visión del mundo de NSS impide esto.
Pregunta: ¿Puedo extraer la clave privada?
¿Puede OpenSSL u otra suite criptográfica, que se puede conectar a un HSM, extraer la clave del HSM y almacenarla en caché para usarla en el host?
Plan B
El Plan B es para obtener el motor OpenSC + OpenP11 (OpenSSL) o el código fuente de NSS, y hackearlo para extraer y almacenar en caché la clave privada en la primera solicitud, y luego volver a llamar a openssl para hacer el protocolo de enlace TLS real en lugar de luego, diríjase al HSM para cada nueva conexión, lo que nos permite aprovechar el entorno actual (de trabajo) para las conexiones https y ssh, al tiempo que proporciona seguridad en las claves almacenadas. Pero prefiero aprovechar el código existente.
Los motores de búsqueda me llevan a las mismas páginas, algunas relevantes (por ejemplo, la filosofía de diseño de NSS) y otras no. Si conoces un buen conjunto de términos de búsqueda que me lleven a una página que conoces :) sería de gran ayuda.
Gracias por tu tiempo.