Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Instalar y usar el proveedor AWS CloudHSM JCE para Client SDK 3
Para poder usar el proveedor de JCE, necesita el AWS CloudHSM cliente.
El cliente es un demonio que establece una comunicación end-to-end cifrada con los HSM del clúster. El proveedor de JCE se comunica localmente con el cliente. Si no ha instalado ni configurado el paquete de AWS CloudHSM cliente, hágalo ahora siguiendo los pasos que se indican en. Instalar el cliente (Linux) Después de instalar y configurar el cliente, utilice el siguiente comando para iniciarlo.
Nota: El proveedor JCE solo se admite en Linux y en sistemas operativos compatibles.
Temas
Instalación del proveedor de JCE
Utilice el siguiente comando para descargar e instalar el proveedor de JCE. Este proveedor solo se admite en Linux y en sistemas operativos compatibles.
nota
Para obtener actualizaciones, consulte Actualización de SDK 3 de cliente.
Después de ejecutar los comandos anteriores, encontrará los siguientes archivos en el proveedor de JCE:
-
/opt/cloudhsm/java/cloudhsm-
version
.jar -
/opt/cloudhsm/java/cloudhsm-test-
version
.jar -
/opt/cloudhsm/java/hamcrest-all-1.3.jar
-
/opt/cloudhsm/java/junit.jar
-
/opt/cloudhsm/java/log4j-api-2.17.1.jar
-
/opt/cloudhsm/java/log4j-core-2.17.1.jar
-
/opt/cloudhsm/lib/libcaviumjca.so
Validación de la instalación
Realice operaciones básicas en el HSM para validar la instalación.
Cómo validar la instalación del proveedor de JCE
-
(Opcional) Si todavía no tiene instalado Java en su entorno, ejecute el comando siguiente para instalarlo.
-
Utilice los siguientes comandos para definir las variables de entorno necesarias. Sustituya
<nombre de usuario de HSM>
y<password>
con las credenciales de un usuario de criptografía (CU).$
export LD_LIBRARY_PATH=/opt/cloudhsm/lib
$
export HSM_PARTITION=PARTITION_1
$
export HSM_USER=
<HSM user name>
$
export HSM_PASSWORD=
<password>
-
Utilice el siguiente comando para ejecutar la prueba de funcionalidad básica. Si se ejecuta correctamente, la salida del comando debería ser similar a la siguiente.
$
java8 -classpath "/opt/cloudhsm/java/*" org.junit.runner.JUnitCore TestBasicFunctionality
JUnit version 4.11 .2018-08-20 17:53:48,514 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:33) - Adding provider. 2018-08-20 17:53:48,612 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:42) - Logging in. 2018-08-20 17:53:48,612 INFO [main] cfm2.LoginManager (LoginManager.java:104) - Looking for credentials in HsmCredentials.properties 2018-08-20 17:53:48,612 INFO [main] cfm2.LoginManager (LoginManager.java:122) - Looking for credentials in System.properties 2018-08-20 17:53:48,613 INFO [main] cfm2.LoginManager (LoginManager.java:130) - Looking for credentials in System.env SDK Version: 2.03 2018-08-20 17:53:48,655 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:54) - Generating AES Key with key size 256. 2018-08-20 17:53:48,698 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:63) - Encrypting with AES Key. 2018-08-20 17:53:48,705 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:84) - Deleting AES Key. 2018-08-20 17:53:48,707 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:92) - Logging out. Time: 0.205 OK (1 test)
Cómo proporcionar credenciales al proveedor de JCE
Los HSM necesitan autenticar la aplicación de Java antes de que la aplicación pueda utilizarlos. Cada aplicación puede utilizar una sesión. Los HSM autentican una sesión mediante el método de inicio de sesión explícito o implícito.
Inicio de sesión explícito: este método le permite proporcionar las credenciales de CloudHSM directamente en la aplicación. Utiliza el método LoginManager.login()
, en el que se pasa el nombre de usuario y la contraseña del CU y el ID de la partición de HSM. Para obtener más información acerca de cómo utilizar el método de inicio de sesión explícito, consulte el ejemplo de código de inicio de sesión en un HSM
Inicio de sesión implícito: este método le permite definir las credenciales de CloudHSM en un nuevo archivo de propiedades, en las propiedades del sistema o como variables de entorno.
-
Nuevo archivo de propiedades: cree un nuevo archivo con el nombre
HsmCredentials.properties
y añádalo alCLASSPATH
de su aplicación. El archivo debe contener lo siguiente:HSM_PARTITION = PARTITION_1 HSM_USER =
<HSM user name>
HSM_PASSWORD =<password>
-
Propiedades del sistema: defina las credenciales mediante las propiedades del sistema al ejecutar la aplicación. En los siguientes ejemplos, se muestran dos maneras diferentes de hacerlo:
$
java -DHSM_PARTITION=PARTITION_1 -DHSM_USER=
<HSM user name>
-DHSM_PASSWORD=<password>
System.setProperty("HSM_PARTITION","PARTITION_1"); System.setProperty("HSM_USER","
<HSM user name>
"); System.setProperty("HSM_PASSWORD","<password>
"); -
Variables de entorno: defina las credenciales como variables de entorno.
$
export HSM_PARTITION=PARTITION_1
$
export HSM_USER=
<HSM user name>
$
export HSM_PASSWORD=
<password>
Es posible que las credenciales no estén disponibles si la aplicación no las proporciona o si se intenta realizar una operación antes de que el HSM autentique la sesión. En esos casos, la biblioteca de software de CloudHSM para Java busca las credenciales en el orden que se indica a continuación:
-
HsmCredentials.properties
-
Propiedades del sistema
-
Variables de entorno
Control de errores
El control de errores es más fácil con el método de inicio de sesión explícito que con el de inicio de sesión implícito. Si utiliza la clase LoginManager
, tendrá más control sobre el modo en que la aplicación gestiona los errores. Con el método de inicio de sesión implícito, la gestión de errores resulta difícil de comprender cuando las credenciales no son válidas o cuando los HSM tienen problemas en la sesión de autenticación.
Aspectos básicos de gestión de claves en el proveedor de JCE
Los aspectos básicos de la administración de claves en el proveedor de JCE están relacionados con la importación o la exportación de claves, la carga de claves por identificador o la eliminación de claves. Para obtener más información acerca de la administración de claves, consulte el ejemplo de código de administración de claves
También puede encontrar más ejemplos de código de proveedor de JCE en Ejemplos de código.