Simulación de firma digital basada en la nube con el Módulo de seguridad de hardware (HSM)

1

Estoy trabajando en una firma digital basada en la nube con un Módulo de seguridad de hardware (HSM). Sé que PKCS # 11 Y la implementación de Microsoft CryptoAPI es necesaria. Quiero simular el proceso total. Para esto, ¿es Thales Simulator el mejor para HSM? ¿Cómo puedo conectar esto con PKCS # 11 o Microsoft CryptoAPI? ¿O puede alguien ofrecer una mejor solución para simular una firma digital basada en la nube con el Módulo de seguridad de hardware?

Nota: será mejor para mí simular en Windows.

    
pregunta Taif 03.08.2015 - 21:24
fuente

1 respuesta

4

Su pregunta me parece particularmente oscura, por lo que escribiré aquí una explicación sobre el significado de los términos que emplea, con la esperanza de que reduzca la confusión y conduzca a una respuesta o al menos a una pregunta más clara.

PKCS # 11 es un Interfaz de programación de aplicaciones : es un conjunto de funciones que las aplicaciones utilizan y que proporciona un dispositivo o sistema determinado. Desde el punto de vista de una aplicación, un "controlador PKCS # 11" es una DLL que la aplicación puede cargar, y esa DLL ofrece algunas funciones para crear y usar claves criptográficas. La aplicación no sabe cómo se crean, administran y usan las claves, y ese es el objetivo de usar una API estandarizada. Un dispositivo físico para administrar claves (por ejemplo, un HSM ) vendrá junto con una DLL proporcionada por el proveedor de HSM, la DLL Implementando la interfaz PKCS # 11. De esa manera, cualquier aplicación que sepa cómo cargar una DLL PKCS # 11 y las funciones de llamada en ella será "instantáneamente" compatible con todos los HSM que proporcionan dicha DLL.

No es necesario que el sistema de administración de claves sea "físico". La aplicación llama a la DLL, y la DLL hace lo que desea; puede usar archivos y software simple para realizar las operaciones criptográficas; puede llamar a algún servidor remoto para hacer el trabajo; O algo más. La aplicación, por definición, no sabe y no puede saber qué hace la DLL.

Presumiblemente, si quiere simular las cosas, entonces podría imaginar usar una DLL PKCS # 11 que hace las cosas en software puro, para que pueda desarrollar y probar su aplicación antes de comprar un HSM. . Esa es la teoría; no funciona bien en la práctica porque PKCS # 11 es una API enorme, y si bien PKCS # 11 especifica funciones y argumentos, no identifica todos los posibles comportamientos , por lo que implementar PKCS # 11 es solo uno paso hacia la interoperabilidad. Hablando de eso, no todos los HSM son equivalentes entre sí, por lo que hacer pruebas con un solo HSM no significa que su aplicación se ejecutará con todos los HSM en el mercado.

Para simplificar las cosas, si necesita simular un HSM del proveedor XXX, entonces la simulación mejor y más fiel es probablemente el simulador proporcionado por el mismo XXX, porque ese es el punto de tal simulador. . Tenga en cuenta que "mejor" no significa automáticamente "bueno".

CryptoAPI es una API exclusiva de Microsoft que es algo similar a PKCS # 11. Las aplicaciones llaman a las funciones de CryptoAPI para realizar varias operaciones relacionadas con la criptografía (incluyendo la firma de documentos o la validación de certificados X.509). Algunas de estas operaciones tienen que ver con la creación, administración y uso de claves; CryptoAPI delega esto a lo que Microsoft llama Proveedores de servicios criptográficos . Los CSP realmente son DLL que carga CryptoAPI; El CSP implementa algunas funciones estandarizadas y maneja el acceso al sistema (dispositivo físico o de software) que hace el trabajo. Un CSP es similar en concepto a una DLL PKCS # 11; la diferencia es principalmente que CSP solo existe en Windows, mientras que PKCS # 11 también funciona en otros sistemas operativos.

Por lo tanto, las aplicaciones en Windows tienen la opción de usar CryptoAPI o PKCS # 11. El navegador web Firefox, por ejemplo, utiliza PKCS # 11 exclusivamente, cuando necesita hablar con dispositivos de hardware criptográfico (especialmente tarjetas inteligentes); para los mismos fines, Internet Explorer se basará en CryptoAPI.

Algunos proveedores de HSM (por ejemplo, Thales) proporcionan tanto una PKCS # 11 DLL como un CSP para CryptoAPI con su HSM.

"Basado en la nube" y HSM son una combinación extraña. Cuando haces cosas "en la nube", envías tus datos para que se almacenen y procesen en un lugar remoto, de modo que todo se pueda virtualizar y mover sin cambiar nada de tu lado. Por lo general, desea usar HSM de manera precisa para que no ocurran tales cosas no .

Posiblemente, podría querer decir que tendrá un "HSM compartido": el HSM se ubicará en una ubicación accesible a través de la red, y varios sistemas de clientes delegarán operaciones criptográficas a este HSM a través de un protocolo específico de HSM ( presumiblemente un protocolo con suficiente criptografía para hacerlo seguro). Aún con Thales HSM, tienen un producto llamado " nShield Connect " que hace exactamente eso.

Llamar a este HSM-compartir "en la nube" es una declaración bastante confusa, sin embargo.

    
respondido por el Tom Leek 03.08.2015 - 22:30
fuente

Lea otras preguntas en las etiquetas