Uso de la clase AWS CloudHSM KeyStore Java - AWS CloudHSM

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.

Uso de la clase AWS CloudHSM KeyStore Java

La AWS CloudHSM KeyStore clase proporciona un almacén de claves PKCS12 para fines especiales. Este almacén de claves puede almacenar certificados junto con datos de la clave y relacionar estos certificados con los datos de clave que están almacenados en AWS CloudHSM. La AWS CloudHSM KeyStore clase implementa la interfaz de proveedor KeyStore de servicios (SPI) de la extensión de criptografía de Java (JCE). Para obtener más información sobre su usoKeyStore, consulte Class. KeyStore

nota

Dado que los certificados son información pública y, para maximizar la capacidad de almacenamiento de las claves criptográficas, no AWS CloudHSM admite el almacenamiento de certificados en los HSM.

Elección del almacén de claves apropiado

El proveedor de AWS CloudHSM Java Cryptographic Extension (JCE) ofrece un AWS CloudHSM específico. KeyStore La AWS CloudHSM KeyStore clase admite la transferencia de operaciones clave al HSM, el almacenamiento local de certificados y las operaciones basadas en certificados.

Cargue el CloudHSM de uso especial de la siguiente manera: KeyStore

KeyStore ks = KeyStore.getInstance("CloudHSM")

Inicializando AWS CloudHSM KeyStore

Inicie sesión de AWS CloudHSM KeyStore la misma forma en que inicia sesión en el proveedor de JCE. Puede usar variables de entorno o el archivo de propiedades del sistema, y debe iniciar sesión antes de empezar a usar CloudHSM KeyStore. Para ver un ejemplo de inicio de sesión en un HSM mediante el proveedor JCE, consulte Inicio de sesión en un HSM.

Si lo desea, puede especificar una contraseña para cifrar el archivo PKCS12 local que contiene los datos del almacén de claves. Al crear el AWS CloudHSM almacén de claves, se establece la contraseña y se la proporciona cuando se utilizan los métodos load, set y get.

Cree una instancia de un nuevo objeto KeyStore CloudHSM de la siguiente manera:

ks.load(null, null);

Para escribir los datos del almacén de claves en un archivo, utilice el método store. A partir de ese momento, puede cargar el almacén de claves existente utilizando el método load con el archivo de origen y la contraseña de la siguiente manera:

ks.load(inputStream, password);

Usando AWS CloudHSM KeyStore

AWS CloudHSM KeyStore cumple con la KeyStore especificación de la clase JCE y proporciona las siguientes funciones.

  • load

    Carga el almacén de claves a partir de la secuencia de entrada especificada. Si se estableció una contraseña al guardar el almacén de claves, debe proporcionarse esta misma contraseña para que la carga se realice correctamente. Establezca los dos parámetros en null para inicializar un nuevo almacén de claves vacío.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); ks.load(inputStream, password);
  • aliases

    Devuelve una enumeración de los nombres de alias de todas las entradas de la instancia especificada del almacén de claves. Los resultados incluyen objetos almacenados localmente en el archivo PKCS12 y objetos residentes en el HSM.

    Código de muestra:

    KeyStore ks = KeyStore.getInstance("CloudHSM"); for(Enumeration<String> entry = ks.aliases(); entry.hasMoreElements();) { String label = entry.nextElement(); System.out.println(label); }
  • containsalias

    Devuelve true si el almacén de claves tiene acceso al menos a un objeto con el alias especificado. El almacén de claves comprueba los objetos almacenados localmente en el archivo PKCS12 y los objetos residentes en el HSM.

  • deleteEntry

    Elimina una entrada de certificado del archivo PKCS12 local. No se admite la eliminación de datos clave almacenados en un HSM mediante el. AWS CloudHSM KeyStore Puede eliminar las claves mediante el método destroy de la interfaz Destruible.

    ((Destroyable) key).destroy();
  • getCertificate

    Devuelve el certificado asociado a un alias, si está disponible. Si el alias no existe o hace referencia a un objeto que no es un certificado, la función devuelve NULL.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); Certificate cert = ks.getCertificate(alias);
  • getCertificateAlias

    Devuelve el nombre (alias) de la primera entrada del almacén de claves cuyos datos coinciden con el certificado especificado.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); String alias = ks.getCertificateAlias(cert);
  • getCertificateChain

    Devuelve la cadena de certificados asociada con el alias especificado. Si el alias no existe o hace referencia a un objeto que no es un certificado, la función devuelve NULL.

  • getCreationDate

    Devuelve la fecha de creación de la entrada identificada por el alias especificado. Si no hay disponible ninguna fecha de creación, la función devuelve la fecha en la que el certificado pasó a ser válido.

  • getKey

    GetKey se pasa al HSM y devuelve un objeto clave correspondiente a la etiqueta dada. Como consulta getKey directamente al HSM, se puede utilizar para cualquier clave del HSM, independientemente de si fue generada por el. KeyStore

    Key key = ks.getKey(keyLabel, null);
  • isCertificateEntry

    Comprueba si la entrada con el alias especificado representa una entrada de certificado.

  • isKeyEntry

    Comprueba si la entrada con el alias especificado representa una entrada de clave. La acción busca el alias tanto en el archivo PKCS12 como en el HSM.

  • setCertificateEntry

    Asigna el certificado especificado al alias proporcionado. Si el alias proporcionado ya se utiliza para identificar una clave o un certificado, se inicia una excepción KeyStoreException. Puede utilizar el código JCE para obtener el objeto clave y, a continuación, utilizar el KeyStore SetKeyEntry método para asociar el certificado a la clave.

  • setKeyEntry con una clave byte[]

    Actualmente, esta API no es compatible con SDK 5 de cliente.

  • setKeyEntry con un objeto Key

    Asigna la clave especificada al alias proporcionado y la almacena dentro del HSM. Si la clave aún no existe en el HSM, se importará al HSM como una clave de sesión extraíble.

    Si el objeto Key es de tipo PrivateKey, debe ir acompañado de la cadena de certificados correspondiente.

    Si el alias ya existe, la llamada a SetKeyEntry inicia una excepción KeyStoreException y evita que la clave se sobrescriba. Si es necesario sobrescribir la clave, utilice KMU o JCE para ese propósito.

  • engineSize

    Devuelve el número de entradas del almacén de claves.

  • store

    Guarda el almacén de claves en el flujo de salida especificado como un archivo PKCS12 y lo protege con la contraseña proporcionada. Además, conserva todas las claves cargadas (que se establecen mediante llamadas a setKey).