¿Hay algún límite a lo que firmará un HSM?

3

Para una aplicación de criptomoneda, supongo que más o menos la función principal de un HSM es generar / almacenar claves; ¿Principalmente solo firma datos que se le suministran? ¿Pero qué controla eso? ¿Felizmente solo firmará cualquier cosa que se le pida a través de la API pkc11 / jce? ¿O puede haber políticas que pueda aplicar donde permita que el HSM firme ciertas cosas pero no otras?

Principalmente, había asumido que un HSM podría proporcionar un margen de interrupción para no mantener el control físico completo, como por ejemplo en un centro de datos compartido.

Entonces, por ejemplo, consideremos un minero de bitcoins con un HSM para hacer la firma para la generación de bloques. ¿Podría alguna aplicación en el sistema operativo enviar una transacción de bitcoins al HSM que se firmará, es decir, transferiría 100 bits a otra dirección?

En mi caso, parece que "las claves privadas nunca abandonan el HSM", que es lo que veo todo el tiempo como el punto de venta de un HSM, realmente no hace nada por ti.

Tal vez en ese caso use un TPM? ¿Con o sin el HSM? ¿Pero los TPM no tienen vulnerabilidades?

    
pregunta Optical Carrier 07.05.2018 - 06:39
fuente

1 respuesta

3

Un HSM no proporciona mucho más que proteger la clave privada. Esto ya es una protección sólida, ya que significa que la clave privada no puede ser robada de manera simple e inadvertida (y, por lo tanto, mal utilizada): si el atacante quiere robar la clave privada, no solo necesitará tener acceso físico al HSM una vez (que es ya una protección sólida) pero para todas las transacciones, ya que el HSM no se puede clonar.

Además, los HSM generalmente están protegidos por un secreto (es decir, PIN, frase de contraseña ...) que, según la configuración, debe proporcionarse una vez para todas las transacciones en la activación inicial del HSM (es decir, después de enchufarlo, después de reiniciar el sistema ...) o para cada transacción. Este último es más seguro pero no práctico en todos los casos, es decir, podría ser práctico si el HSM se usa en una autoridad de certificación para firmar nuevos certificados, pero probablemente no sea práctico si el HSM se usa para proteger la clave privada de un servidor web.

  

... ¿Podría alguna aplicación en el sistema operativo enviar una transacción de bitcoin al HSM que se firmará ...

El HSM en sí mismo no tiene idea de lo que está firmando. El usuario del HSM debe proporcionar la inteligencia de si algunos datos deben firmarse en primer lugar (es decir, si alguna transacción de criptomoneda es válida). En la mayoría de los casos, la lógica para implementar dicha funcionalidad es demasiado compleja como para implementarla en una computadora bastante pequeña que es el HSM (o tarjeta inteligente), si está claro cómo se deben realizar dichas comprobaciones automáticas en primer lugar.

Si utiliza, por ejemplo, un HSM para firmar automáticamente transacciones criptocurrenales (no se requiere PIN) y lo utiliza en un sistema complejo donde es probable que los errores o la mala configuración permitan el acceso a los atacantes, entonces probablemente debería repensar la arquitectura de su sistema. Podría ser más útil utilizar el HSM en lugar de un sistema mínimo y separado que solo implementa los controles necesarios que deben firmarse y proporciona una API mínima y segura para el sistema más complejo.

  

Tal vez en ese caso use un TPM? ¿Con o sin el HSM? ¿Pero los TPM no tienen vulnerabilidades?

Un TPM es solo un tipo especial de HSM con aproximadamente las mismas limitaciones. TPM puede tener vulnerabilidades tanto como HSM o las tarjetas inteligentes. Pero todos estos juntos son sistemas mínimos que son más fáciles de auditar para detectar vulnerabilidades que los sistemas más grandes. Esto no significa que los errores nunca ocurran , es mucho menos probable.

    
respondido por el Steffen Ullrich 07.05.2018 - 06:53
fuente

Lea otras preguntas en las etiquetas