mod_nss vs openssl comportamiento frente a almacenamiento de claves vs uso

1

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.

    
pregunta rip... 26.04.2017 - 19:36
fuente

2 respuestas

2

Cuando se utiliza un HSM con TLS, todas las operaciones criptográficas relacionadas con la clave privada se ejecutan en el HSM. Esto significa que la clave privada nunca abandona el HSM. De hecho, el HSM está diseñado específicamente para proteger la exfiltración de la clave privada mediante ataques basados en software y, a veces, incluso ataques basados en hardware (es decir, resistentes a la manipulación). Esta es exactamente la razón por la que se utiliza un HSM.

Esto significa que un HSM no valdría su dinero si fuera posible extraer la clave privada utilizando OpenSSL u otras herramientas o incluso utilizando herramientas de piratería diseñadas específicamente. Por lo tanto, esperamos que la respuesta a su pregunta para todos los HSM existentes: No, no es posible extraer la clave privada utilizando software.

Lo que significa: si necesita más rendimiento y la seguridad de un HSM para cada conexión TLS, obtenga un HSM más rápido.

    
respondido por el Steffen Ullrich 26.04.2017 - 20:07
fuente
0

Sí, tal vez.

Sí, es posible que pueda usar / abusar (elija la palabra que mejor se ajuste) a la función de RESPALDO de un HSM para extraer la versión de texto simple de una clave privada.

Al menos en los casos en que el procedimiento de copia de seguridad / restauración está documentado para permitir esto.

Y al menos en el caso del "Nitrokey HSM" / "SmartCard-HSM", de hecho es posible porque todo es de código abierto y no hay hardware que le impida utilizar / abusar de esa función de copia de seguridad / restauración. .

Detalles aquí:

Pero ...

Permítame decir esto en resumen: si bien esto puede ser técnicamente posible, va en contra de la razón misma de la existencia de un HSM. A saber: ¡Lo que hay dentro, QUEDAD dentro! : lo que estás tratando de hacer suena incómodo y peligroso. - Estoy de acuerdo con lo que dijo Steffen: Si su HSM es demasiado lento: obtenga un HSM más grande. Ya sea como una caja, o como un servicio como el "Keyless SSL" de Cloudflare. (O deshazte de tu HSM por completo).

    
respondido por el StackzOfZtuff 27.04.2017 - 14:46
fuente

Lea otras preguntas en las etiquetas