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:
- certificado raíz TLS de CA (incluida su clave pública) para autenticar el servidor
- Certificado de hoja de cliente (incluida su clave pública)
- 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?
- 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? - 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? - 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