Extracción de claves mediante la JCE de AWS CloudHSM
La extensión de criptografía de Java (JCE) utiliza una arquitectura que permite conectar diferentes implementaciones de criptografía. AWS CloudHSM envía uno de esos proveedores de JCE que transfiere las operaciones criptográficas al HSM. Para que la mayoría de los demás proveedores de JCE trabajen con claves almacenadas en AWS CloudHSM, deben extraer los bytes de clave de los HSM en texto claro y guardarlos en la memoria de la máquina para su uso. Por lo general, los HSM solo permiten extraer las claves como objetos encapsulados, no como texto transparente. Sin embargo, para facilitar los casos de uso de la integración entre proveedores, AWS CloudHSM ofrece una opción de configuración opcional para habilitar la extracción de los bytes clave sin cifrar.
importante
JCE transfiere las operaciones a AWS CloudHSM cada vez que se especifique el proveedor de AWS CloudHSM o se utilice un objeto clave de AWS CloudHSM. No necesita extraer las claves sin cifrar si espera que la operación se lleve a cabo dentro del HSM. La extracción de claves en texto no cifrado solo es necesaria cuando la aplicación no puede utilizar mecanismos seguros, como encapsular y desencapsular una clave, debido a las restricciones de una biblioteca externa o de un proveedor de JCE.
De forma predeterminada, el proveedor de JCE de AWS CloudHSM permite la extracción de claves públicas para que funcione con proveedores de JCE externos. Siempre se permiten los siguientes métodos:
Clase | Método | Formato (GetEncoded) |
---|---|---|
Clave pública de EC | getEncoded() | X.509 |
getW() | N/A | |
RSAPublicKey | getEncoded() | X.509 |
getPublicExponent() | N/A | |
CloudHsmRsaPrivateCrtKey | getPublicExponent() | N/A |
De forma predeterminada, el proveedor de JCE de AWS CloudHSM no permite la extracción de los bytes de claves sin cifrar para las claves privadas o secretas. Si su caso de uso lo requiere, puede habilitar la extracción de los bytes de claves sin cifrar para claves privadas o secretas en las siguientes condiciones:
El atributo
EXTRACTABLE
para claves privadas y secretas se establece como true.De forma predeterminada, el atributo
EXTRACTABLE
de las claves privadas y secretas está establecido como true. Las claves deEXTRACTABLE
son claves que se pueden exportar fuera del HSM. Para obtener más información, consulte Atributos de Java admitidos para SDK 5 de cliente.
El atributo
WRAP_WITH_TRUSTED
para claves privadas y secretas se establece en false.getEncoded
,getPrivateExponent
ygetS
no se pueden usar con claves privadas que no se puedan exportar sin cifrar.WRAP_WITH_TRUSTED
no permite exportar sus claves privadas fuera del HSM de sin cifrar. Para obtener más información, consulte Cómo usar claves de confianza para controlar el desencapsulamiento de claves.