Encapsulamiento de claves AES en AWS CloudHSM
En este tema, se describen las opciones de encapsulamiento de claves AES disponibles en AWS CloudHSM. El encapsulamiento de claves AES utiliza una clave AES (la clave de encapsulamiento) para encapsular otra clave de cualquier tipo (la clave de destino). Utilice el encapsulamiento de claves para proteger las claves almacenadas o transmitir claves a través de redes poco seguras.
Algoritmos admitidos
AWS CloudHSM dispone de tres opciones para encapsular claves AES. La diferencia entre ellas está en cómo se rellena la clave antes de que se encapsule. El relleno se realiza automáticamente, en función del algoritmo que se utilice, cuando se invoca el encapsulamiento de claves. En la siguiente tabla, se muestran los algoritmos admitidos y detalles relacionados para ayudarle a elegir un mecanismo de encapsulamiento adecuado para su aplicación.
Algoritmo de encapsulamiento de claves AES | Especificación | Tipos de claves de destino admitidos | Esquema de relleno | Cliente de AWS CloudHSM disponible |
---|---|---|---|---|
Encapsulamiento de claves AES con relleno de ceros | RFC 5649 |
Todos | Agrega ceros después de los bits de la clave, si es necesario, para alinear los bloques | SDK 3.1 y versiones posteriores |
Encapsulamiento de claves AES sin relleno | RFC 3394 |
Claves alineadas en bloques, como AES y 3DES | Ninguna | SDK 3.1 y versiones posteriores |
Encapsulamiento de claves AES con relleno PKCS #5 | Ninguna | Todos |
Se agregan al menos 8 bytes según el esquema de relleno PKCS #5 para alinear los bloques |
Todos |
Para obtener más información acerca de cómo puede utilizar en su aplicación los algoritmos de encapsulamiento de claves AES de la tabla anterior, consulte Uso del encapsulamiento de claves AES en AWS CloudHSM.
Descripción de los vectores de inicialización del encapsulamiento de claves AES
Antes de realizar el encapsulamiento, CloudHSM agrega un vector de inicialización (IV) a la clave de destino para garantizar la integridad de los datos. Cada algoritmo de encapsulamiento de claves tiene una restricciones específicas sobre el tipo de IV permitido. Para establecer el IV en AWS CloudHSM, tiene dos opciones:
-
IV implícito: el IV se establece en NULL y CloudHSM utiliza el valor predeterminado de ese algoritmo en las operaciones de encapsulamiento y desencapsulamiento (recomendado)
-
IV explicito: el IV se establece pasando su valor predeterminado a la función de encapsulamiento de claves.
importante
Debe saber qué IV está utilizando en su aplicación. Para desencapsular la clave, debe proporcionar el mismo IV que utilizó para encapsularla. Si usa un IV implícito para encapsularla, use un IV implícito para desencapsularla. Con un IV implícito, CloudHSM usará el valor predeterminado para realizar el desencapsulamiento.
En la tabla siguiente, se describen los valores permitidos para los IV, lo que determina el algoritmo de encapsulamiento.
Algoritmo de encapsulamiento de claves AES | IV implícito | IV explícito |
---|---|---|
Encapsulamiento de claves AES con relleno de ceros | Obligatoria Valor predeterminado: (IV calculado internamente en función de la especificación) |
No permitido |
Encapsulamiento de claves AES sin relleno | Permitido (recomendado) Valor predeterminado: |
Permitida Solo se acepta este valor: |
Encapsulamiento de claves AES con relleno PKCS #5 | Permitido (recomendado) Valor predeterminado: |
Permitida Solo se acepta este valor: |
Uso del encapsulamiento de claves AES en AWS CloudHSM
Las claves se encapsular y desencapsulan del modo siguiente:
-
En biblioteca PCKS #11, seleccione el mecanismo apropiado para las funciones
C_WrapKey
yC_UnWrapKey
, tal como se muestra en la siguiente tabla. -
En proveedor de JCE, seleccione el algoritmo, el modo y la combinación de relleno apropiados, e implemente los métodos de cifrado
Cipher.WRAP_MODE
yCipher.UNWRAP_MODE
, tal como se muestra en la siguiente tabla. -
En la CLI de CloudHSM, elija el algoritmo adecuado de la lista de algoritmos El comando de empaquetado de claves en la CLI de CloudHSM y El comando de desempaquetado de clave en la CLI de CloudHSM compatibles, tal y como se muestra en la siguiente tabla.
-
En key_mgmt_util (KMU), utilice los comandos Exportar una clave del AWS CloudHSM mediante la KMU y Desempaquetar una clave del AWS CloudHSM mediante la KMU con los valores m apropiados, tal y como se muestra en la siguiente tabla.
Algoritmo de encapsulamiento de claves AES | Mecanismo de PKCS #11 | Método de Java | Subcomando de la CLI de CloudHSM | Argumento de la utilidad de administración de claves (KMU) |
---|---|---|---|---|
Encapsulamiento de claves AES con relleno de ceros |
|
AESWrap/ECB/ZeroPadding |
aes-zero-pad | m = 6 |
Encapsulamiento de claves AES sin relleno |
|
AESWrap/ECB/NoPadding |
aes-no-pad | m = 5 |
Encapsulamiento de claves AES con relleno PKCS #5 |
|
AESWrap/ECB/PKCS5Padding |
aes-pkcs5-pad | m = 4 |