Almacenamiento de certificados y claves en módulos de seguridad de hardware (caso de uso TLS)

2

Estoy interesado en los objetivos generales de seguridad para la criptografía de clave pública y los diferentes elementos de la misma.

Esquema del caso de uso:
Mi caso de uso es un dispositivo integrado, que utilizará TLS para establecer una comunicación segura entre un servidor y un cliente (el dispositivo incorporado). Además, TLS se utiliza con un protocolo de autenticación mutua, que también requiere un certificado de cliente. El dispositivo integrado contiene un módulo de seguridad de hardware (HSM) para realizar operaciones criptográficas eficientes y un almacenamiento seguro.

Los siguientes elementos estarán presentes en el dispositivo integrado para habilitar la comunicación TLS:

  1. certificado raíz TLS de CA (incluida su clave pública) para autenticar el servidor
  2. Certificado de hoja de cliente (incluida su clave pública)
  3. Clave privada del certificado de la hoja del cliente

Podemos suponer que el espacio de almacenamiento del HSM es lo suficientemente grande como para contener todos los elementos 1, 2 y 3 al mismo tiempo.

Mi pregunta ahora es, ¿qué elementos deben almacenarse dentro del HSM?

  1. certificado raíz:
    No hay necesidad de confidencialidad, ya que esta información está disponible públicamente, ya que el certificado raíz se instalará en cualquier dispositivo que desee participar en la PKI.
    Pero ¿qué pasa con la integridad? Supongo que hay un problema de seguridad si esa raíz el certificado se manipula (o se intercambia) para permitir posteriormente autenticar certificados de hoja inicialmente no confiables de un sitio web malicioso visitado. ¿Tengo un beneficio para almacenar el certificado raíz dentro del HSM, o es simplemente suficiente para no proporcionar ninguna Interfaz en el software para cambiar el certificado almacenado en la memoria normal del dispositivo?
  2. certificado de cliente:
    También aquí no tenemos la necesidad de confidencialidad en mi opinión, ya que el certificado se envía sin cifrar al servidor durante el protocolo de enlace TLS de autenticación mutua. ¿Deberíamos poner todo el certificado en el HSM junto con su clave privada? ¿Existe un escenario de ataque, que podría mitigarse si el certificado se almacenara dentro del HSM?
  3. clave privada del certificado de cliente:
    Este estoy 100% seguro. La clave privada debe ir al HSM para aumentar la seguridad.

Replanteando todo en una oración:

Las claves privadas deben almacenarse dentro de un HSM, si están disponibles, pero ¿hay algún beneficio al almacenar también certificados (que contienen sus claves públicas) dentro de un HSM?

EDITAR:
En mi opinión, el HSM en este caso de uso solo proporciona un beneficio de seguridad para almacenar claves privadas. Sin embargo, he leído en muchos casos sobre el almacenamiento de certificados dentro de un HSM. Simplemente no estoy seguro, si tales declaraciones son debido a una redacción descuidada o si realmente hay algún beneficio de almacenar un certificado dentro de un HSM. Ejemplos: A , B , C

    
pregunta oh.dae.su 22.03.2018 - 12:04
fuente

2 respuestas

0

La clave para comprender la diferencia es darse cuenta de que no le importan directamente las propiedades de seguridad de la clave. Son solo una herramienta para garantizar las propiedades de seguridad que le interesan, que provienen del uso de la clave.

Si necesita mantener la confidencialidad de un activo por razones indirectas, hay un beneficio en mantenerlo en un área de alta seguridad que solo permita que el activo se use de una manera específica. Por ejemplo, supongamos que una clave privada está en un HSM que permite que una computadora firme o descifre con esta clave¹, pero no permite que la computadora extraiga una copia de la clave. Si la computadora está comprometida pero el HSM no lo está, entonces el atacante puede usar la clave, pero estos usos se registrarán en el registro de HSM, por lo que tendrá alguna información sobre las consecuencias de la infracción. Además, si recuperas el control sobre la computadora, sabes que el atacante ya no puede usar la clave; por lo general, esto no es tan útil para una clave de firma (a menos que los registros de HSM le indiquen que no se ha utilizado la clave) pero es útil para una clave de descifrado.

Si necesita proteger la integridad de un activo por razones indirectas, es otra historia. Considere nuevamente la configuración del equipo + HSM, esta vez con una clave pública o un certificado en el HSM. Después de un compromiso de recuperación de la computadora, sabe que el atacante no ha podido modificar la copia del certificado en el HSM. Eso realmente no le ayuda, porque necesitaba restaurar una gran cantidad de datos desde la copia de seguridad, incluida la copia de ese certificado. Si bien el atacante tiene acceso a la computadora, no importa que el certificado esté en el HSM. Si eso molesta al atacante, solo modificarán el código de la computadora para no acceder al HSM.

Es importante utilizar un lugar de confianza para almacenar una copia de los datos cuya integridad se requiere, pero no necesita un HSM para eso: para eso están las copias de seguridad. Si no puede garantizar la integridad del código que manipula los datos, no obtendrá nada de una mejor protección de la integridad de los datos.

Por lo tanto, en su caso, definitivamente debe colocar la clave privada en el HSM (3). No es beneficioso colocar certificados en el HSM para el funcionamiento normal (1, 2), pero puede ayudarlo a recuperarse después de una infracción si de alguna manera puede recuperar el control del dispositivo. Los certificados por sí solos no son suficientes, pero podrían ser parte de una raíz de confianza más grande que incluye todo el código necesario para inicie el dispositivo en un estado confiable.

¹ No debería permitir que ambos tengan la misma clave.

    
respondido por el Gilles 23.03.2018 - 01:53
fuente
0

Esta pregunta está apenas relacionada con la seguridad. Desde la perspectiva de la seguridad, el almacén de certificados públicos en HSM no mejora la seguridad, ya que el certificado público no contiene información confidencial y está protegido con una firma digital. En otras palabras, si el espacio de HSM lo permite, puede almacenar el certificado público allí. Piense como un almacenamiento para el certificado.

Pero tenga en cuenta que no agrega ninguna seguridad adicional.

    
respondido por el Crypt32 22.03.2018 - 14:37
fuente

Lea otras preguntas en las etiquetas