Descarga de hashing y encriptación simétrica a HSM

2

Al usar un HSM basado en (PKCS # 11) (para S / Mime o PGP), el HSM realiza las operaciones de clave pública para firmar o descifrar, de modo que la clave nunca debe abandonar el entorno protegido. La parte masiva de esas operaciones (para firmar esto es la creación del resumen y para el cifrado, este es el cifrado simétrico) puede ser realizada por el host.

Sin embargo, me di cuenta de que la mayoría de las implementaciones de PKCS # 11 (incluso las tarjetas inteligentes lentas) también ofrecen cifrados simétricos e incluso hash. Puedo ver razones para eso:

  • utilizando la interfaz criptográfica y la implementación del hardware, se puede reclamar (endurecido) el cumplimiento de FIPS
  • al enviar todos los byes en lugar de un resumen sin formato basado en el atacante al componente, reduce los ataques con textos cifrados conocidos (para RSA)
  • al permitir que el HSM genere o derive la clave de sesión, nunca se expone (¿realmente se admite?)
  • aprovechando las fuentes de números aleatorios de hardware para la generación de claves

Sin embargo, hay algunas cosas que realmente no tienen sentido, así que me pregunto qué es la mejor práctica (principalmente para definir qué configurabilidad debería ofrecer):

  • No he visto una operación de "cifrar clave de sesión aleatoria con RSA y usarla para AES" en PKCS # 11, por lo que esta protección esperada no existe. ¿O me estoy perdiendo algo?
  • Creo que para firmar el hash se puede descargar, pero parece que la mayoría de los HSM no me permiten cerrar el ataque del "resumen sin formato" y no tengo forma de restringir una clave de firma a una operación segura de RSA (relleno).
  • mientras que los HSM afirman que el rendimiento mejorado del hardware, especialmente para las operaciones masivas, no puede mantenerse al día con las CPU modernas de uso general (especialmente si los datos deben transferirse a través de la interfaz de red con mensajes seguros al HSM, solo los coprocesadores o soluciones PCI puede ser más rápido). Así que rara vez hay una ventaja de velocidad.

Así que me pregunto, con los HSM, ¿es común permitir especificar dos proveedores o hacer que sea configurable para recurrir a las operaciones masivas locales? Revisé algunas herramientas y la mayoría de ellas me permiten configurar el motor criptográfico para toda la aplicación u operación (como "hash + signo"). Casi nunca he visto un archivo de configuración donde pueda decir "para RSA use X y para SHA use y". ¿Sospecho que la mayoría volverá al hash predeterminado (local) si se selecciona un mecanismo sin hash? ¿La gente está feliz con eso?

    
pregunta eckes 21.07.2017 - 06:09
fuente

1 respuesta

3
  

No he visto una operación de "cifrar clave de sesión aleatoria con RSA y usarla para AES" en PKCS # 11, por lo que esta protección esperada no   existe. ¿O me estoy perdiendo algo?

No, no hay tal operación en PKCS # 11. Si quiere hacer eso, necesita construirlo a partir de la función básica, llame a sí mismo: genere una clave simétrica (en el HSM para usar su fuente de entropía), envuelva la clave simétrica con una clave asimétrica, realice el cifrado masivo.

  

Creo que para firmar el hash se puede descargar, pero parece que la mayoría de los HSM no me permiten cerrar el ataque de "resumen sin procesar" y no tengo   forma de restringir una clave de firma a una operación segura de RSA (relleno).

Los dispositivos

PKCS # 11 admiten una lista de mecanismos que especifican cómo se tratan los datos de entrada. Los más comunes son CKM_RSA_PKCS_PSS y CKM_RSA_PKCS para el canto y CKM_RSA_PKCS_OAEP o CKM_RSA_PKCS para el cifrado (más CKM_RSA_X_509 para RSA).

No hay forma de restringir una clave a un determinado mecanismo sin desactivar un mecanismo completamente para el token. Si lo necesita, tendrá que hacerlo en un nivel inferior y acceder al dispositivo directamente a través de PC / SC (si es posible).

  

mientras que los HSM afirman un rendimiento mejorado del hardware, especialmente para el volumen   La mayoría de las operaciones no pueden mantenerse al día con las CPU modernas de uso general   (especialmente si los datos tienen que ser transferidos a través de la red   interfaz con mensajería segura al HSM) - por lo que no hay velocidad   ventaja

No hay una respuesta real para eso, el término HSM abarca una gama muy amplia de dispositivos, desde números de dos dígitos a cinco dígitos. Los tokens o tarjetas inteligentes criptográficas a pequeña escala definitivamente serán más lentos cuando hacen AES que una CPU moderna, pero definitivamente hay dispositivos que son mucho más rápidos (consulte la categoría "acelerador SSL")

    
respondido por el mat 21.07.2017 - 13:14
fuente

Lea otras preguntas en las etiquetas