¿Hay algún HSM de hardware que pueda hospedar / ejecutar aplicaciones personalizadas utilizando el (los) procesador (es) HSM dentro del límite de seguridad reforzado?

16

Parece que la mayoría de los HSM de hardware disponibles comercialmente están solo diseñados para permitir a los usuarios autenticados generar, almacenar y usar claves criptográficas con varios algoritmos criptográficos implementados dentro del firmware del HSM.

Al leer las hojas de datos, parece que puedo usar la API proporcionada para hacer que mi aplicación (externa) interactúe con el HSM y use sus músculos criptográficos, tal vez utilizando claves generadas / almacenadas dentro del HSM. Pero, parece que el almacenamiento a largo plazo de los datos / objetos procesados criptográficamente por el HSM dentro del límite de HSM no está disponible.

¿Por qué no hay ningún HSM que permita que el código de usuario y los datos del usuario se almacenen y administren de manera persistente dentro del espacio de memoria físicamente protegido del HSM?

¿Alguien tiene experiencia con HSM y podría orientarme hacia una solución de HSM de hardware disponible comercialmente que al menos me permita almacenar algunos registros más allá de las claves criptográficas?

Idealmente, me gustaría que mi aplicación se almacenara en reposo en el límite de HSM, ejecutada por el mismo procesador que ejecuta el cifrado proporcionado por el HSM y que almacene de forma persistente algunos registros dentro del área protegida del HSM.

    
pregunta Drew Lex 27.11.2012 - 06:45
fuente

4 respuestas

17

Los Thales nShield HSM (anteriormente nCipher) permite la programación genérica. Esta es una opción bastante cara; primero debe habilitarse en el HSM (a través de un "archivo de características" firmado por Thales y específico para el número de serie de un HSM), y luego el código adicional puede ejecutarse siempre que esté firmado con una clave conocida por el HSM para dicho uso.

Con esa opción, obtendrás un compilador de C con una biblioteca de C reducida y algunas API que dan acceso a las funciones de HSM. El sistema operativo interno permite un proceso uno (pero de múltiples subprocesos) y las operaciones criptográficas se realizan con transacciones; también hay transacciones para intercambiar binarios binarios arbitrarios con el mundo externo (la PC host). La CPU central no es muy poderosa (piense en ARM a 60 MHz o PowerPC), pero hay una gran cantidad de RAM (megabytes, incluso docenas de megabytes).

Thales / nCipher HSM no tiene muchas características de almacenamiento permanente (hay algunos kilobytes de EEPROM, pero eso es todo). En realidad, el HSM solo almacena una clave maestra (a la que no puede acceder), y todo, incluidas las "claves" que están "en el HSM" están descargados, con cifrado. Puede hacer lo mismo: almacenar sus datos almacenados en el host, enviados de vuelta a su módulo interno; los datos se cifran con una de las claves (que están virtualmente "en el HSM"), y su código en el HSM hace el descifrado.

    
respondido por el Thomas Pornin 27.11.2012 - 13:39
fuente
6

Utimaco / Sophos HSM tiene una gran cantidad de FLASH para el almacenamiento interno de claves, que puede administrar a través de (por ejemplo) la interfaz PKCS # 11.

Si desea desarrollar sus propios algoritmos criptográficos o protocolos de seguridad, también hay un SDK disponible . La CPU es un poco exótica (Texas Instruments DSP), pero es totalmente programable en C y viene con un simulador. La carga de código es simple y muy bien pensada, con la autenticación adecuada y posiblemente el cifrado de código.

Punto de bonificación : ciertos modelos tienen soporte parcial para FIPS 140-2 Nivel 4 (es decir, ceroización activa de secretos de raíz en caso de ataque físico), si ese tipo de cosas hace que su barco flote . Por supuesto, tenga en cuenta que si desarrolla su propio firmware, la certificación FIPS ya no es válida.

    
respondido por el SquareRootOfTwentyThree 28.11.2012 - 00:00
fuente
2

SafeNet HSMs permite la carga de código personalizado en el módulo. Dependiendo de los requisitos, hay diferentes opciones disponibles.

    
respondido por el mark 27.05.2013 - 22:53
fuente
2

La mayoría de los HSM permiten el uso de código personalizado, pero en general, debe preguntar al proveedor específico, no es algo que ellos anuncien. A menudo se rompe la certificación. Por otro lado, ejecutando aplicaciones que pueden, p. validar la entrada puede hacer para una experiencia mucho más segura. En general, estas aplicaciones están en un espacio aislado y deben estar firmadas. Por supuesto, si usted es un cliente lo suficientemente grande, también es posible hablar sobre la personalización del propio proveedor.

Debería esperar API's específicas y arquitecturas extrañas.

Hubo un HSM basado en Java de SafeNet que apuntaba específicamente al desarrollo de aplicaciones firmadas para ejecutarse en el HSM, pero entendí que se había suspendido (era lo suficientemente caro como para no haberlo visto). / p>     

respondido por el Maarten Bodewes 21.08.2015 - 11:11
fuente

Lea otras preguntas en las etiquetas