Uso de HSM
La política de la UE exige el uso de un HSM para proteger las claves de firma de las CA. Dependiendo de los algoritmos elegidos, existen diferentes opciones y dificultades. Con PKCS#11, el proveedor Sun PKCS#11 solo admite RSA con relleno PKCS1 (SHA256WithRSA), no PSS (SHA256WIthRSAAndMGF1). Si se utilizan los algoritmos PSS, es necesario usar el parche del JDK de PrimeKey o esperar a un JDK que incluya por defecto la compatibilidad con RSA-PSS en el proveedor Java PKCS#11 (JDK8u241 o JDK11.0.6 o posterior, según JDK-8080462) .
Para obtener información sobre el soporte de ECC, consulte con su proveedor de HSM.
Los HSM probados actualmente son Utimaco, Thales y nCipher.
Las siguientes propiedades de clave adicionales están disponibles (completadas en las propiedades del token de CA) cuando se utiliza un HSM que controla el uso de las claves anteriores:
Propiedad | Descripción |
clave de firma de certificado anterior | Alias de la clave de firma anterior, a diferencia de certSignKey, que es la clave de firma actual. |
secuencia anterior | Secuencia que identifica la clave de firma anterior, a diferencia de la secuencia actual contenida en el token de la CA. Esta secuencia reemplazará la secuencia actual en el campo caRef al firmar una solicitud con la clave anterior de la CA. |
siguienteCertSigningKey | Alias de una clave recién generada en el HSM. Al actualizar una CA firmada por una CA externa, este alias se utiliza para enviar una solicitud, pero la CA sigue activa con la clave anterior. Al recibir la respuesta del certificado, esta clave se activa y se transfiere a certSignKey/crlSignKey. |
siguienteSecuencia | La secuencia que identifica la siguiente clave de firma. |
Normalmente, estas propiedades se configuran automáticamente al generar nuevas claves desde la interfaz gráfica de administración. Si las claves se generan manualmente o surge algún problema, las propiedades se pueden modificar o configurar manualmente.
Generando claves
La herramienta EJBCA Client Toolbox ( ejbcaClientToolBox.sh PKCS11HSMKeyTool ) se puede utilizar para generar claves en un HSM .
cd dist/clientToolBox./ejbcaClientToolBox.sh PKCS11HSMKeyTool generate /etc/utimaco/libcs2_pkcs11.so secp256r1 signKey 1Para obtener más información sobre la generación de claves, consulte la información sobre las curvas compatibles en la documentación de su HSM. Por ejemplo, la documentación de Utimaco se encuentra en el capítulo 8 de CS_AdminGuide.pdf. Tenga en cuenta que es posible que el proveedor Java PKCS#11 no admita todas las curvas compatibles con su HSM.
Para generar claves EC utilizando la herramienta ejbcaClientToolBox.sh, se necesita un parche para JDK debido a un error en JDK (ver a continuación).
Tenga en cuenta que el comando de generación puede variar según el HSM; consulte Módulos de seguridad de hardware (HSM) . Por ejemplo, utilice lo siguiente en Thales ProtectServer Gold:
. /ejbcaClientToolBox .sh PKCS11HSMKeyTool generate /slot1 .cfg secp256r1 signKey Generación de claves mediante herramientas HSM
Dependiendo de su HSM, puede generar claves y el certificado autofirmado necesario asociado mediante herramientas HSM. Por ejemplo, para Thales ProtectServer, consulte la documentación del HSM en Módulos de seguridad de hardware (HSM) .
Uso de teclas EC
Para obtener información sobre el uso de HSM y ECDSA, consulte Uso de ECDSA con un HSM .