Encapsulamiento de claves AES en AWS CloudHSM - AWS CloudHSM

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 y SP 800 - 38F 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 y SP 800 - 38F 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: 0xA6A6A6A6A6A6A6A6

Permitida

Solo se acepta este valor: 0xA6A6A6A6A6A6A6A6

Encapsulamiento de claves AES con relleno PKCS #5 Permitido (recomendado)

Valor predeterminado: 0xA6A6A6A6A6A6A6A6

Permitida

Solo se acepta este valor: 0xA6A6A6A6A6A6A6A6

Uso del encapsulamiento de claves AES en AWS CloudHSM

Las claves se encapsular y desencapsulan del modo siguiente:

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
  • CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD (mecanismo definido por el proveedor)

AESWrap/ECB/ZeroPadding aes-zero-pad m = 6
Encapsulamiento de claves AES sin relleno
  • CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD (mecanismo definido por el proveedor)

AESWrap/ECB/NoPadding aes-no-pad m = 5
Encapsulamiento de claves AES con relleno PKCS #5
  • CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD (mecanismo definido por el proveedor)

AESWrap/ECB/PKCS5Padding aes-pkcs5-pad m = 4