Cloudhsm
Cloudhsm
Cloudhsm
Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,
in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits
Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not
be affiliated with, connected to, or sponsored by Amazon.
AWS CloudHSM Guía del usuario
Table of Contents
¿Qué es AWS CloudHSM? .................................................................................................................. 1
Casos de uso ............................................................................................................................ 1
Descargar el procesamiento de SSL/TLS en los servidores web ................................................ 1
Proteger las claves privadas de una entidad de certificación (CA) de emisión ............................... 2
Activar el cifrado de datos transparente (TDE) para bases de datos de Oracle .............................. 2
Clústeres ................................................................................................................................... 2
Arquitectura de clúster ........................................................................................................ 3
Sincronización de clúster ..................................................................................................... 4
Alta disponibilidad y balanceo de carga de clúster ................................................................... 5
Copias de seguridad ................................................................................................................... 6
Información general de los backups ...................................................................................... 7
Seguridad de los backups .................................................................................................... 7
Durabilidad de los backups .................................................................................................. 8
Frecuencia de los backups .................................................................................................. 8
Herramientas y bibliotecas del cliente ............................................................................................ 9
Cliente de AWS CloudHSM .................................................................................................. 9
Herramientas de línea de comandos de AWS CloudHSM ........................................................ 10
Bibliotecas de software de AWS CloudHSM .......................................................................... 10
Usuarios de HSM ..................................................................................................................... 10
Responsable de criptografía previa (PRECO) ........................................................................ 11
Responsable de criptografía (CO) ....................................................................................... 11
Usuario de criptografía (CU) ............................................................................................... 11
Usuario de dispositivos (AU) .............................................................................................. 11
Tabla de permisos de usuario de HSM ................................................................................ 11
Precios .................................................................................................................................... 13
Regiones ................................................................................................................................. 13
Cuotas .................................................................................................................................... 13
Recursos del sistema ........................................................................................................ 14
Introducción ..................................................................................................................................... 15
Creación de administradores de IAM ........................................................................................... 15
Creación de un grupo de usuarios y de administradores de IAM ............................................... 16
Creación de una VPC ............................................................................................................... 17
Crear una subred privada .......................................................................................................... 17
Crear un clúster ........................................................................................................................ 18
Revisión del grupo de seguridad del clúster .................................................................................. 19
Lanzamiento de un cliente EC2 .................................................................................................. 20
Conexión de un instancia EC2 a un clúster .................................................................................. 21
Modificación del grupo de seguridad predeterminado. ............................................................. 21
Conexión de la instancia Amazon EC2 al clúster de AWS CloudHSM ........................................ 22
Creación de un HSM ................................................................................................................. 23
Verificar la identidad del HSM (opcional) ...................................................................................... 23
Información general ........................................................................................................... 24
Obtener los certificados del HSM ........................................................................................ 26
Obtener los certificados raíz ............................................................................................... 28
Verificar las cadenas de certificados .................................................................................... 28
Extraer y comparar las claves públicas ................................................................................ 29
Certificado raíz de AWS CloudHSM ..................................................................................... 30
Inicialización del clúster ............................................................................................................. 31
Obtener el CSR del clúster ................................................................................................ 31
Firmar la CSR .................................................................................................................. 33
Inicializar el clúster ........................................................................................................... 34
Instalar el cliente (Linux) ............................................................................................................ 35
Instalación del cliente y las herramientas de línea de comandos de AWS CloudHSM ................... 35
Editar la configuración del cliente ........................................................................................ 37
iii
AWS CloudHSM Guía del usuario
iv
AWS CloudHSM Guía del usuario
v
AWS CloudHSM Guía del usuario
vi
AWS CloudHSM Guía del usuario
Casos de uso
Cuando utiliza un HSM desde AWS CloudHSM, puede realizar diversas tareas criptográficas:
• Generar, almacenar, importar, exportar y administrar claves criptográficas, incluidas las claves simétricas
y los pares de claves asimétricos.
• Utilice los algoritmos simétricos y asimétricos para cifrar y descifrar datos.
• Utilice las funciones de hash criptográficas para computar los resúmenes y los códigos de autenticación
de mensajes basados en hash (HMAC).
• Firmar criptográficamente los datos (incluida la firma de código) y verificar firmas.
• Generar datos aleatorios seguros criptográficamente.
Si busca un servicio administrado para la creación y el control de las claves de cifrado, pero no desea o no
necesita administrar su propio HSM, considere la posibilidad de usar AWS Key Management Service.
Para obtener más información sobre lo que puede hacer con AWS CloudHSM, consulte los temas
siguientes. Cuando esté listo para comenzar a usar AWS CloudHSM, consulte Introducción (p. 15).
Contenido
• Casos de uso de AWS CloudHSM (p. 1)
• Clústeres de AWS CloudHSM (p. 2)
• Copias de seguridad de los clústeres de AWS CloudHSM (p. 6)
• Herramientas y bibliotecas de software del cliente de AWS CloudHSM (p. 9)
• Usuarios de HSM (p. 10)
• Precios (p. 13)
• Regiones (p. 13)
• Cuotas de AWS CloudHSM (p. 13)
Temas
• Descargar el procesamiento de SSL/TLS en los servidores web (p. 1)
• Proteger las claves privadas de una entidad de certificación (CA) de emisión (p. 2)
• Activar el cifrado de datos transparente (TDE) para bases de datos de Oracle (p. 2)
1
AWS CloudHSM Guía del usuario
Proteger las claves privadas de una
entidad de certificación (CA) de emisión
conexión segura para enviar y recibir páginas web u otros datos a través de Internet. Esto se denomina
comúnmente HTTPS. El servidor web utiliza un par de claves pública-privada y un certificado de clave
pública SSL/TLS para establecer una sesión HTTPS con cada cliente. Este proceso conlleva un gran
volumen de cómputo para el servidor web, pero puede descargar parte de este cómputo a los HSM de
su clúster de AWS CloudHSM. Esto a veces recibe el nombre de aceleración SSL. La descarga reduce
la carga informática del servidor web y proporciona seguridad adicional al almacenar la clave privada del
servidor en el HSMs.
Para obtener información sobre la configuración de la descarga de SSL/TLS con AWS CloudHSM, consulte
Descarga de SSL/TLS (p. 290).
Para obtener información acerca de la configuración de TDE de Oracle con AWS CloudHSM, consulte
Cifrado de Oracle Database (p. 325).
Puede crear un clúster que tenga de 1 a 28 HSM (el límite predeterminado (p. 13) es de 6 HSM
por cada cuenta de AWS y cada región de AWS). Puede colocar los HSM en diferentes zonas de
disponibilidad de una región de AWS. Agregar más HSM a un clúster ofrece más desempeño. Distribuir
clústeres en varias zonas de disponibilidad proporciona redundancia y alta disponibilidad.
Conseguir que los distintos HSM funcionen juntos en un clúster sincronizado, redundante y de alta
disponibilidad puede ser difícil, pero AWS CloudHSM se ocupa de algunas de las tareas pesadas. Puede
añadir y eliminar módulos HSM de un clúster y AWS CloudHSM se ocupará de mantenerlos conectados y
sincronizados automáticamente.
2
AWS CloudHSM Guía del usuario
Arquitectura de clúster
Para obtener más información sobre los clústeres, consulte los siguientes temas.
Temas
• Arquitectura de clúster (p. 3)
• Sincronización de clúster (p. 4)
• Alta disponibilidad y balanceo de carga de clúster (p. 5)
Arquitectura de clúster
Cuando crea un clúster, tiene que especificar una Amazon Virtual Private Cloud (VPC) en la cuenta de
AWS y una o varias subredes en dicha VPC. Le recomendamos que cree una subred en cada zona de
disponibilidad (AZ) de la región de AWS elegida. Para saber cómo hacerlo, consulte Crear una subred
privada (p. 17).
Cada vez que crea un HSM, debe especificar el clúster y la zona de disponibilidad del HSM. Al colocar los
HSM en diferentes zonas de disponibilidad, obtiene redundancia y alta disponibilidad en el caso de que
una zona de disponibilidad no esté disponible.
Al crear un HSM, AWS CloudHSM incluye una interfaz de red elástica (ENI) en la subred especificada de
la cuenta de AWS. La interfaz de red elástica es la que se usa para interactuar con el HSM. El HSM se
encuentra en una VPC independiente, en una cuenta de AWS que es propiedad de AWS CloudHSM. El
HSM y su interfaz de red correspondiente se encuentran en la misma zona de disponibilidad.
Para interactuar con los HSM de un clúster, necesita el software de cliente de AWS CloudHSM.
Normalmente, el cliente se instala en instancias Amazon EC2, que se denominan instancias de cliente
y que se encuentran en la misma VPC que los ENI de los HSM, tal y como se muestra en la siguiente
ilustración. Esto no es necesario desde el punto de vista técnico; puede instalar el cliente en cualquier
equipo compatible, siempre que pueda conectarse a las ENI de los HSM. El cliente se comunica con cada
uno de los HSM del clúster a través de sus ENI.
La siguiente figura representa el clúster de AWS CloudHSM con tres HSM, cada uno en una zona de
disponibilidad diferente en la VPC.
3
AWS CloudHSM Guía del usuario
Sincronización de clúster
Sincronización de clúster
En un clúster de AWS CloudHSM, AWS CloudHSM mantiene sincronizadas las claves de los HSM
individuales. No tiene que hacer nada para sincronizar las claves en los HSM. Para mantener
sincronizados los usuarios y las políticas de cada HSM, actualice el archivo de configuración del cliente
4
AWS CloudHSM Guía del usuario
Alta disponibilidad y balanceo de carga de clúster
de AWS CloudHSM antes de administrar los usuarios de HSM (p. 54). Para obtener más información,
consulte Mantener sincronizados los usuarios de HSM (p. 374).
Al agregar un HSM nuevo a un clúster, AWS CloudHSM hace una copia de seguridad de todas las claves,
los usuarios y las políticas de un HSM existente. A continuación, restaura ese backup en el nuevo HSM.
De este modo, los dos HSM permanecen sincronizados.
Si los HSM de un clúster no están sincronizados, AWS CloudHSM los vuelve a sincronizar
automáticamente. Para habilitarlo, AWS CloudHSM utiliza las credenciales del usuario de
dispositivos (p. 10). Este usuario existe en todos los HSM proporcionados por AWS CloudHSM y tiene
permisos limitados. Puede obtener un hash de los objetos del HSM, así como insertar y extraer objetos
enmascarados (cifrados). AWS no puede ver ni modificar los usuarios ni las claves y no puede realizar
operaciones criptográficas utilizando estas claves.
Al crear los HSM en diferentes zonas de disponibilidad de AWS, obtiene automáticamente una alta
disponibilidad. Alta disponibilidad significa que obtiene mayor fiabilidad porque ningún HSM es un punto
único de error. Es recomendable que tenga un mínimo de dos HSM en cada clúster, cada uno de ellos en
una zona de disponibilidad distinta de una región de AWS.
Por ejemplo, en la figura siguiente se muestra una aplicación de base de datos Oracle que está distribuida
en dos zonas de disponibilidad. Las instancias de base de datos almacenan las claves maestras en un
clúster que tiene un HSM en cada zona de disponibilidad. AWS CloudHSM sincroniza automáticamente las
claves de los dos HSM para que sean accesibles y redundantes de inmediato.
5
AWS CloudHSM Guía del usuario
Copias de seguridad
Cuando añade un HSM a un clúster que anteriormente contenía uno o varios HSM activos, AWS
CloudHSM restaura la copia de seguridad más reciente en el nuevo HSM. Esto significa que puede utilizar
AWS CloudHSM para administrar un HSM que utilice con poca frecuencia. Cuando no necesite utilizar el
HSM, puede eliminarlo, lo que activa un backup. Más tarde, cuando necesite utilizar el HSM de nuevo,
puede crear un HSM nuevo en el mismo clúster, lo que restaura de forma efectiva el HSM anterior.
También puede crear un clúster nuevo a partir de un backup ya existente de otro clúster. Debe crear el
nuevo clúster en la misma región de AWS que contiene la copia de seguridad existente.
Temas
• Información general de los backups (p. 7)
• Seguridad de los backups (p. 7)
• Durabilidad de los backups (p. 8)
• Frecuencia de los backups (p. 8)
6
AWS CloudHSM Guía del usuario
Información general de los backups
AWS CloudHSM almacena las copias de seguridad en un bucket de Amazon Simple Storage Service
(Amazon S3) controlado por servicios que se encuentra en la misma región de AWS que el clúster.
Para cifrar los datos, el HSM utiliza una clave de cifrado única y efímera, conocida como la clave de
backup efímera (EBK). La EBK es una clave de cifrado AES de 256 bits que se genera en el HSM cuando
AWS CloudHSM hace la copia de seguridad. El HSM genera la EBK y, a continuación, la utiliza para cifrar
sus datos con un método de encapsulación de clave AES aprobado por FIPS que cumple la Publicación
especial de NIST 800-38F. A continuación, el HSM ofrece los datos cifrados a AWS CloudHSM. Los datos
cifrados contienen una copia cifrada de la EBK.
Para cifrar la EBK, el HSM utiliza otra clave de cifrado conocida como la clave de backup persistente
(PBK). La PBK también es una clave de cifrado AES de 256 bits. Para generar la PBK, el HSM utiliza una
7
AWS CloudHSM Guía del usuario
Durabilidad de los backups
función de derivación de clave (KDF) aprobada por FIPS en modo contador que cumple la Publicación
especial de NIST 800-108. Los datos de entrada de esta KDF incluyen lo siguiente:
• Una clave de backup de clave de fabricante (MKBK), integrada permanentemente en el hardware del
HSM por parte del fabricante.
• Una clave de copia de seguridad de claves de AWS (AKBK), instalada de forma segura en el HSM
cuando AWS CloudHSM lo configuró inicialmente.
Los procesos de cifrado se resumen en la siguiente figura. La clave de cifrado de backup representa la
clave de backup persistente (PBK) y la clave de backup efímera (EBK).
AWS CloudHSM solo puede restaurar las copias de seguridad en los HSM que son propiedad de AWS
y los ha creado el mismo fabricante. Dado que cada backup contiene todos los usuarios, claves y la
configuración del HSM original, el HSM restaurado contiene las mismas protecciones y controles de
acceso que el original. Los datos restaurados sobrescriben todos los demás datos que pudiera haber en el
HSM antes de la restauración.
Un backup solo contiene datos cifrados. Antes de que las copias de seguridad se almacenen en Amazon
S3, se cifran de nuevo con una clave maestra de cliente (CMK) de AWS Key Management Service (AWS
KMS).
8
AWS CloudHSM Guía del usuario
Herramientas y bibliotecas del cliente
Temas
• Cliente de AWS CloudHSM (p. 9)
• Herramientas de línea de comandos de AWS CloudHSM (p. 10)
• Bibliotecas de software de AWS CloudHSM (p. 10)
En el siguiente proceso se explica cómo establece el cliente una comunicación cifrada integral con un
HSM.
1. El cliente establece una conexión Transport Layer Security (TLS) con el servidor que aloja el hardware
del HSM. El grupo de seguridad del clúster únicamente permite el tráfico entrante al servidor desde las
instancias de cliente del grupo de seguridad. El cliente también comprueba el certificado del servidor
para asegurarse de que es un servidor de confianza.
9
AWS CloudHSM Guía del usuario
Herramientas de línea de comandos de AWS CloudHSM
2. A continuación, el cliente establece una conexión cifrada con el hardware del HSM. El HSM tiene el
certificado de clúster firmado por usted con su propia entidad de certificación (CA), y el cliente tiene
el certificado raíz de la CA. Antes de que se establezca la conexión cifrada entre el cliente y el HSM,
el cliente verifica el certificado de clúster del HSM con el certificado raíz. La conexión únicamente se
establece cuando el cliente verifica correctamente que el HSM es de confianza. La conexión cifrada
entre el cliente y el HSM se realiza a través de la conexión cliente–servidor establecida anteriormente.
Usuarios de HSM
La mayoría de las operaciones que realiza en el HSM requieren las credenciales de un usuario de HSM. El
HSM autentica a cada usuario del HSM mediante un nombre de usuario y una contraseña.
Cada usuario del HSM tiene un tipo que determina las operaciones que puede realizar en el HSM. En los
siguientes temas se explican los tipos de usuarios de HSM.
Temas
10
AWS CloudHSM Guía del usuario
Responsable de criptografía previa (PRECO)
• Administración de claves: puede crear, eliminar, compartir, importar y exportar claves criptográficas.
• Operaciones criptográficas: puede utilizar claves criptográficas para cifrar, descifrar, firmar, verificar, etc.
Para obtener más información, consulte Tabla de permisos de usuario de HSM (p. 11).
AWS utiliza el AU para realizar operaciones de clonación y sincronización en los HSM del clúster.
AWS no puede realizar ninguna operación en los HSM salvo aquellas para las que el AU y los usuarios
autenticados tengan permiso. AWS no puede ver ni modificar usuarios o claves y no puede realizar
operaciones criptográficas utilizando estas claves.
11
AWS CloudHSM Guía del usuario
Tabla de permisos de usuario de HSM
Obtener Sí Sí Sí Sí
información básica
del clúster¹
Poner a cero un Sí Sí Sí Sí
HSM²
Cambiar la Sí No No No
contraseña de
cualquier usuario
Agregar o eliminar Sí No No No
usuarios
Obtener el estado Sí Sí Sí No
de sincronización³
Extraer o Sí Sí Sí No
insertar objetos
enmascarados⁴
Funciones de No Sí No No
administración de
claves⁵
Cifrar o descifrar No Sí No No
Firmar o verificar No Sí No No
Generar No Sí No No
resúmenes y
HMAC
¹La información básica sobre el clúster incluye el número de HSM que hay en el clúster y la dirección IP, el
modelo, el número de serie, el ID de dispositivo, el ID de firmware, etc. de cada HSM.
²Cuando un HSM se pone a cero, se destruyen todas las claves, certificados y demás datos del HSM.
Puede utilizar el grupo de seguridad de su clúster para evitar que un usuario sin autenticar ponga a cero el
HSM. Para obtener más información, consulte Crear un clúster (p. 18).
³El usuario puede obtener un conjunto de resúmenes (hashes) que se corresponden con las claves
del HSM. Una aplicación puede comparar estos conjuntos de resúmenes para conocer el estado de la
sincronización de los HSM de un clúster.
⁴Los objetos enmascarados son claves que se cifran antes de salir del HSM. No se pueden descifrar fuera
del HSM. Solo se descifran después de insertarlos en un HSM que se encuentra en el mismo clúster que el
HSM del que se extrajeron. Una aplicación puede extraer e insertar objetos enmascarados para sincronizar
los HSM de un clúster.
12
AWS CloudHSM Guía del usuario
Precios
Precios
Con AWS CloudHSM, paga por horas, sin compromisos a largo plazo ni pagos iniciales. Para obtener más
información, consulte Precios de AWS CloudHSM en el sitio web de AWS.
Regiones
Para obtener información acerca de las regiones admitidas para AWS CloudHSM, consulte Regiones y
puntos de enlace de AWS CloudHSM en la AWS General Reference o en la tabla de regiones.
Al igual que la mayoría de los recursos de AWS, los clústeres y HSM son recursos regionales. Para crear
HSM en varias regiones, primero debe crear un clúster en cada región. No es posible reutilizar o ampliar un
clúster entre regiones. Debe realizar todos los pasos necesarios que se muestran en Introducción a AWS
CloudHSM (p. 15) para crear un clúster en una nueva región.
Es posible que AWS CloudHSM no esté disponible en todas las zonas de disponibilidad de una región
determinada. Sin embargo, esto no debe afectar al desempeño, ya que AWS CloudHSM balancea la carga
automáticamente en todos los HSM de un clúster.
Cuotas de servicio
Clústeres 4 Sí
HSM 6 Sí
Recurso Quota
13
AWS CloudHSM Guía del usuario
Recursos del sistema
Los descriptores de archivos son un mecanismo del sistema operativo para identificar y administrar los
archivos abiertos en cada proceso.
El demonio del cliente de CloudHSM utiliza descriptores de archivos para administrar las conexiones entre
las aplicaciones y el cliente, así como entre el cliente y el servidor.
En circunstancias excepcionales, si ejecuta el cliente en un entorno con recursos restringidos, tal vez sea
necesario modificar estos valores predeterminados.
Note
Al cambiar estos valores, el rendimiento del cliente de CloudHSM podría verse afectado o la
aplicación podría quedar inoperativa.
#
# DO NOT EDIT THIS FILE
#
hsmuser soft nofile 3000
hsmuser hard nofile 3000
Note
14
AWS CloudHSM Guía del usuario
Creación de administradores de IAM
Contenido
• Creación de grupos administrativos de IAM (p. 15)
• Crear una nube virtual privada (VPC) (p. 17)
• Crear una subred privada (p. 17)
• Crear un clúster (p. 18)
• Revisión del grupo de seguridad del clúster (p. 19)
• Lanzamiento una instancia de cliente de Amazon EC2 (p. 20)
• Conexión de una instancia Amazon EC2 a un Cluster de AWS CloudHSM (p. 21)
• Creación de un HSM (p. 23)
• Verificar la identidad y la autenticidad del HSM de un clúster (opcional) (p. 23)
• Inicialización del clúster (p. 31)
• Instalación y configuración del cliente de AWS CloudHSM (Linux) (p. 35)
• Instalación y configuración del cliente de AWS CloudHSM (Windows) (p. 37)
• Activación del clúster (p. 39)
• Reconfigurar SSL con un nuevo certificado y clave privada (opcional) (p. 40)
• Prácticas recomendadas para AWS CloudHSM (p. 42)
Otra práctica recomendada consiste en crear un grupo de administradores de AWS CloudHSM que solo
tenga los permisos necesarios para ejecutar AWS CloudHSM. Puede agregar usuarios individuales a este
grupo según sea necesario. Cada usuario hereda los permisos limitados que se han asociado al grupo
en lugar de tener acceso completo a AWS. La sección Políticas administradas por el cliente para AWS
CloudHSM (p. 358) siguiente contiene la política que debe asociar a su grupo de administradores de
AWS CloudHSM.
AWS CloudHSM define un rol vinculado al servicio para la cuenta de AWS. En la actualidad, la función
vinculada al servicio define los permisos que permiten a su cuenta registrar eventos de AWS CloudHSM.
Puede crear manualmente la función o dejar que AWS CloudHSM la cree de forma automática. No puede
15
AWS CloudHSM Guía del usuario
Creación de un grupo de usuarios
y de administradores de IAM
editar el rol, pero puede eliminarlo. Para obtener más información, consulte Roles vinculados a servicios de
AWS CloudHSM (p. 360).
1. Utilice la dirección de correo electrónico y la contraseña de su cuenta de AWS para iniciar sesión
como Usuario de la cuenta raíz de AWS en la consola de IAM en https://console.aws.amazon.com/
iam/.
Note
Debe activar el acceso de usuarios y roles de IAM a Facturación para poder utilizar la los
permisos AdministratorAccess para el acceso a la consola de AWS Billing and Cost
Management. Para ello, siga las instrucciones que se indican en el paso 1 del tutorial sobre
cómo delegar el acceso a la consola de facturación.
12. Retroceda a la lista de grupos y active la casilla de verificación del nuevo grupo. Elija Refresh si es
necesario para ver el grupo en la lista.
13. Elija Next: Tags (Siguiente: Etiquetas).
14. (Opcional) Añadir metadatos al rol asociando las etiquetas como pares de clave-valor. Para obtener
más información sobre el uso de etiquetas en IAM, consulte Etiquetado de entidades de IAM en la
Guía del usuario de IAM.
16
AWS CloudHSM Guía del usuario
Creación de una VPC
15. Elija Next: Review para ver la lista de suscripciones a grupos que se van a añadir al nuevo usuario.
Cuando esté listo para continuar, elija Create user (Crear usuario).
Puede usar este mismo proceso para crear más grupos y usuarios y para conceder a los usuarios acceso
a los recursos de la cuenta de AWS. Para obtener información sobre cómo usar las políticas que restringen
los permisos de los usuarios a recursos de AWS específicos, consulte Administración de acceso y Políticas
de ejemplo.
Para políticas de ejemplo para las AWS CloudHSM que puede asociar al grupo de usuarios de IAM,
consulte Identity and Access Management para AWS CloudHSM (p. 356).
a. En Name tag (Asignar nombre a la etiqueta), escriba un nombre identificable, como CloudHSM
private subnet.
b. Para VPC, elija la VPC que ha creado anteriormente.
c. En Availability Zone, elija la primera zona de disponibilidad de la lista.
d. En CIDR block, escriba el bloque de CIDR que se usará para la subred. Si ha usado los valores
predeterminados de la VPC en el procedimiento anterior, escriba 10.0.1.0/28.
17
AWS CloudHSM Guía del usuario
Crear un clúster
4. Repita los pasos 2 y 3 para crear subredes para cada zona de disponibilidad restante de la región. En
los bloques de CIDR de la subred, puede utilizar 10.0.2.0/28, 10.0.3.0/28, etc.
Crear un clúster
Un clúster es una colección de HSM individuales. AWS CloudHSM sincroniza los HSM de cada clúster
para que funcionen como una unidad lógica.
Important
Cuando crea un clúster, el AWS CloudHSM crea una función vinculada al servicio llamada
AWSServiceRoleForCloudHSM. Si AWS CloudHSM no puede crear la función o esta no existe,
es posible que no se pueda crear un clúster. Para obtener más información, consulte Solución de
errores de creación de clústeres (p. 378). Para obtener más información acerca de las funciones
vinculadas a servicios, consulte Roles vinculados a servicios de AWS CloudHSM (p. 360).
Cuando crea un clúster, AWS CloudHSM genera un grupo de seguridad para el clúster en su nombre. Este
grupo de seguridad controla el acceso de red a los HSM del clúster. Este grupo solamente permite las
conexiones entrantes que proceden de las instancias Amazon Elastic Compute Cloud (Amazon EC2) que
están en el grupo de seguridad. De forma predeterminada, el grupo de seguridad no contiene instancias.
Posteriormente, debe lanzar una instancia de cliente (p. 20) y configurar el grupo de seguridad del
clúster (p. 19) para permitir la comunicación y las conexiones con los HSM.
Puede crear un clúster a partir de la consola de AWS CloudHSM, la AWS Command Line Interface (AWS
CLI) o la API de AWS CloudHSM.
18
AWS CloudHSM Guía del usuario
Revisión del grupo de seguridad del clúster
{
"Cluster": {
"BackupPolicy": "DEFAULT",
"VpcId": "vpc-50ae0636",
"SubnetMapping": {
"us-west-2b": "subnet-49a1bc00",
"us-west-2c": "subnet-6f950334",
"us-west-2a": "subnet-fd54af9b"
},
"SecurityGroup": "sg-6cb2c216",
"HsmType": "hsm1.medium",
"Certificates": {},
"State": "CREATE_IN_PROGRESS",
"Hsms": [],
"ClusterId": "cluster-igklspoyj5v",
"CreateTimestamp": 1502423370.069
}
}
• Envíe una solicitud CreateCluster. Especifique el tipo de instancia de HSM y los ID de subred de
las subredes donde piensa crear los HSM. Utilice los ID de las subredes privadas que ha creado.
Especifique solo una subred por zona de disponibilidad.
Si sus intentos de crear un clúster no tienen éxito, es posible que se debe a algún problema con las
funciones vinculadas a servicios de AWS CloudHSM. Para ayudar a resolver el error, consulte Solución de
errores de creación de clústeres (p. 378).
• No elimine ni modifique la regla TCP preconfigurada que existe en el grupo de seguridad del
clúster. Esta regla puede evitar problemas de conectividad y el acceso no autorizado a los
HSM.
• El grupo de seguridad del clúster impide el acceso no autorizado a los HSM. Cualquier usuario
que puede tener acceso a las instancias del grupo de seguridad también puede tener acceso
a los HSM. La mayoría de las operaciones requieren que un usuario inicie sesión en el HSM.
Sin embargo, es posible poner a cero los HSM sin autenticación, lo que destruye el material
de claves, los certificados y los demás datos. Si sucede esto, los datos creados o modificados
después de la copia de seguridad más reciente se pierden y no se pueden recuperar. Para
evitar el acceso no autorizado, asegúrese de que solo los administradores de confianza pueden
modificar o tener acceso a las instancias del grupo de seguridad predeterminado.
En el siguiente paso, puede lanzar una instanciaAmazon EC2 (p. 20) y conectarla a los HSM asociando
a ella el grupo de seguridad del clúster (p. 21).
19
AWS CloudHSM Guía del usuario
Lanzamiento de un cliente EC2
En la documentación de AWS CloudHSM, normalmente se presupone que está utilizando una instancia
EC2 situada en la misma VPC y en la misma zona de disponibilidad (AZ) en las que se va a crear el
clúster.
También puede utilizar un par de claves existente. Elija Choose an existing key pair (Elegir un par de
claves existente) y, a continuación, el par de claves que desee.
Warning
No elija Proceed without a key pair (Continuar sin un par de claves). Si lanza la instancia sin
un par de claves, no podrá conectarse a ella.
20
AWS CloudHSM Guía del usuario
Conexión de un instancia EC2 a un clúster
Cuando esté listo, seleccione la casilla de confirmación y después elija Launch Instances.
Para obtener más información acerca de la creación de un cliente de Amazon EC2, consulte Introducción a
las instancias Amazon EC2 Linux. Para obtener información acerca de la conexión al cliente en ejecución,
consulte los siguientes temas:
La guía del usuario de Amazon EC2 contiene instrucciones detalladas para configurar y utilizar las
instancias Amazon EC2. La siguiente lista proporciona información general sobre la documentación
disponible para los clientes de Amazon EC2 de Linux y Windows:
• Para crear un cliente de Amazon EC2 de Linux, consulte Introducción a las instancias Amazon EC2 de
Linux.
Para obtener información acerca de la conexión al cliente en ejecución, consulte los siguientes temas:
• Conexión a la instancia de Linux mediante SSH
• Conexión a la instancia de Linux desde Windows mediante PuTTY
• Para crear un cliente de Amazon EC2 de Windows, consulte Introducción a las instancias Amazon
EC2 de Windows. Para obtener más información acerca de cómo conectarse a su cliente de Windows,
consulte Conectarse a su instancia de Windows.
Note
La instancia EC2 puede ejecutar todos los comandos de la AWS CLI contenidos en esta guía. Si
la AWS CLI no está instalada, puede descargarla desde AWS Command Line Interface. Si utiliza
Windows, puede descargar y ejecutar un instalador de Windows de 64 o 32 bits. Si utiliza Linux o
macOS, puede instalar la CLI con pip.
21
AWS CloudHSM Guía del usuario
Conexión de la instancia Amazon
EC2 al clúster de AWS CloudHSM
4. En la parte superior de la página, elija Actions (Acciones) y, a continuación, Edit inbound rules (Editar
reglas de entrada).
5. Seleccione Add Rule (Añadir regla).
6. En Type (Tipo), realice una de las operaciones siguientes:
• Para una instancia Amazon EC2 de Windows Server, elija RDP. El rango de puertos 3389 se
rellena automáticamente.
• Para una instancia Amazon EC2 de Linux, elija SSH. El rango de puertos 22 se rellena
automáticamente.
7. Para cualquiera de las opciones, establezca Source (Origen) en My IP (Mi IP) para permitir que el
cliente se comunique con el clúster de AWS CloudHSM.
Important
No especifique 0.0.0.0/0 como rango de puertos para evitar permitir que cualquier persona
para tener acceso a la instancia.
8. Elija Save (Guardar).
Note
Puede asignar un máximo de cinco grupos de seguridad a una instancia Amazon EC2. Si ha
alcanzado el límite máximo, debe modificar el grupo de seguridad predeterminado de la instancia
Amazon EC2 y el grupo de seguridad del clúster:
• Añada una regla de salida para permitir el tráfico en todos los puertos hacia 0.0.0.0/0.
• Añada una regla de entrada para permitir el tráfico mediante el protocolo TCP en los puertos
2223-2225 desde el grupo de seguridad del clúster.
• Añada una regla de salida para permitir el tráfico en todos los puertos hacia 0.0.0.0/0.
• Añada una regla de entrada para permitir el tráfico mediante el protocolo TCP a través de
puertos 2223-2225 desde el grupo de seguridad predeterminado.
22
AWS CloudHSM Guía del usuario
Creación de un HSM
Creación de un HSM
Después de crear un clúster, puede crear un HSM. Sin embargo, para poder crear un HSM en su clúster,
este debe encontrarse en el estado sin inicializar. Para determinar el estado del clúster, consulte la página
de clústeres en la consola de AWS CloudHSM, utilice la AWS CLI para ejecutar el comando describe-
clusters o envíe una solicitud DescribeClusters en la API de AWS CloudHSM. Puede crear un HSM desde
la consola de AWS CloudHSM, la AWS CLI o la API de AWS CloudHSM.
• En el símbolo del sistema, ejecute el comando create-hsm. Especifique el ID del clúster que ha creado
anteriormente y una zona de disponibilidad para el HSM. Especifique la zona de disponibilidad con el
formato us-west-2a, us-west-2b, etc.
{
"Hsm": {
"HsmId": "hsm-ted36yp5b2x",
"EniIp": "10.0.1.12",
"AvailabilityZone": "us-west-2a",
"ClusterId": "cluster-igklspoyj5v",
"EniId": "eni-5d7ade72",
"SubnetId": "subnet-fd54af9b",
"State": "CREATE_IN_PROGRESS"
}
}
• Envíe una solicitud CreateHsm. Especifique el ID del clúster que ha creado anteriormente y una zona
de disponibilidad para el HSM.
Después de crear un clúster y un HSM, tiene la opción de verificar la identidad del HSM (p. 23), o
continuar directamente en Inicialización del clúster (p. 31).
23
AWS CloudHSM Guía del usuario
Información general
Note
Este proceso es opcional. Sin embargo, funciona únicamente hasta que se inicializa un clúster.
Una vez que se inicializa el clúster, no puede utilizar este proceso para obtener los certificados o
verificar los HSM.
Temas
• Información general (p. 24)
• Obtener los certificados del HSM (p. 26)
• Obtener los certificados raíz (p. 28)
• Verificar las cadenas de certificados (p. 28)
• Extraer y comparar las claves públicas (p. 29)
• Certificado raíz de AWS CloudHSM (p. 30)
Información general
Para verificar la identidad del primer HSM del clúster, siga los pasos que se describen a continuación:
1. Obtener los certificados y las CSR (p. 26): en este paso, recibirá tres certificados y una CSR desde el
HSM. También obtendrá dos certificados raíz, uno de AWS CloudHSM y otro del fabricante de hardware
del HSM.
2. Comprobar las cadenas de certificados (p. 28): en este paso, creará dos cadenas de certificados:
una para el certificado raíz de AWS CloudHSM y otra para el certificado raíz del fabricante. A
continuación, comparará el certificado del HSM con estas cadenas de certificados para determinar que
tanto AWS CloudHSM como el fabricante de hardware certifican la identidad y la autenticidad del HSM.
3. Comparar las claves públicas (p. 29): en este paso, va a extraer y comprar las claves públicas del
certificado del HSM y de la CSR del clúster para asegurarse de que son las mismas. Esto debería darle
la seguridad de que la CSR fue generada por un HSM auténtico y de confianza.
En el siguiente diagrama se muestran la CSR, los certificados, y la relación que existe entre unos y otros.
En la lista que le sigue, se definen los distintos certificados.
24
AWS CloudHSM Guía del usuario
Información general
Este es el certificado raíz de AWS CloudHSM. Puede ver y descargar este certificado en https://
docs.aws.amazon.com/cloudhsm/latest/userguide/root-certificate.html (p. 30).
Certificado raíz del fabricante
Este es el certificado raíz del fabricante del hardware. Puede ver y descargar este certificado en
https://www.cavium.com/LS/TAmanuCert/.
Certificado de hardware de AWS
AWS CloudHSM creó este certificado cuando se añadió el hardware del HSM a la flota. Este
certificado confirma que AWS CloudHSM es el propietario del hardware.
Certificado de hardware del fabricante
El fabricante del hardware del HSM creó este certificado cuando fabricó el hardware del HSM. Este
certificado confirma que el fabricante creó el hardware.
25
AWS CloudHSM Guía del usuario
Obtener los certificados del HSM
El certificado del HSM es generado por el hardware validado por FIPS cuando crea el primer HSM en
el clúster. Este certificado confirma que el hardware del HSM creó el HSM.
CSR del clúster
El primer HSM crea la CSR del clúster. Al firmar la CSR del clúster (p. 33), solicita el clúster. A
continuación, puede utilizar la CSR firmada para inicializar el clúster (p. 34).
26
AWS CloudHSM Guía del usuario
Obtener los certificados del HSM
Elija los enlaces necesarios para descargar y guardar la CSR y los certificados. Para simplificar los
pasos posteriores, guarde todos los archivos en el mismo directorio y utilice los nombres de archivo
predeterminados.
• En el símbolo del sistema, ejecute cuatro veces el comando describe-clusters para extraer la CSR y
cada uno de los certificados y guardarlos en archivos.
a. Escriba el siguiente comando para extraer la CSR del clúster. Sustituya <ID de clúster> por
el ID del clúster que creó anteriormente.
27
AWS CloudHSM Guía del usuario
Obtener los certificados raíz
b. Escriba el siguiente comando para extraer el certificado del HSM. Sustituya <ID de clúster>
por el ID del clúster que creó anteriormente.
c. Escriba el siguiente comando para extraer el certificado de hardware de AWS. Sustituya <ID de
clúster> por el ID del clúster que creó anteriormente.
d. Escriba el siguiente comando para extraer el certificado de hardware del fabricante. Sustituya <ID
de clúster> por el ID del clúster que creó anteriormente.
Para obtener la CSR y los certificados del HSM (API de AWS CloudHSM)
• Envíe una solicitud DescribeClusters, extraiga la CSR y los certificados de la respuesta y guárdelos.
28
AWS CloudHSM Guía del usuario
Extraer y comparar las claves públicas
Para crear cadenas de certificados, abra un shell de Linux. Necesita OpenSSL, que está disponible en
la mayoría de los shells de Linux, y necesita el certificado raíz (p. 28) y los archivos del certificado del
HSM (p. 26) que descargó. Sin embargo, no necesita el AWS CLI para este paso y no es necesario
asociar el shell a la cuenta de AWS.
Note
Para verificar el certificado del HSM con el certificado raíz de AWS CloudHSM
1. Desplácese hasta el directorio donde guardó el certificado raíz (p. 28) y los archivos del certificado
del HSM (p. 26) que descargó. Los siguientes comandos presuponen que todos los certificados se
encuentran en el directorio actual y utilizan los nombres de archivo predeterminados.
Utilice el siguiente comando para crear una cadena de certificados que incluya el certificado
de hardware de AWS y el certificado raíz de AWS CloudHSM, en ese orden. Sustituya <ID de
clúster> por el ID del clúster que creó anteriormente.
2. Utilice el siguiente comando de OpenSSL para verificar el certificado del HSM con la cadena de
certificados de AWS. Sustituya <ID de clúster> por el ID del clúster que creó anteriormente.
Para verificar el certificado del HSM con el certificado raíz del fabricante
1. Utilice el siguiente comando para crear una cadena de certificados que incluya el certificado
de hardware del fabricante y el certificado raíz del fabricante, en ese orden. Sustituya <ID de
clúster> por el ID del clúster que creó anteriormente.
2. Utilice el siguiente comando de OpenSSL para verificar el certificado del HSM con la cadena de
certificados del fabricante. Sustituya <ID de clúster> por el ID del clúster que creó anteriormente.
Para comparar las claves públicas, utilice el shell de Linux. Necesita OpenSSL, que está disponible en la
mayoría de los shells de Linux, pero no necesita la AWS CLI para este paso. No es necesario asociar el
shell a su cuenta de AWS.
29
AWS CloudHSM Guía del usuario
Certificado raíz de AWS CloudHSM
1. Utilice el siguiente comando para extraer la clave pública del certificado del HSM.
2. Utilice el siguiente comando para extraer la clave pública de la CSR del clúster.
3. Utilice el siguiente comando para comparar las claves públicas. Si las claves públicas son idénticas, el
siguiente comando no devuelve ningún resultado.
Después de verificar la identidad y autenticidad del HSM, continúe con Inicialización del clúster (p. 31).
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 17952736724058547791 (0xf924eeeecf9ea64f)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US,
ST=Virginia,
L=Herndon,
O=Amazon Web Services INC.,
OU=CloudHSM,
CN=AWS CloudHSM Root G1
Validity
Not Before: Apr 28 08:37:46 2017 GMT
Not After : Apr 26 08:37:46 2027 GMT
Subject: C=US,
ST=Virginia,
L=Herndon,
O=Amazon Web Services INC.,
OU=CloudHSM,
CN=AWS CloudHSM Root G1
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:c8:e3:f6:2a:e0:1f:1e:66:73:00:1e:57:dc:3e:
69:f1:9b:73:73:24:58:60:85:80:45:99:a2:85:3f:
e7:f9:67:41:9f:39:d2:e8:e1:88:ec:18:07:5c:38:
98:25:5a:45:5f:1f:c4:60:0e:29:e4:ac:65:f0:b6:
92:83:34:62:1a:e7:c6:ae:0f:40:66:52:bb:0b:6a:
c6:78:27:57:d6:32:3b:6c:0a:83:7d:a7:e9:a1:6c:
10:46:27:74:2c:6e:86:3a:fd:71:18:1f:84:8e:00:
84:bb:00:dc:57:d8:48:94:5c:13:7a:ff:3b:37:52:
60:cd:5a:64:57:35:95:df:67:68:39:e2:f9:85:ad:
59:ee:a6:9a:97:75:35:f4:e1:32:08:d3:0e:2f:bc:
33:04:f3:34:e8:c9:b5:18:fd:69:83:e0:b7:5a:b4:
3f:ce:1c:2f:b5:1e:0f:4f:15:f0:27:00:23:67:d5:
b8:2c:cb:d6:ef:eb:34:25:80:28:33:fa:e6:3a:31:
30
AWS CloudHSM Guía del usuario
Inicialización del clúster
58:7a:0b:fd:4f:6d:d3:1c:64:10:47:8c:4f:ab:e3:
61:0c:a2:a9:0b:2d:e6:59:f4:1c:2c:92:2a:a4:f9:
a4:83:21:3a:66:dc:c7:75:06:15:fe:83:9d:f8:25:
7f:3b:66:e8:aa:9f:d1:e5:ba:1d:5a:c5:2e:21:ee:
52:61
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
27:00:6B:50:D5:4F:38:8A:35:21:38:D3:0D:A9:5E:D2:10:39:A4:EB
X509v3 Authority Key Identifier:
keyid:27:00:6B:50:D5:4F:38:8A:35:21:38:D3:0D:A9:5E:D2:10:39:A4:EB
Antes de inicializar el clúster, revise el proceso mediante el cual se puede verificar la identidad
y autenticidad de los HSM (p. 23). Este proceso es opcional y solo funciona hasta que se
inicializa un clúster. Una vez que se inicializa el clúster, no puede utilizar este proceso para
obtener sus certificados o verificar los HSM.
Temas
• Obtener el CSR del clúster (p. 31)
• Firmar la CSR (p. 33)
• Inicializar el clúster (p. 34)
31
AWS CloudHSM Guía del usuario
Obtener el CSR del clúster
32
AWS CloudHSM Guía del usuario
Firmar la CSR
Firmar la CSR
Actualmente, debe crear un certificado de firma autofirmado y utilizarlo para firmar la CSR del clúster. No
necesita la AWS CLI de este paso y no es necesario asociar el shell a la cuenta de AWS. Para firmar la
CSR, haga lo siguiente:
Durante las fases de desarrollo y pruebas, puede utilizar cualquier herramienta adecuada (como OpenSSL)
para crear y firmar el certificado del clúster. En el ejemplo siguiente se muestra cómo crear una clave.
Cuando haya utilizado la clave para crear un certificado autofirmado (vea el procedimiento a continuación),
debe guardarla de forma segura. Para iniciar sesión en la instancia de AWS CloudHSM, es necesario que
el certificado esté disponible, pero no la clave privada. La clave solo se utiliza para fines específicos como,
por ejemplo, la restauración a partir de una copia de seguridad.
$ openssl req -new -x509 -days 3652 -key customerCA.key -out customerCA.crt
Enter pass phrase for customerCA.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
33
AWS CloudHSM Guía del usuario
Inicializar el clúster
Este comando crea un archivo de certificado denominado customerCA.crt. Ponga este certificado en
cada uno de los hosts desde los que se va a conectar al clúster de AWS CloudHSM. Si asigna otro nombre
al archivo o lo almacenarla en una ruta distinta de la raíz del host, debe editar el archivo de configuración
del cliente según sea necesario. Utilice el certificado y la clave privada que acaba de crear para firmar la
solicitud de firma de certificado (CSR) del clúster en el paso siguiente.
Inicializar el clúster
Use el certificado HSM firmado y su certificado de firma para inicializar el clúster. Puede utilizar la consola
de AWS CloudHSM, la AWS CLI o la API de AWS CloudHSM.
a. Junto a Cluster certificate, elija Upload file. A continuación, localice y seleccione el certificado
del HSM que firmó anteriormente. Si ha realizado los pasos de la sección anterior, seleccione el
archivo <cluster ID>_CustomerHsmCertificate.crt.
34
AWS CloudHSM Guía del usuario
Instalar el cliente (Linux)
b. Junto a Issuing certificate, elija Upload file. A continuación, seleccione el certificado de firma. Si ha
realizado los pasos de la sección anterior, seleccione el archivo customerCA.crt.
c. Elija Upload and initialize.
Tareas
• Instalación del cliente y las herramientas de línea de comandos de AWS CloudHSM (p. 35)
• Editar la configuración del cliente (p. 37)
35
AWS CloudHSM Guía del usuario
Instalación del cliente y las herramientas
de línea de comandos de AWS CloudHSM
Amazon Linux
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
latest.el6.x86_64.rpm
Amazon Linux 2
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
latest.el7.x86_64.rpm
CentOS 6
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
latest.el6.x86_64.rpm
CentOS 7
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
latest.el7.x86_64.rpm
RHEL 6
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
latest.el6.x86_64.rpm
RHEL 7
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
latest.el7.x86_64.rpm
36
AWS CloudHSM Guía del usuario
Editar la configuración del cliente
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-
client_latest_amd64.deb
1. Copie el certificado de emisión —el que utilizó para firmar el certificado del clúster (p. 33)— en la
siguiente ubicación de la instancia del cliente: /opt/cloudhsm/etc/customerCA.crt. Necesita
permisos de usuario raíz en la instancia de cliente para copiar el certificado en esta ubicación.
2. Utilice el siguiente comando configure (p. 218) para actualizar los archivos de configuración del
cliente y las herramientas de línea de comandos de AWS CloudHSM, especificando la dirección
IP del HSM del clúster. Para obtener la dirección IP del HSM, vea el clúster en la consola de AWS
CloudHSM o ejecute el comando AWS CLI de describe-clusters. En la salida del comando, la dirección
IP del HSM es el valor del campo EniIp. Si tiene más de un HSM, elija la dirección IP de cualquiera
de ellos; no importa el que elija.
Para instalar (o actualizar) el cliente y las herramientas de línea de comandos más recientes
Para las versiones 1.1.2 y posteriores, el software de cliente de AWS CloudHSM para
Windows se ejecuta como un servicio de Windows. Para obtener más información, consulte el
historial de versiones del cliente (p. 381).
3. Vaya a la ubicación de descarga y ejecute el instalador AWSCloudHSMClient-latest.msi. Siga las
instrucciones del instalador.
37
AWS CloudHSM Guía del usuario
Instalación del cliente de (Windows)
Important
• cloudhsm_client.exe
• cloudhsm_mgmt_util.exe
• cng_config.exe
• configure.exe
• import_key.exe
Note
• client.crt
• client.key
• application.cfg
• cloudhsm_client.cfg
• cloudhsm_mgmt_util.cfg
Note
Para activar el clúster, inicie sesión en el HSM con las credenciales del usuario responsable de criptografía
previa (PRECO) (p. 10). Es un usuario temporal que solo existe en el primer HSM de un clúster de
AWS CloudHSM. El primer HSM de un nuevo clúster contiene un usuario PRECO predeterminado con
un nombre de usuario y contraseña predeterminados. Al cambiar la contraseña, el usuario PRECO se
convierte en un responsable de criptografía (CO).
1. Establezca conexión con la instancia cliente que lanzó anteriormente. Para obtener más información,
consulte Lanzamiento una instancia de cliente de Amazon EC2 (p. 20). Puede lanzar una instancia
de Linux o Windows Server.
2. Use el siguiente comando para iniciar la utilidad de la línea de comandos cloudhsm_mgmt_util.
Note
Si está utilizando una AMI que usa Amazon Linux 2, consulte Problemas conocidos para las
instancias Amazon EC2 que ejecutan Amazon Linux 2 (p. 366).
Amazon Linux
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
Ubuntu
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
Windows
aws-cloudhsm>enable_e2e
aws-cloudhsm>listUsers
Users on server 0(server1):
Number of users found:2
39
AWS CloudHSM Guía del usuario
Reconfigurar SSL (opcional)
2 AU app_user NO
0 NO
5. Utilice el comando loginHSM para iniciar sesión en el HSM como usuario PRECO. Es un usuario
temporal que existe en el primer HSM de su clúster.
6. Utilice el comando changePswd para cambiar la contraseña del usuario PRECO. Al cambiar la
contraseña, el usuario PRECO se convierte en un responsable de criptografía (CO).
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. Cav server does NOT synchronize these changes with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************
Le recomendamos que anote la contraseña nueva en una hoja de cálculo de contraseñas. No pierda
la hoja de cálculo. Le recomendamos que imprima una copia de la hoja de cálculo de contraseñas,
que utilice dicha hoja para registrar las contraseñas de HSM de importancia fundamental y que
después la guarde en un lugar seguro. También es conveniente que guarde una copia de esta hoja de
cálculo en un lugar seguro fuera de las instalaciones.
7. (Opcional) Utilice el comando listUsers para verificar que el tipo de usuario ha cambiado a responsable
de criptografía (CO) (p. 11).
aws-cloudhsm>listUsers
Users on server 0(server1):
Number of users found:2
aws-cloudhsm>quit
40
AWS CloudHSM Guía del usuario
Reconfigurar SSL (opcional)
los suyos. Tenga en cuenta que necesitará el certificado autofirmado (customerCA.crt) que creó al
inicializar (p. 33) el clúster.
2. Utilice el siguiente comando de OpenSSL para crear una solicitud de firma de certificado (CSR). Se le
harán varias preguntas sobre su certificado.
4. Copie la clave y el certificado en el directorio adecuado. En Linux, utilice los siguientes comandos. La
opción configure --ssl está disponible con la versión 1.0.14 del cliente de AWS CloudHSM.
41
AWS CloudHSM Guía del usuario
Prácticas recomendadas
5. Agregue el certificado customerCA.crt al almacén de confianza. Cree un hash del nombre del
firmante del certificado. De este modo se crea un índice que permite que busque el certificado por ese
nombre. Cree un archivo que contenga el certificado con el nombre de hash.
Administración: le recomendamos que cree al menos dos responsables de criptografía (CO) para
administrar el clúster. Antes de configurar la política de cuórum (MofN), debe crear al menos M+1 cuentas
de CO. Elimine las cuentas de CO con precaución. Si se sitúa por debajo del número de cuórum de CO, ya
no podrá administrar el clúster.
Administración: Si un HSM falla, puede experimentar una pérdida de datos irrecuperable. No configuramos
la tolerancia a errores por usted. Usted es responsable de configurar la tolerancia a errores para sus HSM.
Configuración del clúster: en el caso de los clústeres de producción, debe tener al menos dos instancias
de HSM en dos zonas de disponibilidad de una región. Para las cargas de trabajo sensibles a la latencia,
le recomendamos una redundancia de +1. En el caso de las aplicaciones que requieren la durabilidad de
las claves recién generadas, le recomendamos al menos tres instancias de HSM distribuidas en todas las
zonas de disponibilidad de una región.
Capacidad del clúster: debe crear un número suficiente de HSM en el clúster para gestionar la carga de
trabajo. Al decidir el número de HSM que va a crear en un clúster, debe tener en cuenta tanto la capacidad
del registro de auditoría como la capacidad criptográfica.
42
AWS CloudHSM Guía del usuario
Agregar o eliminar HSM
Temas
• Agregar o eliminar HSM en un clúster de AWS CloudHSM (p. 43)
• Copia de una copia de seguridad entre regiones (p. 46)
• Creación un clúster de AWS CloudHSM a partir de una copia de seguridad anterior (p. 47)
• Eliminación y restauración de una copia de seguridad del clúster de AWS CloudHSM (p. 48)
• Eliminación de un clúster de AWS CloudHSM (p. 50)
• Etiquetado de recursos de AWS CloudHSM (p. 50)
Temas
• Agregar un HSM (p. 43)
• Eliminación de un HSM (p. 45)
Agregar un HSM
En la figura siguiente se muestran los eventos que se producen cuando se añade un HSM a un clúster.
43
AWS CloudHSM Guía del usuario
Agregar un HSM
1. Añada un HSM nuevo a un clúster. En los siguientes procedimientos, se explica cómo realizar esta
operación en la consola de AWS CloudHSM, la AWS Command Line Interface(AWS CLI) y la API de
AWS CloudHSM.
Esta es la única acción que lleva a cabo. Los demás eventos se realizan de forma automática.
2. AWS CloudHSM realiza una copia de seguridad de uno de los HSM existentes del clúster. Para obtener
más información, consulte Copias de seguridad (p. 6).
3. AWS CloudHSM restaura la copia de seguridad en el nuevo HSM. Esto garantiza que el HSM esté
sincronizado con los demás HSM del clúster.
4. Los HSM existentes del clúster notifican al cliente de AWS CloudHSM que hay un HSM nuevo en el
clúster.
5. El cliente establece una conexión con el HSM nuevo.
44
AWS CloudHSM Guía del usuario
Eliminación de un HSM
• En el símbolo del sistema, ejecute el comando create-hsm especificando un ID de clúster y una zona
de disponibilidad para el HSM que va a crear. Si no sabe cuál es el ID de su clúster preferido, ejecute
el comando describe-clusters. Especifique la zona de disponibilidad con el formato us-east-2a, us-
east-2b, etc.
• Envíe una solicitud CreateHsm en la que se especifique el ID del clúster y una zona de disponibilidad
para el HSM que está creando.
Eliminación de un HSM
Puede eliminar un HSM utilizando la consola de AWS CloudHSM, la AWS CLI o la API de AWS
CloudHSM.
• En el símbolo del sistema, ejecute el comando delete-hsm. Pase el ID del clúster que contiene el HSM
que está eliminando y uno de los siguientes identificadores de HSM:
45
AWS CloudHSM Guía del usuario
Copia de una copia de seguridad entre regiones
Si no sabe cuáles son los valores de estos identificadores, ejecute el comando describe-clusters.
• Envíe una solicitud DeleteHsm en la que especifique el ID del clúster y un identificador del HSM que
está eliminando.
Puede clonar la copia de seguridad de un clúster entre regiones en la AWS Command Line Interface (AWS
CLI) o la API de AWS CloudHSM. Cuando se ejecuta el comando copy-backup-to-region, la copia de
seguridad clonada aparece en la región de destino con el estado CREATE_IN_PROGRESS. Una vez que su
ejecución finaliza correctamente, el estado de la copia de seguridad copiada es READY.
Para obtener más información sobre cómo crear un clúster a partir de una copia de seguridad, consulte
Creación un clúster de AWS CloudHSM a partir de una copia de seguridad anterior (p. 47).
Important
• Para clonar la copia de seguridad de un clúster en una región de destino, la cuenta debe tener
los permisos de la política de IAM adecuada. Para clonar la copia de seguridad en otra región,
la política de IAM debe permitir el acceso a la región de origen en la que se encuentra la copia
de seguridad. Una vez copiada de una región a otra, la política de IAM debe permitir el acceso
a la región de destino con el fin de interaccionar con la copia de seguridad clonada, lo que
incluye usar la operación CreateCluster. Para obtener más información, consulte Políticas
administradas por el cliente para AWS CloudHSM (p. 15).
• El clúster original y el clúster que puede crearse a partir de una copia de seguridad en la región
de destino no están vinculados. Deberá administrar cada uno de estos clústeres de manera
independiente. Para obtener más información, consulte Administración de clústeres de AWS
CloudHSM (p. 43)
• Las copias de seguridad no se pueden copiar entre las regiones de AWS restringidas y las
regiones estándar. Las copias de seguridad se pueden copiar entre el AWS GovCloud (EE.UU.)
y AWS GovCloud (EE.UU. Oeste).
46
AWS CloudHSM Guía del usuario
Creación de un clúster a partir de una copia de seguridad
Para clonar la copia de seguridad de un clúster en otra región (API de AWS CloudHSM)
Puede restaurar un clúster a partir de una copia de seguridad desde la consola de AWS CloudHSM, la
AWS Command Line Interface (AWS CLI) o la API de AWS CloudHSM.
a. Elija Restore cluster from existing backup (Restaurar clúster a partir de una copia de seguridad ya
existente).
b. Elija la copia de seguridad que está restaurando.
5. Elija Next: Review.
6. Revise la configuración del clúster y, a continuación, elija Create cluster (Crear clúster).
47
AWS CloudHSM Guía del usuario
Eliminación y restauración de una copia de seguridad
Para crear un clúster a partir de una copia de seguridad anterior (AWS CLI)
Para crear un clúster a partir de una copia de seguridad anterior (API de AWS CloudHSM)
• Envíe una solicitud CreateCluster. Especifique el tipo de instancia de HSM, los ID de las subredes
donde piensa crear los HSM y el ID de la copia de seguridad que está restaurando.
Para crear un HSM que contenga los mismos usuarios, material de clave, certificados, configuración y
políticas que estaban en la copia de seguridad que ha restaurado, añada un HSM (p. 43) al clúster.
Es posible que desee eliminar determinados materiales criptográficos del entorno de AWS, como una clave
caducada o un usuario inactivo. Para eliminar estos materiales, primero debe eliminarlos de sus HSM.
Para asegurarse de que la información eliminada no se restaure cuando se inicialice un nuevo clúster con
una copia de seguridad anterior, debe eliminar todas las copias de seguridad existentes del clúster. Para
ello, utilice la AWS Command Line Interface (AWS CLI) o la API de AWS CloudHSM.
Una copia de seguridad debe tener el estado READY para poder eliminarse. Puede comprobar el estado de
una copia de seguridad mediante el comando describe-backups de la AWS CLI o con una llamada a la API
DescribeBackups.
48
AWS CloudHSM Guía del usuario
Eliminación y restauración de una copia de seguridad
1. Para eliminar una copia de seguridad, envíe una solicitud DeleteBackup, especificando el ID de la
copia de seguridad que desea eliminar.
2. Para restaurar una copia de seguridad, envíe una solicitud RestoreBackup, especificando el ID de la
copia de seguridad que desea restaurar.
49
AWS CloudHSM Guía del usuario
Eliminación de un clúster
Después de eliminar todos los HSM, puede eliminar el clúster utilizando la consola de AWS CloudHSM, la
AWS Command Line Interface (AWS CLI) o la API de AWS CloudHSM.
• En el símbolo del sistema ejecute el comando delete-cluster, pasándole el ID del clúster que está
eliminando. Si no sabe cuál es el ID del clúster, ejecute el comando describe-clusters.
• Envíe una solicitud DeleteCluster en la que se especifique el ID del clúster que está eliminando.
Puede usar etiquetas para distintos fines. Uno de los usos habituales es categorizar y realizar el
seguimiento de los costos de AWS. Puede aplicar etiquetas que representen categorías de negocio
50
AWS CloudHSM Guía del usuario
Añadir o actualizar etiquetas
(por ejemplo, centros de costos, nombres de aplicación o propietarios) para estructurar los costos entre
diferentes servicios. Cuando se agregan etiquetas a los recursos de AWS, AWS genera un informe de
asignación de costos con el uso y los costos agregados por etiquetas. Puede usar este informe para ver
los costos de AWS CloudHSM en términos de proyectos o aplicaciones, en vez de ver todos los costos de
AWS CloudHSM como una sola partida.
Para obtener más información sobre el uso de etiquetas para la asignación de costos, consulte Uso de
etiquetas de asignación de costos en la Guía del usuario de AWS Billing and Cost Management.
Puede utilizar la consola de AWS CloudHSM o uno de los SDK o herramientas de línea de comandos de
AWS para añadir, actualizar, generar una lista o quitar etiquetas.
Temas
• Añadir o actualizar etiquetas (p. 51)
• Visualización de etiquetas (p. 52)
• Eliminación de etiquetas (p. 52)
a. Seleccione Edit Tag (Editar etiqueta) y, a continuación, Add Tag (Añadir etiqueta).
b. En Tag Key (Clave de etiqueta), escriba una clave para la etiqueta.
c. (Opcional) En Value (Valor), escriba un valor para la etiqueta.
d. Seleccione Save.
5. Para actualizar una etiqueta, haga lo siguiente:
1. En el símbolo del sistema, ejecute el comando tag-resource especificando las etiquetas y el ID del
clúster que está etiquetando. Si no sabe cuál es el ID del clúster, ejecute el comando describe-
clusters.
51
AWS CloudHSM Guía del usuario
Visualización de etiquetas
2. Para actualizar etiquetas, utilice el mismo comando, pero especifique una clave de etiqueta ya
existente. Cuando especifique un valor de etiqueta nuevo para una etiqueta ya existente, la etiqueta se
sobrescribe con el nuevo valor.
• Envíe una solicitud TagResource. Especifique las etiquetas y el ID del clúster que está etiquetando.
Visualización de etiquetas
Puede mostrar las etiquetas de un clúster en la consola de AWS CloudHSM, la AWS CLI o la API de AWS
CloudHSM.
• En el símbolo del sistema ejecute, el comando list-tags especificando el ID del clúster cuyas etiquetas
quiere mostrar. Si no sabe cuál es el ID del clúster, ejecute el comando describe-clusters.
• Envía una solicitud de ListTags en la que se especifique el ID del clúster cuyas etiquetas quiere
mostrar.
Eliminación de etiquetas
Puede eliminar las etiquetas de un clúster utilizando la consola de AWS CloudHSM, la AWS CLI o la API
de AWS CloudHSM.
52
AWS CloudHSM Guía del usuario
Eliminación de etiquetas
• En el símbolo del sistema, ejecute el comando untag-resource especificando las claves de etiqueta de
las etiquetas que está eliminando y el ID del clúster cuyas etiquetas está eliminando. Cuando utilice la
AWS CLI para eliminar etiquetas, especifique solo las claves de las etiquetas y no sus valores.
• Envíe una solicitud de UntagResource en la API de AWS CloudHSM, especificando el ID del clúster y
las etiquetas que va a eliminar.
53
AWS CloudHSM Guía del usuario
Administración de usuarios de HSM
Temas
• Administración de usuarios de HSM en AWS CloudHSM (p. 54)
• Administración de claves en AWS CloudHSM (p. 57)
• Aplicación de la autenticación de cuórum (control de acceso M de N) (p. 67)
Para administrar usuarios de HSM, inicie sesión en el HSM con el nombre de usuario y la contraseña
de un responsable de criptografía (p. 11) (CO). Solo los CO pueden administrar otros usuarios. El HSM
contiene un CO predeterminado llamado admin. La contraseña de este usuario se establece al activar el
clúster (p. 39).
Temas
• Crear usuarios (p. 54)
• Enumerar usuarios (p. 55)
• Cambiar la contraseña de un usuario (p. 56)
• Eliminar usuarios (p. 56)
Crear usuarios
Utilice el comando createUser (p. 94) para crear un usuario en el HSM. Los siguientes ejemplos crean
nuevos usuarios CO y CU, respectivamente. Para obtener información sobre los tipos de usuario, consulte
Usuarios de HSM (p. 10).
54
AWS CloudHSM Guía del usuario
Enumerar usuarios
A continuación se muestra la sintaxis del comando createUser (p. 94). En los comandos de
cloudhsm_mgmt_util, los tipos de usuario y las contraseñas distinguen entre mayúsculas y minúsculas,
pero los nombres de usuario, no.
Enumerar usuarios
Utilice el comando listUsers (p. 114) para enumerar los usuarios de cada HSM del clúster. Todos los
tipos de usuarios de HSM (p. 10) pueden utilizar este comando, ya que no está restringido únicamente a
los CO.
El PCO es el primer ("principal") CO creado en cada HSM. Tiene los mismos permisos en el HSM que
cualquier otro CO.
aws-cloudhsm>listUsers
Users on server 0(10.0.2.9):
Number of users found:4
55
AWS CloudHSM Guía del usuario
Cambiar la contraseña de un usuario
1 PCO admin NO
0 NO
2 AU app_user NO
0 NO
3 CO example_officer NO
0 NO
4 CU example_user NO
0 NO
A continuación, se muestra la sintaxis del comando changePswd. En los tipos de usuario y las contraseñas
se distingue entre mayúsculas y minúsculas, pero no en los nombres de usuario.
Warning
El CO no puede cambiar la contraseña de un usuario (CO o CU) que ya ha iniciado sesión.
Eliminar usuarios
Ejecute el comando deleteUser para eliminar un usuario. En los siguientes ejemplos se eliminan los
usuarios CO y CU creados en los ejemplos de Crear usuarios (p. 54).
aws-cloudhsm>deleteUser CO example_officer
Deleting user example_officer(CO) on 3 nodes
deleteUser success on server 0(10.0.2.9)
deleteUser success on server 1(10.0.3.11)
deleteUser success on server 2(10.0.1.12)
56
AWS CloudHSM Guía del usuario
Administración de claves
aws-cloudhsm>deleteUser CU example_user
Deleting user example_user(CU) on 3 nodes
deleteUser success on server 0(10.0.2.9)
deleteUser success on server 1(10.0.3.11)
deleteUser success on server 2(10.0.1.12)
Warning
La eliminación de un usuario CU dejará huérfanas todas las claves propiedad de dicho CU y estas
quedarán inservibles. No recibirá ninguna advertencia que el usuario que está a punto de eliminar
aún tiene claves de su propiedad en el clúster.
Para administrar las claves, inicie sesión en el HSM (p. 131) con el nombre de usuario y la contraseña de
un usuario de criptografía (CU). Solo los usuarios de criptografía pueden crear claves. El CU que creó las
claves es su propietario inherente y las administra.
Temas
• Generar claves (p. 57)
• Importar claves (p. 58)
• Exportar claves (p. 60)
• Eliminar claves (p. 61)
• Compartir y dejar de compartir claves (p. 61)
• Usar claves de confianza para controlar el desencapsulamiento de claves (p. 62)
• Encapsulamiento de claves AES en AWS CloudHSM con arreglo a la conformidad normativa (p. 64)
Generar claves
Para generar claves en el HSM, utilice el comando que corresponde al tipo de clave que desea generar.
57
AWS CloudHSM Guía del usuario
Importar claves
En el ejemplo siguiente se genera un par de claves ECC con la curva elíptica P-384 definida en la
publicación de NIST FIPS 186-4.
Importar claves
Para importar claves secretas (es decir, claves simétricas y claves privadas asimétricas) en el HSM,
primero debe crear un clave de encapsulación en el HSM. Puede importar claves públicas directamente sin
una clave de encapsulamiento.
En este ejemplo se muestra cómo importar una clave secreta sin cifrar desde un archivo hasta el HSM.
Para importar una clave cifrada desde un archivo hasta el HSM, utilice comando unWrapKey (p. 204).
58
AWS CloudHSM Guía del usuario
Importar claves
1. Utilice el comando genSymKey (p. 167) para crear una clave de encapsulamiento. El siguiente
comando crea una clave de encapsulamiento AES de 128 bits que solo es válida durante la sesión
actual. Puede utilizar una clave de sesión o una clave persistente como clave de encapsulación.
2. Utilice uno de los siguientes comandos, en función del tipo de clave secreta que va a importar.
• Para importar una clave simétrica, utilice el comando imSymKey. El siguiente comando importa una
clave AES de un archivo denominado aes256.key utilizando la clave de encapsulamiento creada
en el paso anterior. Para ver todas las opciones disponibles, utilice el comando imSymKey -h.
• Para importar una clave privada asimétrica, utilice el comando importPrivateKey. El siguiente
comando importa una clave privada de un archivo denominado rsa2048.key utilizando la clave
de encapsulamiento creada en el paso anterior. Para ver todas las opciones disponibles, utilice el
comando importPrivateKey -h.
59
AWS CloudHSM Guía del usuario
Exportar claves
El siguiente ejemplo importa una clave pública RSA de un archivo denominado rsa2048.pub.
Exportar claves
Para exportar claves secretas (es decir, claves simétricas y claves privadas asimétricas) desde el HSM,
primero debe crear un clave de encapsulado. Puede exportar claves públicas directamente sin una clave
de encapsulamiento.
Solo el propietario de la clave puede exportarla. Los usuarios con los que se comparte la clave pueden
utilizarla en operaciones criptográficas, pero no pueden exportarla. Cuando ejecute este ejemplo,
asegúrese de que exporta una clave que haya creado.
Important
El comando exSymKey (p. 143) escribe una copia sin cifrar de la clave secreta en un archivo. El
proceso de exportación requiere una clave de encapsulación, pero la clave que hay en el archivo
no es una clave encapsulada. Para exportar una copia encapsulada (cifrada) de una clave, utilice
el comando wrapKey (p. 211).
1. Utilice el comando genSymKey (p. 167) para crear una clave de encapsulamiento. El siguiente
comando crea una clave de encapsulamiento AES de 128 bits que solo es válida durante la sesión
actual.
2. Utilice uno de los siguientes comandos, en función del tipo de clave secreta que va a exportar.
• Para exportar una clave simétrica, utilice el comando exSymKey (p. 143). El siguiente ejemplo
exporta una clave AES a un archivo denominado aes256.key.exp. Para ver todas las opciones
disponibles, utilice el comando exSymKey -h.
60
AWS CloudHSM Guía del usuario
Eliminar claves
Note
La salida del comando indica que se ha escrito una "Wrapped Symmetric Key" (clave
simétrica encapsulada) en el archivo de salida. Sin embargo, el archivo de salida contiene
una clave sin cifrar (sin encapsular). Para exportar una clave encapsulada (cifrada) a un
archivo, utilice el comando wrapKey (p. 211).
• Para exportar una clave privada, utilice el comando exportPrivateKey. El siguiente comando exporta
una clave privada a un archivo denominado rsa2048.key.exp. Para ver todas las opciones
disponibles, utilice el comando exportPrivateKey -h.
El siguiente ejemplo exporta una clave pública RSA a un archivo denominado rsa2048.pub.exp.
Eliminar claves
Utilice el comando deleteKey (p. 137) para eliminar una clave, como en el siguiente ejemplo. Solo el
propietario de la clave puede eliminar una clave.
Puede compartir claves con otros usuarios CU cuando crea la clave, por ejemplo, utilizando el parámetro -
u de los comandos genSymKey (p. 167) o genRSAKeyPair (p. 162). Para compartir claves existentes
61
AWS CloudHSM Guía del usuario
Usar claves de confianza para controlar
el desencapsulamiento de claves
con otro usuario del HSM, utilice la herramienta de línea de comandos cloudhsm_mgmt_util (p. 81). Este
proceso es distinto de la mayoría de las tareas documentadas en esta sección, que utilizan la herramienta
de línea de comandos key_mgmt_util (p. 129).
Para poder compartir una clave, debe iniciar cloudhsm_mgmt_util, habilitar el cifrado integral e iniciar
sesión en los HSM. Para compartir una clave, inicie sesión en el HSM como el usuario de criptografía (CU)
que posee la clave. Solo los propietarios de clave pueden compartir una clave.
Utilice el comando shareKey para compartir o dejar de compartir una clave especificando el identificador de
la clave y el ID del usuario o usuarios. Para compartir o dejar de compartir con varios usuarios, especifique
una lista separada por comas de ID de usuario. Para compartir una clave, utilice 1 como último parámetro
del comando, como se muestra en el siguiente ejemplo. Para dejar de compartirla, utilice 0.
aws-cloudhsm>shareKey 524295 4 1
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. Cav server does NOT synchronize these changes with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************
aws-cloudhsm>shareKey <key handle> <user ID> <Boolean: 1 for share, 0 for unshare>
La primera solución es bloquear todas las exportaciones de claves del clúster. Esta solución tiene
limitaciones porque restringir las exportaciones de claves afecta de forma negativa a las aplicaciones que
necesitan exportar e importar claves de datos. Sin embargo, una solución más flexible es usar una plantilla
de desencapsulamiento de claves junto con la clave de confianza y los atributos de encapsulamiento
con entidades de confianza. AWS CloudHSM 3.0 y superior admite claves de confianza y plantillas de
desencapsulamiento. En este artículo se explica cómo utilizar una plantilla de desencapsulamiento de
claves junto con la clave de confianza y los atributos de encapsulamiento con entidades de confianza.
Introducción
Un atributo clave es una propiedad asociada a la clave, dentro del HSM, que especifica los permisos
asociados a la clave. Si quiere .
62
AWS CloudHSM Guía del usuario
Usar claves de confianza para controlar
el desencapsulamiento de claves
Para obtener más información acerca de los atributos PKCS#11 admitidos por AWS CloudHSM, consulte
el artículo sobre Atributos PKCS#11 admitidos.
Procesar
Paso 1: Generar la clave en bits para la clave de confianza
Para configurar una clave de confianza, un agente de seguridad humano establece una cuenta
de usuario criptográfico (CU) y genera las claves de encapsulamiento con la especificación
CKA_UNWRAP_TEMPLATE apropiada. Generalmente, debe incluir CKA_WRAP_WITH_TRUSTED
= TRUE como parte de esta plantilla. Si desea que las claves no encapsuladas no sean exportables,
establezca CKA_EXPORTABLE = FALSE. Para generar la clave, debe utilizar una aplicación PKCS#11.
Las herramientas de línea de comandos no admiten atributos avanzados.
El agente de seguridad humano inicia sesión en cloudhsm_mgmt_util con una cuenta de responsable
de criptografía (CO). Para marcar la clave como de confianza, llame a setAttribute con
OBJ_ATTR_TRUSTED (valor 134) establecido en TRUE. Para obtener más información sobre la función
setAttribute, consulte el artículo sobre setAttribute
El agente de seguridad humano inicia sesión con la cuenta de CU y utiliza la función shareKey para
compartir las claves de encapsulamiento de confianza con las cuentas de CU que utilizarán las
aplicaciones. A continuación, la cuenta de CU de la aplicación puede utilizar las claves de confianza para
encapsular y desencapsular claves de datos. Sin embargo, los usuarios no pueden modificar atributos para
claves compartidas con ellos, y las cuentas de usuario criptográficas no se pueden utilizar para modificar el
atributo CKA_TRUSTED de la clave. Una vez hecho esto, el responsable de seguridad puede estar seguro
de que las claves de encapsulamiento de confianza permanecerán correctas.
Mediante su cuenta de CU, el responsable de seguridad importa o genera todas las claves de datos y
las encapsula con la clave de encapsulamiento de confianza. Las claves encapsuladas se almacenan
externamente, según sea necesario. Dado que las claves de datos solo se pueden desencapsular con
las claves de encapsulamiento originales, se debe aplicar la plantilla adecuada al desencapsularlas.
Una aplicación puede desencapsular las claves bajo demanda según sea necesario y eliminar la clave
desencapsulada del HSM una vez que esta ya no sea necesaria.
63
AWS CloudHSM Guía del usuario
Encapsulamiento de claves AES
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
64
AWS CloudHSM Guía del usuario
Encapsulamiento de claves AES
los algoritmos admitidos y detalles relacionados para ayudarle a elegir un mecanismo de encapsulamiento
adecuado para su aplicación.
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. (p. 66)
Important
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.
65
AWS CloudHSM Guía del usuario
Encapsulamiento de claves AES
• En la biblioteca PCKS #11 (p. 224), seleccione el mecanismo apropiado para las funciones
C_UnWrapKey y C_WrapKey, tal y como se muestra en la siguiente tabla.
• En la biblioteca Java (p. 251), seleccione el algoritmo, el modo y la combinación de relleno que sean
apropiados, implementando los métodos de cifrado Cipher.WRAP_MODE y Cipher.UNWRAP_MODE, tal
y como se muestra en la siguiente tabla.
• En key_mgmt_util (KMU) (p. 129), utilice los comandos wrapKey y unWrapKey con los valores m
apropiados, tal y como se muestra en la siguiente tabla.
Encapsulamiento de • CKM_AES_KEY_WRAP_PAD
AESWrap/ECB/ m=6
claves AES con relleno ZeroPadding
de ceros
Encapsulamiento de • CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD
AESWrap/ECB/ m=5
claves AES sin relleno (mecanismo definido NoPadding
por el proveedor)
1
Encapsulamiento de • CKM_AES_KEY_WRAP AESWrap/ECB/ m=4
claves AES con relleno PKCS5Padding
• CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD
PKCS #5 (mecanismo definido
por el proveedor)
1
El mecanismo CKM_AES_KEY_WRAP no cumple la especificación PKCS #11 2.40. Para obtener más información, consulte el primer problema
conocido que se describe en Problemas conocidos para todas las instancias de HSM (p. 364).
66
AWS CloudHSM Guía del usuario
Autenticación de cuórum (M de N)
• Administración de los usuarios del HSM por parte de los responsables de criptografía (CO) (p. 11):
crear y eliminar usuarios de HSM y cambiar la contraseña de otro usuario del HSM. Para obtener más
información, consulte Uso de la autenticación de cuórum para responsables de criptografía (p. 72).
Los siguientes temas contienen más información acerca de la autenticación de cuórum en AWS
CloudHSM.
Temas
• Información general sobre la autenticación de cuórum (p. 67)
• Detalles adicionales sobre la autenticación de cuórum (p. 68)
• Uso de la autenticación de cuórum para responsables de criptografía: primera configuración (p. 68)
• Uso de la autenticación de cuórum para responsables de criptografía (p. 72)
• Cambiar el valor mínimo de cuórum para responsables de criptografía (p. 78)
1. Cada usuario del HSM crea una clave asimétrica para la firma. El usuario efectúa esta operación fuera
del HSM y se encarga de proteger adecuadamente la clave.
2. Cada usuario del HSM inicia sesión en el HSM y registra la parte pública de su clave de firma (la clave
pública) en el HSM.
3. Cuando un usuario del HSM quiere realizar una operación controlada mediante cuórum, inicia sesión en
el HSM y obtiene un token de cuórum.
4. El usuario del HSM pasa el token de cuórum a uno o varios usuarios de ese HSM y les pide su
aprobación.
5. Los otros usuarios del HSM dan su aprobación utilizando sus claves para firmar criptográficamente el
token de cuórum. Esto se produce fuera del HSM.
6. Cuando el usuario del HSM tiene el número necesario de aprobaciones, inicia sesión en el HSM y pasa
el token de cuórum y las aprobaciones (firmas) al HSM.
7. El HSM utiliza las claves públicas registradas de cada firmante para verificar las firmas. Si las firmas son
válidas, el HSM aprueba el token.
8. Ahora el usuario del HSM ya puede realizar la operación controlada mediante cuórum.
67
AWS CloudHSM Guía del usuario
Detalles adicionales sobre la autenticación de cuórum
• Un usuario del HSM puede firmar su propio token de cuórum; es decir, el usuario solicitante puede
proporcionar una o varias de las aprobaciones exigidas para la autenticación de cuórum.
• Elija el número mínimo de aprobadores de cuórum para las operaciones controladas mediante cuórum.
El número mínimo que puede elegir es dos (2). Para las operaciones de administración de usuarios de
HSM realizadas por CO, el mayor número que puede elegir es veinte (20).
• El HSM puede almacenar hasta 1024 tokens de cuórum. Si el HSM ya tiene 1024 tokens cuando intenta
crear uno nuevo, el HSM eliminará uno de los tokens que haya caducado. De forma predeterminada, los
tokens caducan diez minutos después de su creación.
Temas
• Requisitos previos (p. 68)
• Crear y registrar una clave de firma (p. 69)
• Establecer el valor mínimo de cuórum en el HSM (p. 71)
Requisitos previos
Para comprender este ejemplo, debe estar familiarizado con la herramientas de línea de
comandoscloudhsm_mgmt_util (p. 81). En este ejemplo, el clúster de AWS CloudHSM tiene dos HSM,
cada uno de ellos con el mismo CO, tal y como se muestra en el siguiente resultado del comando listUsers.
Para obtener más información sobre la creación de usuarios, consulte Administración de usuarios de
HSM (p. 54).
aws-cloudhsm>listUsers
Users on server 0(10.0.2.14):
Number of users found:7
68
AWS CloudHSM Guía del usuario
Primera configuración para responsables de criptografía
7 CO officer5 NO
0 NO
Users on server 1(10.0.1.4):
Number of users found:7
Hay muchas formas de crear y proteger una clave de firma personal. El siguiente ejemplo muestra cómo
hacerlo con OpenSSL.
El siguiente ejemplo ilustra cómo utilizar OpenSSL para crear una clave RSA de 2048 bits que está
protegida por una frase de contraseña. Para utilizar este ejemplo, sustituya officer1.key por el nombre
del archivo donde desea almacenar la clave.
Después de crear una clave, el CO debe registrar la parte pública de la clave (la clave pública) en el HSM.
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
69
AWS CloudHSM Guía del usuario
Primera configuración para responsables de criptografía
• key_match_string: una cadena arbitraria que se utiliza para establecer correspondencias entre las
claves públicas y privadas. Puede utilizar cualquier cadena para este valor. La herramienta de línea de
comandos cloudhsm_mgmt_util cifra esta cadena con la clave privada y después envía el blob de cifrado
y la cadena de texto no cifrado al HSM. El HSM utiliza la clave pública para descifrar el blob cifrado y, a
continuación, compara la cadena descifrada con la cadena de texto no cifrado. Si las cadenas coinciden,
el HSM registra la clave pública; de lo contrario, no lo hace.
• officer1: nombre de usuario del CO que está registrando la clave pública. Debe ser el mismo CO que
ha iniciado sesión en el HSM y está ejecutando este comando.
• officer1.key: nombre del archivo que contiene la clave del CO. Este archivo debe contener la clave
completa (y no solo la parte pública), ya que la herramienta de línea de comandos cloudhsm_mgmt_util
utiliza la clave privada para cifrar la cadena de coincidencia de claves.
Cuando se le solicite, escriba la frase de contraseña que protege la clave del CO.
Cada CO debe registrar su clave pública en el HSM. Una vez que todos los CO registran las claves
públicas, el resultado del comando listUsers lo muestra en la columna MofnPubKey, tal y como puede
verse en el siguiente ejemplo.
aws-cloudhsm>listUsers
Users on server 0(10.0.2.14):
Number of users found:7
70
AWS CloudHSM Guía del usuario
Primera configuración para responsables de criptografía
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
Para utilizar el siguiente comando de ejemplo, reemplace el número final (2) por el valor mínimo de cuórum
preferido.
aws-cloudhsm>setMValue 3 2
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. Cav server does NOT synchronize these changes with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************
71
AWS CloudHSM Guía del usuario
Autenticación de cuórum para responsables de criptografía
En el ejemplo anterior, el primer número (3) identifica el servicio de HSM cuyo valor mínimo de cuórum
está estableciendo.
En la siguiente tabla se incluyen los identificadores de servicio de HSM junto con sus nombres,
descripciones y los comandos incluidos en el servicio.
Identificador de servicio Nombre del servicio Descripción del servicio Comandos HSM
Para obtener el valor mínimo de cuórum de un servicio, utilice el comando getMValue, tal y como se
muestra en el siguiente ejemplo.
aws-cloudhsm>getMValue 3
MValue of service 3[USER_MGMT] on server 0 : [2]
MValue of service 3[USER_MGMT] on server 1 : [2]
El resultado del comando getMValue anterior muestra que el valor mínimo de cuórum para las operaciones
de administración de usuarios de HSM (servicio 3) ahora es dos.
Después de completar estos pasos, consulte Uso de la autenticación de cuórum para responsables de
criptografía (p. 72).
72
AWS CloudHSM Guía del usuario
Autenticación de cuórum para responsables de criptografía
****************************************************************
Retry/Ignore/Abort?(R/I/A):A
Para realizar una operación de administración de usuarios de HSM, un CO debe completar las siguientes
tareas:
Si aún no ha configurado el HSM para la autenticación de cuórum para CO, hágalo ahora. Para obtener
más información, consulte Primera configuración para responsables de criptografía (p. 68).
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
Este ejemplo obtiene un token de cuórum para el CO con nombre de usuario officer1 y guarda el token en
un archivo denominado officer1.token. Para utilizar el comando de ejemplo, sustituya estos valores
por los suyos:
• officer1: nombre del CO que está obteniendo el token. Debe ser el mismo CO que ha iniciado sesión
en el HSM y está ejecutando este comando.
• officer1.token: nombre del archivo que se va a utilizar para almacenar el token de cuórum.
En el siguiente comando, 3 identifica el servicio para el que puede utilizar el token que está obteniendo.
En este caso, el token es para las operaciones de administración de usuarios de HSM (servicio 3). Para
obtener más información, consulte Establecer el valor mínimo de cuórum en el HSM (p. 71).
73
AWS CloudHSM Guía del usuario
Autenticación de cuórum para responsables de criptografía
Service:3
Node:1
Key Handle:0
User:officer1
getToken success on server 1(10.0.1.4)
Token:
Id:1
Service:3
Node:0
Key Handle:0
User:officer1
Existen muchas maneras diferentes de firmar el token. El siguiente ejemplo muestra cómo hacerlo con
OpenSSL. Para utilizar otra herramienta de firma, asegúrese de que la herramienta utiliza la clave privada
del CO (clave de firma) para firmar un resumen SHA-256 del token.
En este ejemplo, el CO que tiene el token (officer1) necesita al menos dos aprobaciones. Los
siguientes comandos de ejemplo muestran cómo pueden dos CO utilizar OpenSSL para firmar el token
criptográficamente.
En el primer comando, officer1 firma su propio token. Para utilizar los siguientes comandos de ejemplo,
sustituya estos valores por los suyos:
• officer1.key y officer2.key: nombre del archivo que contiene la clave de firma del CO.
• officer1.token.sig1 y officer1.token.sig2: nombre del archivo que se va a utilizar para
almacenar la firma. Asegúrese de guardar cada firma en un archivo diferente.
• officer1.token: nombre del archivo que contiene el token que el CO está firmando.
1. Cree un archivo de aprobación del token. Para obtener más información, consulte el siguiente ejemplo.
2. Use el siguiente comando para iniciar la utilidad de la línea de comandos cloudhsm_mgmt_util.
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
74
AWS CloudHSM Guía del usuario
Autenticación de cuórum para responsables de criptografía
Example – Crear un archivo de aprobación del token y aprobar el token firmado en el HSM
El archivo de aprobación del token es un archivo de texto en un formato en particular que el HSM necesita.
El archivo contiene información sobre el token, los aprobadores y las firmas de los aprobadores. Se
muestra a continuación un archivo de aprobación del token de ejemplo.
# For "Multi Token File Path", type the path to the file that contains
# the token. You can type the same value for "Token File Path", but
# that's not required. The "Token File Path" line is required in any
# case, regardless of whether you type a value.
Multi Token File Path = officer1.token;
Token File Path = ;
# Approver 1
# Type the approver's type, name, and the path to the file that
# contains the approver's signature.
Approver Type = 2; # 2 for CO, 1 for CU
Approver Name = officer1;
Approval File = officer1.token.sig1;
# Approver 2
# Type the approver's type, name, and the path to the file that
# contains the approver's signature.
Approver Type = 2; # 2 for CO, 1 for CU
Approver Name = officer2;
Approval File = officer1.token.sig2;
Después de crear el archivo de aprobación del token, el CO utiliza la herramienta de línea de comandos
cloudhsm_mgmt_util para iniciar sesión en el HSM. El CO utiliza después el comando approveToken para
aprobar el token, tal y como se muestra en el siguiente ejemplo. Sustituya approval.txt por el nombre
del archivo de aprobación del token.
aws-cloudhsm>approveToken approval.txt
approveToken success on server 0(10.0.2.14)
approveToken success on server 1(10.0.1.4)
Cuando este comando se ejecuta correctamente, el HSM ha aprobado el token de cuórum. Para
comprobar el estado de un token, utilice el comando listTokens, tal y como se muestra en el siguiente
ejemplo. El resultado del comando muestra que el token tiene el número necesario de aprobaciones.
El tiempo de validez del token indica durante cuánto tiempo se garantiza que el token persista en el HSM.
Incluso después de que transcurra el tiempo de validez del token (cero segundos), puede seguir usando el
token.
aws-cloudhsm>listTokens
=====================
Server 0(10.0.2.14)
=====================
75
AWS CloudHSM Guía del usuario
Autenticación de cuórum para responsables de criptografía
=====================
Server 1(10.0.1.4)
=====================
-------- Token - 0 ----------
Token:
Id:1
Service:3
Node:0
Key Handle:0
User:officer1
Token Validity: 506 sec
Required num of approvers : 2
Current num of approvals : 2
Approver-0: officer1
Approver-1: officer2
Num of tokens = 1
listTokens success
Para obtener más información acerca del uso de estos comandos, consulte Administración de usuarios de
HSM (p. 54).
El CO puede utilizar el token para una sola operación. Cuando dicha operación se realiza correctamente,
el token ya no es válido. Para hacer otra operación de administración de usuarios de HSM, el CO tiene que
obtener un token de cuórum nuevo, obtener firmas nuevas de los aprobadores y aprobar el token nuevo en
el HSM.
76
AWS CloudHSM Guía del usuario
Autenticación de cuórum para responsables de criptografía
Una vez que el comando anterior se ejecuta correctamente, otro comando listUsers posterior muestra al
usuario nuevo.
aws-cloudhsm>listUsers
Users on server 0(10.0.2.14):
Number of users found:8
Si el CO intenta realizar otra operación de administración de usuarios de HSM, da error con un error de
autenticación de cuórum, tal y como se muestra en el siguiente ejemplo.
aws-cloudhsm>deleteUser CU user1
Deleting user user1(CU) on 2 nodes
deleteUser failed: RET_MXN_AUTH_FAILED
deleteUser failed on server 0(10.0.2.14)
Retry/rollBack/Ignore?(R/B/I):I
deleteUser failed: RET_MXN_AUTH_FAILED
deleteUser failed on server 1(10.0.1.4)
77
AWS CloudHSM Guía del usuario
Cambiar el valor de cuórum para
responsables de criptografía
Retry/rollBack/Ignore?(R/B/I):I
El comando listTokens muestra que el CO no tiene ningún token aprobado, tal y como puede verse en el
siguiente ejemplo. Para realizar otra operación de administración de usuarios de HSM, el CO tiene que
obtener un token de cuórum nuevo, obtener firmas nuevas de los aprobadores y aprobar el token nuevo en
el HSM.
aws-cloudhsm>listTokens
=====================
Server 0(10.0.2.14)
=====================
Num of tokens = 0
=====================
Server 1(10.0.1.4)
=====================
Num of tokens = 0
listTokens success
Para obtener aprobación de cuórum para cambiar el valor mínimo de cuórum, necesita un token de
cuórum para el comando setMValue (servicio 4). Si necesita obtener un token de cuórum para el comando
setMValue (servicio 4), el valor mínimo de cuórum del servicio 4 debe ser superior a uno. Esto significa que
para poder cambiar el valor mínimo de cuórum para CO (servicio 3), es posible que tenga que cambiar el
valor mínimo de cuórum para el servicio 4.
En la siguiente tabla se incluyen los identificadores de servicio de HSM junto con sus nombres,
descripciones y los comandos incluidos en el servicio.
Identificador de servicio Nombre del servicio Descripción del servicio Comandos HSM
78
AWS CloudHSM Guía del usuario
Cambiar el valor de cuórum para
responsables de criptografía
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
aws-cloudhsm>getMValue 3
MValue of service 3[USER_MGMT] on server 0 : [2]
MValue of service 3[USER_MGMT] on server 1 : [2]
El siguiente comando de ejemplo muestra que el valor mínimo de cuórum para el servicio 4 es actualmente
uno.
aws-cloudhsm>getMValue 4
MValue of service 4[MISC_CO] on server 0 : [1]
MValue of service 4[MISC_CO] on server 1 : [1]
Para cambiar el valor mínimo de cuórum del servicio 4, utilice el comando setMValue y establezca un valor
que sea igual o superior al valor del servicio 3. El siguiente ejemplo establece el valor mínimo de cuórum
para el servicio 4 en dos (2), el mismo valor establecido para el servicio 3.
aws-cloudhsm>setMValue 4 2
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. Cav server does NOT synchronize these changes with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************
El siguiente comando muestra que el valor mínimo de cuórum es ahora dos para el servicio 3 y para el
servicio 4.
aws-cloudhsm>getMValue 3
79
AWS CloudHSM Guía del usuario
Cambiar el valor de cuórum para
responsables de criptografía
aws-cloudhsm>getMValue 4
MValue of service 4[MISC_CO] on server 0 : [2]
MValue of service 4[MISC_CO] on server 1 : [2]
80
AWS CloudHSM Guía del usuario
cloudhsm_mgmt_util
Temas
• cloudhsm_mgmt_util (p. 81)
• key_mgmt_util (p. 129)
• Herramienta de configuración (p. 218)
Las herramientas siguientes obtienen, crean, eliminan y etiquetan HSM y clústeres de AWS
CloudHSM:
• Comandos de CloudHSMv2 de la interfaz de línea de comandos de AWS (AWS CLI). Para utilizar
estos comandos, debe instalar y configurar AWS CLI.
• Cmdlets de HSM2 PowerShell en el módulo AWSPowerShell. Estos cmdlets están disponibles en un
módulo Windows PowerShell y un módulo PowerShell Core multiplataforma.
Administración de usuarios
Administración de claves
Esta herramienta crea, elimina, importa y exporta claves simétricas y pares de claves asimétricos:
• key_mgmt_util (p. 129). Esta herramienta está incluida en el software cliente de AWS CloudHSM.
Herramientas ayudantes
cloudhsm_mgmt_util
La herramienta de línea de comandos cloudhsm_mgmt_util ayuda a los responsables de criptografía a
administrar los usuarios de los HSM. Incluye herramientas que crean, eliminan y enumeran los usuarios, y
cambian las contraseñas de los usuarios.
81
AWS CloudHSM Guía del usuario
Introducción
cloudhsm_mgmt_util también incluye comandos que permiten a los usuarios de criptografía (CU) compartir
claves y obtener y configurar atributos de las claves. Estos comandos complementan a los comandos de
administración de claves de la herramienta de administración de clave principal, key_mgmt_util (p. 129).
Temas
• Introducción a cloudhsm_mgmt_util (p. 82)
• Referencia de comandos de cloudhsm_mgmt_util (p. 88)
Introducción a cloudhsm_mgmt_util
AWS CloudHSM incluye dos herramientas de línea de comandos con el software de cliente de AWS
CloudHSM (p. 35). La herramienta cloudhsm_mgmt_util (p. 88) dispone de comandos para la
administración de usuarios de HSM. La herramienta key_mgmt_util (p. 132) tiene comandos para
administrar las claves. Para comenzar a utilizar la herramienta de línea de comandos cloudhsm_mgmt_util,
complete las siguientes tareas.
Tareas
• Prepararse para ejecutar cloudhsm_mgmt_util (p. 82)
• Uso básico de cloudhsm_mgmt_util (p. 86)
• Uso de cloudhsm_mgmt_util en clústeres clonados (p. 88)
Tareas
• Paso 1: Detener el cliente de AWS CloudHSM (p. 82)
• Paso 2: Actualizar los archivos de configuración de AWS CloudHSM (p. 83)
• Paso 3: Iniciar el cliente de AWS CloudHSM (p. 84)
• Paso 4: Actualizar el archivo de configuración de cloudhsm_mgmt_util (p. 85)
Amazon Linux
Amazon Linux 2
82
AWS CloudHSM Guía del usuario
Introducción
CentOS 6
CentOS 7
RHEL 6
RHEL 7
Windows
Use Ctrl+C en la ventana de comandos desde donde inició el cliente de AWS CloudHSM.
Amazon Linux
Amazon Linux 2
CentOS 6
CentOS 7
RHEL 6
83
AWS CloudHSM Guía del usuario
Introducción
RHEL 7
Windows
Para obtener la dirección IP de la ENI de un HSM del clúster, vaya a la consola de AWS CloudHSM,
elija clusters (clústeres) y seleccione el clúster que desee. También puede utilizar la operación
DescribeClusters, el comando describe-clusters o el cmdlet Get-HSM2Cluster de PowerShell. Escriba una
sola dirección IP de ENI. No importa qué dirección IP de ENI use.
Amazon Linux
Amazon Linux 2
CentOS 6
CentOS 7
RHEL 6
RHEL 7
84
AWS CloudHSM Guía del usuario
Introducción
Windows
Amazon Linux
$ sudo /opt/cloudhsm/bin/configure -m
Amazon Linux 2
$ sudo /opt/cloudhsm/bin/configure -m
CentOS 6
$ sudo /opt/cloudhsm/bin/configure -m
CentOS 7
$ sudo /opt/cloudhsm/bin/configure -m
RHEL 6
$ sudo /opt/cloudhsm/bin/configure -m
RHEL 7
$ sudo /opt/cloudhsm/bin/configure -m
$ sudo /opt/cloudhsm/bin/configure -m
Windows
c:\Program Files\Amazon\CloudHSM>configure.exe -m
Una vez completado este paso, estará preparado para iniciar cloudhsm_mgmt_util. Si añade o elimina un
HSM en algún momento, no olvide repetir este procedimiento antes de usar cloudhsm_mgmt_util.
85
AWS CloudHSM Guía del usuario
Introducción
Tareas
• Iniciar cloudhsm_mgmt_util (p. 86)
• Habilitar el cifrado integral (p. 87)
• Iniciar sesión en los HSM (p. 87)
• Cerrar la sesión de los HSM (p. 87)
• Detener cloudhsm_mgmt_util (p. 88)
Iniciar cloudhsm_mgmt_util
Use el siguiente comando para iniciar cloudhsm_mgmt_util.
Amazon Linux
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
Amazon Linux 2
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
CentOS 6
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
CentOS 7
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
RHEL 6
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
RHEL 7
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
Windows
86
AWS CloudHSM Guía del usuario
Introducción
La salida será parecida a la que se muestra a continuación en función de la cantidad de HSM que tenga.
aws-cloudhsm>enable_e2e
E2E enabled on server 0(10.0.2.9)
E2E enabled on server 1(10.0.3.11)
E2E enabled on server 2(10.0.1.12)
El comando en el siguiente ejemplo inicia sesión como admin que es el responsable de criptografía
(CO) (p. 10) predeterminado. La contraseña de este usuario se establece al activar el clúster (p. 39). La
salida muestra que el comando registró el usuario admin en todos los HSM en el clúster.
Warning
Cuando inicie sesión en la herramienta cloudhsm_mgmt_util, compruebe que las direcciones IP de
ENI en los mensajes de éxito coinciden exactamente con las direcciones IP de ENI de todos los
HSM del clúster. Si no es así, deténgase y ejecute todos los pasos en el procedimiento the section
called “Prepararse para ejecutar cloudhsm_mgmt_util” (p. 82).
Para obtener las direcciones IP de ENI de los HSM del clúster, utilice la operación
DescribeClusters, el comando describe-clusters o el cmdlet Get-HSM2Cluster de PowerShell.
aws-cloudhsm>logoutHSM
87
AWS CloudHSM Guía del usuario
Referencia
Detener cloudhsm_mgmt_util
Utilice el comando quit para detener cloudhsm_mgmt_util.
aws-cloudhsm>quit
Edite syncConfig.cfg para que incluya las direcciones IP de la interfaz de red elástica (ENI) de los dos
HSM que se van a sincronizar. Le recomendamos que especifique primero el HSM de origen, seguido de
los HSM de destino. Para buscar la dirección IP de la ENI de un HSM, consulte Actualizar los archivos de
configuración de AWS CloudHSM (p. 83).
Inicialice cloudhsm_mgmt_util con el nuevo archivo de configuración; para ello, ejecute el siguiente
comando:
Compruebe los mensajes de estado devueltos con el fin de asegurarse de que cloudhsm_mgmt_util
está conectado a todos los HSM y determinar cuál de las direcciones IP de la ENI devueltas corresponde a
cada clúster.
Cuando haya terminado de sincronizar los HSM o los clústeres, inicialice cloudhsm_mgmt_util con el
archivo de configuración original.
Para mostrar una lista de todos los comandos de cloudhsm_mgmt_util, ejecute el comando siguiente:
88
AWS CloudHSM Guía del usuario
Referencia
aws-cloudhsm> help
Note
Utilice la sintaxis como se indica en la documentación. Aunque la ayuda integrada del software
puede proporcionar opciones adicionales, estas no deben considerarse compatibles y no deben
utilizarse en el código de producción.
Para ejecutar un comando, introduzca el nombre del comando o una parte suficiente para distinguirlo de
los nombres de los demás comandos de cloudhsm_mgmt_util.
Por ejemplo, para obtener una lista de los usuarios de los HSM, introduzca listUsers o listU.
aws-cloudhsm> listUsers
aws-cloudhsm> quit
Para obtener ayuda sobre cómo interpretar los atributos de claves, consulte Referencia de los atributos de
claves (p. 214).
89
AWS CloudHSM Guía del usuario
Referencia
listUsers (p. 114) Obtiene los usuarios de cada Todos. No es necesario iniciar
uno de los HSM, su ID y tipo de sesión.
usuario y otros atributos.
changePswd
El comando changePswd de cloudhsm_mgmt_util cambia la contraseña de un usuario existente en los
HSM del clúster.
90
AWS CloudHSM Guía del usuario
Referencia
Cualquier usuario puede cambiar su propia contraseña. Además, los responsables de criptografía (CO y
PCO) pueden cambiar la contraseña de otro CO, usuario de criptografía (CU) o usuario de la aplicación
(AU). No es necesario que escriba la contraseña actual para realizar el cambio.
Note
No puede cambiar la contraseña de un usuario que haya iniciado sesión en el cliente de AWS
CloudHSM o en key_mgmt_util.
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86)
el HSM e iniciar sesión (p. 87) en este. Asegúrese de que inicia sesión con un tipo de cuenta de usuario
que pueda ejecutar los comandos que desea utilizar.
Si añade o elimina algún HSM, actualice los archivos de configuración (p. 82) utilizados por el cliente de
AWS CloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que
realice no se hagan efectivos en todos los HSM del clúster.
Tipo de usuario
Los usuarios siguientes pueden ejecutar este comando.
Sintaxis
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
Ejemplos
Los siguientes ejemplos muestran cómo utilizar changePassword para restablecer la contraseña del
usuario actual o de cualquier otro usuario de los HSM.
Cualquier usuario de los HSM puede utilizar changePswd para cambiar su propia contraseña. Antes de
cambiar la contraseña, utilice info (p. 112) para obtener información sobre cada uno de los HSM del
clúster, incluidos el nombre de usuario y el tipo de usuario del usuario que ha iniciado sesión.
La siguiente salida muestra que Bob ha iniciado sesión como usuario de criptografía (CU).
91
AWS CloudHSM Guía del usuario
Referencia
Para cambiar la contraseña, Bob se ejecuta changePswd seguido del tipo de usuario, el nombre de usuario
y una contraseña nueva.
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. Cav server does NOT synchronize these changes with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************
Debe ser un usuario de tipo CO o PCO para cambiar la contraseña de otro CO, CU o AU en los HSM.
Antes de cambiar la contraseña de otro usuario, utilice el comando info (p. 112) para confirmar que su
tipo de usuario es CO o PCO.
La siguiente salida confirma que Alice, que es un usuario de tipo CO, tiene una sesión iniciada
actualmente.
aws-cloudhsm>info server 0
aws-cloudhsm>info server 1
Alice quiere restablecer la contraseña de otro usuario, John. Antes de cambiar la contraseña, utiliza el
comando listUsers (p. 114) para comprobar el tipo de usuario de John.
aws-cloudhsm> listUsers
Users on server 0(10.1.9.193):
Number of users found:5
92
AWS CloudHSM Guía del usuario
Referencia
3 CU bob NO 0
NO
4 CU alice NO 0
NO
5 CO john NO 0
NO
Users on server 1(10.1.10.7):
Number of users found:5
Para cambiar la contraseña, Alice ejecuta changePswd seguido del tipo de usuario, el nombre de usuario y
la contraseña nueva de John.
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. Cav server does NOT synchronize these changes with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************
Argumentos
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
<user-type>
Especifica el tipo actual de usuario cuya contraseña está cambiando. No se puede utilizar
changePswd para cambiar el tipo de usuario.
Para obtener el tipo de usuario, utilice listUsers (p. 114). Para obtener información detallada sobre
los tipos de usuario en un HSM, consulte Usuarios de HSM (p. 10).
Obligatorio: sí
<user-name>
Especifica el nombre fácil de recordar del usuario. Este parámetro no distingue entre mayúsculas y
minúsculas. No puede utilizar changePswd para cambiar el nombre del usuario.
Obligatorio: sí
93
AWS CloudHSM Guía del usuario
Referencia
<password>
Especifica una contraseña nueva para el usuario. Escriba una cadena de entre 7 y 32 caracteres. Este
valor distingue entre mayúsculas y minúsculas. La contraseña aparece en texto no cifrado cuando la
escribe.
Obligatorio: sí
Temas relacionados
• info (p. 112)
• listUsers (p. 114)
• createUser (p. 94)
• deleteUser (p. 97)
createUser
El comando createUser de cloudhsm_mgmt_util crea un usuario en los HSM. Solo los responsables
de criptografía (CO y PCO) pueden ejecutar este comando. Al crear un usuario, debe especificar el
tipo de usuario (CO o CU), un nombre de usuario y una contraseña. Cuando el comando se ejecuta
correctamente, crea el usuario en todos los HSM en el clúster.
Sin embargo, si configuración del HSM no es exacta, es posible que el usuario no se cree en todos los
HSM. Para añadir el usuario a cualquier HSM en el que falte, utilice los comandos syncUser (p. 127) o
createUser (p. 94) solo en los HSM en los que falte ese usuario. Para evitar errores de configuración,
ejecute la herramienta configure (p. 218) con la opción -m.
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86)
el HSM e iniciar sesión (p. 87) en este. Asegúrese de que inicia sesión con un tipo de cuenta de usuario
que pueda ejecutar los comandos que desea utilizar.
Si añade o elimina algún HSM, actualice los archivos de configuración (p. 82) utilizados por el cliente de
AWS CloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que
realice no se hagan efectivos en todos los HSM del clúster.
Tipo de usuario
Los tipos de usuarios siguientes pueden ejecutar este comando.
Sintaxis
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
Ejemplos
En estos ejemplos, se muestra cómo se utiliza createUser para crear usuarios nuevos en los HSM.
94
AWS CloudHSM Guía del usuario
Referencia
Este ejemplo crea a un responsable de criptografía (CO) en los HSM de un clúster. El primer comando
utiliza loginHSM (p. 116) para iniciar sesión en los HSM como responsable de criptografía.
El segundo comando utiliza el comando createUser para crear alice, un nuevo responsable de
criptografía en el HSM.
El mensaje de precaución explica que el comando crea usuarios en todos los HSM en el clúster. Sin
embargo, si el comando produce un error en cualquier HSM, el usuario no existe en esos HSM. Para
continuar, escriba y.
El resultado muestra que se creó el usuario nuevo en los tres HSM del clúster.
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. Cav server does NOT synchronize these changes with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************
Cuando se completa el comando, alice tiene los mismos permisos en el HSM que el usuario CO admin,
incluido el cambio de contraseña de cualquier usuario en los HSM.
El comando final utiliza el comando listUsers (p. 114) para verificar que alice existe en los tres HSM en
el clúster. El resultado también muestra que se ha asignado a alice el ID de usuario 3.. Puede utilizar el
ID de usuario para identificar alice en otros comandos, como findAllKeys (p. 100).
aws-cloudhsm> listUsers
Users on server 0(10.0.0.1):
Number of users found:3
95
AWS CloudHSM Guía del usuario
Referencia
2 AU app_user NO
0 NO
3 CO alice NO
0 NO
Este ejemplo crea un usuario de criptografía (CU) bob, en el HSM. Los usuarios de criptografía pueden
crear y administrar claves, pero no pueden administrar usuarios.
Después de escribir y para responder al mensaje de precaución, el resultado muestra que bob se creó en
los tres HSM en el clúster. El nuevo CU puede iniciar sesión en el HSM para crear y administrar claves.
El comando utilizó el valor de contraseña defaultPassword. Más adelante, bob o cualquier CO pueden
usar el comando changePswd (p. 90) para cambiar su contraseña.
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. Cav server does NOT synchronize these changes with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************
Argumentos
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
<user-type>
Para obtener información detallada sobre los tipos de usuario en un HSM, consulte Usuarios de
HSM (p. 10).
Valores válidos:
• CO: los responsables de criptografía pueden administrar usuarios, pero no pueden administrar
claves.
96
AWS CloudHSM Guía del usuario
Referencia
• CU: los usuarios de criptografía pueden crear y administrar claves, y usar claves en operaciones
criptográficas.
• AU: los usuarios de dispositivos pueden clonar y sincronizar operaciones. Se crea un AU para usted
en cada HSM que se instala.
PCO, PRECO y preCO también son valores válidos, pero apenas se utilizan. Un PCO tiene la
misma funcionalidad que un usuario CO. Un usuario PRECO es un tipo temporal que se crea
automáticamente en cada HSM. El PRECO se convierte en un PCO cuando asigna una contraseña
durante la activación de HSM (p. 39).
Obligatorio: sí
<user-name>
Obligatorio: sí
<password>
Especifica una contraseña para el usuario. Escriba una cadena de entre 7 y 32 caracteres. Este
valor distingue entre mayúsculas y minúsculas. La contraseña aparece en texto no cifrado cuando se
escribe.
Para cambiar la contraseña de un usuario, utilice changePswd (p. 90). Cualquier usuario de HSM
puede cambiar su propia contraseña, pero los usuarios CO pueden cambiar la contraseña de cualquier
usuario (de cualquier tipo) en los HSM.
Obligatorio: sí
Temas relacionados
• listUsers (p. 114)
• deleteUser (p. 97)
• syncUser (p. 127)
• changePswd (p. 90)
deleteUser
El comando deleteUser de cloudhsm_mgmt_util elimina un usuario de los HSM. Solo los responsables
de criptografía (CO y PCO) pueden ejecutar este comando, pero cualquier usuario CO puede eliminar a
cualquier usuario de cualquier tipo de los HSM. Sin embargo, no puede eliminar un usuario que ha iniciado
sesión en el cliente de AWS CloudHSM, key_mgmt_util o cloudhsm_mgmt_util.
Warning
Cuando elimina un usuario de criptografía (CU), todas las claves propiedad del usuario se
eliminan, incluso si las claves se compartían con otros usuarios. Para evitar la eliminación
accidental o maliciosa de usuarios, utilice la autenticación de cuórum (p. 72).
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86)
el HSM e iniciar sesión (p. 87) en este. Asegúrese de que inicia sesión con un tipo de cuenta de usuario
que pueda ejecutar los comandos que desea utilizar.
97
AWS CloudHSM Guía del usuario
Referencia
Si añade o elimina algún HSM, actualice los archivos de configuración (p. 82) utilizados por el cliente de
AWS CloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que
realice no se hagan efectivos en todos los HSM del clúster.
Tipo de usuario
Los tipos de usuarios siguientes pueden ejecutar este comando.
Sintaxis
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
Ejemplo
Este ejemplo elimina un responsable de criptografía (CO) de los HSM de un clúster. El primer comando
utiliza listUsers (p. 114) para generar una lista de todos los usuarios de los HSM.
aws-cloudhsm> listUsers
Users on server 0(10.0.0.1):
Number of users found:3
El segundo comando utiliza el comando deleteUser para eliminar alice de los HSM.
98
AWS CloudHSM Guía del usuario
Referencia
El resultado muestra que el comando se ha ejecutado correctamente en los tres HSM del clúster.
El comando final utiliza el comando listUsers para verificar que alice se ha eliminado de los tres HSM del
clúster.
aws-cloudhsm> listUsers
Users on server 0(10.0.0.1):
Number of users found:2
Argumentos
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
<user-type>
Cuando elimina un usuario de criptografía (CU), todas las claves propiedad del usuario se
eliminan, incluso si las claves se compartían con otros usuarios. Para evitar la eliminación
accidental o maliciosa de usuarios, utilice la autenticación de cuórum (p. 72).
Para obtener el tipo de usuario, utilice listUsers (p. 114). Para obtener información detallada sobre
los tipos de usuario en un HSM, consulte Usuarios de HSM (p. 10).
99
AWS CloudHSM Guía del usuario
Referencia
Obligatorio: sí
<user-name>
Obligatorio: sí
Temas relacionados
• listUsers (p. 114)
• createUser (p. 94)
• syncUser (p. 127)
• changePswd (p. 90)
findAllKeys
El comando findAllKeys de cloudhsm_mgmt_util obtiene las claves que un usuario de criptografía (CU)
especificado posee o comparte. También devuelve un valor hash de los datos de usuario en cada uno de
los HSM. Puede utilizar el hash para determinar de un vistazo si los usuarios, la propiedad de la clave y
los datos de uso compartido de la clave son los mismos en todos los HSM en el clúster. En la salida, las
claves que son propiedad del usuario se marcan con (o), mientras que las claves compartidas se marcan
con (s).
findAllKeys solo devuelve claves públicas cuando el CU especificado posee la clave, aunque todos los
CU del HSM puedan utilizar cualquier clave pública. Este comportamiento es diferente del comando
findKey (p. 149) de key_mgmt_util, que devuelve claves públicas para todos los usuarios de CU.
Solo los responsables de criptografía (CO y PCO) y los usuarios de dispositivos (AU) pueden ejecutar este
comando. Los usuarios de criptografía (CU) pueden ejecutar los siguientes comandos:
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86)
el HSM e iniciar sesión (p. 87) en este. Asegúrese de que inicia sesión con un tipo de cuenta de usuario
que pueda ejecutar los comandos que desea utilizar.
Si añade o elimina algún HSM, actualice los archivos de configuración (p. 82) utilizados por el cliente de
AWS CloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que
realice no se hagan efectivos en todos los HSM del clúster.
Tipo de usuario
Los usuarios siguientes pueden ejecutar este comando.
100
AWS CloudHSM Guía del usuario
Referencia
Sintaxis
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
Ejemplos
En estos ejemplos, se muestra cómo se utiliza findAllKeys para encontrar todas las claves de un
usuario y obtener un hash de la información del usuario de las claves en cada uno de los HSM.
El resultado muestra que el usuario 4 puede utilizar 6 claves: 8, 9, 17, 262162, 19 y 31. La salida utiliza
(s) para marcar las claves que el usuario comparte explícitamente. Las claves que posee el usuario se
marcan con (o) y se componen tanto de claves simétricas y privadas que el usuario no comparte como de
claves públicas que están disponibles para todos los usuarios de criptografía.
aws-cloudhsm> findAllKeys 4 0
Keys on server 0(10.0.0.1):
Number of keys found 6
number of keys matched from start index 0::6
8(s),9(s),17,262162(s),19(o),31(o)
findAllKeys success on server 0(10.0.0.1)
Para obtener el hash de la clave, el comando utiliza un valor de 1 en el segundo argumento. El nombre del
archivo opcional se omite, por lo que el comando escribe el hash de la clave en stdout.
El ejemplo especifica el usuario 6, pero el valor hash será el mismo para cualquier usuario que posea o
comparta cualquiera de las claves en los HSM. Si el usuario especificado no posee ni comparte ninguna
clave, como por ejemplo un CO, el comando no devuelve un valor hash.
El resultado muestra que el hash de la clave es idéntico para los dos HSM del clúster. Si uno de los HSM
tuviera diferentes usuarios, diferentes propietarios de clave o diferentes usuarios compartidos, los valores
del hash de la clave no serían iguales.
aws-cloudhsm> findAllKeys 6 1
101
AWS CloudHSM Guía del usuario
Referencia
Este comando demuestra que el valor hash representa los datos de usuario para todas las claves en el
HSM. El comando utiliza findAllKeys para el usuario 3. A diferencia del usuario 6, que posee o comparte
solo 3 claves, el usuario 3 es propietario o comparte 17 claves, pero el valor del hash de la clave es el
mismo.
aws-cloudhsm> findAllKeys 3 1
Keys on server 0(10.0.0.1):
Number of keys found 17
number of keys matched from start index 0::17
6(o),7(o),8(s),11(o),12(o),14(o),262159(o),262160(o),17(s),262162(s),19(s),20(o),21(o),262177(o),262179
Key Hash:
55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49
Argumentos
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
<user id>
Obtiene todas las claves que el usuario especificado posee o comparte. Escriba el ID del usuario en
los HSM. Para encontrar los ID de todos los usuarios, utilice listUsers (p. 114).
Todos los ID de usuario son válidos, pero findAllKeys solamente devuelve las claves de los
usuarios de criptografía (CU).
Obligatorio: sí
<key hash>
Incluye (1) o excluye (0) un hash de la propiedad del usuario y de los datos de uso compartido para
todas las claves en cada HSM.
102
AWS CloudHSM Guía del usuario
Referencia
Cuando el argumento user id representa a un usuario que posee o comparte claves, se rellena
el hash de la clave. El valor del hash de la clave es idéntico para todos los usuarios que poseen o
comparten claves en el HSM, aunque posean y compartan claves diferentes. Sin embargo, cuando
el user id representa a un usuario que no posee ni comparte ninguna clave, como un CO, el valor
hash no se rellena.
Obligatorio: sí
<output file>
Obligatorio: no
Temas relacionados
• changePswd (p. 90)
• deleteUser (p. 97)
• listUsers (p. 114)
• syncUser (p. 127)
• findKey (p. 149) en key_mgmt_util
• getKeyInfo (p. 178) en key_mgmt_util
getAttribute
El comando getAttribute de cloudhsm_mgmt_util obtiene el valor de un atributo de una clave para todos los
HSM del clúster y lo escribe en stdout (salida estándar) o en un archivo. Solo los usuarios de criptografía
(CU) pueden ejecutar este comando.
Los atributos de la clave son las propiedades de una clave. Contienen características, como el tipo de
clave, clase, etiqueta e ID y los valores que representan las acciones que puede desempeñar en la clave,
como cifrar, descifrar, encapsular, firmar y verificar.
Solamente puede utilizar getAttribute en claves que sean de su propiedad y que hayan compartido con
usted. Puede ejecutar este comando o el comando getAttribute (p. 103) de key_mgmt_util, que escribe
uno o todos los valores de atributo de una clave en un archivo.
Para obtener una lista de los atributos y las constantes que los representan, ejecute el comando
listAttributes (p. 196). Para cambiar los valores de los atributos de las claves existentes, utilice
setAttribute (p. 200) en key_mgmt_util y setAttribute (p. 119) en cloudhsm_mgmt_util. Para
obtener ayuda sobre cómo interpretar los atributos de claves, consulte Referencia de los atributos de
claves (p. 214).
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86)
el HSM e iniciar sesión (p. 87) en este. Asegúrese de que inicia sesión con un tipo de cuenta de usuario
que pueda ejecutar los comandos que desea utilizar.
Si añade o elimina algún HSM, actualice los archivos de configuración (p. 82) utilizados por el cliente de
AWS CloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que
realice no se hagan efectivos en todos los HSM del clúster.
Tipo de usuario
Los usuarios siguientes pueden ejecutar este comando.
103
AWS CloudHSM Guía del usuario
Referencia
Sintaxis
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
Ejemplo
En este ejemplo se obtiene el valor del atributo extraíble de una clave de los HSM. Puede utilizar un
comando de este tipo para determinar si puede exportar una clave desde los HSM.
El primer comando utiliza listAttributes (p. 113) para encontrar la constante que representa el atributo
extraíble. La salida muestra que la constante de OBJ_ATTR_EXTRACTABLE es 354. Encontrará también
esta información con las descripciones de los atributos y sus valores, en la Referencia de los atributos de
claves (p. 214).
aws-cloudhsm> listAttributes
OBJ_ATTR_CLASS = 0
OBJ_ATTR_TOKEN = 1
OBJ_ATTR_PRIVATE = 2
OBJ_ATTR_LABEL = 3
OBJ_ATTR_TRUSTED = 134
OBJ_ATTR_KEY_TYPE = 256
OBJ_ATTR_ID = 258
OBJ_ATTR_SENSITIVE = 259
OBJ_ATTR_ENCRYPT = 260
OBJ_ATTR_DECRYPT = 261
OBJ_ATTR_WRAP = 262
OBJ_ATTR_UNWRAP = 263
OBJ_ATTR_SIGN = 264
OBJ_ATTR_VERIFY = 266
OBJ_ATTR_DERIVE = 268
OBJ_ATTR_LOCAL = 355
OBJ_ATTR_MODULUS = 288
OBJ_ATTR_MODULUS_BITS = 289
OBJ_ATTR_PUBLIC_EXPONENT = 290
OBJ_ATTR_VALUE_LEN = 353
OBJ_ATTR_EXTRACTABLE = 354
OBJ_ATTR_NEVER_EXTRACTABLE = 356
OBJ_ATTR_ALWAYS_SENSITIVE = 357
OBJ_ATTR_DESTROYABLE = 370
OBJ_ATTR_KCV = 371
OBJ_ATTR_WRAP_WITH_TRUSTED = 528
OBJ_ATTR_EKCV = 4099
OBJ_ATTR_WRAP_TEMPLATE = 1073742353
OBJ_ATTR_UNWRAP_TEMPLATE = 1073742354
OBJ_ATTR_ALL = 512
El segundo comando utiliza getAttribute para obtener el valor del atributo extraíble de la clave que tiene el
identificador de clave 262170 en los HSM. Para especificar el atributo extraíble, el comando utiliza 354,
la constante que representa el atributo. Como el comando no especifica el nombre de archivo, getAttribute
escribe la salida en stdout.
La salida muestra que el valor del atributo extraíble es 1 en todos los HSM. Este valor indica que el
propietario de la clave puede exportarla. Cuando el valor es 0 (0x0), no se puede exportar desde los HSM.
El valor del atributo extraíble se establece al crear la clave, pero no se puede cambiar.
104
AWS CloudHSM Guía del usuario
Referencia
Argumentos
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
<key-handle>
Especifica el identificador de la clave de destino. Puede especificar una única clave en cada comando.
Para obtener el identificador de una clave, use findKey (p. 149) en key_mgmt_util.
Debe ser propietario de la clave especificada o esta debe compartirse con usted. Para buscar a los
usuarios de una clave, use getKeyInfo (p. 178) en key_mgmt_util.
Obligatorio: sí
<attribute id>
Identifica el atributo. Escriba una constante que represente un atributo o 512, que representa todos los
atributos. Por ejemplo, para obtener el tipo de clave, especifique 256, que es la constante del atributo
OBJ_ATTR_KEY_TYPE.
Para generar una lista de los atributos y sus constantes, utilice listAttributes (p. 196). Para obtener
ayuda sobre cómo interpretar los atributos de claves, consulte Referencia de los atributos de
claves (p. 214).
Obligatorio: sí
<filename>
Si el archivo especificado existe, getAttribute sobrescribe el archivo sin ningún tipo de advertencia.
Obligatorio: no
Temas relacionados
• getAttribute (p. 172) en key_mgmt_util
• listAttributes (p. 113)
• setAttribute (p. 119) en cloudhsm_mgmt_util
• setAttribute (p. 200) en key_mgmt_util
105
AWS CloudHSM Guía del usuario
Referencia
getCert
Con el comando getCert de cloudhsm_mgmt_util, puede recuperar los certificados de un HSM específico
de un clúster. Al ejecutar el comando, debe designar el tipo de certificado que desea recuperar.
Para ello, utilice el número entero correspondiente que se describe más adelante en la sección
Argumentos (p. 106). Para obtener más información sobre la función de cada uno de estos certificados,
consulte Verificar la identidad del HSM (p. 23).
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86)
el HSM e iniciar sesión (p. 87) en este. Asegúrese de que inicia sesión con un tipo de cuenta de usuario
que pueda ejecutar los comandos que desea utilizar.
Si añade o elimina algún HSM, actualice los archivos de configuración (p. 82) utilizados por el cliente de
AWS CloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que
realice no se hagan efectivos en todos los HSM del clúster.
Tipo de usuario
Los usuarios siguientes pueden ejecutar este comando.
Requisitos previos
Antes de comenzar, debe entrar en el modo de servidor en el HSM de destino. Para obtener más
información, consulte server (p. 118).
Sintaxis
Para utilizar el comando getCert una vez en modo de servidor:
Ejemplo
En primer lugar, entre el modo de servidor. Este comando entra en el modo de servidor en un HSM con el
número de servidor 0.
aws-cloudhsm> server 0
A continuación, utilice el comando getCert. En este ejemplo, utilizamos /tmp/PO.crt como nombre
del archivo en el que se guardará el certificado y 4 (Certificado raíz del cliente) como tipo de certificado
deseado:
Argumentos
106
AWS CloudHSM Guía del usuario
Referencia
<file-name>
Obligatorio: sí
<certificate-type>
Un número entero que especifica el tipo de certificado que se desea recuperar. Los números enteros y
sus correspondientes tipos de certificados son los siguientes:
• 1: certificado raíz del fabricante
• 2: certificado de hardware del fabricante
• 4: certificado raíz del cliente
• 8: certificado del clúster (firmado por el certificado raíz del cliente)
• 16: certificado del clúster (encadenado con el certificado raíz del fabricante)
Obligatorio: sí
Temas relacionados
• Iniciar cloudhsm_mgmt_util (p. 86)
• servidor (p. 118)
getHSMInfo
El comando getHSMInfo de cloudhsm_mgmt_util obtiene información sobre el hardware en el que se
ejecuta cada HSM, incluido el modelo, el número de serie, el estado de FIPS, la memoria, la temperatura y
los números de versión del hardware y el firmware. La información también contiene el ID del servidor que
cloudhsm_mgmt_util utiliza para consultar el HSM.
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86)
el HSM e iniciar sesión (p. 87) en este. Asegúrese de que inicia sesión con un tipo de cuenta de usuario
que pueda ejecutar los comandos que desea utilizar.
Si añade o elimina algún HSM, actualice los archivos de configuración (p. 82) utilizados por el cliente de
AWS CloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que
realice no se hagan efectivos en todos los HSM del clúster.
Tipo de usuario
Los tipos de usuarios siguientes pueden ejecutar este comando.
• Todos los usuarios. No es preciso haber iniciado sesión para ejecutar este comando.
Sintaxis
Este comando no tiene parámetros.
getHSMInfo
Ejemplo
En este ejemplo, se utiliza getHSMInfo para obtener información acerca de los HSM del clúster.
aws-cloudhsm> getHSMInfo
107
AWS CloudHSM Guía del usuario
Referencia
Label :cavium
Model :NITROX-III CNN35XX-NFBE
Manufacturer ID :
Device ID :10
Class Code :100000
System vendor ID :177D
SubSystem ID :10
TotalPublicMemory :560596
FreePublicMemory :294568
TotalPrivateMemory :0
FreePrivateMemory :0
Hardware Major :3
Hardware Minor :0
Firmware Major :2
Firmware Minor :03
Temperature :56 C
Firmware ID :xxxxxxxxxxxxxxx
...
Temas relacionados
• info (p. 112)
getKeyInfo
El comando getKeyInfo de la herramienta key_mgmt_util devuelve los ID de HSM de los usuarios que
pueden utilizar la clave, incluidos el propietario y los usuarios de criptografía (CU) con quienes se comparte
la clave. Cuando la autenticación de cuórum está habilitada en una clave, getKeyInfo también devuelve
el número de usuarios que deben aprobar las operaciones criptográficas que utilizan la clave. Solamente
puede ejecutar getKeyInfo en las claves que son de su propiedad y han compartido con usted.
Es propietario de las claves que crea. Puede compartir una clave con otros usuarios cuando la crea.
A continuación, para compartir o dejar de compartir una clave existente, utilice shareKey (p. 123) en
cloudhsm_mgmt_util.
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86)
el HSM e iniciar sesión (p. 87) en este. Asegúrese de que inicia sesión con un tipo de cuenta de usuario
que pueda ejecutar los comandos que desea utilizar.
108
AWS CloudHSM Guía del usuario
Referencia
Si añade o elimina algún HSM, actualice los archivos de configuración (p. 82) utilizados por el cliente de
AWS CloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que
realice no se hagan efectivos en todos los HSM del clúster.
Tipo de usuario
Los tipos de usuarios siguientes pueden ejecutar este comando.
Sintaxis
Ejemplos
En estos ejemplos, se muestra cómo se utiliza getKeyInfo para obtener información sobre los usuarios de
una clave.
Este comando obtiene los usuarios que pueden utilizar la clave AES (asimétrica) con identificador de clave
262162. El resultado muestra que el usuario 3 es propietario de la clave y la comparte con los usuarios 4 y
6.
aws-cloudhsm>getKeyInfo 262162
Key Info on server 0(10.0.0.1):
Token/Flash Key,
Owned by user 3
4
6
Key Info on server 1(10.0.0.2):
Token/Flash Key,
Owned by user 3
4
6
Estos comandos utilizan getKeyInfo para obtener los usuarios que pueden utilizar las claves de un par
de claves ECC (simétricas) (p. 167). La clave pública tiene el identificador de clave 262179. La clave
privada tiene el identificador de clave 262177.
Cuando ejecuta getKeyInfo en la clave privada (262177), devuelve el propietario de la clave (3) y los
usuarios de criptografía (CU) 4, con quienes se comparte la clave.
109
AWS CloudHSM Guía del usuario
Referencia
aws-cloudhsm>getKeyInfo -k 262177
Key Info on server 0(10.0.0.1):
Token/Flash Key,
Owned by user 3
4
Key Info on server 1(10.0.0.2):
Token/Flash Key,
Owned by user 3
Cuando ejecuta getKeyInfo en la clave pública (262179), devuelve solo el propietario de la clave, el
usuario 3.
aws-cloudhsm>getKeyInfo -k 262179
Key Info on server 0(10.0.3.10):
Token/Flash Key,
Owned by user 3
Token/Flash Key,
Owned by user 3
Para confirmar que el usuario 4 puede utilizar la clave pública (y todas las claves públicas del HSM), utilice
el parámetro -u de findKey (p. 149) en key_mgmt_util.
El resultado muestra que el usuario 4 puede utilizar la clave pública (262179) y la clave privada (262177)
en el par de claves. El usuario 4 también puede utilizar todas las demás claves públicas y cualquier clave
privada creadas o que se hayan compartido con ellos.
Command: findKey -u 4
Example : Obtención del valor de autenticación de cuórum (valor_m) para una clave
Este ejemplo muestra cómo obtener m_value para una clave. El m_value es el número de usuarios en
el cuórum que debe aprobar las operaciones criptográficas que utilizan la clave y las operaciones para
compartir y dejar de compartir la clave.
110
AWS CloudHSM Guía del usuario
Referencia
Cuando la autenticación de cuórum está habilitada en una clave, un cuórum de usuarios debe aprobar
cualquier operación criptográfica que utilice la clave. Para habilitar la autenticación de cuórum y establecer
el tamaño de cuórum, utilice el parámetro -m_value al crear la clave.
Este comando utiliza genSymKey (p. 167) para crear una clave AES de 256 bits que se comparte
con el usuario 4. Utiliza el parámetro m_value para habilitar la autenticación de cuórum y establecer el
tamaño de cuórum en dos usuarios. El número de usuarios debe ser lo suficientemente grande como para
proporcionar las aprobaciones necesarias.
Este comando utiliza getKeyInfo en cloudhsm_mgmt_util para obtener información sobre los usuarios de
la clave 10. El resultado muestra que la clave es propiedad del usuario 3 y se comparte con el usuario 4.
También muestra que un cuórum de dos usuarios debe aprobar todas las operaciones criptográficas que
utilizan la clave.
aws-cloudhsm>getKeyInfo 10
Token/Flash Key,
Owned by user 3
4
2 Users need to approve to use/manage this key
Key Info on server 1(10.0.0.2):
Token/Flash Key,
Owned by user 3
4
2 Users need to approve to use/manage this key
Argumentos
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
<key-handle>
111
AWS CloudHSM Guía del usuario
Referencia
Obligatorio: sí
<output file>
Obligatorio: no
Temas relacionados
• getKeyInfo (p. 178) en key_mgmt_util
• findKey (p. 149) en key_mgmt_util
• findAllKeys (p. 100) en cloudhsm_mgmt_util
• listUsers (p. 114)
• shareKey (p. 123)
info
El comando info de cloudhsm_mgmt_util obtiene información sobre cada uno de los HSM del clúster,
incluido el nombre de host, el puerto, la dirección IP y el nombre y el tipo de usuario que ha iniciado sesión
en cloudhsm_mgmt_util en el HSM.
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86)
el HSM e iniciar sesión (p. 87) en este. Asegúrese de que inicia sesión con un tipo de cuenta de usuario
que pueda ejecutar los comandos que desea utilizar.
Si añade o elimina algún HSM, actualice los archivos de configuración (p. 82) utilizados por el cliente de
AWS CloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que
realice no se hagan efectivos en todos los HSM del clúster.
Tipo de usuario
Los tipos de usuarios siguientes pueden ejecutar este comando.
• Todos los usuarios. No es preciso haber iniciado sesión para ejecutar este comando.
Sintaxis
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
Ejemplo
En este ejemplo, se utiliza info para obtener información acerca de un HSM del clúster. El comando utiliza
0 para consultar el primer HSM del clúster. La salida muestra la dirección IP, el puerto y el tipo y el nombre
del usuario actual.
112
AWS CloudHSM Guía del usuario
Referencia
Argumentos
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
<server id>
Especifica el ID de servidor del HSM. El sistema asigna a los HSM números ordinales que representan
el orden en el que se añaden al clúster, comenzando por 0. Para encontrar el ID de servidor de un
HSM, utilice getHSMInfo.
Obligatorio: sí
Temas relacionados
• getHSMInfo (p. 107)
• loginHSM y logoutHSM (p. 116)
listAttributes
El comando listAttributes de cloudhsm_mgmt_util enumera los atributos de una clave de AWS CloudHSM
y las constantes que los representan. Usted utiliza estas constantes para identificar los atributos en los
comandos getAttribute (p. 103) y setAttribute (p. 119).
Para obtener ayuda sobre cómo interpretar los atributos de claves, consulte Referencia de los atributos de
claves (p. 214).
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Tipo de usuario
Los usuarios siguientes pueden ejecutar este comando.
• Todos los usuarios. No es preciso haber iniciado sesión para ejecutar este comando.
Sintaxis
listAttributes [-h]
Ejemplo
Este comando enumera los atributos de clave que se pueden obtener y cambiar en key_mgmt_util, así
como las constantes que los representan. Para obtener ayuda sobre cómo interpretar los atributos de
claves, consulte Referencia de los atributos de claves (p. 214). Para representar todos los atributos,
utilice 512.
Command: listAttributes
113
AWS CloudHSM Guía del usuario
Referencia
Description
===========
The following are all of the possible attribute values for getAttribute.
OBJ_ATTR_CLASS = 0
OBJ_ATTR_TOKEN = 1
OBJ_ATTR_PRIVATE = 2
OBJ_ATTR_LABEL = 3
OBJ_ATTR_TRUSTED = 134
OBJ_ATTR_KEY_TYPE = 256
OBJ_ATTR_ID = 258
OBJ_ATTR_SENSITIVE = 259
OBJ_ATTR_ENCRYPT = 260
OBJ_ATTR_DECRYPT = 261
OBJ_ATTR_WRAP = 262
OBJ_ATTR_UNWRAP = 263
OBJ_ATTR_SIGN = 264
OBJ_ATTR_VERIFY = 266
OBJ_ATTR_DERIVE = 268
OBJ_ATTR_LOCAL = 355
OBJ_ATTR_MODULUS = 288
OBJ_ATTR_MODULUS_BITS = 289
OBJ_ATTR_PUBLIC_EXPONENT = 290
OBJ_ATTR_VALUE_LEN = 353
OBJ_ATTR_EXTRACTABLE = 354
OBJ_ATTR_NEVER_EXTRACTABLE = 356
OBJ_ATTR_ALWAYS_SENSITIVE = 357
OBJ_ATTR_DESTROYABLE = 370
OBJ_ATTR_KCV = 371
OBJ_ATTR_WRAP_WITH_TRUSTED = 528
OBJ_ATTR_EKCV = 4099
OBJ_ATTR_WRAP_TEMPLATE = 1073742353
OBJ_ATTR_UNWRAP_TEMPLATE = 1073742354
OBJ_ATTR_ALL = 512
Parámetros
-h
Requerido: sí
Temas relacionados
• getAttribute (p. 103)
• setAttribute (p. 119)
• Referencia de los atributos de claves (p. 214)
listUsers
El comando listUsers de cloudhsm_mgmt_util obtiene los usuarios de cada HSM, junto con el tipo de
usuario y otros atributos. Este comando lo pueden ejecutar todo tipo de usuarios. Ni siquiera es preciso
haber iniciado sesión en cloudhsm_mgmt_util para ejecutar este comando.
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86)
el HSM e iniciar sesión (p. 87) en este. Asegúrese de que inicia sesión con un tipo de cuenta de usuario
que pueda ejecutar los comandos que desea utilizar.
114
AWS CloudHSM Guía del usuario
Referencia
Si añade o elimina algún HSM, actualice los archivos de configuración (p. 82) utilizados por el cliente de
AWS CloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que
realice no se hagan efectivos en todos los HSM del clúster.
Tipo de usuario
Los tipos de usuarios siguientes pueden ejecutar este comando.
• Todos los usuarios. No es preciso haber iniciado sesión para ejecutar este comando.
Sintaxis
Este comando no tiene parámetros.
listUsers
Ejemplo
Este comando enumera los usuarios de cada uno de los HSM del clúster y muestra sus atributos.
Puede utilizar el atributo User ID para identificar a los usuarios en otros comandos, como deleteUser,
changePswd y findAllKeys.
aws-cloudhsm> listUsers
Users on server 0(10.0.0.1):
Number of users found:6
115
AWS CloudHSM Guía del usuario
Referencia
• User type (p. 10) (Tipo de usuario): determina las operaciones que el usuario puede realizar en el HSM.
• User Name (Nombre de usuario): muestra el nombre fácil de recordar definido por el usuario para el
usuario.
• MofnPubKey: indica si el usuario ha registrado un par de claves para firmar tokens de autenticación de
cuórum (p. 67).
• LoginFailureCnt: indica el número de veces que el usuario ha intentado iniciar sesión sin éxito.
• 2FA: indica que el usuario ha activado la autenticación multifactor.
Temas relacionados
• listUsers (p. 197) en key_mgmt_util
• createUser (p. 94)
• deleteUser (p. 97)
• changePswd (p. 90)
loginHSM y logoutHSM
Puede usar los comandos loginHSM y logoutHSM de cloudhsm_mgmt_util para iniciar y cerrar sesión en
cada HSM de un clúster. Todos los usuarios del tipo que sean pueden utilizar estos comandos.
Note
Antes de ejecutar estos comandos de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86).
Si añade o elimina algún HSM, actualice los archivos de configuración (p. 82) utilizados por el cliente de
AWS CloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que
realice no se hagan efectivos en todos los HSM del clúster.
Tipo de usuario
Los usuarios siguientes pueden ejecutar estos comandos.
Sintaxis
Dado que estos comandos no tienen parámetros designados, debe introducir los argumentos en el orden
especificado en los diagramas de sintaxis.
116
AWS CloudHSM Guía del usuario
Referencia
logoutHSM
Ejemplos
En estos ejemplos, se muestra cómo utilizar loginHSM y logoutHSM para iniciar y cerrar sesión en todos
los HSM de un clúster.
aws-cloudhsm>logoutHSM
logoutHSM success on server 0(10.0.2.9)
logoutHSM success on server 1(10.0.3.11)
Argumentos
Dado que estos comandos no tienen parámetros designados, debe introducir los argumentos en el orden
especificado en los diagramas de sintaxis.
<user type>
Especifica el tipo de usuario que inicia sesión en los HSM. Para obtener más información, consulte
Tipo de usuario (p. 116) más arriba.
Obligatorio: sí
<user name>
Especifica el nombre de usuario del usuario que va a iniciar sesión en los HSM.
Obligatorio: sí
<password>
Obligatorio: sí
Temas relacionados
• Introducción a cloudhsm_mgmt_util (p. 82)
117
AWS CloudHSM Guía del usuario
Referencia
server
Normalmente, cuando se emite un comando en cloudhsm_mgmt_util, el comando afecta a todos los HSM
del clúster designado (modo global). Sin embargo, puede haber ocasiones en las que necesite emitir
comandos en un único HSM. Por ejemplo, si se produce un error en la sincronización automática, puede
que tenga que sincronizar las claves y los usuarios de un HSM con el fin de mantener la coherencia en
el clúster. Puede utilizar el comando server de cloudhsm_mgmt_util para entrar en el modo de servidor e
interactuar directamente con una instancia específica de HSM.
Tras la inicialización correcta, el símbolo del sistema aws-cloudhsm> se sustituye por el símbolo del
sistema server>.
Para salir del modo de servidor, utilice el comando exit. Después de salir correctamente, volverá al
símbolo del sistema de cloudhsm_mgmt_util.
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86).
Tipo de usuario
Los usuarios siguientes pueden ejecutar este comando.
Requisitos previos
Para entrar en el modo de servidor, primero debe conocer el número de servidor del HSM de destino. Los
números de servidor son los que se muestran en la salida de rastreo generada por cloudhsm_mgmt_util al
iniciarse. Los números de servidor se asignan en el mismo orden en que aparecen los HSM en el archivo
de configuración. En este ejemplo, suponemos que server 0 es el servidor que se corresponde con el
HSM deseado.
Sintaxis
Para entrar en el modo de servidor:
server <server-number>
server> exit
Ejemplo
Este comando entra en el modo de servidor en un HSM con el número de servidor 0.
aws-cloudhsm> server 0
server0> exit
118
AWS CloudHSM Guía del usuario
Referencia
Argumentos
server <server-number>
<server-number>
Obligatorio: sí
Temas relacionados
• Iniciar cloudhsm_mgmt_util (p. 86)
• syncKey (p. 125)
• createUser (p. 94)
• deleteUser (p. 97)
setAttribute
El comando setAttribute de cloudhsm_mgmt_util cambia el valor de la etiqueta y cifra, descifra,
encapsula y desencapsula atributos de una clave en los HSM. También puede utilizar el comando
setAttribute (p. 200) de key_mgmt_util para convertir la clave de una sesión en una clave persistente.
Solo puede cambiar los atributos de claves de su propiedad.
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86)
el HSM e iniciar sesión (p. 87) en este. Asegúrese de que inicia sesión con un tipo de cuenta de usuario
que pueda ejecutar los comandos que desea utilizar.
Si añade o elimina algún HSM, actualice los archivos de configuración (p. 82) utilizados por el cliente de
AWS CloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que
realice no se hagan efectivos en todos los HSM del clúster.
Tipo de usuario
Los usuarios siguientes pueden ejecutar este comando.
Sintaxis
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
Ejemplo
En este ejemplo, se muestra cómo deshabilitar la funcionalidad de descifrar de una clave simétrica. Puede
utilizar un comando como este para configurar una clave de encapsulamiento que debe poder encapsular y
desencapsular otras claves, pero no cifrar ni descifrar datos.
119
AWS CloudHSM Guía del usuario
Referencia
El primer paso consiste en crear la clave de encapsulamiento. Este comando utiliza el comando
genSymKey (p. 167) de key_mgmt_util para generar una clave simétrica AES de 256 bits. La salida
muestra que la nueva clave tiene el identificador de clave 14.
$ genSymKey -t 31 -s 32 -l aes256
A continuación, queremos confirmar el valor actual del atributo de descifrar. Para obtener el ID de atributo
del atributo de descifrar, utilice listAttributes (p. 113). La salida muestra que la constante que representa
al atributo OBJ_ATTR_DECRYPT es 261. Para obtener ayuda sobre cómo interpretar los atributos de
claves, consulte Referencia de los atributos de claves (p. 214).
aws-cloudhsm> listAttributes
OBJ_ATTR_CLASS = 0
OBJ_ATTR_TOKEN = 1
OBJ_ATTR_PRIVATE = 2
OBJ_ATTR_LABEL = 3
OBJ_ATTR_TRUSTED = 134
OBJ_ATTR_KEY_TYPE = 256
OBJ_ATTR_ID = 258
OBJ_ATTR_SENSITIVE = 259
OBJ_ATTR_ENCRYPT = 260
OBJ_ATTR_DECRYPT = 261
OBJ_ATTR_WRAP = 262
OBJ_ATTR_UNWRAP = 263
OBJ_ATTR_SIGN = 264
OBJ_ATTR_VERIFY = 266
OBJ_ATTR_DERIVE = 268
OBJ_ATTR_LOCAL = 355
OBJ_ATTR_MODULUS = 288
OBJ_ATTR_MODULUS_BITS = 289
OBJ_ATTR_PUBLIC_EXPONENT = 290
OBJ_ATTR_VALUE_LEN = 353
OBJ_ATTR_EXTRACTABLE = 354
OBJ_ATTR_NEVER_EXTRACTABLE = 356
OBJ_ATTR_ALWAYS_SENSITIVE = 357
OBJ_ATTR_DESTROYABLE = 370
OBJ_ATTR_KCV = 371
OBJ_ATTR_WRAP_WITH_TRUSTED = 528
OBJ_ATTR_EKCV = 4099
OBJ_ATTR_WRAP_TEMPLATE = 1073742353
OBJ_ATTR_UNWRAP_TEMPLATE = 1073742354
OBJ_ATTR_ALL = 512
Para obtener el valor actual del atributo de descifrado de la clave 14, el siguiente comando utiliza
getAttribute (p. 103) en cloudhsm_mgmt_util.
La salida muestra que el valor del atributo de descifrar es verdadera (1) en ambos HSM del clúster.
120
AWS CloudHSM Guía del usuario
Referencia
OBJ_ATTR_DECRYPT
0x00000001
Este comando utiliza setAttribute para cambiar el valor del atributo de descifrado (atributo 261) de la clave
14 a 0. Esto desactiva la funcionalidad de descifrar en la clave.
La salida muestra que el comando se ha ejecutado correctamente en ambos HSM del clúster.
El comando final repite el comando getAttribute. En este caso también obtiene el atributo de descifrar
(atributo 261) de la clave 14.
Ahora la salida muestra que el valor del atributo de descifrar es falso (0) en ambos HSM del clúster.
aws-cloudhsm>getAttribute 14 261
Attribute Value on server 0(10.0.3.6):
OBJ_ATTR_DECRYPT
0x00000000
Argumentos
<key-handle>
Especifica el identificador de una clave de su propiedad. Puede especificar una única clave en cada
comando. Para obtener el identificador de una clave, use findKey (p. 149) en key_mgmt_util. Para
encontrar los usuarios de una clave, use getKeyInfo (p. 108).
Obligatorio: sí
<attribute id>
Especifica la constante que representa el atributo que desea cambiar. Puede especificar
un único atributo en cada comando. Para obtener los atributos y sus valores enteros, utilice
listAttributes (p. 196). Para obtener ayuda sobre cómo interpretar los atributos de claves, consulte
Referencia de los atributos de claves (p. 214).
Valores válidos:
• 3: OBJ_ATTR_LABEL.
• 134: OBJ_ATTR_TRUSTED.
121
AWS CloudHSM Guía del usuario
Referencia
• 260: OBJ_ATTR_ENCRYPT.
• 261: OBJ_ATTR_DECRYPT.
• 262: OBJ_ATTR_WRAP.
• 263: OBJ_ATTR_UNWRAP.
• 264: OBJ_ATTR_SIGN.
• 266: OBJ_ATTR_VERIFY.
• 268: OBJ_ATTR_DERIVE.
• 370: OBJ_ATTR_DESTROYABLE.
• 528: OBJ_ATTR_WRAP_WITH_TRUSTED.
• 1073742353: OBJ_ATTR_WRAP_TEMPLATE.
• 1073742354: OBJ_ATTR_UNWRAP_TEMPLATE.
Obligatorio: sí
Temas relacionados
• setAttribute (p. 200) en key_mgmt_util
• getAttribute (p. 103)
• listAttributes (p. 113)
• Referencia de los atributos de claves (p. 214)
quit
El comando quit de cloudhsm_mgmt_util permite salir de cloudhsm_mgmt_util. Todos los usuarios del tipo
que sean pueden utilizar este comando.
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86).
Tipo de usuario
Los usuarios siguientes pueden ejecutar este comando.
• Todos los usuarios. No es preciso haber iniciado sesión para ejecutar este comando.
Sintaxis
quit
Ejemplo
Este comando permite salir de cloudhsm_mgmt_util. Una vez que finaliza correctamente, se vuelve a la
línea de comandos normal. Este comando no tiene parámetros de salida.
aws-cloudhsm> quit
Temas relacionados
• Introducción a cloudhsm_mgmt_util (p. 82)
• Iniciar cloudhsm_mgmt_util (p. 86)
122
AWS CloudHSM Guía del usuario
Referencia
shareKey
El comando shareKey de cloudhsm_mgmt_util comparte y cancela el uso compartido de claves de su
propiedad con otros usuarios de criptografía. Solo el propietario de la clave puede compartir y dejar de
compartir una clave. También puede compartir una clave cuando la crea.
Los usuarios que comparten la clave pueden utilizar la clave en operaciones criptográficas, pero no
pueden eliminar, exportar, compartir o dejar de compartir la clave, o cambiar sus atributos. Cuando la
autenticación de cuórum está habilitada en una clave, el cuórum debe aprobar cualquier operación que
comparta o deje de compartir la clave.
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86)
el HSM e iniciar sesión (p. 87) en este. Asegúrese de que inicia sesión con un tipo de cuenta de usuario
que pueda ejecutar los comandos que desea utilizar.
Si añade o elimina algún HSM, actualice los archivos de configuración (p. 82) utilizados por el cliente de
AWS CloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que
realice no se hagan efectivos en todos los HSM del clúster.
Tipo de usuario
Los tipos de usuarios siguientes pueden ejecutar este comando.
Sintaxis
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
Ejemplo
Los siguientes ejemplos muestran cómo utilizar shareKey para compartir y dejar de compartir claves que
posee con otros usuarios de criptografía.
En este ejemplo, se utiliza shareKey para compartir una clave privada de ECC (p. 167) que el usuario
actual posee con otro usuario de criptografía de los HSM. Las claves públicas están disponibles para todos
los usuarios del HSM, por lo que no puede compartirlas o dejar de compartirlas.
El primer comando utiliza getKeyInfo (p. 108) para obtener la información del usuario para la clave
262177, una clave privada de ECC en los HSM.
El resultado muestra que la clave 262177 es propiedad del usuario 3, pero no se comparte.
aws-cloudhsm>getKeyInfo 262177
Token/Flash Key,
Owned by user 3
123
AWS CloudHSM Guía del usuario
Referencia
Token/Flash Key,
Owned by user 3
Este comando utiliza shareKey para compartir la clave 262177 con el usuario 4, otro usuario de
criptografía de los HSM. El último argumento utiliza un valor de 1 para indicar una operación compartida.
aws-cloudhsm>shareKey 262177 4 1
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. Cav server does NOT synchronize these changes with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************
Para comprobar que la operación se ha realizado correctamente, el ejemplo repite el primer comando
getKeyInfo.
aws-cloudhsm>getKeyInfo 262177
Token/Flash Key,
Owned by user 3
4
Key Info on server 1(10.0.3.6):
Token/Flash Key,
Owned by user 3
En este ejemplo, se deja de compartir una clave simétrica, es decir, se elimina un usuario de criptografía
de la lista de usuarios compartidos para la clave.
Este comando utiliza shareKey para eliminar al usuario 4 de la lista de usuarios compartidos para la clave
6. El último argumento utiliza el valor 0 para indicar una operación para dejar de compartir.
El resultado muestra que el comando ha tenido éxito en ambos HSM. Como resultado, el usuario 4 ya no
puede utilizar la clave 6 en operaciones criptográficas.
aws-cloudhsm>shareKey 6 4 0
124
AWS CloudHSM Guía del usuario
Referencia
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. Cav server does NOT synchronize these changes with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************
Argumentos
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
<key-handle>
Especifica el identificador de una clave de su propiedad. Puede especificar una única clave en cada
comando. Para obtener el identificador de una clave, use findKey (p. 149) en key_mgmt_util. Para
verificar que usted es propietario de una clave, utilice getKeyInfo (p. 108).
Obligatorio: sí
<user id>
Especifica el ID del usuario de criptografía (CU) con quien está compartiendo o dejando de compartir
la clave. Para encontrar el ID del usuario, utilice listUsers (p. 114).
Obligatorio: sí
<share 1 o unshare 0>
Para compartir la clave con el usuario especificado, escriba 1. Para dejar de compartir la clave, es
decir, para eliminar al usuario especificado de la lista de los usuarios compartidos para la clave,
escriba 0.
Obligatorio: sí
Temas relacionados
• getKeyInfo (p. 108)
syncKey
Puede utilizar el comando syncKey de cloudhsm_mgmt_util para sincronizar manualmente las claves entre
las instancias de HSM de un clúster o entre clústeres clonados. En general, no es preciso utilizar este
comando, puesto que las instancias de HSM dentro de un clúster sincronizan las claves automáticamente.
Sin embargo, la sincronización de claves entre clústeres clonados debe realizarse manualmente. Los
clústeres clonados suelen crearse en diferentes regiones de AWS con el fin de simplificar el escalado
global y los procesos de recuperación de desastres.
No puede utilizar syncKey para sincronizar claves entre clústeres arbitrarios: uno de los clústeres debe
haberse creado a partir de una copia de seguridad del otro. Además, ambos clústeres deben tener las
credenciales de CO y CU coherentes para que la operación se lleve a cabo correctamente. Para obtener
más información, consulte Usuarios de HSM (p. 10).
125
AWS CloudHSM Guía del usuario
Referencia
Para utilizar syncKey, primero debe crear un archivo de configuración de AWS CloudHSM (p. 88) en
el que se especifique un HSM correspondiente al clúster de origen y uno correspondiente al de destino.
De este modo, cloudhsm_mgmt_util podrá conectarse a ambas instancias de HSM. Utilice este archivo de
configuración para iniciar cloudhsm_mgmt_util (p. 86). A continuación, inicie sesión (p. 87) con las
credenciales de un CO o un CU que tenga las claves que desea sincronizar.
Tipo de usuario
Los tipos de usuarios siguientes pueden ejecutar este comando.
Note
Los CO pueden utilizar syncKey con todas las claves; en cambio, los CU solo pueden utilizar este
comando con las claves que les pertenecen. Para obtener más información, consulte Usuarios de
HSM (p. 10).
Requisitos previos
Antes de comenzar, debe conocer el key handle de la clave del HSM de origen que hay que sincronizar
con el HSM de destino. Si desea buscar el key handle, utilice el comando listUsers (p. 114) para
enumerar todos los identificadores de los usuarios designados. A continuación, utilice el comando
findAllKeys (p. 100) para encontrar todas las claves que pertenecen a un usuario determinado.
También debe conocer los server IDs asignados a los HSM de origen y de destino, que se muestran en
la salida de rastreo devuelta por cloudhsm_mgmt_util al iniciarse. Estos se asignan en el mismo orden con
que aparecen los HSM en el archivo de configuración.
Siga las instrucciones de Uso de cloudhsm_mgmt_util en clústeres clonados (p. 88) e inicialice
cloudhsm_mgmt_util con el archivo de configuración nuevo. A continuación, entre en el modo de servidor
en el HSM; para ello, ejecute el comando server (p. 118).
Sintaxis
Note
Para ejecutar syncKey, en primer lugar, entre en el modo de servidor en el HSM que contiene la
clave que se va a sincronizar.
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
Ejemplo
Ejecute el comando server para iniciar sesión en el HSM de origen y entrar en el modo de servidor. En este
ejemplo, se supone que server 0 es el HSM de origen.
aws-cloudhsm> server 0
A continuación, ejecute el comando syncKey. En este ejemplo, se supone que la clave 261251 se va a
sincronizar con server 1.
126
AWS CloudHSM Guía del usuario
Referencia
Argumentos
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
<key handle>
Especifica el identificador de la clave que se va a sincronizar. Puede especificar una única clave en
cada comando. Para obtener el identificador de una clave, utilice findAllKeys (p. 100) mientras tiene
una sesión iniciada en un servidor de HSM.
Obligatorio: sí
<destination hsm>
Obligatorio: sí
Temas relacionados
• listUsers (p. 114)
• findAllKeys (p. 100)
• describe-clusters en la AWS CLI
• servidor (p. 118)
syncUser
Puede utilizar el comando syncUser de cloudhsm_mgmt_util para sincronizar manualmente usuarios de
criptografía (CU) o responsables de criptografía (CO) en las instancias de HSM de un clúster o en los
clústeres clonados. AWS CloudHSM no sincroniza automáticamente los usuarios. Por lo general, los
usuarios se administran en modo global con objeto de que todos los HSM de un clúster se actualicen
conjuntamente. Es posible que tenga que utilizar syncUser si un HSM se desincroniza accidentalmente
(por ejemplo, debido a los cambios de contraseña) o si desea rotar las credenciales de usuario en los
clústeres clonados. Los clústeres clonados suelen crearse en regiones de AWS distintas con objeto de
simplificar los procesos de escalado global y recuperación de desastres.
Antes de ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciar cloudhsm_mgmt_util (p. 86)
el HSM e iniciar sesión (p. 87) en este. Asegúrese de que inicia sesión con un tipo de cuenta de usuario
que pueda ejecutar los comandos que desea utilizar.
Si añade o elimina algún HSM, actualice los archivos de configuración (p. 82) utilizados por el cliente de
AWS CloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que
realice no se hagan efectivos en todos los HSM del clúster.
Tipo de usuario
Los tipos de usuarios siguientes pueden ejecutar este comando.
127
AWS CloudHSM Guía del usuario
Referencia
Requisitos previos
Antes de comenzar, debe conocer el user ID del usuario del HSM de origen que hay que sincronizar con
el HSM de destino. Para encontrar el user ID, utilice el comando listUsers (p. 114) para obtener una
lista de todos los usuarios de los HSM del clúster.
También debe conocer los server ID asignados a los HSM de origen y de destino, que se muestran en
la salida de rastreo devuelta por cloudhsm_mgmt_util al iniciarse. Estos se asignan en el mismo orden con
que aparecen los HSM en el archivo de configuración.
Cuando esté listo para ejecutar syncUser, emita el comando server (p. 118) para entrar en el modo de
servidor en el HSM de origen.
Sintaxis
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
Ejemplo
Ejecute el comando server para iniciar sesión en el HSM de origen y entrar en el modo de servidor. En este
ejemplo, se supone que server 0 es el HSM de origen.
aws-cloudhsm> server 0
Argumentos
Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el orden
especificado en el diagrama de sintaxis.
<user ID>
Especifica el ID del usuario que se va a sincronizar. Solo se puede especificar un usuario en cada
comando. Para obtener el ID de un usuario, utilice listUsers (p. 114).
Obligatorio: sí
<server ID>
Obligatorio: sí
128
AWS CloudHSM Guía del usuario
key_mgmt_util
Temas relacionados
• listUsers (p. 114)
• describe-clusters en la AWS CLI
• servidor (p. 118)
key_mgmt_util
La herramienta de línea de comandos key_mgmt_util ayuda a los usuarios de criptografía (CU) a
administrar claves en los HSM. Contiene varios comandos que generan, eliminan, importan y exportan
claves, obtienen y establecen atributos, encuentran claves y realizan operaciones criptográficas.
Para informarse sobre cómo comenzar rápidamente, consulte Introducción a key_mgmt_util (p. 129).
Para obtener información detallada acerca de los comandos, consulte Referencia de comandos de
key_mgmt_util (p. 132). Para obtener ayuda sobre cómo interpretar los atributos de claves, consulte
Referencia de los atributos de claves (p. 214).
Para utilizar key_mgmt_util si usa Linux, conéctese a la instancia de cliente y, a continuación, consulte
Instalación y configuración del cliente de AWS CloudHSM (Linux) (p. 35). Si usa Windows, consulte
Instalación y configuración del cliente de AWS CloudHSM (Windows) (p. 37).
Temas
• Introducción a key_mgmt_util (p. 129)
• Referencia de comandos de key_mgmt_util (p. 132)
Introducción a key_mgmt_util
AWS CloudHSM incluye dos herramientas de línea de comandos con el software de cliente de AWS
CloudHSM (p. 35). La herramienta cloudhsm_mgmt_util (p. 88) dispone de comandos para la
administración de usuarios de HSM. La herramienta key_mgmt_util (p. 132) tiene comandos para
administrar las claves. Para comenzar a utilizar la herramienta de línea de comandos key_mgmt_util,
consulte los siguientes temas.
Temas
• Configurar key_mgmt_util (p. 129)
• Uso básico de key_mgmt_util (p. 131)
Si detecta un mensaje de error o resultados inesperados para un comando, consulte los temas de Solución
de problemas de AWS CloudHSM (p. 364) para obtener ayuda. Para obtener más detalles acerca de los
comandos de key_mgmt_util, consulte Referencia de comandos de key_mgmt_util (p. 132).
Configurar key_mgmt_util
Siga los pasos de configuración que se describen a continuación antes de utilizar key_mgmt_util.
129
AWS CloudHSM Guía del usuario
Introducción
Amazon Linux
Amazon Linux 2
CentOS 6
CentOS 7
RHEL 6
RHEL 7
Windows
Iniciar key_mgmt_util
Después de iniciar el cliente de AWS CloudHSM, utilice el siguiente comando para iniciar key_mgmt_util.
Amazon Linux
$ /opt/cloudhsm/bin/key_mgmt_util
Amazon Linux 2
$ /opt/cloudhsm/bin/key_mgmt_util
130
AWS CloudHSM Guía del usuario
Introducción
RHEL 6
$ /opt/cloudhsm/bin/key_mgmt_util
RHEL 7
$ /opt/cloudhsm/bin/key_mgmt_util
CentOS 6
$ /opt/cloudhsm/bin/key_mgmt_util
CentOS 7
$ /opt/cloudhsm/bin/key_mgmt_util
$ /opt/cloudhsm/bin/key_mgmt_util
Windows
c:\Program Files\Amazon\CloudHSM>key_mgmt_util.exe
Si el comando produce un error, como, por ejemplo, devuelve un mensaje Daemon socket connection
error, intente actualizar su archivo de configuración (p. 372).
Temas
• Iniciar sesión en los HSM (p. 131)
• Cerrar la sesión de los HSM (p. 132)
• Detener key_mgmt_util (p. 132)
131
AWS CloudHSM Guía del usuario
Referencia
Command: logoutHSM
Cfm3LogoutHSM returned: 0x00 : HSM Return: SUCCESS
Detener key_mgmt_util
Utilice el comando exit para detener key_mgmt_util.
Command: exit
Para informarse sobre cómo comenzar rápidamente, consulte Introducción a key_mgmt_util (p. 129).
Para obtener ayuda sobre cómo interpretar los atributos de claves, consulte Referencia de los
atributos de claves (p. 214). Para obtener información sobre la herramienta de línea de comandos
cloudhsm_mgmt_util que contiene los comandos necesarios para administrar el HSM y los usuarios del
clúster, consulte cloudhsm_mgmt_util (p. 81).
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Command: help
Command: <command-name> -h
Command: exit
132
AWS CloudHSM Guía del usuario
Referencia
Comando Descripción
exportPrivateKey (p. 140) Exporta una copia de una clave privada de un HSM
a un archivo en disco.
exportPubKey (p. 142) Exporta una copia de una clave pública de un HSM
a un archivo.
exSymKey (p. 143) Exporta una copia de texto no cifrado de una clave
simétrica desde los HSM a un archivo.
findSingleKey (p. 152) Comprueba que todos los HSM del clúster tengan
una clave.
getAttribute (p. 172) Obtiene los valores de los atributos de una clave
de AWS CloudHSM y los escribe en un archivo.
getCaviumPrivKey (p. 175) Crea una versión en formato PEM falso de una
clave privada y la exporta a un archivo.
getKeyInfo (p. 178) Obtiene los ID de los usuarios de HSM que pueden
utilizar la clave.
133
AWS CloudHSM Guía del usuario
Referencia
Comando Descripción
imSymKey (p. 187) Importa una copia de texto no cifrado de una clave
simétrica desde un archivo a los HSM.
listAttributes (p. 196) Muestra una lista de los atributos de una clave
de AWS CloudHSM y las constantes que los
representan.
loginHSM y logoutHSM (p. 198) Inicia y cierra sesión en los HSM de un clúster.
wrapKey (p. 211) Exporta una copia cifrada de una clave desde el
HSM a un archivo.
aesWrapUnwrap
El comando aesWrapUnwrap cifra o descifra el contenido de un archivo en el disco. Este comando está
diseñado para encapsular y desencapsular claves de cifrado, pero se puede utilizar en cualquier archivo
que contenga menos de 4 KB (4096 bytes) de datos.
aesWrapUnwrap utiliza el encapsulado de claves AES. Emplea una clave AES en el HSM como clave de
encapsulación o desencapsulación. A continuación escribe el resultado en otro archivo en el disco.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
aesWrapUnwrap -h
134
AWS CloudHSM Guía del usuario
Referencia
Ejemplos
En estos ejemplos, se muestra cómo se utiliza aesWrapUnwrap para cifrar y descifrar una clave de cifrado
en un archivo.
Este comando utiliza aesWrapUnwrap para encapsular una clave simétrica triple DES que se ha exportado
desde el HSM sin cifrar (p. 143) hasta el archivo 3DES.key. Puede utilizar un comando similar para
encapsular toda clave que esté guardada en un archivo.
El comando utiliza el parámetro -m con un valor de 1 para indicar el modo de encapsulación, el parámetro
-w para especificar una clave AES en el HSM (indicador de clave 6) como clave de encapsulación y, por
último, escribe la clave encapsulada obtenida en el archivo 3DES.key.wrapped.
En este ejemplo, se muestra cómo se utiliza aesWrapUnwrap para desencapsular (descifrar) una clave
encapsulada (cifrada) en un archivo. Puede que le interese realizar una operación de este tipo antes de
importar una clave al HSM. Por ejemplo, si intenta utilizar el comando imSymKey (p. 187) para importar
una clave cifrada, este devuelve un error, ya que la clave cifrada no tiene el formato necesario para una
clave sin cifrar de ese tipo.
El comando desencapsula la clave del archivo 3DES.key.wrapped y escribe el texto sin cifrar en el
archivo 3DES.key.unwrapped. El comando utiliza el parámetro -m con un valor de 0 para indicar el
modo de desencapsulación, el parámetro -w para especificar una clave AES en el HSM (indicador de
clave 6) como clave de encapsulación y, por último, escribe la clave encapsulada obtenida en el archivo
3DES.key.unwrapped.
135
AWS CloudHSM Guía del usuario
Referencia
A1 95 6F 24 89 79 F3 EE
37 21 E6 54 1F 3B 8D 62
Parámetros
-h
Requerido: sí
-m
Especifica el modo. Para encapsular (cifrar) el contenido del archivo, escriba 1; para desencapsular
(descifrar) el contenido del archivo, escriba 0.
Obligatorio: sí
-f
Obligatorio: sí
-w
Especifica la clave de encapsulamiento. Escriba el identificador de clave de una clave AES o RSA
en el HSM. Este parámetro es obligatorio. Para buscar identificadores de clave, use el comando
findKey (p. 149).
Para crear una clave de encapsulamiento, utilice genSymKey (p. 167) para generar una clave AES
(tipo 31) o genRSAKeyPair (p. 162) para generar un par de claves RSA (tipo 0). Si está utilizando
un par de claves RSA, asegúrese de encapsular la clave con una de las claves y desencapsularla
con la otra. Para verificar que se puede usar una clave como clave de encapsulamiento, use
getAttribute (p. 172) para obtener el valor del atributo OBJ_ATTR_WRAP, que se representa con la
constante 262.
Requerido: sí
-i
Especifica un valor inicial alternativo (IV) para el algoritmo. Utilice el valor predeterminado a menos
que tenga una condición especial que requiera una alternativa.
Obligatorio: no
-out
Especifica un nombre alternativo para el archivo de salida que contiene la clave encapsulada o
desencapsulada. El valor predeterminado es wrapped_key (para operaciones de encapsulación) y
unwrapped_key (para operaciones de desencapsulación) en el directorio local.
136
AWS CloudHSM Guía del usuario
Referencia
Obligatorio: no
Temas relacionados
• exSymKey (p. 143)
• imSymKey (p. 187)
• unWrapKey (p. 204)
• wrapKey (p. 211)
deleteKey
El comando deleteKey de key_mgmt_util elimina una clave del HSM. Solo puede eliminar las claves de una
en una. La eliminación de una clave de un par de claves no influye en la otra clave del par.
Solo el propietario de la clave puede eliminar una clave. Los usuarios que comparten la clave pueden
utilizarla en operaciones criptográficas, pero no eliminarla.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
deleteKey -h
deleteKey -k
Ejemplos
En los ejemplos siguientes, se muestra cómo se utiliza deleteKey para eliminar claves de los HSM.
Command: deleteKey -k 6
Cfm3FindKey returned: 0xa8 : HSM Error: Invalid object handle is passed to this
operation
137
AWS CloudHSM Guía del usuario
Referencia
Cuando el comando genera un error porque el usuario actual no es el propietario de la clave, el comando
devuelve un error de acceso denegado.
Parámetros
-h
Obligatorio: sí
-k
Especifica el identificador de la clave que se va a eliminar. Para encontrar los identificadores de clave
de las claves del HSM, utilice findKey (p. 149).
Obligatorio: sí
Temas relacionados
• findKey (p. 149)
Error2String
El comando de ayuda Error2String de la herramienta key_mgmt_util devuelve el error que corresponde a
un código de error hexadecimal de key_mgmt_util. Puede utilizar este comando cuando esté solucionando
problemas de los comandos y los scripts.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
Error2String -h
Error2String -r <response-code>
Ejemplos
En estos ejemplos, se muestra cómo utilizar Error2String para obtener la cadena de error de un código de
error de key_mgmt_util.
Este comando obtiene la descripción del error del código de error 0xdb. En la descripción, se explica que
un intento de iniciar sesión en key_mgmt_util generó un error porque el usuario no era del tipo adecuado.
Solo los usuarios de criptografía (CU) pueden iniciar sesión en key_mgmt_util.
138
AWS CloudHSM Guía del usuario
Referencia
En este ejemplo, se muestra dónde se puede encontrar el código de un error de key_mgmt_util. El código
de error, 0xc6, se muestra después de la cadena: Cfm3command-name returned: .
En este ejemplo getKeyInfo (p. 178) indica que el usuario actual (usuario 4) puede utilizar la clave en
operaciones de criptografía. Sin embargo, cuando el usuario intenta utilizar deleteKey (p. 137) para
eliminar la clave, el comando devuelve el código de error 0xc6.
Owned by user 3
Si se le notifica el error 0xc6, puede utilizar un comando Error2String como este para buscar el error. En
este caso el comando deleteKey ha generado un error de acceso denegado porque la clave se comparte
con el usuario actual, pero es propiedad de otro usuario. Solo los propietarios de la clave tienen permiso
para eliminarla.
Parámetros
-h
Requerido: sí
-r
Obligatorio: sí
exit
El comando exit de key_mgmt_util permite salir de key_mgmt_util. Después de salir correctamente, volverá
a la línea de comandos estándar.
139
AWS CloudHSM Guía del usuario
Referencia
Para poder ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130).
Sintaxis
exit
Parámetros
Este comando no tiene parámetros.
Temas relacionados
• Iniciar key_mgmt_util (p. 130)
exportPrivateKey
El comando exportPrivateKey de key_mgmt_util exporta una clave privada asimétrica de un HSM a un
archivo. Puede utilizarlo para exportar las claves privadas que genere en el HSM. También puede utilizar el
comando para exportar las claves privadas que se importaron en un HSM, como las que se importaron con
el comando importPrivateKey (p. 182).
Durante el proceso de exportación, exportPrivateKey utiliza la clave AES que se seleccione (la clave
de encapsulación) para encapsular (cifrar) la clave privada. De esta forma, el archivo de clave privada
mantiene la integridad durante el tránsito. Para obtener más información, consulte wrapKey (p. 211).
El comando exportPrivateKey copia el material de claves en el archivo que se especifique. Sin embargo,
no elimina la clave del HSM, no cambia sus atributos de clave (p. 214) ni le impide a usted utilizar la
clave en operaciones criptográficas posteriores. Puede exportar la misma clave varias veces.
Solo puede exportar claves privadas que tengan un atributo OBJ_ATTR_EXTRACTABLE con valor 1. Para
buscar los atributos de una clave, utilice el comando getAttribute (p. 172).
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
exportPrivateKey -h
exportPrivateKey -k <private-key-handle
-w <wrapping-key-handle>
-out <key-file>
[-m <wrapping-mechanism>]
[-wk <wrapping-key-file>]
Ejemplos
Este ejemplo muestra cómo utilizar exportPrivateKey para exportar una clave privada de un HSM.
140
AWS CloudHSM Guía del usuario
Referencia
Parámetros
Este comando admite los siguientes parámetros.
-h
Obligatorio: sí
-k
Obligatorio: sí
-w
Para determinar si una clave se puede utilizar como clave de encapsulación, utilice
getAttribute (p. 172) para obtener el valor del atributo OBJ_ATTR_WRAP (262). Para crear una clave
de encapsulación, utilice genSymKey (p. 167) para crear una clave AES (de tipo 31).
Si utiliza el parámetro -wk para especificar una clave de desencapsulación externa, la clave de
encapsulación -w se utiliza para encapsular, pero no para desencapsular, la clave durante la
exportación.
Obligatorio: sí
-out
Obligatorio: sí
-m
Obligatorio: no
-wk
Especifica la clave que se utilizará para desencapsular la clave que se está exportando. Escriba la ruta
y el nombre de un archivo que contenga una clave AES sin cifrar.
Si se incluye este parámetro, exportPrivateKey utiliza la clave del archivo especificado en el parámetro
-w para encapsular la clave que se va a exportar y utiliza la clave especificada con el parámetro -wk
para desencapsularla.
141
AWS CloudHSM Guía del usuario
Referencia
Obligatorio: no
Temas relacionados
• importPrivateKey (p. 182)
• wrapKey (p. 211)
• unWrapKey (p. 204)
• genSymKey (p. 167)
exportPubKey
El comando exportPubKey de key_mgmt_util exporta una clave pública de un HSM a un archivo. Puede
utilizarlo para exportar las claves públicas que genere en un HSM. También puede utilizar este comando
para exportar las claves públicas que se importaron en un HSM, como las que se importaron con el
comando importPubKey (p. 185).
El comando exportPubKey copia el material de claves en el archivo que se especifique. Sin embargo, no
elimina la clave del HSM, no cambia sus atributos de clave (p. 214) ni le impide a usted utilizar la clave
en operaciones criptográficas posteriores. Puede exportar la misma clave varias veces.
Solo puede exportar las claves públicas cuyo valor de OBJ_ATTR_EXTRACTABLE es 1. Para buscar los
atributos de una clave, utilice el comando getAttribute (p. 172).
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
exportPubKey -h
exportPubKey -k <public-key-handle
-out <key-file>
Ejemplos
Este ejemplo muestra cómo utilizar exportPubKey para exportar una clave pública de un HSM.
Parámetros
Este comando admite los siguientes parámetros.
-h
142
AWS CloudHSM Guía del usuario
Referencia
Obligatorio: sí
-k
Obligatorio: sí
-out
Obligatorio: sí
Temas relacionados
• importPubKey (p. 185)
• Generar claves (p. 57)
exSymKey
El comando exSymKey de la herramienta key_mgmt_util exporta una copia sin cifrar de una clave simétrica
desde el HSM y la guarda en un archivo del disco. Para exportar una copia cifrada (encapsulada) de una
clave, utilice wrapKey (p. 211). Para importar una clave no cifrada como las que exSymKey exporta,
utilice imSymKey (p. 187).
Durante el proceso de exportación, exSymKey utiliza la clave AES especificada (la clave de encapsulado)
para encapsular (cifrar) y después desencapsular (descifrar) la clave que se va a exportar. Sin embargo, el
resultado de la operación de exportación es una clave sin cifrar (desencapsulada) en el disco.
Solo el propietario de una clave, es decir, el usuario CU que creó la clave, puede exportarla. Los usuarios
que comparten la clave pueden utilizarla en operaciones criptográficas, pero no pueden exportarla.
exSymKey exporta únicamente claves simétricas. Para exportar claves públicas, utilice
exportPubKey (p. 142). Para exportar claves privadas, utilice exportPrivateKey (p. 140).
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
exSymKey -h
exSymKey -k <key-to-export>
-w <wrapping-key>
-out <key-file>
[-m 4]
[-wk <unwrapping-key-file> ]
Ejemplos
En los ejemplos siguientes, se muestra cómo se utiliza exSymKey para exportar claves simétricas de su
propiedad desde los HSM.
143
AWS CloudHSM Guía del usuario
Referencia
La salida muestra que la clave 7 (la clave 3DES) se ha encapsulado y desencapsulado correctamente y
que, a continuación, se ha escrito en el archivo 3DES.key.
Warning
Aunque la salida indica que se ha escrito una "Wrapped Symmetric Key" (clave simétrica
encapsulada) en el archivo de salida, este contiene una clave no cifrada (desencapsulada).
Esta serie de comandos exporta una clave AES con el identificador de clave 8 del HSM. Utiliza una clave
de sesión AES creada especialmente para este fin.
El primer comando utiliza genSymKey (p. 167) para crear una clave AES de 256 bits. Utiliza el parámetro
-sess para crear una clave que solo existe en la sesión actual.
A continuación, el ejemplo comprueba que la clave 8, es decir, la clave que se va a exportar, sea una
clave simétrica que se puede extraer. También comprueba que la clave de encapsulación, clave 262168,
sea una clave AES que solo exista en la sesión. Puede ejecutar el comando findKey (p. 149), pero este
ejemplo exporta los atributos de ambas claves a archivos y, a continuación, utiliza grep para encontrar los
valores de atributos pertinentes en el archivo.
Estos comandos utilizan getAttribute con un valor -a de 512 (todos) para obtener todos los atributos
de las claves 8 y 262168. Para obtener información sobre los atributos de las claves, consulte la the
section called “Referencia de los atributos de claves” (p. 214).
Estos comandos ejecutan grep para verificar los atributos de la clave que se va a exportar (clave 8) y la
clave de encapsulación solo para la sesión (clave 262168).
144
AWS CloudHSM Guía del usuario
Referencia
Por último, utilizamos un comando exSymKey para exportar una clave 8 utilizando la clave de sesión
(clave 262168) como clave de encapsulado.
En este ejemplo se muestra cómo utilizar una clave de desencapsulación externa para exportar una clave
desde el HSM.
Cuando exporta una clave desde el HSM, usted especifica una clave AES en el HSM para que sea la
clave de encapsulación. De forma predeterminada, esa clave de encapsulación se usa para encapsular y
desencapsular la clave que se va a exportar. Sin embargo, puede utilizar el parámetro -wk para indicar a
exSymKey que utilice una clave externa de un archivo del disco para desencapsularla. Si lo hace, la clave
especificada por el parámetro -w encapsula la clave de destino y la clave del archivo especificado por el
parámetro -wk desencapsula la clave.
Dado que la clave de encapsulación tiene que ser una clave AES, que es simétrica, la clave de
encapsulación del HSM y la clave de desencapsulación del disco han de tener el mismo material de
clave. Para ello, debe importar la clave de encapsulación al HSM o exportarla desde el HSM antes de la
operación de exportación.
En este ejemplo se crea una clave fuera del HSM y se importa al HSM. Se utiliza la copia interna
de la clave para encapsular una clave simétrica que se exporta y la copia de clave del archivo para
desencapsularla.
145
AWS CloudHSM Guía del usuario
Referencia
El primer comando utiliza OpenSSL para generar una clave AES de 256 bits. Guarda la clave en el
archivo aes256-forImport.key. El comando OpenSSL no devuelve una salida, pero puede utilizar
varios comandos para confirmar que todo se ha realizado correctamente. En este ejemplo, se utiliza la
herramienta wc (recuento de palabras), que confirma que el archivo contiene 32 bytes de datos.
$ wc keys/aes256-forImport.key
0 2 32 keys/aes256-forImport.key
Este comando utiliza el comando imSymKey (p. 187) para importar la clave AES desde el archivo
aes256-forImport.key al HSM. Cuando se completa el comando, la clave existe en el HSM con el
identificador de clave 262167 y en el archivo aes256-forImport.key.
Este comando utiliza la clave en una operación de exportación. El comando utiliza exSymKey para
exportar la clave 21, una clave AES de 192 bits. Para encapsular la clave utiliza la clave 262167, que es
la copia que se importó en el HSM. Para desencapsular la clave, utiliza el mismo material de clave en el
archivo aes256-forImport.key. Cuando se completa el comando, la clave 21 se exporta al archivo
aes192_h21.key.
Parámetros
-h
Requerido: sí
-k
Para verificar que se puede exportar una clave, ejecute el comando getAttribute (p. 172) para
obtener el valor del atributo OBJ_ATTR_EXTRACTABLE, que se representa con la constante 354.
Además, puede exportar únicamente claves de su propiedad. Para encontrar el propietario de una
clave, ejecute el comando getKeyInfo (p. 178).
Obligatorio: sí
146
AWS CloudHSM Guía del usuario
Referencia
-w
Una clave de encapsulación es una clave del HSM que se utiliza para cifrar (encapsular) y después
descifrar (desencapsular) la clave que se va a exportar. Solo las claves AES se pueden utilizar como
claves de encapsulación.
Puede utilizar cualquier clave AES (de cualquier tamaño) como clave de encapsulación. Dado que
la clave de encapsulación encapsula y, a continuación, desencapsula inmediatamente la clave
de destino, puede utilizar una clave AES solo de una sesión como clave de encapsulación. Para
determinar si una clave se puede utilizar como clave de encapsulación, utilice getAttribute (p. 172)
para obtener el valor del atributo OBJ_ATTR_WRAP, que se representa con la constante 262. Para
crear una clave de encapsulamiento, use genSymKey (p. 167) para crear una clave AES (escriba
31).
Si utiliza el parámetro -wk para especificar una clave de desencapsulación externa, la clave de
encapsulación -w se utiliza para encapsular, pero no desencapsular, la clave durante la exportación.
Note
La clave 4 representa una clave interna incompatible. Le recomendamos que use una clave
AES que cree y administre como clave de encapsulamiento.
Obligatorio: sí
-out
Especifica la ruta y el nombre del archivo de salida. Cuando el comando se ejecuta correctamente,
este archivo contiene la clave exportada sin cifrar. Si el archivo ya existe, el comando lo sobrescribe
sin ningún tipo de advertencia.
Obligatorio: sí
-m
Obligatorio: no
Predeterminado: 4
-wk
Utilice la clave AES del archivo especificado para desencapsular la clave que se exporta. Escriba la
ruta y el nombre de un archivo que contenga una clave AES sin cifrar.
Si se incluye este parámetro, exSymKey utiliza la clave del HSM que se especificó en el parámetro -w
para encapsular la clave que se va a exportar y utiliza la clave del archivo -wk para desencapsularla.
Los valores de parámetro -w y -wk deben resolverse en la misma clave sin cifrar.
Obligatorio: no
Valor predeterminado: utilice la clave de encapsulación del HSM para realizar la desencapsulación.
Temas relacionados
• genSymKey (p. 167)
• imSymKey (p. 187)
• wrapKey (p. 211)
147
AWS CloudHSM Guía del usuario
Referencia
extractMaskedObject
El comando extractMaskedObject de key_mgmt_util extrae una clave de un HSM y la guarda en un archivo
como un objeto enmascarado. Los objetos enmascarados son objetos clonados que solo se pueden utilizar
después volver a insertarlos en el clúster original mediante el comando insertMaskedObject (p. 193).
Solo puede insertar un objeto enmascarado en el mismo clúster desde el que se generó, o en un clon de
ese clúster. Esto incluye cualquier versión clonada del clúster generada al copiar una copia de seguridad
entre regiones (p. 46) y al utilizar la copia de seguridad para crear un clúster nuevo (p. 47).
Los objetos enmascarados son una forma eficaz de descargar y sincronizar claves, incluidas las claves
no extraíbles (es decir, las claves que tienen un valor de OBJ_ATTR_EXTRACTABLE (p. 214) igual a
0). De esta forma, las claves se pueden sincronizar de forma segura entre los clústeres relacionados de
diferentes regiones sin necesidad de actualizar el archivo de configuración (p. 218) de AWS CloudHSM.
Important
Tras su inserción, los objetos enmascarados se descifran y se les asigna un identificador de clave
que es distinto del identificador de clave de la clave original. Un objeto enmascarado incluye todos
los metadatos asociados a la clave original, incluidos los atributos, la información de propiedad y
uso compartido y la configuración de cuórum. Si necesita sincronizar claves entre los clústeres de
una aplicación, utilice syncKey (p. 125) en cloudhsm_mgmt_util en su lugar.
Para poder ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM. El comando extractMaskedObject lo puede utilizar el CU que es el propietario
de la clave o cualquier CO.
Sintaxis
extractMaskedObject -h
extractMaskedObject -o <object-handle>
-out <object-file>
Ejemplos
Este ejemplo muestra cómo utilizar extractMaskedObject para extraer una clave de un HSM como un
objeto enmascarado.
Este comando extrae un objeto enmascarado de un HSM a partir de la clave con el identificador 524295
y lo guarda como un archivo denominado maskedObj. Cuando el comando se ejecuta correctamente,
extractMaskedObject devuelve un mensaje de confirmación.
Parámetros
Este comando admite los siguientes parámetros.
-h
148
AWS CloudHSM Guía del usuario
Referencia
Obligatorio: sí
-o
Obligatorio: sí
-out
Obligatorio: sí
Temas relacionados
• insertMaskedObject (p. 193)
• syncKey (p. 125)
• Copia de una copia de seguridad entre regiones (p. 46)
• Creación un clúster de AWS CloudHSM a partir de una copia de seguridad anterior (p. 47)
findKey
Utilice el comando findKey de key_mgmt_util para buscar claves mediante los valores de los atributos
de clave. Cuando una clave coincide con todos los criterios que ha establecido, findKey devuelve el
identificador de clave. Si no se especifica ningún parámetro, findKey devuelve los identificadores de
todas las claves que se pueden utilizar en el HSM. Para encontrar los valores de atributo de una clave en
particular, utilice getAttribute (p. 172).
Al igual que todos los comandos de key_mgmt_util, findKey es específico del usuario. Devuelve solo las
claves que el usuario actual puede utilizar en las operaciones criptográficas. Esto incluye las claves que el
usuario actual posee y claves que se han compartido con el usuario actual.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
findKey -h
Ejemplos
En estos ejemplos, se muestra cómo se utiliza findKey para encontrar e identificar claves en los HSM.
Este comando encuentra todas las claves para el usuario actual en el HSM. El resultado incluye claves que
el usuario posee y comparte, y todas las claves públicas en los HSM.
149
AWS CloudHSM Guía del usuario
Referencia
Para obtener los atributos de una clave con un identificador de clave particular, utilice
getAttribute (p. 172). Para determinar si el usuario actual posee o comparte una clave determinada,
utilice getKeyInfo (p. 178) o findAllKeys (p. 100) en cloudhsm_mgmt_util.
Command: findKey
Este comando encuentra claves de AES persistentes que el usuario actual y el usuario 3 pueden utilizar.
(Es posible que el usuario 3 pueda utilizar otras claves que el usuario actual no puede ver.)
Este comando encuentra todas las claves públicas para el usuario actual con la etiqueta 2018-sept.
Este comando encuentra claves RSA (tipo 0) para el usuario actual que se crearon utilizando el módulo en
el archivo m4.txt.
Parámetros
-h
Requerido: sí
-t
Encuentra claves del tipo especificado. Escriba la constante que representa la clase de clave. Por
ejemplo, para encontrar las claves 3DES, escriba -t 21.
Valores válidos:
• 0: RSA
• 1: DSA
• 3: EC
• 16: GENERIC_SECRET
150
AWS CloudHSM Guía del usuario
Referencia
• 18: RC4
• 21: Triple DES (3DES)
• 31: AES
Obligatorio: no
-c
Encuentra claves en la clase especificada. Escriba la constante que representa la clase de clave. Por
ejemplo, para encontrar claves públicas, escriba -c 2.
Obligatorio: no
-l
Encuentra claves con la etiqueta especificada. Escriba la etiqueta exacta. No puede utilizar caracteres
comodín ni expresiones regulares en el valor --l.
Obligatorio: no
-id
Encuentra la clave con el ID especificado. Escriba la cadena exacta del ID. No puede utilizar
caracteres comodín ni expresiones regulares en el valor -id.
Obligatorio: no
-sess
Encuentra claves por estado de la sesión. Para encontrar claves que solo sean válidas en la sesión
actual, escriba 1. Para encontrar claves persistentes, escriba 0.
Obligatorio: no
-u
Encuentra claves que los usuarios especificados y el actual usuario comparten. Escriba una lista
separada por comas de los ID de usuario de HSM, como -u 3 o -u 4,7. Para encontrar los ID de los
usuarios en un HSM, utilice listUsers (p. 197).
Si se especifica un ID de usuario, findKey devuelve las claves de ese usuario. Si se especifican varios
ID de usuario, findKey devuelve las claves que todos los usuarios especificados pueden utilizar.
Como findKey solo devuelve las claves que el usuario actual puede utilizar, los resultados de -u son
siempre idénticos a las claves del usuario actual, o a un subconjunto de ellas. Para obtener todas las
claves que posee un usuario o que se comparten con él, los responsables de criptografía (CO) pueden
utilizar findAllKeys (p. 100) en cloudhsm_mgmt_util.
Obligatorio: no
-m
Encuentra claves que se crearon utilizando el módulo RSA en el archivo especificado. Escriba la ruta
al archivo que almacena el módulo.
Obligatorio: no
151
AWS CloudHSM Guía del usuario
Referencia
-kcv
AWS CloudHSM usa el siguiente método estándar para generar un valor de comprobación de clave:
• Claves simétricas: primeros 3 bytes del resultado de cifrar un bloque de cero con la clave.
• Pares de claves asimétricos: primeros 3 bytes del hash SHA-1 de la clave pública.
• Claves de HMAC: el KVC para claves de HMAC no es compatible en este momento.
Obligatorio: no
Salida
El resultado de findKey muestra el número total de claves coincidentes y sus identificadores de clave
Command: findKey
Total number of keys present 10
Temas relacionados
• findSingleKey (p. 152)
• getKeyInfo (p. 178)
• getAttribute (p. 172)
• findAllKeys (p. 100) en cloudhsm_mgmt_util
• Referencia de los atributos de claves (p. 214)
findSingleKey
El comando findSingleKey de la herramienta key_mgmt_util comprueba si existe una clave en todos los
HSM del clúster.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
findSingleKey -h
findSingleKey -k <key-handle>
152
AWS CloudHSM Guía del usuario
Referencia
Ejemplo
Example
Este comando verifica que la clave 252136 exista en los tres HSM del clúster.
Parámetros
-h
Requerido: sí
-k
Obligatorio: sí
Temas relacionados
• findKey (p. 197)
• getKeyInfo (p. 197)
• getAttribute (p. 149)
genDSAKeyPair
El comando genDSAKeyPair de la herramienta key_mgmt_util genera un par de claves de algoritmo de
firma digital (DSA) en los HSM. Debe especificar la longitud del módulo; el comando genera el valor del
módulo. También puede asignar un ID, compartir la clave con otros usuarios del HSM, crear claves no
extraíbles y claves que caduquen cuando la sesión finaliza. Cuando el comando se ejecuta correctamente,
devuelve identificadores de clave que el HSM asigna a las claves públicas y privadas. Puede utilizar estos
identificadores de clave para identificar las claves ante otros comandos.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Tip
Para buscar los atributos de una clave que ha creado, como el tipo, la longitud, la etiqueta
y el ID, use getAttribute (p. 172). Para buscar las claves de un usuario concreto, use
getKeyInfo (p. 178). Para buscar claves en función de sus valores de atributo, use
findKey (p. 149).
Sintaxis
genDSAKeyPair -h
153
AWS CloudHSM Guía del usuario
Referencia
Ejemplos
En estos ejemplos, se muestra cómo se utiliza genDSAKeyPair para crear un par de claves de DSA.
Este comando crea un par de claves de DSA con una etiqueta DSA. La salida muestra que el identificador
de clave de la clave pública es 19, mientras que el identificador de la clave privada es 21.
Este comando crea un par de claves de DSA que es válido únicamente en la sesión actual. El comando
asigna el ID exclusivo DSA_temp_pair además de la etiqueta obligatoria (que no es exclusiva).
Es posible que le interese crear un par de claves de este tipo para firmar y verificar un token de una
sola sesión. La salida muestra que el identificador de clave de la clave pública es 12, mientras que el
identificador de la clave privada es 14.
Para confirmar que el par de claves exista únicamente en la sesión, utilice el parámetro -sess de
findKey (p. 149) con el valor 1 (true).
154
AWS CloudHSM Guía del usuario
Referencia
Este comando crea un par de claves de DSA. La clave privada se comparte con otros tres usuarios y no
se puede exportar desde el HSM. Cualquier usuario puede utilizar las claves públicas y estas siempre se
pueden extraer.
Este comando crea un par de claves de DSA con la etiqueta DSA-mV2. El comando utiliza el parámetro -
u para compartir la clave privada con los usuarios 4 y 6. Utiliza el parámetro -m_value para solicitar un
cuórum de al menos dos aprobaciones para cualquier operación criptográfica que utilice la clave privada.
El comando también utiliza el parámetro -attest para verificar la integridad del firmware en el que se
genera el par de claves.
La salida muestra que el comando genera una clave pública con el identificador de clave 12 y una clave
privada con el identificador de clave 17 y que la comprobación de declaración del firmware del clúster ha
pasado.
Este comando utiliza getKeyInfo (p. 178) en la clave privada (identificador de clave 17). La salida
confirma que la clave es propiedad del usuario actual (usuario 3) y que se comparte con los usuarios 4 y 6
(y nadie más). La salida también muestra que la autenticación de cuórum está habilitada y que el cuórum
es de dos.
Command: getKeyInfo -k 17
Owned by user 3
4
6
2 Users need to approve to use/manage this key
155
AWS CloudHSM Guía del usuario
Referencia
Parámetros
-h
Requerido: sí
-m
Obligatorio: sí
-l
Especifica una etiqueta definida por el usuario para el par de claves. Escriba una cadena. La misma
etiqueta se aplica a las dos claves del par.
Puede usar cualquier frase que le ayude a identificar la clave. Dado que la etiqueta no tiene que ser
única, puede usarla para agrupar claves y dividirlas en categorías.
Requerido: sí
-id
Especifica un identificador definido por el usuario para el par de claves. Escriba una cadena que sea
única en el clúster. El valor predeterminado es una cadena vacía. El ID que especifique se aplica a las
dos claves del par.
Requerido: No
-min_srv
Especifica el número mínimo de HSM en los que la clave se sincroniza antes de que el valor del
parámetro -timeout expire. Si la clave no está sincronizada con el número especificado de
servidores en el tiempo asignado, no se creará.
AWS CloudHSM sincroniza automáticamente cada clave con cada HSM del clúster. Para acelerar el
proceso, establezca el valor de min_srv en un número menor que el de HSM del clúster y establezca
un valor bajo de tiempo de espera. Sin embargo, tenga en cuenta que puede que algunas solicitudes
no generen ninguna clave.
Predeterminado: 1
Requerido: No
-m_value
Especifica el número de usuarios que deben aprobar cualquier operación criptográfica que use la
clave privada del par. Escriba un valor de 0 a 8.
Este parámetro establece un requisito de autenticación de cuórum para la clave privada. El valor
predeterminado, 0, deshabilita la característica de autenticación de cuórum para la clave. Cuando
la autenticación de cuórum está habilitada, el número especificado de usuarios deben firmar un
token para aprobar las operaciones criptográficas que usan la clave privada y las operaciones que la
comparten o la dejan de compartir.
156
AWS CloudHSM Guía del usuario
Referencia
Este parámetro solo es válido cuando el parámetro -u del comando comparte el par de claves con
suficientes usuarios para satisfacer el requisito m_value.
Predeterminado: 0
Requerido: No
-nex
Hace que la clave privada no se pueda extraer. La clave privada que se genera no se puede exportar
desde el HSM (p. 60). Las claves públicas son siempre extraíbles.
Requerido: No
-sess
Crea una clave que solo existe en la sesión actual. La clave no se puede recuperar después de que
finalice la sesión.
Use este parámetro cuando necesite solo una clave de manera breve, como una clave de
encapsulamiento, y descifre rápidamente, otra clave. No use una clave de sesión para cifrar datos que
pueda necesitar descifrar después de que finalice la sesión.
Para cambiar una clave de sesión a una clave persistente (token), use setAttribute (p. 200).
Requerido: No
-timeout
Especifica cuánto tiempo (en segundos) espera el comando para sincronizar una clave con el número
de HSM que especifica el parámetro min_srv.
Este parámetro solo es válido cuando el parámetro min_srv también se usa en el comando.
Predeterminado: sin tiempo de espera. El comando espera indefinidamente y se devuelve solo cuando
la clave se sincroniza con el número mínimo de servidores.
Requerido: No
-u
Comparte la clave privada del par con los usuarios especificados. Este parámetro concede permiso a
otros usuarios de criptografía (CU) de HSM para usar la clave privada en operaciones criptográficas.
Cualquier usuario puede usar claves públicas sin compartir.
Escriba una lista de ID de usuario de HSM separada por comas, como -u 5,6. No incluya el ID de
usuario de HSM del usuario actual. Para buscar los ID de usuario de HSM de los CU del HSM, use
listUsers (p. 197). Para compartir y dejar de compartir claves existentes, use shareKey (p. 123) en
cloudhsm_mgmt_util.
Requerido: No
-attest
Ejecuta una comprobación de integridad que verifica el firmware en el que se ejecuta el clúster no se
ha manipulado.
157
AWS CloudHSM Guía del usuario
Referencia
Requerido: No
Temas relacionados
• genRSAKeyPair (p. 162)
• genSymKey (p. 167)
• genECCKeyPair (p. 158)
genECCKeyPair
El comando genECCKeyPair de la herramienta key_mgmt_util genera un par de claves de criptografía
de curva elíptica (ECC) en los HSM. Cuando ejecute el comando genECCKeyPair, debe especificar
el identificador de curva elíptica y una etiqueta para el par de claves. También puede compartir la clave
privada con otros usuarios de CU, crear claves no extraíbles, claves controladas mediante cuórum y
claves que caduquen cuando finalice la sesión. Cuando el comando se ejecuta correctamente, devuelve
identificadores de clave que el HSM asigna a las claves ECC públicas y privadas. Puede utilizar estos
identificadores de clave para identificar las claves ante otros comandos.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Tip
Para buscar los atributos de una clave que ha creado, como el tipo, la longitud, la etiqueta
y el ID, use getAttribute (p. 172). Para buscar las claves de un usuario concreto, use
getKeyInfo (p. 178). Para buscar claves en función de sus valores de atributo, use
findKey (p. 149).
Sintaxis
genECCKeyPair -h
Ejemplos
En los siguientes ejemplos, se muestra cómo se utiliza genECCKeyPair para crear un par de claves ECC
en los HSM.
158
AWS CloudHSM Guía del usuario
Referencia
Después de generar la clave, puede examinar sus atributos. Utilice getAttribute (p. 172) para escribir
todos los atributos (representados por la constante 512) de la nueva clave privada de ECC en el archivo
attr_262177.
A continuación, utilice el comando cat para ver el contenido del archivo de atributos attr_262177. El
resultado muestra que la clave es una clave privada de curva elíptica que puede usarse para firmar, pero
no para cifrar, descifrar, encapsular, desencapsular o verificar. La clave es persistente y exportable.
$ cat attr_262177
OBJ_ATTR_CLASS
0x03
OBJ_ATTR_KEY_TYPE
0x03
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x00
OBJ_ATTR_DECRYPT
0x00
OBJ_ATTR_WRAP
0x00
OBJ_ATTR_UNWRAP
0x00
OBJ_ATTR_SIGN
0x01
OBJ_ATTR_VERIFY
0x00
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x01
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
ecc2
OBJ_ATTR_ID
OBJ_ATTR_VALUE_LEN
0x0000008a
OBJ_ATTR_KCV
0xbbb32a
OBJ_ATTR_MODULUS
044a0f9d01d10f7437d9fa20995f0cc742552e5ba16d3d7e9a65a33e20ad3e569e68eb62477a9960a87911e6121d112b698e469
OBJ_ATTR_MODULUS_BITS
159
AWS CloudHSM Guía del usuario
Referencia
0x0000019f
Este comando intenta crear un par de claves ECC utilizando una curva NID_X9_62_prime192v1. Debido a
que esta curva elíptica no es válida para los HSM de modo FIPS-mode HSM, el comando produce un error.
El mensaje informa que un servidor en el clúster no está disponible, pero esto no suele indicar un problema
con los HSM en el clúster.
Cfm3GenerateKeyPair returned: 0xb3 : HSM Error: This operation violates the current
configured/FIPS policies
Parámetros
-h
Obligatorio: sí
-i
Valores válidos:
• 2: NID_X9_62_prime256v1
• 14: NID_secp384r1
• 16: NID_secp256k1
Obligatorio: sí
-l
Especifica una etiqueta definida por el usuario para el par de claves. Escriba una cadena. La misma
etiqueta se aplica a las dos claves del par.
Puede usar cualquier frase que le ayude a identificar la clave. Dado que la etiqueta no tiene que ser
única, puede usarla para agrupar claves y dividirlas en categorías.
Requerido: sí
-id
Especifica un identificador definido por el usuario para el par de claves. Escriba una cadena que sea
única en el clúster. El valor predeterminado es una cadena vacía. El ID que especifique se aplica a las
dos claves del par.
Requerido: No
-min_srv
Especifica el número mínimo de HSM en los que la clave se sincroniza antes de que el valor del
parámetro -timeout expire. Si la clave no está sincronizada con el número especificado de
servidores en el tiempo asignado, no se creará.
160
AWS CloudHSM Guía del usuario
Referencia
AWS CloudHSM sincroniza automáticamente cada clave con cada HSM del clúster. Para acelerar el
proceso, establezca el valor de min_srv en un número menor que el de HSM del clúster y establezca
un valor bajo de tiempo de espera. Sin embargo, tenga en cuenta que puede que algunas solicitudes
no generen ninguna clave.
Predeterminado: 1
Requerido: No
-m_value
Especifica el número de usuarios que deben aprobar cualquier operación criptográfica que use la
clave privada del par. Escriba un valor de 0 a 8.
Este parámetro establece un requisito de autenticación de cuórum para la clave privada. El valor
predeterminado, 0, deshabilita la característica de autenticación de cuórum para la clave. Cuando
la autenticación de cuórum está habilitada, el número especificado de usuarios deben firmar un
token para aprobar las operaciones criptográficas que usan la clave privada y las operaciones que la
comparten o la dejan de compartir.
Este parámetro solo es válido cuando el parámetro -u del comando comparte el par de claves con
suficientes usuarios para satisfacer el requisito m_value.
Predeterminado: 0
Requerido: No
-nex
Hace que la clave privada no se pueda extraer. La clave privada que se genera no se puede exportar
desde el HSM (p. 60). Las claves públicas son siempre extraíbles.
Requerido: No
-sess
Crea una clave que solo existe en la sesión actual. La clave no se puede recuperar después de que
finalice la sesión.
Use este parámetro cuando necesite solo una clave de manera breve, como una clave de
encapsulamiento, y descifre rápidamente, otra clave. No use una clave de sesión para cifrar datos que
pueda necesitar descifrar después de que finalice la sesión.
Para cambiar una clave de sesión a una clave persistente (token), use setAttribute (p. 200).
Requerido: No
-timeout
Especifica cuánto tiempo (en segundos) espera el comando para sincronizar una clave con el número
de HSM que especifica el parámetro min_srv.
Este parámetro solo es válido cuando el parámetro min_srv también se usa en el comando.
Predeterminado: sin tiempo de espera. El comando espera indefinidamente y se devuelve solo cuando
la clave se sincroniza con el número mínimo de servidores.
Requerido: No
161
AWS CloudHSM Guía del usuario
Referencia
-u
Comparte la clave privada del par con los usuarios especificados. Este parámetro concede permiso a
otros usuarios de criptografía (CU) de HSM para usar la clave privada en operaciones criptográficas.
Cualquier usuario puede usar claves públicas sin compartir.
Escriba una lista de ID de usuario de HSM separada por comas, como -u 5,6. No incluya el ID de
usuario de HSM del usuario actual. Para buscar los ID de usuario de HSM de los CU del HSM, use
listUsers (p. 197). Para compartir y dejar de compartir claves existentes, use shareKey (p. 123) en
cloudhsm_mgmt_util.
Requerido: No
-attest
Ejecuta una comprobación de integridad que verifica el firmware en el que se ejecuta el clúster no se
ha manipulado.
Requerido: No
Temas relacionados
• genSymKey (p. 167)
• genRSAKeyPair (p. 162)
• genDSAKeyPair (p. 153)
genPBEKey
El comando genPBEKey en la herramienta key_mgmt_util genera una clave simétrica Triple DES (3DES)
basada en una contraseña. Este comando no es compatible con los HSM validados mediante FIPS que
AWS CloudHSM proporciona.
Para crear claves simétricas, utilice genSymKey (p. 167). Para crear pares de claves asimétricas, utilice
genRSAKeyPair (p. 162), genDSAKeyPair (p. 153)o genECCKeyPair (p. 158).
genRSAKeyPair
El comando genRSAKeyPair de la herramienta key_mgmt_util genera un par de claves asimétricas RSA.
Deberá especificar el tipo de clave, la longitud del módulo y un exponente público. El comando genera
un módulo de la longitud especificada y crea el par de claves. Puede asignar un ID, compartir la clave
con otros usuarios del HSM, crear claves no extraíbles y claves que caduquen cuando la sesión finaliza.
Cuando el comando se ejecuta correctamente, devuelve un identificador de clave que el HSM asigna a la
clave. Puede utilizar el identificador de clave para identificar la clave ante otros comandos.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Tip
Para buscar los atributos de una clave que ha creado, como el tipo, la longitud, la etiqueta
y el ID, use getAttribute (p. 172). Para buscar las claves de un usuario concreto, use
getKeyInfo (p. 178). Para buscar claves en función de sus valores de atributo, use
findKey (p. 149).
162
AWS CloudHSM Guía del usuario
Referencia
Sintaxis
genRSAKeyPair -h
Ejemplos
En estos ejemplos, se muestra cómo se utiliza genRSAKeyPair para crear pares de claves asimétricas en
los HSM.
El siguiente comando utiliza getAttribute (p. 172) para obtener los atributos de la clave pública que
acabamos de crear. Escribe la salida en el archivo attr_262159. Va seguido de un comando cat que
obtiene el contenido del archivo de atributos. Para obtener ayuda sobre cómo interpretar los atributos de
claves, consulte Referencia de los atributos de claves (p. 214).
Los valores hexadecimales resultantes confirman que se trata de una clave pública (OBJ_ATTR_CLASS
0x02) con un tipo de RSA (OBJ_ATTR_KEY_TYPE 0x00). Puede utilizar esta clave pública para cifrar
(OBJ_ATTR_ENCRYPT 0x01), pero no para descifrar (OBJ_ATTR_DECRYPT 0x00) o encapsular
(OBJ_ATTR_WRAP 0x00). Los resultados también incluyen la longitud de la clave (512, 0x200), el módulo,
la longitud del módulo (2048, 0x800) y el exponente público (65541, 0x10005).
$ cat attr_262159
OBJ_ATTR_CLASS
0x02
OBJ_ATTR_KEY_TYPE
0x00
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
163
AWS CloudHSM Guía del usuario
Referencia
0x00
OBJ_ATTR_ENCRYPT
0x01
OBJ_ATTR_DECRYPT
0x00
OBJ_ATTR_WRAP
0x00
OBJ_ATTR_UNWRAP
0x00
OBJ_ATTR_SIGN
0x00
OBJ_ATTR_VERIFY
0x01
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x00
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
rsa_test
OBJ_ATTR_ID
OBJ_ATTR_VALUE_LEN
0x00000200
OBJ_ATTR_KCV
0x0a4364
OBJ_ATTR_MODULUS
9162b8d5d01d7b5b1179686d15e74d1dd38eaa5b6e64673195aaf951df8828deeca002c215d4209a
c0bf90a9587ddca7f6351d5d4df0f6201b65daccd9955e4f49a819c0d39cb6717623bfa33436facc
835c15961a58a63ca25bf0d2d4888d77418c571c190f8cc5a82483050658c00df4658dff248202bc
95e886b1b5c7a981f09b0eb4f606641efe09bf3881f63c90d4a4415219ba796df449862b9d9c2a78
d1c24fff56cf9b25f2b7dee44e200dd9550bd097a7044b22ca004033236bc708a0bad4a111533ed4
6d049e5ec0b449b4a3877e566b0ce9d0a60fd1c15352b131ccc234f1719bed3918df579a66e7fff2
9dc80dc5dbbf6e3d7d092d67c6abca7d
OBJ_ATTR_MODULUS_BITS
0x00000800
OBJ_ATTR_PUBLIC_EXPONENT
0x010005
Parámetros
-h
164
AWS CloudHSM Guía del usuario
Referencia
Requerido: sí
-m
Obligatorio: sí
-e
Especifica el exponente público. El valor debe ser un número impar superior o igual a 65537.
Obligatorio: sí
-l
Especifica una etiqueta definida por el usuario para el par de claves. Escriba una cadena. La misma
etiqueta se aplica a las dos claves del par.
Puede usar cualquier frase que le ayude a identificar la clave. Dado que la etiqueta no tiene que ser
única, puede usarla para agrupar claves y dividirlas en categorías.
Requerido: sí
-id
Especifica un identificador definido por el usuario para el par de claves. Escriba una cadena que sea
única en el clúster. El valor predeterminado es una cadena vacía. El ID que especifique se aplica a las
dos claves del par.
Requerido: No
-min_srv
Especifica el número mínimo de HSM en los que la clave se sincroniza antes de que el valor del
parámetro -timeout expire. Si la clave no está sincronizada con el número especificado de
servidores en el tiempo asignado, no se creará.
AWS CloudHSM sincroniza automáticamente cada clave con cada HSM del clúster. Para acelerar el
proceso, establezca el valor de min_srv en un número menor que el de HSM del clúster y establezca
un valor bajo de tiempo de espera. Sin embargo, tenga en cuenta que puede que algunas solicitudes
no generen ninguna clave.
Predeterminado: 1
Requerido: No
-m_value
Especifica el número de usuarios que deben aprobar cualquier operación criptográfica que use la
clave privada del par. Escriba un valor de 0 a 8.
Este parámetro establece un requisito de autenticación de cuórum para la clave privada. El valor
predeterminado, 0, deshabilita la característica de autenticación de cuórum para la clave. Cuando
la autenticación de cuórum está habilitada, el número especificado de usuarios deben firmar un
token para aprobar las operaciones criptográficas que usan la clave privada y las operaciones que la
comparten o la dejan de compartir.
Este parámetro solo es válido cuando el parámetro -u del comando comparte el par de claves con
suficientes usuarios para satisfacer el requisito m_value.
165
AWS CloudHSM Guía del usuario
Referencia
Predeterminado: 0
Requerido: No
-nex
Hace que la clave privada no se pueda extraer. La clave privada que se genera no se puede exportar
desde el HSM (p. 60). Las claves públicas son siempre extraíbles.
Requerido: No
-sess
Crea una clave que solo existe en la sesión actual. La clave no se puede recuperar después de que
finalice la sesión.
Use este parámetro cuando necesite solo una clave de manera breve, como una clave de
encapsulamiento, y descifre rápidamente, otra clave. No use una clave de sesión para cifrar datos que
pueda necesitar descifrar después de que finalice la sesión.
Para cambiar una clave de sesión a una clave persistente (token), use setAttribute (p. 200).
Requerido: No
-timeout
Especifica cuánto tiempo (en segundos) espera el comando para sincronizar una clave con el número
de HSM que especifica el parámetro min_srv.
Este parámetro solo es válido cuando el parámetro min_srv también se usa en el comando.
Predeterminado: sin tiempo de espera. El comando espera indefinidamente y se devuelve solo cuando
la clave se sincroniza con el número mínimo de servidores.
Requerido: No
-u
Comparte la clave privada del par con los usuarios especificados. Este parámetro concede permiso a
otros usuarios de criptografía (CU) de HSM para usar la clave privada en operaciones criptográficas.
Cualquier usuario puede usar claves públicas sin compartir.
Escriba una lista de ID de usuario de HSM separada por comas, como -u 5,6. No incluya el ID de
usuario de HSM del usuario actual. Para buscar los ID de usuario de HSM de los CU del HSM, use
listUsers (p. 197). Para compartir y dejar de compartir claves existentes, use shareKey (p. 123) en
cloudhsm_mgmt_util.
Requerido: No
-attest
Ejecuta una comprobación de integridad que verifica el firmware en el que se ejecuta el clúster no se
ha manipulado.
Requerido: No
166
AWS CloudHSM Guía del usuario
Referencia
Temas relacionados
• genSymKey (p. 167)
• genDSAKeyPair (p. 153)
• genECCKeyPair (p. 158)
genSymKey
El comando genSymKey de la herramienta key_mgmt_util genera una clave simétrica en los HSM. Puede
especificar el tipo y el tamaño de la clave, asignar un ID y una etiqueta, y compartir la clave con otros
usuarios de HSM. También puede crear claves que no se pueden extraer y claves que caducan al finalizar
la sesión. Cuando el comando se ejecuta correctamente, devuelve un identificador de clave que el HSM
asigna a la clave. Puede utilizar el identificador de clave para identificar la clave ante otros comandos.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Tip
Para buscar los atributos de una clave que ha creado, como el tipo, la longitud, la etiqueta
y el ID, use getAttribute (p. 172). Para buscar las claves de un usuario concreto, use
getKeyInfo (p. 178). Para buscar claves en función de sus valores de atributo, use
findKey (p. 149).
Sintaxis
genSymKey -h
genSymKey -t <key-type>
-s <key-size>
-l <label>
[-id <key-ID>]
[-min_srv <minimum-number-of-servers>]
[-m_value <0..8>]
[-nex]
[-sess]
[-timeout <number-of-seconds> ]
[-u <user-ids>]
[-attest]
Ejemplos
En estos ejemplos, se muestra cómo se utiliza genSymKey para crear claves simétricas en los HSM.
Este comando crea una clave AES de 256 bits con una etiqueta aes256. El resultado muestra que el
identificador de clave de la clave nueva es 6.
167
AWS CloudHSM Guía del usuario
Referencia
Este comando crea una clave AES de 192 bits no extraíble que es válida únicamente en la sesión
actual. Puede que desee crear una clave como esta para encapsular (y, a continuación, desencapsular
inmediatamente) una clave que se está exportando.
Este comando crea una clave de 512 bytes genéricos con una etiqueta IT_test_key. El comando no
espera a que la clave se sincronice en todos los HSM en el clúster. En su lugar, regresa tan pronto como
se crea la clave en cualquier HSM (-min_srv 1) o en 1 segundo (-timeout 1), el periodo que sea
más corto. Si la clave no se sincroniza con el número mínimo especificado de HSM antes de que venza
el tiempo de espera, no se genera. Es posible que desee utilizar un comando como este en un script que
crea numerosas claves, como el bucle for del siguiente ejemplo.
$ for i in {1..30};
do /opt/cloudhsm/bin/key_mgmt_util singlecmd loginHSM -u CU -s example_user -p
example_pwd genSymKey -l aes -t 31 -s 32 -min_srv 1 -timeout 1;
done;
Este comando crea una clave secreta genérica de 2048 bits con la etiqueta generic-mV2. El comando
utiliza el parámetro -u para compartir la clave con otro CU, el usuario 6. Utiliza el parámetro -m_value
para solicitar un cuórum de al menos dos aprobaciones para cualquier operación criptográfica que utilice la
clave. El comando también utiliza el parámetro -attest para verificar la integridad del firmware en el que
se genera la clave.
El resultado muestra que el comando generó una clave con identificador de clave 9 y que se ha superado
la comprobación de declaración del firmware del clúster.
Este comando crea una clave Triple DES con una etiqueta 3DES_shared y un ID de IT-02. La clave la
pueden utilizar el usuario actual y los usuarios 4 y 5. Se produce un error en el comando si el ID no es
único en el clúster o si el usuario actual es el usuario 4 o el usuario 5.
168
AWS CloudHSM Guía del usuario
Referencia
Para verificar que la clave 3DES nueva es propiedad del usuario actual y se comparte con los usuarios 4
y 5, utilice getKeyInfo (p. 178). El comando utiliza el identificador que se asignó a la clave nueva (Key
Handle: 7).
El resultado confirma que la clave es propiedad del usuario 3 y se comparte con los usuarios 4 y 5.
Command: getKeyInfo -k 7
Owned by user 3
4, 5
Para confirmar el resto de las propiedades de la clave, utilice getAttribute (p. 172). El primer comando
utiliza getAttribute para obtener todos los atributos (-a 512) del identificador de clave 7 (-o 7).
Los escribe en el archivo attr_7. El segundo comando utiliza cat para obtener el contenido del archivo
attr_7.
Este comando confirma que la clave 7 es una clave simétrica de 192 bits (OBJ_ATTR_VALUE_LEN
0x00000018 o 24 bytes) 3DES (OBJ_ATTR_KEY_TYPE 0x15) (OBJ_ATTR_CLASS 0x04) con una
etiqueta 3DES_shared (OBJ_ATTR_LABEL 3DES_shared) y un ID IT_02 (OBJ_ATTR_ID IT-02). La
clave es persistente (OBJ_ATTR_TOKEN 0x01) y extraíble (OBJ_ATTR_EXTRACTABLE 0x01) y se puede
utilizar para el cifrado, el descifrado y el encapsulado.
Para obtener ayuda sobre cómo interpretar los atributos de claves, consulte Referencia de los atributos de
claves (p. 214).
$ cat attr_7
OBJ_ATTR_CLASS
0x04
OBJ_ATTR_KEY_TYPE
0x15
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x01
OBJ_ATTR_DECRYPT
0x01
OBJ_ATTR_WRAP
0x00
169
AWS CloudHSM Guía del usuario
Referencia
OBJ_ATTR_UNWRAP
0x00
OBJ_ATTR_SIGN
0x00
OBJ_ATTR_VERIFY
0x00
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x01
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
3DES_shared
OBJ_ATTR_ID
IT-02
OBJ_ATTR_VALUE_LEN
0x00000018
OBJ_ATTR_KCV
0x59a46e
Parámetros
-h
Requerido: sí
-t
Especifica el tipo de clave simétrica. Escriba la constante que representa el tipo de clave. Por ejemplo,
para crear una clave AES, escriba -t 31.
Valores válidos:
• 16: GENERIC_SECRET. Una clave secreta genérica es una matriz de bytes que no se ajusta a
ningún estándar en particular, como, por ejemplo, los requisitos de una clave AES.
• 18: RC4. Las claves RC4 no son válidas en los HSM en modo FIPS
• 21: Triple DES (3DES).
• 31: AES
Obligatorio: sí
-s
Especifica el tamaño de la clave en bytes. Por ejemplo, para crear una clave de 192 bits, escriba 24.
Obligatorio: sí
-l
Especifica una etiqueta definida por el usuario para la clave. Escriba una cadena.
Puede usar cualquier frase que le ayude a identificar la clave. Dado que la etiqueta no tiene que ser
única, puede usarla para agrupar claves y dividirlas en categorías.
Requerido: sí
170
AWS CloudHSM Guía del usuario
Referencia
-attest
Ejecuta una comprobación de integridad que verifica el firmware en el que se ejecuta el clúster no se
ha manipulado.
Requerido: No
-id
Especifica un identificador definido por el usuario para la clave. Escriba una cadena que sea única en
el clúster. El valor predeterminado es una cadena vacía.
Requerido: No
-min_srv
Especifica el número mínimo de HSM en los que la clave se sincroniza antes de que el valor del
parámetro -timeout expire. Si la clave no está sincronizada con el número especificado de
servidores en el tiempo asignado, no se creará.
AWS CloudHSM sincroniza automáticamente cada clave con cada HSM del clúster. Para acelerar el
proceso, establezca el valor de min_srv en un número menor que el de HSM del clúster y establezca
un valor bajo de tiempo de espera. Sin embargo, tenga en cuenta que puede que algunas solicitudes
no generen ninguna clave.
Predeterminado: 1
Requerido: No
-m_value
Especifica el número de usuarios que deben aprobar cualquier operación criptográfica que use la
clave. Escriba un valor de 0 a 8.
Este parámetro solo es válido cuando el parámetro -u del comando comparte la clave con suficientes
usuarios para satisfacer el requisito m_value.
Predeterminado: 0
Requerido: No
-nex
Hace que la clave no se pueda extraer. La clave que se genera no se puede exportar desde el
HSM (p. 60).
Requerido: No
-sess
Crea una clave que solo existe en la sesión actual. La clave no se puede recuperar después de que
finalice la sesión.
171
AWS CloudHSM Guía del usuario
Referencia
Use este parámetro cuando necesite solo una clave de manera breve, como una clave de
encapsulamiento, y descifre rápidamente, otra clave. No use una clave de sesión para cifrar datos que
pueda necesitar descifrar después de que finalice la sesión.
Para cambiar una clave de sesión a una clave persistente (token), use setAttribute (p. 200).
Requerido: No
-timeout
Especifica cuánto tiempo (en segundos) espera el comando para sincronizar una clave con el número
de HSM que especifica el parámetro min_srv.
Este parámetro solo es válido cuando el parámetro min_srv también se usa en el comando.
Predeterminado: sin tiempo de espera. El comando espera indefinidamente y se devuelve solo cuando
la clave se sincroniza con el número mínimo de servidores.
Requerido: No
-u
Comparte la clave con los usuarios especificados. Este parámetro concede permiso a otros usuarios
de criptografía (CU) de HSM para usar esta clave en operaciones criptográficas.
Escriba una lista de ID de usuario de HSM separada por comas, como -u 5,6. No incluya el ID de
usuario de HSM del usuario actual. Para buscar los ID de usuario de HSM de los CU del HSM, use
listUsers (p. 197). Para compartir y dejar de compartir claves existentes, use shareKey (p. 123) en
cloudhsm_mgmt_util.
Requerido: No
Temas relacionados
• exSymKey (p. 143)
• genRSAKeyPair (p. 162)
• genDSAKeyPair (p. 153)
• genECCKeyPair (p. 158)
getAttribute
El comando getAttribute de key_mgmt_util escribe uno o varios valores de atributo de una clave de AWS
CloudHSM en un archivo. Si el atributo que especifica no existe para el tipo de clave, como el módulo de
una clave AES, getAttribute devuelve un error.
Los atributos de la clave son las propiedades de una clave. Contienen características, como el tipo de
clave, clase, etiqueta e ID y los valores que representan las acciones que puede desempeñar con la clave,
como cifrar, descifrar, encapsular, firmar y verificar.
Solamente puede utilizar getAttribute en claves que sean de su propiedad y que hayan compartido con
usted. Puede ejecutar este comando o el comando getAttribute (p. 103) en cloudhsm_mgmt_util, que
obtiene el valor de un atributo de una clave de todos los HSM de un clúster y lo escribe en stdout o en un
archivo.
172
AWS CloudHSM Guía del usuario
Referencia
Para obtener una lista de los atributos y las constantes que los representan, ejecute el comando
listAttributes (p. 196). Para cambiar los valores de los atributos de las claves existentes, utilice
setAttribute (p. 200) en key_mgmt_util y setAttribute (p. 119) en cloudhsm_mgmt_util. Para
obtener ayuda sobre cómo interpretar los atributos de claves, consulte Referencia de los atributos de
claves (p. 214).
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
getAttribute -h
Ejemplos
En estos ejemplos, se muestra cómo se utiliza getAttribute para obtener los atributos de las claves de los
HSM.
En este ejemplo se obtiene el tipo de la clave, por ejemplo una AES, 3DES o una clave genérica, o una
clave RSA o par de claves de curva elíptica.
El primer comando ejecuta listAttributes (p. 196), que obtiene los atributos de una clave y las constantes
que los representan. La salida muestra que la constante del tipo de clave es 256. Para obtener ayuda
sobre cómo interpretar los atributos de claves, consulte Referencia de los atributos de claves (p. 214).
Command: listAttributes
Description
===========
The following are all of the possible attribute values for getAttributes.
OBJ_ATTR_CLASS = 0
OBJ_ATTR_TOKEN = 1
OBJ_ATTR_PRIVATE = 2
OBJ_ATTR_LABEL = 3
OBJ_ATTR_KEY_TYPE = 256
OBJ_ATTR_ID = 258
OBJ_ATTR_SENSITIVE = 259
OBJ_ATTR_ENCRYPT = 260
OBJ_ATTR_DECRYPT = 261
OBJ_ATTR_WRAP = 262
OBJ_ATTR_UNWRAP = 263
OBJ_ATTR_SIGN = 264
OBJ_ATTR_VERIFY = 266
OBJ_ATTR_LOCAL = 355
OBJ_ATTR_MODULUS = 288
OBJ_ATTR_MODULUS_BITS = 289
OBJ_ATTR_PUBLIC_EXPONENT = 290
OBJ_ATTR_VALUE_LEN = 353
OBJ_ATTR_EXTRACTABLE = 354
OBJ_ATTR_KCV = 371
El segundo comando ejecuta getAttribute. Solicita el tipo de clave (atributo 256) del indicador de clave
524296 y lo escribe en el archivo attribute.txt.
173
AWS CloudHSM Guía del usuario
Referencia
El último comando obtiene el contenido del archivo de clave. La salida revela que el tipo de clave es 0x15
o 21, lo que es una clave triple DES (3DES). Para informarse de las definiciones de los valores de clase y
tipo, consulte la sección de referencia de los atributos de clave (p. 214).
$ cat attribute.txt
OBJ_ATTR_KEY_TYPE
0x00000015
Este comando obtiene todos los atributos de la clave que tiene el indicador 6 y los escribe en el archivo
attr_6. Utiliza un valor de atributo de 512, que representa todos los atributos.
Este comando muestra el contenido de un archivo de atributo de muestra con todos los valores de
atributo. Entre los valores, se indica que la clave es una clave AES de 256 bits con el ID test_01 y la
etiqueta aes256. La clave es extraíble y persistente; es decir, no es una clave de una única sesión. Para
obtener ayuda sobre cómo interpretar los atributos de claves, consulte Referencia de los atributos de
claves (p. 214).
$ cat attribute.txt
OBJ_ATTR_CLASS
0x04
OBJ_ATTR_KEY_TYPE
0x15
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x01
OBJ_ATTR_DECRYPT
0x01
OBJ_ATTR_WRAP
0x01
OBJ_ATTR_UNWRAP
0x01
OBJ_ATTR_SIGN
0x00
OBJ_ATTR_VERIFY
0x00
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x01
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
aes256
OBJ_ATTR_ID
174
AWS CloudHSM Guía del usuario
Referencia
test_01
OBJ_ATTR_VALUE_LEN
0x00000020
OBJ_ATTR_KCV
0x1a4b31
Parámetros
-h
Requerido: sí
-o
Especifica el identificador de la clave de destino. Puede especificar una única clave en cada comando.
Para obtener el identificador de una clave, use findKey (p. 149).
Además, debe ser propietario de la clave especificada o esta debe compartirse con usted. Para
encontrar los usuarios de una clave, use getKeyInfo (p. 178).
Obligatorio: sí
-a
Identifica el atributo. Escriba una constante que represente un atributo o 512, que representa todos
los atributos. Por ejemplo, para obtener el tipo de clave, escriba 256, que es la constante del atributo
OBJ_ATTR_KEY_TYPE.
Para generar una lista de los atributos y sus constantes, utilice listAttributes (p. 196). Para obtener
ayuda sobre cómo interpretar los atributos de claves, consulte Referencia de los atributos de
claves (p. 214).
Obligatorio: sí
-out
Escribe la salida en el archivo especificado. Escriba una ruta de archivo. No puede escribir la salida en
stdout.
Si el archivo especificado existe, getAttribute sobrescribe el archivo sin ningún tipo de advertencia.
Obligatorio: sí
Temas relacionados
• getAttribute (p. 103) en cloudhsm_mgmt_util
• listAttributes (p. 196)
• setAttribute (p. 200)
• findKey (p. 149)
• Referencia de los atributos de claves (p. 214)
getCaviumPrivKey
El comando getCaviumPrivKey de key_mgmt_util exporta una clave privada de un HSM en formato PEM
falso. El archivo PEM falso, que no contiene el material de la clave privada sino que hace referencia a la
clave privada en el HSM, se puede utilizar para establecer la descarga SSL/TLS del servidor web a AWS
CloudHSM. Para obtener más información, consulte Descarga de SSL/TLS en Linux (p. 291).
175
AWS CloudHSM Guía del usuario
Referencia
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
getCaviumPrivKey -h
exportPrivateKey -k <private-key-handle
-out <fake-PEM-file>
Ejemplos
Este ejemplo muestra cómo utilizar getCaviumPrivKey para exportar una clave privada en formato PEM
falso.
Parámetros
Este comando admite los siguientes parámetros.
-h
Obligatorio: sí
-k
Especifica el identificador de clave de la clave privada que se va a exportar en formato PEM falso.
Obligatorio: sí
-out
Obligatorio: sí
Temas relacionados
• importPrivateKey (p. 182)
• Descarga de SSL/TLS en Linux (p. 291)
getCert
El comando getCert de key_mgmt_util recupera los certificados de partición de un HSM y los guarda en un
archivo. Al ejecutar el comando, debe designar el tipo de certificado que desea recuperar. Para ello, utilice
176
AWS CloudHSM Guía del usuario
Referencia
uno de los números enteros que se describen a continuación en la sección Parámetros (p. 177). Para
obtener más información sobre la función de cada uno de estos certificados, consulte Verificar la identidad
del HSM (p. 23).
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
getCert -h
getCert -f <file-name>
-t <certificate-type>
Ejemplo
En este ejemplo, se muestra cómo utilizar getCert para recuperar el certificado raíz del cliente de un clúster
y guardarlo en un archivo.
Este comando exporta un certificado raíz del cliente (representado por el númeroentero 4) y lo guarda en
un archivo denominado userRoot.crt. Si el comando se ejecuta correctamente, getCert devuelve un
mensaje de confirmación.
Parámetros
Este comando admite los siguientes parámetros.
-h
Obligatorio: sí
-f
Obligatorio: sí
-s
Un número entero que especifica el tipo de certificado de partición que se desea recuperar. Los
números enteros y sus correspondientes tipos de certificados son los siguientes:
• 1: certificado raíz del fabricante
• 2: certificado de hardware del fabricante
• 4: certificado raíz del cliente
• 8: certificado del clúster (firmado por el certificado raíz del cliente)
• 16: certificado del clúster (encadenado con el certificado raíz del fabricante)
Obligatorio: sí
177
AWS CloudHSM Guía del usuario
Referencia
Temas relacionados
• Verificar la identidad del HSM (p. 23)
• getCert (p. 106) (en cloudhsm_mgmt_util (p. 81))
getKeyInfo
El comando getKeyInfo de la herramienta key_mgmt_util devuelve los ID de HSM de los usuarios que
pueden utilizar la clave, incluidos el propietario y los usuarios de criptografía (CU) con quienes se comparte
la clave. Cuando la autenticación de cuórum está habilitada en una clave, getKeyInfo también devuelve
el número de usuarios que deben aprobar las operaciones criptográficas que utilizan la clave. Solamente
puede ejecutar getKeyInfo en las claves que son de su propiedad y han compartido con usted.
Cuando ejecuta getKeyInfo en claves públicas, getKeyInfo solamente devuelve el propietario de la clave,
aunque todos los usuarios del HSM puedan utilizar la clave pública. Para encontrar los ID de HSM de los
usuarios en sus HSM, utilice listUsers (p. 197). Para encontrar las claves de un usuario concreto, use
findKey (p. 149) -u.
Es propietario de las claves que crea. Puede compartir una clave con otros usuarios cuando la crea.
A continuación, para compartir o dejar de compartir una clave existente, utilice shareKey (p. 123) en
cloudhsm_mgmt_util.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
getKeyInfo -h
getKeyInfo -k <key-handle>
Ejemplos
En estos ejemplos, se muestra cómo se utiliza getKeyInfo para obtener información sobre los usuarios de
una clave.
Este comando obtiene los usuarios que pueden utilizar la clave AES (simétrica) con identificador de clave
9. El resultado muestra que el usuario 3 es propietario de la clave y la comparte con el usuario 4.
Command: getKeyInfo -k 9
Owned by user 3
Estos comandos utilizan getKeyInfo para obtener los usuarios que pueden utilizar las claves de un par
de claves RSA (simétricas). La clave pública tiene el identificador de clave 21. La clave privada tiene el
identificador de clave 20.
178
AWS CloudHSM Guía del usuario
Referencia
Cuando ejecuta getKeyInfo en la clave privada (20), devuelve el propietario de la clave (3) y los usuarios
de criptografía (CU) 4 y 5, con quienes se comparte la clave.
Command: getKeyInfo -k 20
Owned by user 3
4
5
Cuando ejecuta getKeyInfo en la clave pública (21), solamente devuelve el propietario de la clave (3).
Command: getKeyInfo -k 21
Owned by user 3
Para confirmar que el usuario 4 puede utilizar la clave pública (y todas las claves públicas en el HSM),
utilice el parámetro -u de findKey (p. 149).
El resultado muestra que el usuario 4 puede utilizar la clave pública (21) y la clave privada (20) en el par
de claves. El usuario 4 también puede utilizar todas las demás claves públicas y cualquier clave privada
creadas o que se hayan compartido con ellos.
Command: findKey -u 4
Total number of keys present 8
Example : Obtención del valor de autenticación de cuórum (valor_m) para una clave
Este ejemplo muestra cómo obtener el m_value para una clave, esto es, el número de usuarios en el
cuórum que debe aprobar las operaciones criptográficas que utilizan la clave.
Cuando la autenticación de cuórum está habilitada en una clave, un cuórum de usuarios debe aprobar
cualquier operación criptográfica que utilice la clave. Para habilitar la autenticación de cuórum y establecer
el tamaño de cuórum, utilice el parámetro -m_value al crear la clave.
Este comando utiliza genRSAKeyPair (p. 162) para crear un par de claves RSA que se comparte con el
usuario 4. Utiliza el parámetro m_value para habilitar la autenticación de cuórum en la clave privada en el
par y establecer el tamaño de cuórum en dos usuarios. El número de usuarios debe ser lo suficientemente
grande como para proporcionar las aprobaciones necesarias.
El resultado muestra que el comando creó la clave pública 27 y la clave privada 28.
179
AWS CloudHSM Guía del usuario
Referencia
Este comando utiliza getKeyInfo para obtener información sobre los usuarios de la clave privada. El
resultado muestra que la clave es propiedad del usuario 3 y se comparte con el usuario 4. También
muestra que un cuórum de dos usuarios debe aprobar todas las operaciones criptográficas que utilizan la
clave.
Command: getKeyInfo -k 28
Owned by user 3
4
2 Users need to approve to use/manage this key
Parámetros
-h
Obligatorio: sí
-k
Obligatorio: sí
Temas relacionados
• getKeyInfo (p. 108) en cloudhsm_mgmt_util
• listUsers (p. 197)
• findKey (p. 149)
• findAllKeys (p. 100) en cloudhsm_mgmt_util
help
El comando help de key_mgmt_util muestra información sobre todos los comandos disponibles de
key_mgmt_util.
Sintaxis
help
180
AWS CloudHSM Guía del usuario
Referencia
Ejemplo
Este ejemplo muestra la salida del comando help.
Example
Command: help
Syntax: <command> -h
Command Description
======= ===========
M of N commands
getToken Initiate an MxN service and get Token
delToken delete Token(s)
approveToken Approves an MxN service
listTokens List all Tokens in the current partition
Asymmetric Keys:
genRSAKeyPair Generates an RSA Key Pair
genDSAKeyPair Generates a DSA Key Pair
genECCKeyPair Generates an ECC Key Pair
Symmetric Keys:
genPBEKey Generates a PBE DES3 key
genSymKey Generates a Symmetric keys
181
AWS CloudHSM Guía del usuario
Referencia
Helper Commands
Error2String Converts Error codes to Strings
save key handle in fake PEM format
getCaviumPrivKey Saves an RSA private key handle
in fake PEM format
IsValidKeyHandlefile Checks if private key file has
an HSM key handle or a real key
listAttributes List all attributes for getAttributes
listECCCurveIds List HSM supported ECC CurveIds
Parámetros
Este comando no tiene parámetros.
Temas relacionados
• loginHSM y logoutHSM (p. 198)
importPrivateKey
El comando importPrivateKey de key_mgmt_util importa una clave privada asimétrica en un HSM.
Puede utilizarlo para importar claves privadas generadas fuera del HSM. También puede utilizar este
comando para importar claves que se exportaron de un HSM, como las exportadas por el comando
exportPrivateKey (p. 140).
Durante el proceso de importación, importPrivateKey utiliza la clave AES (la clave de encapsulación)
seleccionada para encapsular (cifrar) la clave privada. Al encapsular la clave privada, esta permanece
confidencial durante el tránsito. Para obtener más información, consulte wrapKey (p. 211).
Note
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
importPrivateKey -h
importPrivateKey -l <label>
-f <key-file>
-w <wrapping-key-handle>
[-sess]
[-id <key-id>]
[-m_value <0...8>]
[min_srv <minimum-number-of-servers>]
[-timeout <number-of-seconds>]
[-u <user-ids>]
[-wk <wrapping-key-file>]
182
AWS CloudHSM Guía del usuario
Referencia
[-attest]
Ejemplos
Este ejemplo muestra cómo utilizar importPrivateKey para importar una clave privada en un HSM.
Este comando importa la clave privada de un archivo denominado rsa2048.key con la etiqueta
rsa2048-imported y una clave de encapsulación con el identificador 524299. Cuando el comando se
ejecuta correctamente, importPrivateKey devuelve un identificador de clave para la clave importada y un
mensaje de confirmación.
Parámetros
Este comando admite los siguientes parámetros.
-h
Obligatorio: sí
-l
Obligatorio: sí
-f
Obligatorio: sí
-w
Para determinar si una clave se puede utilizar como clave de encapsulación, utilice
getAttribute (p. 172) para obtener el valor del atributo OBJ_ATTR_WRAP (262). Para crear una clave
de encapsulación, utilice genSymKey (p. 167) para crear una clave AES (de tipo 31).
Si utiliza el parámetro -wk para especificar una clave de desencapsulación externa, la clave de
encapsulación -w se utiliza para encapsular, pero no desencapsular, la clave durante la importación.
183
AWS CloudHSM Guía del usuario
Referencia
Obligatorio: sí
-sess
Valor predeterminado: la clave importada se mantiene como clave persistente (token) en el clúster.
Obligatorio: no
-id
Obligatorio: no
-m_value
Especifica el número de usuarios que deben aprobar cualquier operación criptográfica que utilice la
clave importada. Especifique un valor entre 0 y 8.
Este parámetro solo es válido cuando el parámetro -u del comando comparte la clave con suficientes
usuarios para satisfacer el requisito m_value.
Predeterminado: 0
Obligatorio: no
-min_srv
Especifica el número mínimo de HSM en los que la clave importada se sincroniza antes de
que caduque el valor del parámetro -timeout. Si la clave no está sincronizada con el número
especificado de servidores en el tiempo asignado, no se creará.
AWS CloudHSM sincroniza automáticamente cada clave con cada HSM del clúster. Para acelerar el
proceso, establezca el valor de min_srv en un número menor que el de HSM del clúster y establezca
un valor bajo de tiempo de espera. Sin embargo, tenga en cuenta que puede que algunas solicitudes
no generen ninguna clave.
Predeterminado: 1
Obligatorio: no
-timout
Especifica el número de segundos que se debe esperar hasta que la clave se sincronice entre
los HSM cuando se incluye el parámetro min-serv. Si no se ningún número, el sondeo continúa
indefinidamente.
Obligatorio: no
-u
Especifica la lista de usuarios con los que se va a compartir la clave privada importada. Este
parámetro concede a otros usuarios de criptografía (CU) de HSM permiso para usar la clave
importada en operaciones criptográficas.
Escriba una lista de identificadores de usuario de HSM separada por comas, como -u 5,6. No
incluya el ID de usuario de HSM del usuario actual. Para buscar los ID de usuario de HSM de los CU
del HSM, utilice listUsers (p. 197).
184
AWS CloudHSM Guía del usuario
Referencia
Obligatorio: no
-wk
Especifica la clave que se utilizará para encapsular la clave que se está importando. Escriba la ruta y
el nombre de un archivo que contenga una clave AES sin cifrar.
Si se incluye este parámetro, importPrivateKey utiliza la clave del archivo -wk para encapsular la clave
que se va a importar. También utiliza la clave especificada por el parámetro -w para desencapsularla.
Obligatorio: no
-attest
Realiza una comprobación de conformidad de la respuesta del firmware para asegurarse de que el
firmware en el que se ejecuta el clúster no ha sido manipulado.
Obligatorio: no
Temas relacionados
• wrapKey (p. 211)
• unWrapKey (p. 204)
• genSymKey (p. 167)
• exportPrivateKey (p. 140)
importPubKey
El comando importPubKey de key_mgmt_util importa una clave pública con formato PEM en un HSM.
Puede utilizarlo para importar claves públicas que se han generado fuera del HSM. También puede
utilizarlo para importar claves que se han exportado desde un HSM, como las que exporta el comando
exportPubKey (p. 142).
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
importPubKey -h
importPubKey -l <label>
-f <key-file>
[-sess]
[-id <key-id>]
[min_srv <minimum-number-of-servers>]
[-timeout <number-of-seconds>]
Ejemplos
Este ejemplo muestra cómo utilizar importPubKey para importar una clave pública en un HSM.
185
AWS CloudHSM Guía del usuario
Referencia
Parámetros
Este comando admite los siguientes parámetros.
-h
Obligatorio: sí
-l
Obligatorio: sí
-f
Obligatorio: sí
-sess
Valor predeterminado: la clave importada se mantiene como clave persistente (token) en el clúster.
Obligatorio: no
-id
Obligatorio: no
-min_srv
Especifica el número mínimo de HSM en los que la clave importada se sincroniza antes de que el
caduque valor del parámetro -timeout. Si la clave no está sincronizada con el número especificado
de servidores en el tiempo asignado, no se creará.
AWS CloudHSM sincroniza automáticamente cada clave con cada HSM del clúster. Para acelerar el
proceso, establezca el valor de min_srv en un número menor que el de HSM del clúster y establezca
un valor bajo de tiempo de espera. Sin embargo, tenga en cuenta que puede que algunas solicitudes
no generen ninguna clave.
186
AWS CloudHSM Guía del usuario
Referencia
Predeterminado: 1
Obligatorio: no
-timout
Especifica el número de segundos que se debe esperar hasta que la clave se sincronice entre
los HSM cuando se incluye el parámetro min-serv. Si no se ningún número, el sondeo continúa
indefinidamente.
Obligatorio: no
Temas relacionados
• exportPubKey (p. 142)
• Generar claves (p. 57)
imSymKey
El comando imSymKey de la herramienta key_mgmt_util importa una copia sin cifrar de una clave simétrica
desde un archivo en el HSM. Puede utilizarlo para importar claves que genera con cualquier método fuera
del HSM y las claves que se exportaron desde un HSM, como, por ejemplo, las claves que el comando
exSymKey (p. 143) escribe en un archivo.
Durante el proceso de importación imSymKey utiliza la clave AES seleccionada (la clave de encapsulación)
para encapsular (cifrar) y, a continuación desencapsular (descifrar) la clave que se va a importar. Sin
embargo, imSymKey funciona solo en archivos que contienen claves no cifradas. Para exportar e importar
claves cifradas, utilice los comandos wrapKey (p. 211) y unWrapKey (p. 204).
Además, el comando imSymKey importa únicamente claves simétricas. Para importar claves públicas,
utilice importPubKey (p. 185). Para importar claves privadas, utilice importPrivateKey (p. 182) o
wrapKey (p. 211).
Las claves importadas funcionan de forma muy parecida a las claves que se generan en el HSM. Sin
embargo, el valor del atributo OBJ_ATTR_LOCAL (p. 214) es cero, lo que indica que no se generó
localmente. Puede utilizar el siguiente comando para compartir una clave simétrica al importarla. Puede
utilizar el comando shareKey de cloudhsm_mgmt_util (p. 81) para compartir la clave después de
importarla.
Después de importar una clave, asegúrese de marcar o eliminar el archivo de clave. Este comando no
le impide importar el mismo material de claves varias veces. El resultado, es decir, varias claves con
diferentes identificadores de clave y el mismo material de claves, dificulta el seguimiento del uso del
material relacionado con las claves e impide que supere sus límites criptográficos.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
imSymKey -h
imSymKey -f <key-file>
-w <wrapping-key-handle>
187
AWS CloudHSM Guía del usuario
Referencia
-t <key-type>
-l <label>
[-id <key-ID>]
[-sess]
[-wk <wrapping-key-file> ]
[-attest]
[-min_srv <minimum-number-of-servers>]
[-timeout <number-of-seconds> ]
[-u <user-ids>]
Ejemplos
En los ejemplos siguientes se muestra cómo utilizar imSymKey para importar claves simétricas a sus HSM.
En este ejemplo se utiliza imSymKey para importar una clave simétrica AES a HSM.
El primer comando utiliza OpenSSL para generar una clave simétrica AES de 256 bits aleatoria. Guarda la
clave en el archivo aes256.key.
El segundo comando utiliza imSymKey para importar la clave AES desde el archivo aes256.key hasta los
HSM. Utiliza la clave 20, una clave AES del HSM, como clave de encapsulación y especifica una etiqueta
de tipo imported. A diferencia del ID, no es necesario que la etiqueta sea única en el clúster. El valor del
parámetro -t (tipo) es 31, que representa AES.
La salida muestra que la clave del archivo se encapsuló y se desencapsuló y después se importó al HSM,
donde se asignó al identificador de clave 262180.
El siguiente comando utiliza getAttribute (p. 172) para obtener el atributo OBJ_ATTR_LOCAL (atributo
355 (p. 214)) de la clave que acaba de importar y lo escribe en el archivo attr_262180.
Cuando examine el archivo de atributos, verá que el valor del atributo OBJ_ATTR_LOCAL es cero, lo que
indica que el material de clave no se ha generado en el HSM.
$ cat attributes/attr_262180_local
188
AWS CloudHSM Guía del usuario
Referencia
OBJ_ATTR_LOCAL
0x00000000
En este ejemplo, se muestra cómo utilizar exSymKey (p. 143) e imSymKey para mover una clave AES
sin cifrar entre clústeres. Se puede utilizar un proceso como este para crear una encapsulación AES que
exista en los HSM de ambos clústeres. Cuando la clave de encapsulación compartida esté en vigor, podrá
utilizar wrapKey (p. 211) y unWrapKey (p. 204) para mover las claves cifradas entre los clústeres.
El usuario CU encargado de realizar esta operación deberá tener permiso para iniciar sesión en los HSM
de ambos clústeres.
El primer comando utiliza exSymKey (p. 143) para exportar la clave 14, una clave AES de 32 bits desde
el clúster 1 hasta el archivo aes.key. También utiliza la clave 6, una clave AES que está en los HSM del
clúster 1, como clave de encapsulación.
Como las claves de encapsulación que utilizan exSymKey (p. 143) e imSymKey encapsulan y
desencapsulan inmediatamente las claves de destino, no es necesario que las claves de encapsulación de
los distintos clústeres sean iguales.
Para demostrar que la clave 14 del clúster 1 y la clave 21 del clúster 2 tienen el mismo material de clave,
obtenga el valor de comprobación clave (KCV) de cada clave. Si los valores de KCV son los mismos, el
material de clave es el mismo.
El siguiente comando utiliza getAttribute (p. 172) en el clúster 1 para escribir el valor del atributo KCV
(atributo 371) de la clave 14 en el archivo attr_14_kcv. A continuación, utiliza un comando cat para
obtener el contenido del archivo attr_14_kcv.
189
AWS CloudHSM Guía del usuario
Referencia
$ cat attr_14_kcv
OBJ_ATTR_KCV
0xc33cbd
Este comando similar utiliza getAttribute (p. 172) en el clúster 2 para escribir el valor del atributo KCV
(atributo 371) de la clave 21 en el archivo attr_21_kcv. A continuación, utiliza un comando cat para
obtener el contenido del archivo attr_21_kcv.
$ cat attr_21_kcv
OBJ_ATTR_KCV
0xc33cbd
La salida muestra que los valores de KCV de las dos claves son los mismos, lo que demuestra que el
material de clave es el mismo.
Dado que los HSM de ambos clústeres tienen el mismo material de clave, ahora puede compartir las
claves cifradas entre los clústeres sin que se exponga la clave sin cifrar. Por ejemplo, puede utilizar el
comando wrapKey con la clave de encapsulación 14 para exportar una clave cifrada desde el clúster 1
y, a continuación, utilizar unWrapKey con la clave de encapsulación 21 para importar la clave cifrada al
clúster 2.
Este comando utiliza los parámetros -sess de imSymKey para importar una clave triple DES de 192 bits
que es válida únicamente en la sesión actual.
El comando utiliza el parámetro -f para especificar el archivo que contiene la clave para importar,
el parámetro -t para especificar el tipo de clave y el parámetro -w para especificar la clave de
encapsulación. También utiliza el parámetro -l para especificar una etiqueta que establece la categoría
de la clave, el parámetro -id para crear un identificador descriptivo y único para la clave y el parámetro -
attest para verificar el firmware que importa la clave.
A continuación, puede ejecutar los comandos getAttribute (p. 172) o findKey (p. 149) para verificar
los atributos de la clave recién importada. El siguiente comando utiliza findKey para verificar que la clave
190
AWS CloudHSM Guía del usuario
Referencia
37 tenga el tipo, la etiqueta y el ID especificados por el comando y que sea una clave de sesión. Tal y
como se muestra en la línea 5 de la salida, findKey informa que la única clave que coincide con todos los
atributos es la clave 37.
Parámetros
-attest
Ejecuta una comprobación de integridad que verifica el firmware en el que se ejecuta el clúster no se
ha manipulado.
Requerido: No
-f
El archivo debe contener una copia sin cifrar de una clave AES o triple DES de la longitud
especificada. Las claves RC4 y DES no son válidas en los HSM en modo FIPS.
• AES: 16, 24 o 32 bytes
• Triple DES (3DES): 24 bytes
Obligatorio: sí
-h
Requerido: sí
-id
Especifica un identificador definido por el usuario para la clave. Escriba una cadena que sea única en
el clúster. El valor predeterminado es una cadena vacía.
Requerido: No
-l
Especifica una etiqueta definida por el usuario para la clave. Escriba una cadena.
Puede usar cualquier frase que le ayude a identificar la clave. Dado que la etiqueta no tiene que ser
única, puede usarla para agrupar claves y dividirlas en categorías.
Requerido: sí
191
AWS CloudHSM Guía del usuario
Referencia
-min_srv
Especifica el número mínimo de HSM en los que la clave se sincroniza antes de que el valor del
parámetro -timeout expire. Si la clave no está sincronizada con el número especificado de
servidores en el tiempo asignado, no se creará.
AWS CloudHSM sincroniza automáticamente cada clave con cada HSM del clúster. Para acelerar el
proceso, establezca el valor de min_srv en un número menor que el de HSM del clúster y establezca
un valor bajo de tiempo de espera. Sin embargo, tenga en cuenta que puede que algunas solicitudes
no generen ninguna clave.
Predeterminado: 1
Requerido: No
-sess
Crea una clave que solo existe en la sesión actual. La clave no se puede recuperar después de que
finalice la sesión.
Use este parámetro cuando necesite solo una clave de manera breve, como una clave de
encapsulamiento, y descifre rápidamente, otra clave. No use una clave de sesión para cifrar datos que
pueda necesitar descifrar después de que finalice la sesión.
Para cambiar una clave de sesión a una clave persistente (token), use setAttribute (p. 200).
Requerido: No
-timeout
Especifica cuánto tiempo (en segundos) espera el comando para sincronizar una clave con el número
de HSM que especifica el parámetro min_srv.
Este parámetro solo es válido cuando el parámetro min_srv también se usa en el comando.
Predeterminado: sin tiempo de espera. El comando espera indefinidamente y se devuelve solo cuando
la clave se sincroniza con el número mínimo de servidores.
Requerido: No
-t
Especifica el tipo de clave simétrica. Escriba la constante que representa el tipo de clave. Por ejemplo,
para crear una clave AES, escriba -t 31.
Valores válidos:
• 21: triple DES (3DES).
• 31: AES
Obligatorio: sí
-u
Comparte la clave que va a importar con los usuarios especificados. Este parámetro concede permiso
a otros usuarios de criptografía (CU) de HSM para usar esta clave en operaciones criptográficas.
Escriba un ID o una lista separada por comas de los ID de usuario de HSM, como -u 5,6. No
incluya el ID de usuario de HSM del usuario actual. Para encontrar el ID, puede utilizar el comando
listUsers en la herramienta de la línea de comandos cloudhsm_mgmt_util o el comando listUsers de la
herramienta de la línea de comandos key_mgmt_util.
Obligatorio: no
192
AWS CloudHSM Guía del usuario
Referencia
-w
Una clave de encapsulación es una clave del HSM que se utiliza para cifrar ("encapsular") y después
descifrar ("desencapsular") la clave durante el proceso de importación. Solo las claves AES se pueden
utilizar como claves de encapsulación.
Puede utilizar cualquier clave AES (de cualquier tamaño) como clave de encapsulación. Dado que
la clave de encapsulación encapsula y, a continuación, desencapsula inmediatamente la clave
de destino, puede utilizar una clave AES solo de una sesión como clave de encapsulación. Para
determinar si una clave se puede utilizar como clave de encapsulación, utilice getAttribute (p. 172)
para obtener el valor del atributo OBJ_ATTR_WRAP (262). Para crear una clave de encapsulamiento,
use genSymKey (p. 167) para crear una clave AES (escriba 31).
Si utiliza el parámetro -wk para especificar una clave de encapsulación externa, la clave de
encapsulación -w se utilizará para desencapsular, pero no encapsular, la clave que se va a importar.
Note
La clave 4 es una clave interna incompatible. Le recomendamos que use una clave AES que
cree y administre como clave de encapsulamiento.
Obligatorio: sí
-wk
Utilice la clave AES del archivo especificado para encapsular la clave que se importa. Escriba la ruta y
el nombre de un archivo que contenga una clave AES sin cifrar.
Si se incluye este parámetro, imSymKey utiliza la clave del archivo -wk para encapsular la clave que
se va a importar y utiliza la clave del HSM especificado en el parámetro -w para desencapsularla. Los
valores de parámetro -w y -wk deben resolverse en la misma clave sin cifrar.
Valor predeterminado: utilice la clave de encapsulación del HSM para realizar la desencapsulación.
Obligatorio: no
Temas relacionados
• genSymKey (p. 167)
• exSymKey (p. 143)
• wrapKey (p. 211)
• unWrapKey (p. 204)
• exportPrivateKey (p. 140)
• exportPubKey (p. 142)
insertMaskedObject
El comando insertMaskedObject de key_mgmt_util inserta un objeto enmascarado desde un archivo en
un HSM designado. Los objetos enmascarados son objetos clonados que se extraen de un HSM usando
el comando extractMaskedObject (p. 148). Solo se pueden utilizar después de insertarlos de nuevo
en el clúster original. Solo puede insertar un objeto enmascarado en el mismo clúster desde el que se
generó, o en un clon de ese clúster. Esto incluye cualquier versión clonada del clúster original generada al
copiar una copia de seguridad entre regiones (p. 46) y utilizar la copia de seguridad para crear un clúster
nuevo (p. 47).
193
AWS CloudHSM Guía del usuario
Referencia
Los objetos enmascarados son una forma eficaz de descargar y sincronizar claves, incluidas las claves
no extraíbles (es decir, las claves que tienen un valor de OBJ_ATTR_EXTRACTABLE (p. 214) igual a
0). De esta forma, las claves se pueden sincronizar de forma segura entre los clústeres relacionados de
diferentes regiones sin necesidad de actualizar el archivo de configuración (p. 218) de AWS CloudHSM.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
insertMaskedObject -h
insertMaskedObject -f <filename>
[-min_srv <minimum-number-of-servers>]
[-timeout <number-of-seconds>]
Ejemplos
Este ejemplo muestra cómo utilizar insertMaskedObject para insertar un archivo de objeto enmascarado en
un HSM.
Este comando inserta un objeto enmascarado en un HSM desde un archivo denominado maskedObj.
Cuando el comando se ejecuta correctamente, insertMaskedObject devuelve un identificador de clave para
la clave descifrada del objeto enmascarado y un mensaje de confirmación.
Parámetros
Este comando admite los siguientes parámetros.
-h
Obligatorio: sí
-f
Obligatorio: sí
-min_srv
Especifica el número mínimo de servidores en los que se sincroniza el objeto enmascarado insertado
antes de que caduque el valor del parámetro -timeout. Si el objeto no se sincroniza con el número
de servidores especificado en el tiempo asignado, no se insertará.
Predeterminado: 1
194
AWS CloudHSM Guía del usuario
Referencia
Obligatorio: no
-timout
Especifica el número de segundos que se debe esperar para que la clave se sincronice entre los
servidores cuando se incluye el parámetro min-serv. Si no se ningún número, el sondeo continúa
indefinidamente.
Obligatorio: no
Temas relacionados
• extractMaskedObject (p. 148)
• syncKey (p. 125)
• Copia de una copia de seguridad entre regiones (p. 46)
• Creación un clúster de AWS CloudHSM a partir de una copia de seguridad anterior (p. 47)
IsValidKeyHandlefile
El comando IsValidKeyHandlefile de key_mgmt_util se utiliza para averiguar si un archivo de clave de un
HSM contiene una clave privada verdadera o una clave PEM falsa. Un archivo de clave PEM falso no
contiene material de una clave privada real sino que hace referencia a la clave privada del HSM. Este tipo
de archivo se puede utilizar para establecer descarga de SSL/TLS del servidor web a AWS CloudHSM.
Para obtener más información, consulte Descarga de SSL/TLS en Linux (p. 291).
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
IsValidKeyHandlefile -h
IsValidKeyHandlefile -k <private-key-handle
-f <private-key-file>
Ejemplos
Estos ejemplos muestran cómo utilizar IsValidKeyHandlefile para determinar si un archivo de clave
determinado contiene material de clave verdadero o material de clave PEM falso.
Este comando confirma que el archivo privateKey.pem contiene material de clave verdadero.
Este comando confirma que el archivo caviumKey.pem contiene material de clave PEM falso creado con
el identificador de clave 15.
195
AWS CloudHSM Guía del usuario
Referencia
Parámetros
Este comando admite los siguientes parámetros.
-h
Obligatorio: sí
-f
Especifica el nombre del archivo que se va a comprobar para ver si contiene material de clave válido.
Obligatorio: sí
Temas relacionados
• getCaviumPrivKey (p. 175)
• Descarga de SSL/TLS en Linux (p. 291)
listAttributes
El comando listAttributes de key_mgmt_util enumera los atributos de una clave de AWS CloudHSM y las
constantes que los representan. Estas constantes se utilizan para identificar los atributos en los comandos
getAttribute (p. 172) y setAttribute (p. 200). Para obtener ayuda sobre cómo interpretar los atributos de
claves, consulte Referencia de los atributos de claves (p. 214).
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
Este comando no tiene parámetros.
listAttributes
Ejemplo
Este comando enumera los atributos de clave que se pueden obtener y cambiar en key_mgmt_util y
las constantes que los representan. Para obtener ayuda sobre cómo interpretar los atributos de claves,
consulte Referencia de los atributos de claves (p. 214).
Para representar a todos los atributos del comando getAttribute (p. 172) en key_mgmt_util, utilice 512.
Command: listAttributes
OBJ_ATTR_CLASS = 0
OBJ_ATTR_TOKEN = 1
OBJ_ATTR_PRIVATE = 2
OBJ_ATTR_LABEL = 3
196
AWS CloudHSM Guía del usuario
Referencia
OBJ_ATTR_KEY_TYPE = 256
OBJ_ATTR_ENCRYPT = 260
OBJ_ATTR_DECRYPT = 261
OBJ_ATTR_WRAP = 262
OBJ_ATTR_UNWRAP = 263
OBJ_ATTR_SIGN = 264
OBJ_ATTR_VERIFY = 266
OBJ_ATTR_LOCAL = 355
OBJ_ATTR_MODULUS = 288
OBJ_ATTR_MODULUS_BITS = 289
OBJ_ATTR_PUBLIC_EXPONENT = 290
OBJ_ATTR_VALUE_LEN = 353
OBJ_ATTR_EXTRACTABLE = 354
OBJ_ATTR_KCV = 371
Temas relacionados
• listAttributes (p. 113) en cloudhsm_mgmt_util
• getAttribute (p. 172)
• setAttribute (p. 200)
• Referencia de los atributos de claves (p. 214)
listUsers
El comando listUsers de key_mgmt_util obtiene los usuarios de los HSM, junto con el tipo de usuario y
otros atributos.
En key_mgmt_util, listUsers devuelve un resultado que representa todos los HSM del clúster, aun cuando
no sean coherentes. Para obtener información acerca de los usuarios de cada HSM, utilice el comando
listUsers (p. 197) en cloudhsm_mgmt_util.
Los comandos del usuario de key_mgmt_util, listUsers y getKeyInfo (p. 178), son comandos de solo
lectura que los usuarios de criptografía (CU) tienen permiso para ejecutar. Los demás comandos de
administración de usuarios forman parte de cloudhsm_mgmt_util. Son ejecutados por responsables de
criptografía (CO) que tienen permisos de administración de usuarios.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
listUsers
listUsers -h
Ejemplo
Este comando enumera los usuarios de HSM en el clúster y sus atributos. Puede utilizar el atributo
User ID para identificar a los usuarios en otros comandos, como por ejemplo findKey (p. 149),
getAttribute (p. 172) y getKeyInfo (p. 178).
Command: listUsers
197
AWS CloudHSM Guía del usuario
Referencia
1 1 PCO admin NO
0 NO
2 2 AU app_user NO
0 NO
3 3 CU alice YES
0 NO
4 4 CU bob NO
0 NO
5 5 CU trent YES
0 NO
Parámetros
-h
Requerido: sí
Temas relacionados
• listUsers (p. 197) en cloudhsm_mgmt_util
• findKey (p. 149)
• getAttribute (p. 172)
• getKeyInfo (p. 178)
loginHSM y logoutHSM
Los comandos loginHSM y logoutHSM de key_mgmt_util permiten iniciar y cerrar sesión en los HSM de
un clúster. Una vez que inicie sesión en los HSM, puede utilizar key_mgmt_util para realizar diversas
operaciones de administración de claves, como la generación, sincronización y encapsulación de claves
públicas y privadas.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar start key_mgmt_util (p. 130).
Para administrar claves con key_mgmt_util, debe iniciar sesión en los HSM como usuario de criptografía
(CU) (p. 11).
Note
198
AWS CloudHSM Guía del usuario
Referencia
Sintaxis
loginHSM -h
Ejemplo
Este ejemplo muestra cómo iniciar y cerrar sesión en los HSM de un clúster con los comandos loginHSM
y logoutHSM.
Este comando inicia sesión en los HSM como usuario de criptografía (CU) con el nombre de usuario
example_user y la contraseña aws. Una vez que finaliza correctamente, la salida del comando indica que
se ha iniciado sesión en todos los HSM del clúster.
Este comando cierra sesión en los HSM. Una vez que finaliza correctamente, la salida del comando indica
que se ha cerrado sesión en todos los HSM del clúster.
Command: logoutHSM
Parámetros
-h
Obligatorio: sí
199
AWS CloudHSM Guía del usuario
Referencia
-u
Especifica el tipo de usuario que inicia la sesión. Para poder utilizar key_mgmt_util, debe iniciar sesión
como CU.
Obligatorio: sí
-s
Obligatorio: sí
Temas relacionados
• exit (p. 139)
setAttribute
El comando setAttribute de key_mgmt_util convierte una clave que es válida únicamente en la sesión
actual en una clave persistente que existe hasta que la elimina. El comando realiza esta operación
cambiando el valor de atributo de token de la clave (OBJ_ATTR_TOKEN) de falso (0) a verdadero (1). Solo
puede cambiar los atributos de claves de su propiedad.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
setAttribute -h
Ejemplo
En este ejemplo se muestra cómo convertir una clave de sesión en una clave persistente.
El primer comando utiliza el parámetro -sess de genSymKey (p. 167) para crear una clave AES válida
de 192 bits que es válida únicamente en la sesión actual. La salida muestra que el indicador de la clave de
la nueva sesión es 262154.
200
AWS CloudHSM Guía del usuario
Referencia
Este comando utiliza findKey (p. 149) para encontrar las claves de sesión de la sesión actual. La salida
verifica que la clave 262154 es una clave de sesión.
Este comando utiliza setAttribute para convertir la clave de sesión 262154 en una clave persistente. Para
ello, cambia el valor del atributo de token (OBJ_ATTR_TOKEN) de la clave de 0 (falso) a 1 (verdadero).
Para obtener ayuda sobre cómo interpretar los atributos de claves, consulte Referencia de los atributos de
claves (p. 214).
El comando utiliza el parámetro -o para especificar el indicador de clave (262154) y el parámetro -a para
especificar la constante que representa el atributo de token (1). Cuando ejecuta el comando, este le solicita
un valor para el atributo de token. El único valor válido es 1 (verdadero), el valor de una clave persistente.
Para confirmar que la clave 262154 es ahora persistente, este comando busca claves de sesión (-sess
1) y claves persistentes (-sess 0) utilizando findKey. Esta vez el comando no encuentra claves de
sesión, pero devuelve 262154 en la lista de claves persistentes.
201
AWS CloudHSM Guía del usuario
Referencia
Parámetros
-h
Requerido: sí
-o
Especifica el identificador de la clave de destino. Puede especificar una única clave en cada comando.
Para obtener el identificador de una clave, use findKey (p. 149).
Obligatorio: sí
-a
Especifica la constante que representa el atributo que desea cambiar. El único valor válido es 1, que
representa el atributo de token OBJ_ATTR_TOKEN.
Para obtener los atributos y sus valores enteros, utilice listAttributes (p. 196).
Obligatorio: sí
Temas relacionados
• setAttribute (p. 119) en cloudhsm_mgmt_util
• getAttribute (p. 172)
• listAttributes (p. 196)
• Referencia de los atributos de claves (p. 214)
sign
El comando sign de key_mgmt_util utiliza la clave privada elegida para generar una firma para un archivo.
Para poder utilizar sign, primero debe tener una clave privada en el HSM. Puede generar una clave
privada con los comandos genSymKey (p. 167), genRSAKeyPair (p. 162) o genECCKeyPair (p. 158).
También puede importarla con el comando importPrivateKey (p. 182). Para obtener más información,
consulte Generar claves (p. 57).
El comando sign utiliza un mecanismo de firma designado por el usuario, representado por un número
entero, para firmar un archivo de mensaje. Para obtener una lista de posibles mecanismos de firma,
consulte Parámetros (p. 203).
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
sign -h
202
AWS CloudHSM Guía del usuario
Referencia
Ejemplo
Este ejemplo muestra cómo utilizar sign para firmar un archivo.
Este comando firma un archivo denominado messageFile con una clave privada con el identificador
266309. Utiliza el mecanismo de firma SHA256_RSA_PKCS (1) y guarda el archivo firmado resultante
como signedFile.
Parámetros
Este comando admite los siguientes parámetros.
-f
Obligatorio: sí
-k
Obligatorio: sí
-m
Un número entero que representa el mecanismo de firma que se va a utilizar para la firma. Los
mecanismos posibles se corresponden con los siguientes valores enteros:
SHA1_RSA_PKCS 0
SHA256_RSA_PKCS 1
SHA384_RSA_PKCS 2
SHA512_RSA_PKCS 3
SHA224_RSA_PKCS 4
SHA1_RSA_PKCS_PSS 5
SHA256_RSA_PKCS_PSS 6
SHA384_RSA_PKCS_PSS 7
SHA512_RSA_PKCS_PSS 8
203
AWS CloudHSM Guía del usuario
Referencia
SHA224_RSA_PKCS_PSS 9
ECDSA_SHA1 15
ECDSA_SHA224 16
ECDSA_SHA256 17
ECDSA_SHA384 18
ECDSA_SHA512 19
Obligatorio: sí
-out
Obligatorio: sí
Temas relacionados
• verify (p. 209)
• importPrivateKey (p. 182)
• genRSAKeyPair (p. 162)
• genECCKeyPair (p. 158)
• genSymKey (p. 167)
• Generar claves (p. 57)
unWrapKey
El comando unWrapKey de la herramienta key_mgmt_util importa una clave privada o simétrica
encapsulada (cifrada) de un archivo en el HSM. Está diseñado para importar claves de cifrado
encapsuladas con el comando wrapKey (p. 211) de key_mgmt_util, pero también se puede utilizar
para desencapsular claves encapsuladas con otras herramientas. Sin embargo, en esas situaciones,
le recomendamos que utilice las bibliotecas de software de PKCS #11 (p. 224) o JCE (p. 251) para
desencapsular la clave.
Las claves importadas funcionan igual que las claves generadas por AWS CloudHSM. Sin embargo, el
valor del atributo OBJ_ATTR_LOCAL (p. 214) es cero, lo que indica que no se han generado localmente.
Después de importar una clave, asegúrese de marcar o eliminar el archivo de claves. Este comando no
le impide importar el mismo material de claves varias veces. El resultado, es decir, varias claves con
diferentes identificadores de clave y el mismo material de claves, dificulta el seguimiento del uso de los
materiales de claves e impide que superen sus límites criptográficos.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
unWrapKey -h
204
AWS CloudHSM Guía del usuario
Referencia
unWrapKey -f <key-file-name>
-w <wrapping-key-handle>
[-sess]
[-min_srv <minimum-number-of-HSMs>]
[-timeout <number-of-seconds>]
[-aad <additional authenticated data filename>]
[-tag_size <tag size>]
[-iv_file <IV file>]
[-attest]
[-m <wrapping-mechanism>]
[-t <hash-type>]
[-nex]
[-u <user id list>]
[-m_value <number of users needed for approval>]
[-noheader]
[-l <key-label>]
[-id <key-id>]
[-kt <key-type>]
[-kc <key-class]
[-i <unwrapping-IV>]
Ejemplo
Estos ejemplos muestran cómo utilizar unWrapKey para importar una clave encapsulada desde un archivo
en los HSM. En el primer ejemplo, desencapsularemos una clave que se ha encapsulado con el comando
wrapKey (p. 211) de key_mgmt_util y que, por lo tanto, tiene un encabezado. En el segundo ejemplo,
desencapsularemos una clave que se ha encapsulado fuera de key_mgmt_util y que, por lo tanto, no tiene
encabezado.
Este comando importa una copia de una clave simétrica 3DES en un HSM. La clave se desencapsula con
una clave AES con la etiqueta 6, que es criptográficamente idéntica a la que se utilizó para encapsular
la clave 3DES. El resultado muestra que la clave del archivo se ha desencapsulado e importado y que el
identificador de la clave importada es 29.
Este comando importa una copia de una clave simétrica 3DES en un HSM. La clave se desencapsula con
una clave AES con la etiqueta 6, que es criptográficamente idéntica a la que se utilizó para encapsular
la clave 3DES. Dado que esta clave 3DES no se encapsuló con key_mgmt_util, se especifica el
parámetro noheader, junto con sus parámetros de acompañamiento necesarios: una etiqueta de clave
(unwrapped3DES), una clase de clave (4) y un tipo de clave (21). El resultado muestra que la clave del
archivo se ha desencapsulado e importado y que el identificador de la clave importada es 8.
205
AWS CloudHSM Guía del usuario
Referencia
Parámetros
-h
Requerido: sí
-f
Obligatorio: sí
-w
Especifica la clave de encapsulamiento. Escriba el identificador de clave de una clave AES o RSA
en el HSM. Este parámetro es obligatorio. Para buscar identificadores de clave, use el comando
findKey (p. 149).
Para crear una clave de encapsulamiento, utilice genSymKey (p. 167) para generar una clave AES
(tipo 31) o genRSAKeyPair (p. 162) para generar un par de claves RSA (tipo 0). Si está utilizando
un par de claves RSA, asegúrese de encapsular la clave con una de las claves y desencapsularla
con la otra. Para verificar que se puede usar una clave como clave de encapsulamiento, use
getAttribute (p. 172) para obtener el valor del atributo OBJ_ATTR_WRAP, que se representa con la
constante 262.
Requerido: sí
-sess
Crea una clave que solo existe en la sesión actual. La clave no se puede recuperar después de que
finalice la sesión.
Use este parámetro cuando necesite solo una clave de manera breve, como una clave de
encapsulamiento, y descifre rápidamente, otra clave. No use una clave de sesión para cifrar datos que
pueda necesitar descifrar después de que finalice la sesión.
Para cambiar una clave de sesión a una clave persistente (token), use setAttribute (p. 200).
Requerido: No
-min_srv
Especifica el número mínimo de HSM en los que la clave se sincroniza antes de que el valor del
parámetro -timeout expire. Si la clave no está sincronizada con el número especificado de
servidores en el tiempo asignado, no se creará.
AWS CloudHSM sincroniza automáticamente cada clave con cada HSM del clúster. Para acelerar el
proceso, establezca el valor de min_srv en un número menor que el de HSM del clúster y establezca
un valor bajo de tiempo de espera. Sin embargo, tenga en cuenta que puede que algunas solicitudes
no generen ninguna clave.
Predeterminado: 1
206
AWS CloudHSM Guía del usuario
Referencia
Requerido: No
-timeout
Especifica cuánto tiempo (en segundos) espera el comando para sincronizar una clave con el número
de HSM que especifica el parámetro min_srv.
Este parámetro solo es válido cuando el parámetro min_srv también se usa en el comando.
Predeterminado: sin tiempo de espera. El comando espera indefinidamente y se devuelve solo cuando
la clave se sincroniza con el número mínimo de servidores.
Requerido: No
-attest
Ejecuta una comprobación de integridad que verifica el firmware en el que se ejecuta el clúster no se
ha manipulado.
Requerido: No
-m
Mecanismo Valor
AES_KEY_WRAP_PAD_PKCS5 4
NIST_AES_WRAP_NO_PAD 5
NIST_AES_WRAP_PAD 6
RSA_AES 7
AES_GCM 10
CLOUDHSM_AES_GCM 11
Obligatorio: sí
-t
SHA1 2
SHA256 3
SHA384 4
SHA512 5
207
AWS CloudHSM Guía del usuario
Referencia
Note
Requerido: No
-noheader
Si va a desencapsular una clave que se ha encapsulado fuera de key_mgmt_util, debe especificar este
parámetro y todos los demás parámetros asociados.
Obligatorio: no
Note
Obligatorio: sí
• -kc
Obligatorio: sí
• -kt
0 = RSA
1 = DSA
3 = ECC
16 = GENERIC_SECRET
21 = DES3
31 = AES
Obligatorio: sí
208
AWS CloudHSM Guía del usuario
Referencia
• -id
Obligatorio: no
• -i
Obligatorio: no
Temas relacionados
• wrapKey (p. 211)
• exSymKey (p. 143)
• imSymKey (p. 187)
verify
El comando verify de key_mgmt_util confirma si un archivo está firmado con una clave determinada.
Para ello, el comando verify compara un archivo firmado con un archivo de origen y analiza si están
relacionados criptográficamente en función de una clave pública y un mecanismo de firma determinados.
Los archivos se pueden firmar en AWS CloudHSM con la operación sign (p. 202).
Los mecanismos de firma están representados por los números enteros indicados en la sección de
parámetros (p. 210).
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
verify -h
verify -f <message-file>
-s <signature-file>
-k <public-key-handle>
-m <signature-mechanism>
Ejemplo
Estos ejemplos muestran cómo utilizar verify para comprobar si se ha utilizado una clave pública
determinada para firmar un archivo concreto.
209
AWS CloudHSM Guía del usuario
Referencia
Parámetros
Este comando admite los siguientes parámetros.
-f
Obligatorio: sí
-s
Obligatorio: sí
-k
El identificador de la clave pública que se cree que se utilizó para firmar el archivo.
Obligatorio: sí
-m
Un número entero que representa el mecanismo de firma que se supone que se utilizó para firmar el
archivo. Los mecanismos posibles se corresponden con los siguientes valores enteros:
SHA1_RSA_PKCS 0
SHA256_RSA_PKCS 1
SHA384_RSA_PKCS 2
SHA512_RSA_PKCS 3
SHA224_RSA_PKCS 4
SHA1_RSA_PKCS_PSS 5
SHA256_RSA_PKCS_PSS 6
SHA384_RSA_PKCS_PSS 7
SHA512_RSA_PKCS_PSS 8
SHA224_RSA_PKCS_PSS 9
ECDSA_SHA1 15
210
AWS CloudHSM Guía del usuario
Referencia
ECDSA_SHA224 16
ECDSA_SHA256 17
ECDSA_SHA384 18
ECDSA_SHA512 19
Obligatorio: sí
Temas relacionados
• sign (p. 202)
• getCert (p. 158)
• Generar claves (p. 57)
wrapKey
El comando wrapKey de key_mgmt_util exporta una copia cifrada de una clave simétrica o privada desde
el HSM a un archivo. Cuando ejecute wrapKey, debe especificar la clave que va a exportar, una clave del
HSM para cifrar (encapsular) la clave que se va a exportar y el archivo de salida.
El comando wrapKey escribe la clave cifrada en el archivo especificado, pero no la elimina del HSM ni le
impide utilizarla en operaciones criptográficas. Puede exportar la misma clave varias veces.
Solo el propietario de una clave, es decir, el usuario de criptografía (CU) que creó la clave, puede
exportarla. Los usuarios que comparten la clave pueden utilizarla en operaciones criptográficas, pero no
pueden exportarla.
Para volver a importar la clave cifrada de nuevo en el HSM, utilice unWrapKey (p. 204). Para exportar
una clave sin cifrar de un HSM, utilice exSymKey (p. 143) o exportPrivateKey (p. 140), según
corresponda. El comando aesWrapUnwrap (p. 134) no puede descifrar (desencapsular) las claves que
wrapKey cifra.
Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util (p. 130) e iniciar
sesión (p. 131) en el HSM como usuario de criptografía (CU).
Sintaxis
wrapKey -h
wrapKey -k <exported-key-handle>
-w <wrapping-key-handle>
-out <output-file>
[-m <wrapping-mechanism>]
[-aad <addtional authenticated data filename>]
[-t <hash-type>]
[-noheader]
[-i <wrapping IV>]
[-iv_file <IV file>]
[-tag_size <num_tag_bytes>>]
211
AWS CloudHSM Guía del usuario
Referencia
Ejemplo
Example
Este comando exporta una clave simétrica Triple DES (3DES) de 192 bits (identificador de clave 7).
Utiliza una clave AES de 256 bits en el HSM (identificador de clave 14) para encapsular la clave 7. A
continuación, escribe la clave 3DES cifrada en el archivo 3DES-encrypted.key.
La salida muestra que la clave 7 (la clave 3DES) se ha encapsulado correctamente y que se ha escrito en
el archivo especificado. La clave cifrada tiene 307 bytes de largo.
Key Wrapped.
Parámetros
-h
Requerido: sí
-k
Identificador de la clave que desea exportar. Escriba el identificador de una clave simétrica o privada
de su propiedad. Para buscar identificadores de clave, use el comando findKey (p. 149).
Para confirmar que una clave se puede exportar, ejecute el comando getAttribute (p. 172) para
obtener el valor del atributo OBJ_ATTR_EXTRACTABLE, que se representa con la constante 354. Para
obtener ayuda sobre cómo interpretar los atributos de claves, consulte Referencia de los atributos de
claves (p. 214).
Además, únicamente puede exportar las claves que son de su propiedad. Para encontrar el propietario
de una clave, ejecute el comando getKeyInfo (p. 178).
Obligatorio: sí
-w
Especifica la clave de encapsulamiento. Escriba el identificador de clave de una clave AES o RSA
en el HSM. Este parámetro es obligatorio. Para buscar identificadores de clave, use el comando
findKey (p. 149).
Para crear una clave de encapsulamiento, utilice genSymKey (p. 167) para generar una clave AES
(tipo 31) o genRSAKeyPair (p. 162) para generar un par de claves RSA (tipo 0). Si está utilizando
un par de claves RSA, asegúrese de encapsular la clave con una de las claves y desencapsularla
con la otra. Para verificar que se puede usar una clave como clave de encapsulamiento, use
getAttribute (p. 172) para obtener el valor del atributo OBJ_ATTR_WRAP, que se representa con la
constante 262.
Requerido: sí
-out
Ruta y nombre del archivo de salida. Cuando el comando se ejecuta correctamente, este archivo
contiene una copia cifrada de la clave exportada. Si el archivo ya existe, el comando lo sobrescribe sin
ningún tipo de advertencia.
Obligatorio: sí
212
AWS CloudHSM Guía del usuario
Referencia
-m
Mecanismo Valor
AES_KEY_WRAP_PAD_PKCS5 4
NIST_AES_WRAP_NO_PAD 5
NIST_AES_WRAP_PAD 6
RSA_AES 7
AES_GCM 10
CLOUDHSM_AES_GCM 11
Obligatorio: sí
-t
Valor que representa el algoritmo hash. CloudHSM admite los siguientes algoritmos:
SHA1 2
SHA256 3
SHA384 4
SHA512 5
Obligatorio: no
Note
Cuando se utiliza el mecanismo de encapsulación RSA_OAEP, el tamaño de
clave de máximo que se puede encapsular viene determinado por el módulo de
la clave RSA y la longitud del hash especificado: tamaño máximo de la clave =
(modulusLengthInBytes-2*hashLengthInBytes-2).
-aad
213
AWS CloudHSM Guía del usuario
Referencia
Requerido: No
-noheader
Omite el encabezado que especifica los atributos de clave (p. 132) específicos de CloudHSM. Utilice
este parámetro únicamente si tiene previsto desencapsular la clave otras herramientas que no sean
key_mgmt_util.
Requerido: No
-i
Requerido: No
-iv_file
Solo es válido cuando se pasa con el parámetro -noheader del mecanismo AES_GCM.
Requerido: No
-tag_size
Solo es válido cuando se pasa con el parámetro -noheader de los mecanismos AES_GCM y
CLOUDHSM_AES_GCM. El tamaño mínimo de la etiqueta es ocho.
Obligatorio: no
Temas relacionados
• exSymKey (p. 143)
• imSymKey (p. 187)
• unWrapKey (p. 204)
Usted configura los atributos de una clave cuando la crea. Para cambiar el atributo del token, que
indica si una clave es persistente o solo existe en la sesión, utilice el comando setAttribute (p. 200)
en key_mgmt_util. Para cambiar los atributos de etiquetado, encapsulado, desencapsulado, cifrado y
descifrado, utilice el comando setAttribute en cloudhsm_mgmt_util.
Para obtener una lista de los atributos y sus constantes, utilice listAttributes (p. 196). Para obtener los
valores de atributo de una clave, utilice getAttribute (p. 172).
En la siguiente tabla se enumeran los atributos clave, sus constantes y sus valores válidos.
214
AWS CloudHSM Guía del usuario
Referencia
OBJ_ATTR_PRIVATE 2 0: falso.
1: verdadero.
1: DSA.
3: EC.
18: RC4.
31: AES.
1: verdadero.
215
AWS CloudHSM Guía del usuario
Referencia
216
AWS CloudHSM Guía del usuario
Referencia
1: verdadero.
OBJ_ATTR_NEVER_EXTRACTABLE
356 0: falso.
1: verdadero. No es posible
exportar la clave desde los HSM.
1: verdadero.
1: verdadero.
OBJ_ATTR_WRAP_WITH_TRUSTED
528 0: falso.
1: verdadero.
Detalles adicionales
Valor de comprobación de clave (kcv)
217
AWS CloudHSM Guía del usuario
Herramienta de configuración
los valores de KCV para confirmar la identidad y la integridad de la clave. Para obtener el KCV de una
clave, use getAttribute (p. 172).
AWS CloudHSM usa el siguiente método estándar para generar un valor de comprobación de clave:
• Claves simétricas: primeros 3 bytes del resultado de cifrar un bloque de cero con la clave.
• Pares de claves asimétricos: primeros 3 bytes del hash SHA-1 de la clave pública.
• Claves de HMAC: el KVC para claves de HMAC no es compatible en este momento.
Herramienta de configuración
AWS CloudHSM sincroniza automáticamente los datos entre todos los HSM de un clúster. La herramienta
configure actualiza los datos de los HSM en los archivos de configuración que utilizan los mecanismos de
sincronización. Utilice configure para actualizar los datos de los HSM antes de utilizar las herramientas de
línea de comandos, especialmente cuando los HSM del clúster han cambiado.
Sintaxis
configure -h | --help
-a <ENI IP address>
-m [-i <daemon_id>]
--ssl --pkey <private key file> --cert <certificate file>
Ejemplos
En estos ejemplos, se muestra cómo se utiliza la herramienta configure.
Example : Actualización de los datos de los HSM para el cliente de AWS CloudHSM y
key_mgmt_util
En este ejemplo, se utiliza el parámetro -a de configure para actualizar los datos de los HSM del cliente
de AWS CloudHSM y key_mgmt_util. Este comando también es el primer paso a la hora de actualizar el
archivo de configuración de cloudhsm_mgmt_util.
Antes de actualizar el parámetro -a, detenga el cliente de AWS CloudHSM. De esta forma, evitará los
conflictos que podrían producirse mientras configure edita el archivo de configuración del cliente. Si el
cliente ya se ha detenido, este comando no tiene ningún efecto, por lo que puede utilizarlo en un script.
Amazon Linux
Amazon Linux 2
CentOS 6
CentOS 7
218
AWS CloudHSM Guía del usuario
Ejemplos
RHEL 6
RHEL 7
Windows
Use Ctrl+C en la ventana de comandos desde donde inició el cliente de AWS CloudHSM.
A continuación, obtenga la dirección IP de ENI de un HSM cualquiera de su clúster. Este comando utiliza el
comando describe-clusters de la AWS CLI, pero también puede utilizar la operación DescribeClusters o el
cmdlet Get-HSM2Cluster de PowerShell.
Este fragmento de la salida muestra la dirección IP de ENI de los HSM de un clúster de muestra. Podemos
utilizar cualquiera de las direcciones IP en el comando siguiente.
{
"Clusters": [
{ ... }
"Hsms": [
{
...
"EniIp": "10.0.0.9",
...
},
{
...
"EniIp": "10.0.1.6",
...
Este paso utiliza el parámetro -a de configure para añadir la dirección IP de la ENI 10.0.0.9 a los
archivos de configuración.
Amazon Linux
Amazon Linux 2
219
AWS CloudHSM Guía del usuario
Ejemplos
CentOS 6
CentOS 7
RHEL 6
RHEL 7
Windows
A continuación, reinicie el cliente de AWS CloudHSM. Cuando el cliente se inicia, utiliza la dirección IP
de ENI en su archivo de configuración para realizar consultas en el clúster. A continuación, escribe las
direcciones IP de ENI de todos los HSM del clúster en el archivo cluster.info.
Amazon Linux
Amazon Linux 2
CentOS 6
CentOS 7
RHEL 6
RHEL 7
220
AWS CloudHSM Guía del usuario
Ejemplos
Windows
Cuando el comando se completa, los datos del HSM que el cliente de AWS CloudHSM y la herramienta
key_mgmt_util utilizan son completos y precisos. Antes de utilizar cloudhsm_mgmt_util, actualice el
parámetro -m de configure, tal y como se muestra en el ejemplo siguiente.
En este ejemplo, se utiliza el comando configure -m para copiar los datos actualizados de los HSM del
archivo cluster.info en el archivo cloudhsm_mgmt_util.cfg que utiliza cloudhsm_mgmt_util.
Antes de utilizar el parámetro -m, detenga el cliente de AWS CloudHSM, ejecute el comando con -a
y reinicie el cliente de AWS CloudHSM, tal y como se muestra en el ejemplo anterior (p. 218). Esto
garantiza que los datos que se copian en el archivo cloudhsm_mgmt_util.cfg desde el archivo
cluster.info sean completos y precisos.
Amazon Linux
$ sudo /opt/cloudhsm/bin/configure -m
Amazon Linux 2
$ sudo /opt/cloudhsm/bin/configure -m
CentOS 6
$ sudo /opt/cloudhsm/bin/configure -m
CentOS 7
$ sudo /opt/cloudhsm/bin/configure -m
RHEL 6
$ sudo /opt/cloudhsm/bin/configure -m
RHEL 7
$ sudo /opt/cloudhsm/bin/configure -m
221
AWS CloudHSM Guía del usuario
Parámetros
$ sudo /opt/cloudhsm/bin/configure -m
Windows
c:\Program Files\Amazon\CloudHSM>configure.exe -m
Parámetros
-h | --help
Obligatorio: sí
-a <ENI IP address>
Agrega la dirección IP de la interfaz de red elástica (ENI) del HSM especificado a los archivos de
configuración de AWS CloudHSM. Escriba la dirección IP de ENI de cualquiera de los HSM del clúster.
No importa qué HSM seleccione.
Para obtener las direcciones IP de ENI de los HSM del clúster, ejecute la operación DescribeClusters,
el comando describe-clusters de AWS CLI o el cmdlet Get-HSM2Cluster de PowerShell.
Note
Cuando el cliente de AWS CloudHSM se inicia, utiliza la dirección IP de ENI que figura en su archivo
de configuración para consultar el clúster y actualizar el archivo cluster.info (/opt/cloudhsm/
daemon/1/cluster.info) con las direcciones IP de ENI correctas para todos los HSM del clúster.
Obligatorio: sí
-m
Actualiza las direcciones IP de ENI de HSM que figuran en el archivo de configuración que
cloudhsm_mgmt_util utiliza.
Cuando se ejecuta configure con el parámetro -a y después se inicia el cliente de AWS CloudHSM,
el demonio de cliente consulta el clúster y actualiza los archivos cluster.info con las direcciones
IP correctas de todos los HSM del clúster. Al ejecutar el comando configure -m, se completa la
actualización copiando las direcciones IP de los HSM del archivo cluster.info en el archivo de
configuración cloudhsm_mgmt_util.cfg que utiliza cloudhsm_mgmt_util.
No olvide ejecutar el comando configure -a y reiniciar el cliente de AWS CloudHSM antes de ejecutar
el comando con el parámetro -m. De esta forma se asegura de que los datos que se copien en el
archivo cloudhsm_mgmt_util.cfg desde el archivo cluster.info sean completos y precisos.
Obligatorio: sí
222
AWS CloudHSM Guía del usuario
Temas relacionados
-i
Valor predeterminado: 1
Obligatorio: no
--ssl
Sustituye el certificado y la clave SSL del clúster por la clave privada y el certificado especificados.
Cuando se utiliza este parámetro, los parámetros --pkey y --cert son obligatorios.
Obligatorio: no
--pkey
Especifica la clave privada nueva. Introduzca la ruta y el nombre del archivo que contiene la clave
privada.
Especifica el certificado nuevo. Introduzca la ruta y el nombre del archivo que contiene el certificado.
El certificado debe encadenarse hasta el certificado customerCA.crt, el certificado autofirmado que
se utiliza para inicializar el clúster. Para obtener más información, consulte Inicializar el clúster.
Temas relacionados
• Configurar key_mgmt_util (p. 129)
• Prepararse para ejecutar cloudhsm_mgmt_util (p. 82)
223
AWS CloudHSM Guía del usuario
Biblioteca de PKCS #11
Para obtener información detallada sobre las plataformas compatibles y un historial de versiones completo,
consulte Información de cliente y de software de AWS CloudHSM (p. 381).
Temas
• Biblioteca de software de AWS CloudHSM para PKCS #11 (p. 224)
• Motor dinámico de AWS CloudHSM para OpenSSL (p. 248)
• Biblioteca de software de AWS CloudHSM para Java (p. 251)
• Proveedores de KSP y CNG para Windows (p. 281)
Temas
• Instalación de la biblioteca de software de AWS CloudHSM para PKCS #11 (p. 224)
• Autenticación en PKCS #11 (p. 230)
• Tipos de clave de PKCS #11 admitidos (p. 231)
• Mecanismos de PKCS #11 admitidos (p. 231)
• Operaciones API de PKCS #11 admitidas (p. 235)
• Atributos de PKCS # 11 admitidos (p. 236)
• Ejemplos de código de la biblioteca de software de AWS CloudHSM sobre PKCS#11 (p. 247)
Temas
224
AWS CloudHSM Guía del usuario
Instalación de la biblioteca de PKCS #11
Requisitos previos
Las bibliotecas de software de AWS CloudHSM para PKCS # 11 necesitan el cliente de AWS CloudHSM.
Si no ha instalado y configurado el cliente de AWS CloudHSM, hágalo ahora siguiendo los pasos de
Instalar el cliente (Linux) (p. 35). Después de instalar y configurar el cliente, utilice el siguiente comando
para iniciarlo.
Amazon Linux
Amazon Linux 2
CentOS 6
CentOS 7
RHEL 6
RHEL 7
225
AWS CloudHSM Guía del usuario
Instalación de la biblioteca de PKCS #11
Amazon Linux
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
pkcs11-latest.el6.x86_64.rpm
Amazon Linux 2
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
pkcs11-latest.el7.x86_64.rpm
CentOS 6
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
pkcs11-latest.el6.x86_64.rpm
CentOS 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
pkcs11-latest.el7.x86_64.rpm
RHEL 6
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
pkcs11-latest.el6.x86_64.rpm
RHEL 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
pkcs11-latest.el7.x86_64.rpm
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-
client-pkcs11_latest_amd64.deb
226
AWS CloudHSM Guía del usuario
Instalación de la biblioteca de PKCS #11
Cuando la instalación se realiza correctamente, las bibliotecas PKCS #11 están en /opt/cloudhsm/lib.
Al crear la caché, especifique el usuario de criptografía (CU) que su aplicación PKCS #11 utiliza para la
autenticación (p. 230). La caché tiene precargadas las claves que posee y comparte el CU. Se actualiza
automáticamente cuando la aplicación utiliza funciones de la biblioteca de PKCS #11 para realizar cambios
en los HSM. Por ejemplo, para la creación o eliminación de claves o la modificación de sus atributos. La
caché no conoce otras claves del HSM.
El almacenamiento en caché puede mejorar el desempeño de su aplicación PKCS #11, pero podría no ser
la elección adecuada para todas las aplicaciones. Considere lo siguiente:
• Redis almacena en caché todas las operaciones de biblioteca PKCS #11 que se ejecutan en el host,
pero no tiene conocimiento de las operaciones que se realizan fuera de la biblioteca. Por ejemplo, si
utiliza las herramientas de línea de comandos (p. 81) o la biblioteca de software para Java (p. 251) con
el fin de administrar las claves de su HSM, dichas operaciones no actualizan la caché. Puede reconstruir
la caché para actualizarla al nuevo estado de los HSM, pero la caché no se sincroniza con los HSM de
forma automática.
• Si tiene otras aplicaciones que utilizan Redis en el mismo host, no utilice la biblioteca de PKCS #11 con
Redis. La biblioteca PKCS #11 configura Redis para reconocerlo como el único consumidor Redis en el
host.
Para instalar la biblioteca PKCS #11 con Redis, utilice el repositorio de paquetes adicionales para
Enterprise Linux (EPEL). A continuación, habilite y configure Redis para que funcione con AWS CloudHSM
y PKCS #11.
Obligatorio para Redis solo en:Amazon Linux 2, CentOS 6, CentOS 7, RedHat Enterprise Linux (RHEL) 6,
RedHat Enterprise Linux (RHEL) 7
227
AWS CloudHSM Guía del usuario
Instalación de la biblioteca de PKCS #11
Amazon Linux
curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
CentOS 6
curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
CentOS 7
curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
RHEL 6
curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
RHEL 7
curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
228
AWS CloudHSM Guía del usuario
Instalación de la biblioteca de PKCS #11
Obligatorio para Redis solo en: Amazon Linux, CentOS 7, RedHat Enterprise Linux (RHEL) 6
Amazon Linux
Este paso habilita el repositorio EPEL. Solo es obligatorio en Amazon Linux, pero puede utilizar este
procedimiento para comprobar que EPEL está habilitado en cualquier sistema operativo Linux.
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Amazon Linux 2
Este comando deshabilita una política Security-Enhanced Linux (SELinux) que impide que Redis use
los recursos de AWS CloudHSM.
RHEL 6
Este comando elimina el requisito TTY en el archivo sudoers. El archivo sudoers contiene las reglas
para el comando sudo.
229
AWS CloudHSM Guía del usuario
Autenticación en PKCS #11
# Defaults requiretty
RHEL 7
1. Utilice el script setup_redis para instalar Redis y configurarlo para que funcione con la biblioteca
PKCS #11 de AWS CloudHSM para Redis.
$ sudo /opt/cloudhsm/bin/setup_redis
La caché tiene precargadas las claves que posee y comparte el CU especificado. Se actualiza
automáticamente cuando la aplicación realiza cambios en los HSM en nombre del CU. Por ejemplo, al
crear o eliminar claves o al cambiar sus atributos. La caché no conoce otras claves de los HSM.
Para especificar el CU para PKCS #11, utilice el parámetro de pin de la función C_Login de PKCS #11. En
AWS CloudHSM, el parámetro pin tiene el siguiente formato:
<CU_user_name>:<password>
Por ejemplo, el siguiente comando establece el pin de PKCS #11 para el CU con el nombre de usuario
CryptoUser y la contraseña CUPassword123!.
CryptoUser:CUPassword123!
230
AWS CloudHSM Guía del usuario
Tipos de clave de PKCS #11 admitidos
La biblioteca de software de AWS CloudHSM para PKCS #11 es compatible con PKCS #11 versión 2.40.
Para invocar una característica criptográfica con PKCS #11, llame a una función con un mecanismo
determinado. En la siguiente tabla, se resumen las combinaciones de funciones y mecanismos admitidos
por AWS CloudHSM.
La marca ✔ indica que CloudHSM es compatible con el mecanismo para esa función. No se admiten
todas las funciones posibles que se muestran en la especificación de PKCS #11. La marca ✖ indica que
CloudHSM todavía no es compatible con el mecanismo para esa función, aunque el estándar de PKCS
#11 lo admita. Las celdas vacías indican que el estándar de PKCS #11 no admite el mecanismo para esa
función.
Mecanismo Funciones
CKM_SHA1_RSA_PKCS ✔
CKM_SHA224_RSA_PKCS ✔
CKM_SHA256_RSA_PKCS ✔
231
AWS CloudHSM Guía del usuario
Mecanismos de PKCS #11 admitidos
Mecanismo Funciones
CKM_SHA384_RSA_PKCS ✔
CKM_SHA512_RSA_PKCS ✔
1
CKM_RSA_PKCS_PSS ✔
CKM_SHA1_RSA_PKCS_PSS ✔
CKM_SHA224_RSA_PKCS_PSS ✔
CKM_SHA256_RSA_PKCS_PSS ✔
CKM_SHA384_RSA_PKCS_PSS ✔
CKM_SHA512_RSA_PKCS_PSS ✔
CKM_EC_KEY_PAIR_GEN ✔
1
CKM_ECDSA ✔
CKM_ECDSA_SHA1 ✔
CKM_ECDSA_SHA224 ✔
CKM_ECDSA_SHA256 ✔
CKM_ECDSA_SHA384 ✔
CKM_ECDSA_SHA512 ✔
5
CKM_ECDH1_DERIVE ✔
CKM_GENERIC_SECRET_KEY_GEN ✔
CKM_AES_KEY_GEN ✔
CKM_AES_ECB ✔ ✖
CKM_AES_CTR ✔ ✖
3.2
CKM_AES_CBC ✔ ✖
CKM_AES_CBC_PAD ✔ ✖
CKM_DES3_KEY_GEN ✔
3.2
CKM_DES3_CBC ✔ ✖
CKM_DES3_CBC_PAD ✔ ✖
3.2
CKM_DES3_ECB ✔ ✖
3.2, 4
CKM_AES_GCM ✔
7 7
CKM_CLOUDHSM_AES_GCM ✔ ✔
3.1
CKM_SHA_1 ✔
3.2
CKM_SHA_1_HMAC ✔
3.1
CKM_SHA224 ✔
232
AWS CloudHSM Guía del usuario
Mecanismos de PKCS #11 admitidos
Mecanismo Funciones
3.2
CKM_SHA224_HMAC ✔
3.1
CKM_SHA256 ✔
3.2
CKM_SHA256_HMAC ✔
3.1
CKM_SHA384 ✔
3.2
CKM_SHA384_HMAC ✔
3.1
CKM_SHA512 ✔
3.2
CKM_SHA512_HMAC ✔
CKM_AES_KEY_WRAP ✔
CKM_RSA_AES_KEY_WRAP ✔
CKM_AES_KEY_WRAP_PAD ✔
7
CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD ✔
7
CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD ✔
Anotaciones:
1
Únicamente para operaciones de una sola parte
2
Este mecanismo es funcionalmente idéntico al mecanismo CKM_RSA_PKCS_KEY_PAIR_GEN, pero ofrece más garantías en la generación de
p y q.
3.1
Cuando se aplica una función de hash a los datos mediante cualquiera de los siguientes mecanismos, si el búfer de datos tiene un
tamaño inferior a 16 KB, la operación se realiza en el HSM. Si el búfer de datos es más grande, entre 16 KB y el tamaño máximo de datos, la
operación de hash se realiza localmente en el software. En la tabla siguiente, se muestra el tamaño máximo de datos establecido para cada
mecanismo:
CKM_SHA_1 16296
CKM_SHA224 16264
CKM_SHA256 16296
CKM_SHA384 16232
CKM_SHA512 16232
3.2
Cuando se opera con datos mediante cualquiera de los mecanismos siguientes, si el búfer de datos supera el tamaño máximo de datos, la
operación produce un error. En la tabla siguiente, se muestra el tamaño máximo de datos establecido para cada mecanismo:
CKM_SHA_1_HMAC 16288
CKM_SHA224_HMAC 16256
233
AWS CloudHSM Guía del usuario
Mecanismos de PKCS #11 admitidos
CKM_SHA256_HMAC 16288
CKM_SHA384_HMAC 16224
CKM_SHA512_HMAC 16224
CKM_SHA1_RSA_PKCS 16296
CKM_SHA224_RSA_PKCS 16264
CKM_SHA256_RSA_PKCS 16296
CKM_SHA364_RSA_PKCS 16232
CKM_SHA512_RSA_PKCS 16232
CKM_AES_CBC 16272
CKM_AES_GCM 16224
CKM_DES3_CBC 16280
4
Al realizar el cifrado AES-GCM, el HSM no acepta los datos del vector de inicialización (IV) de la aplicación. Debe utilizar un vector de
inicialización generado. El IV de 12 bytes proporcionado por el HSM se escribe en la referencia de memoria a la que apunta el elemento pIV
de la estructura de parámetros CK_GCM_PARAMS especificada por el usuario. Para asegurarse de no generar confusión en el usuario, el SDK
de PKCS#11 versión 1.1.1 y posteriores obliga a que el elemento pIV apunte a un búfer puesto a cero cuando se inicializa el cifrado AES-
GCM.
5
Este mecanismo se implementa para admitir casos de descarga de SSL/TLS y solo se ejecuta parcialmente en el HSM. Antes de usar
este mecanismo, consulte Issue: ECDH key derivation is executed only partially within the HSM en Problemas conocidos para el SDK de
6
Los siguientes CK_MECHANISM_TYPE y CK_RSA_PKCS_MGF_TYPE se admiten como CK_RSA_PKCS_OAEP_PARAMS para
CKM_RSA_PKCS_OAEP:
7
mecanismo definido por el proveedor. Para poder utilizar los mecanismos definidos por el proveedor de CloudHSM, las aplicaciones
PKCS#11 deben incluir /opt/cloudhsm/include/pkcs11t.h durante la compilación. Para obtener más información sobre el mecanismo
definido por el proveedor, consulte la siguiente descripción:
CKM_CLOUDHSM_AES_GCM: este mecanismo exclusivo es una alternativa programáticamente segura del estándar CKM_AES_GCM. Antepone
el IV generado por el HSM al texto cifrado en lugar de volver a escribirlo en la estructura CK_GCM_PARAMS que se proporciona durante la
inicialización del cifrado. Puede utilizar este mecanismo con las funciones C_Encrypt, C_WrapKey, C_Decrypt y C_UnwrapKey. Cuando se
utiliza este mecanismo, la variable pIV de la estructura CK_GCM_PARAMS debe establecerse en NULL. Cuando se utiliza este mecanismo con
C_Decrypt y C_UnwrapKey, se espera que el IV se anteponga al texto cifrado que se está desencapsulando. Para obtener más opciones de
encapsulamiento de claves AES, consulte Encapsulamiento de claves con AES (p. 64).
234
AWS CloudHSM Guía del usuario
Operaciones API de PKCS #11 admitidas
• C_CreateObject
• C_Decrypt
• C_DecryptFinal
• C_DecryptInit
• C_DecryptUpdate
• C_DestroyObject
• C_DigestInit
• C_Digest
• C_Encrypt
• C_EncryptFinal
• C_EncryptInit
• C_EncryptUpdate
• C_FindObjects
• C_FindObjectsFinal
• C_FindObjectsInit
• C_Finalize
• C_GenerateKey
• C_GenerateKeyPair
• C_GenerateRandom
• C_GetAttributeValue
• C_GetFunctionList
• C_GetInfo
• C_GetMechanismInfo
• C_GetMechanismList
• C_GetOperationState
• C_GetSessionInfo
• C_GetSlotInfo
• C_GetSlotList
• C_GetTokenInfo
• C_Initialize
• C_Login
• C_Logout
• C_OpenSession
• C_Sign
• C_SignFinal
• C_SignInit
• C_SignRecover
• C_SignRecoverInit
• C_SignUpdate
• C_UnWrapKey
• C_Verify
235
AWS CloudHSM Guía del usuario
Atributos de PKCS # 11 admitidos
• C_VerifyFinal
• C_VerifyInit
• C_VerifyRecover
• C_VerifyRecoverInit
• C_VerifyUpdate
• C_WrapKey
CloudHSM no admite todos los atributos que se indican en la especificación de PKCS #11.
Seguimos esta especificación en todos los atributos que admitimos. Estos atributos se indican en
sus respectivas tablas.
Leyenda
GenerateKeyPair
CKA_CLASS ✔ ✔ ✔ ✔
CKA_KEY_TYPE ✔ ✔ ✔ ✔
236
AWS CloudHSM Guía del usuario
Atributos de PKCS # 11 admitidos
CKA_LABEL ✔ ✔ ✔ ✔
CKA_ID ✔ ✔ ✔ ✔
CKA_LOCAL R R R R True
<<<<<CKA_TOKEN ✔ ✔ ✔ ✔ Falso
CKA_PRIVATE ✔
1
✔
1 1
✔
1
✔ True
CKA_ENCRYPT ✖ ✔ ✖ ✔ Falso
CKA_DECRYPT ✔ ✖ ✔ ✖ Falso
CKA_DERIVE ✔ ✔ ✔ ✔ Falso
CKA_MODIFIABLE ✔
1
✔
1 1
✔
1
✔ True
CKA_DESTROYABLE ✔ ✔ ✔ ✔ True
CKA_SIGN ✔ ✖ ✔ ✖ Falso
CKA_SIGN_RECOVER ✖ ✖ 3
✔ ✖
CKA_VERIFY ✖ ✔ ✖ ✔ Falso
CKA_VERIFY_RECOVER ✖ ✖ ✖ 4
✔
CKA_WRAP ✖ ✔ ✖ ✔ Falso
CKA_WRAP_TEMPLATE ✖ ✔ ✖ ✔
CKA_TRUSTED ✖ ✔ ✖ ✔ Falso
CKA_WRAP_WITH_TRUSTED ✔ ✖ ✔ ✖ Falso
CKA_UNWRAP ✔ ✖ ✔ ✖ Falso
CKA_UNWRAP_TEMPLATE ✔ ✖ ✔ ✖
CKA_SENSITIVE ✔ ✖ ✔ ✖ True
CKA_ALWAYS_SENSITIVE R ✖ R ✖
CKA_EXTRACTABLE ✔ ✖ ✔ ✖ True
CKA_NEVER_EXTRACTABLE R ✖ R ✖
CKA_MODULUS ✖ ✖ ✖ ✖
CKA_MODULUS_BITS ✖ ✖ ✖ 2
✔
CKA_PRIME_1 ✖ ✖ ✖ ✖
CKA_PRIME_2 ✖ ✖ ✖ ✖
CKA_COEFFICIENT ✖ ✖ ✖ ✖
237
AWS CloudHSM Guía del usuario
Atributos de PKCS # 11 admitidos
CKA_EXPONENT_1 ✖ ✖ ✖ ✖
CKA_EXPONENT_2 ✖ ✖ ✖ ✖
CKA_PRIVATE_EXPONENT ✖ ✖ ✖ ✖
CKA_PUBLIC_EXPONENT ✖ ✖ ✖ 2
✔
CKA_EC_PARAMS ✖ ✔
2 ✖ ✖
CKA_EC_POINT ✖ ✖ ✖ ✖
CKA_VALUE ✖ ✖ ✖ ✖
CKA_VALUE_LEN ✖ ✖ ✖ ✖
CKA_CHECK_VALUE R R R R
GenerateKey
CKA_CLASS ✔ ✔ ✔
CKA_KEY_TYPE ✔ ✔ ✔
CKA_LABEL ✔ ✔ ✔
CKA_ID ✔ ✔ ✔
CKA_LOCAL R R R True
<<<<<CKA_TOKEN ✔ ✔ ✔ Falso
CKA_PRIVATE ✔
1
✔
1
✔
1 True
CKA_ENCRYPT ✔ ✔ ✖ Falso
CKA_DECRYPT ✔ ✔ ✖ Falso
CKA_DERIVE ✔ ✔ ✔ Falso
CKA_MODIFIABLE ✔
1
✔
1
✔
1 True
CKA_DESTROYABLE ✔ ✔ ✔ True
CKA_SIGN ✔ ✔ ✔ Falso
CKA_SIGN_RECOVER ✖ ✖ ✖
238
AWS CloudHSM Guía del usuario
Atributos de PKCS # 11 admitidos
CKA_VERIFY ✔ ✔ ✔ Falso
CKA_VERIFY_RECOVER ✖ ✖ ✖
CKA_WRAP ✔ ✔ ✖ Falso
CKA_WRAP_TEMPLATE ✔ ✔ ✖
CKA_TRUSTED ✔ ✔ ✖ Falso
CKA_WRAP_WITH_TRUSTED ✔ ✔ ✔ Falso
CKA_UNWRAP ✔ ✔ ✖ Falso
CKA_UNWRAP_TEMPLATE ✔ ✔ ✖
CKA_SENSITIVE ✔ ✔ ✔ True
CKA_ALWAYS_SENSITIVE ✖ ✖ ✖
CKA_EXTRACTABLE ✔ ✔ ✔ True
CKA_NEVER_EXTRACTABLE R R R
CKA_MODULUS ✖ ✖ ✖
CKA_MODULUS_BITS ✖ ✖ ✖
CKA_PRIME_1 ✖ ✖ ✖
CKA_PRIME_2 ✖ ✖ ✖
CKA_COEFFICIENT ✖ ✖ ✖
CKA_EXPONENT_1 ✖ ✖ ✖
CKA_EXPONENT_2 ✖ ✖ ✖
CKA_PRIVATE_EXPONENT ✖ ✖ ✖
CKA_PUBLIC_EXPONENT ✖ ✖ ✖
CKA_EC_PARAMS ✖ ✖ ✖
CKA_EC_POINT ✖ ✖ ✖
CKA_VALUE ✖ ✖ ✖
CKA_VALUE_LEN ✔
2 ✖ 2
✔
CKA_CHECK_VALUE R R R
239
AWS CloudHSM Guía del usuario
Atributos de PKCS # 11 admitidos
CreateObject
CKA_CLASS 2 2 2 2 2 2 2
✔ ✔ ✔ ✔ ✔ ✔ ✔
CKA_KEY_TYPE 2 2 2 2 2 2 2
✔ ✔ ✔ ✔ ✔ ✔ ✔
CKA_LABEL ✔ ✔ ✔ ✔ ✔ ✔ ✔
CKA_ID ✔ ✔ ✔ ✔ ✔ ✔ ✔
CKA_LOCAL R R R R R R R Falso
<<<<<CKA_TOKEN ✔ ✔ ✔ ✔ ✔ ✔ ✔ Falso
CKA_PRIVATE ✔
1
✔
1
✔
1
✔
1
✔
1
✔
1
✔
1 True
CKA_ENCRYPT ✖ ✖ ✖ ✔ ✔ ✔ ✖ Falso
CKA_DECRYPT ✖ ✖ ✔ ✖ ✔ ✔ ✖ Falso
CKA_DERIVE ✔ ✔ ✔ ✔ ✔ ✔ ✔ Falso
CKA_MODIFIABLE ✔
1
✔
1
✔
1
✔
1
✔
1
✔
1
✔
1 True
CKA_DESTROYABLE ✔ ✔ ✔ ✔ ✔ ✔ ✔ True
CKA_SIGN ✔ ✖ ✔ ✖ ✔ ✔ ✔ Falso
CKA_SIGN_RECOVER ✖ ✖ ✔
3 ✖ ✖ ✖ ✖ Falso
CKA_VERIFY ✖ ✔ ✖ ✔ ✔ ✔ ✔ Falso
CKA_VERIFY_RECOVER ✖ ✖ ✖ ✔
4 ✖ ✖ ✖
CKA_WRAP ✖ ✖ ✖ ✔ ✔ ✔ ✖ Falso
CKA_WRAP_TEMPLATE ✖ ✔ ✖ ✔ ✔ ✔ ✖
CKA_TRUSTED ✖ ✔ ✖ ✔ ✔ ✔ ✖ Falso
CKA_WRAP_WITH_TRUSTED ✔ ✖ ✔ ✖ ✔ ✔ ✔ Falso
CKA_UNWRAP ✖ ✖ ✔ ✖ ✔ ✔ ✖ Falso
CKA_UNWRAP_TEMPLATE ✔ ✖ ✔ ✖ ✔ ✔ ✖
CKA_SENSITIVE ✔ ✖ ✔ ✖ ✔ ✔ ✔ True
CKA_ALWAYS_SENSITIVE R ✖ R ✖ R R R
CKA_EXTRACTABLE ✔ ✖ ✔ ✖ ✔ ✔ ✔ True
240
AWS CloudHSM Guía del usuario
Atributos de PKCS # 11 admitidos
CKA_NEVER_EXTRACTABLE R ✖ R ✖ R R R
CKA_MODULUS ✖ ✖ ✔
2 2
✔ ✖ ✖ ✖
CKA_MODULUS_BITS ✖ ✖ ✖ ✖ ✖ ✖ ✖
CKA_PRIME_1 ✖ ✖ ✔ ✖ ✖ ✖ ✖
CKA_PRIME_2 ✖ ✖ ✔ ✖ ✖ ✖ ✖
CKA_COEFFICIENT ✖ ✖ ✔ ✖ ✖ ✖ ✖
CKA_EXPONENT_1 ✖ ✖ ✔ ✖ ✖ ✖ ✖
CKA_EXPONENT_2 ✖ ✖ ✔ ✖ ✖ ✖ ✖
CKA_PRIVATE_EXPONENT ✖ ✖ ✔
2 ✖ ✖ ✖ ✖
CKA_PUBLIC_EXPONENT ✖ ✖ ✔
2 2
✔ ✖ ✖ ✖
CKA_EC_PARAMS 2
✔
2
✔ ✖ ✖ ✖ ✖ ✖
CKA_EC_POINT ✖ 2
✔ ✖ ✖ ✖ ✖ ✖
CKA_VALUE 2
✔ ✖ ✖ ✖ 2
✔
2
✔ ✔
2
CKA_VALUE_LEN ✖ ✖ ✖ ✖ ✖ ✖ ✖
CKA_CHECK_VALUE R R R R R R R
UnwrapKey
CKA_CLASS 2 2 2 2 2
✔ ✔ ✔ ✔ ✔
CKA_KEY_TYPE 2 2 2 2 2
✔ ✔ ✔ ✔ ✔
CKA_LABEL ✔ ✔ ✔ ✔ ✔
CKA_ID ✔ ✔ ✔ ✔ ✔
CKA_LOCAL R R R R R Falso
<<<<<CKA_TOKEN ✔ ✔ ✔ ✔ ✔ Falso
241
AWS CloudHSM Guía del usuario
Atributos de PKCS # 11 admitidos
CKA_PRIVATE ✔
1
✔
1
✔
1 1
✔
1
✔ True
CKA_ENCRYPT ✖ ✖ ✔ ✔ ✖ Falso
CKA_DECRYPT ✖ ✔ ✔ ✔ ✖ Falso
CKA_DERIVE ✔ ✔ ✔ ✔ ✔ Falso
CKA_MODIFIABLE ✔
1
✔
1
✔
1 1
✔
1
✔ True
CKA_DESTROYABLE ✔ ✔ ✔ ✔ ✔ True
CKA_SIGN ✔ ✔ ✔ ✔ ✔ Falso
CKA_SIGN_RECOVER ✖ ✔
3 ✖ ✖ ✖ Falso
CKA_VERIFY ✖ ✖ ✔ ✔ ✔ Falso
CKA_VERIFY_RECOVER ✖ ✖ ✖ ✖ ✖
CKA_WRAP ✖ ✖ ✔ ✔ ✖ Falso
CKA_UNWRAP ✖ ✔ ✔ ✔ ✖ Falso
CKA_SENSITIVE ✔ ✔ ✔ ✔ ✔ True
CKA_EXTRACTABLE ✔ ✔ ✔ ✔ ✔ True
CKA_NEVER_EXTRACTABLE R R R R R
CKA_ALWAYS_SENSITIVE R R R R R
CKA_MODULUS ✖ ✖ ✖ ✖ ✖
CKA_MODULUS_BITS ✖ ✖ ✖ ✖ ✖
CKA_PRIME_1 ✖ ✖ ✖ ✖ ✖
CKA_PRIME_2 ✖ ✖ ✖ ✖ ✖
CKA_COEFFICIENT ✖ ✖ ✖ ✖ ✖
CKA_EXPONENT_1 ✖ ✖ ✖ ✖ ✖
CKA_EXPONENT_2 ✖ ✖ ✖ ✖ ✖
CKA_PRIVATE_EXPONENT ✖ ✖ ✖ ✖ ✖
CKA_PUBLIC_EXPONENT ✖ ✖ ✖ ✖ ✖
CKA_EC_PARAMS ✖ ✖ ✖ ✖ ✖
CKA_EC_POINT ✖ ✖ ✖ ✖ ✖
CKA_VALUE ✖ ✖ ✖ ✖ ✖
CKA_VALUE_LEN ✖ ✖ ✖ ✖ ✖
242
AWS CloudHSM Guía del usuario
Atributos de PKCS # 11 admitidos
CKA_CHECK_VALUE R R R R R
DeriveKey
CKA_CLASS 2 2 2
✔ ✔ ✔
CKA_KEY_TYPE 2 2 2
✔ ✔ ✔
CKA_LABEL ✔ ✔ ✔
CKA_ID ✔ ✔ ✔
CKA_LOCAL R R R True
<<<<<CKA_TOKEN ✔ ✔ ✔ Falso
CKA_PRIVATE ✔
1
✔
1
✔
1 True
CKA_ENCRYPT ✔ ✔ ✖ Falso
CKA_DECRYPT ✔ ✔ ✖ Falso
CKA_DERIVE ✔ ✔ ✔ Falso
CKA_MODIFIABLE ✔
1
✔
1
✔
1 True
CKA_DESTROYABLE ✔
1
✔
1
✔
1 True
CKA_SIGN ✔ ✔ ✔ Falso
CKA_SIGN_RECOVER ✖ ✖ ✖
CKA_VERIFY ✔ ✔ ✔ Falso
CKA_VERIFY_RECOVER ✖ ✖ ✖
CKA_WRAP ✔ ✔ ✖ Falso
CKA_UNWRAP ✔ ✔ ✖ Falso
CKA_SENSITIVE ✔ ✔ ✔ True
CKA_EXTRACTABLE ✔ ✔ ✔ True
CKA_NEVER_EXTRACTABLE R R R
243
AWS CloudHSM Guía del usuario
Atributos de PKCS # 11 admitidos
CKA_ALWAYS_SENSITIVE R R R
CKA_MODULUS ✖ ✖ ✖
CKA_MODULUS_BITS ✖ ✖ ✖
CKA_PRIME_1 ✖ ✖ ✖
CKA_PRIME_2 ✖ ✖ ✖
CKA_COEFFICIENT ✖ ✖ ✖
CKA_EXPONENT_1 ✖ ✖ ✖
CKA_EXPONENT_2 ✖ ✖ ✖
CKA_PRIVATE_EXPONENT ✖ ✖ ✖
CKA_PUBLIC_EXPONENT ✖ ✖ ✖
CKA_EC_PARAMS ✖ ✖ ✖
CKA_EC_POINT ✖ ✖ ✖
CKA_VALUE ✖ ✖ ✖
CKA_VALUE_LEN 2
✔ ✖ ✔
2
CKA_CHECK_VALUE R R R
GetAttributeValue
CKA_CLASS ✔ ✔ ✔ ✔ ✔ ✔ ✔
CKA_KEY_TYPE ✔ ✔ ✔ ✔ ✔ ✔ ✔
CKA_LABEL ✔ ✔ ✔ ✔ ✔ ✔ ✔
CKA_ID ✔ ✔ ✔ ✔ ✔ ✔ ✔
CKA_LOCAL ✔ ✔ ✔ ✔ ✔ ✔ ✔
<<<<<CKA_TOKEN ✔ ✔ ✔ ✔ ✔ ✔ ✔
CKA_PRIVATE 1 1 1 1 1 1 1
✔ ✔ ✔ ✔ ✔ ✔ ✔
CKA_ENCRYPT ✖ ✖ ✖ ✔ ✔ ✔ ✖
CKA_DECRYPT ✖ ✖ ✔ ✖ ✔ ✔ ✖
CKA_DERIVE ✔ ✔ ✔ ✔ ✔ ✔ ✔
244
AWS CloudHSM Guía del usuario
Atributos de PKCS # 11 admitidos
CKA_MODIFIABLE ✔ ✔ ✔ ✔ ✔ ✔ ✔
CKA_DESTROYABLE ✔ ✔ ✔ ✔ ✔ ✔ ✔
CKA_SIGN ✔ ✖ ✔ ✖ ✔ ✔ ✔
CKA_SIGN_RECOVER ✖ ✖ ✔ ✖ ✖ ✖ ✖
CKA_VERIFY ✖ ✔ ✖ ✔ ✔ ✔ ✔
CKA_VERIFY_RECOVER ✖ ✖ ✖ ✔ ✖ ✖ ✖
CKA_WRAP ✖ ✖ ✖ ✔ ✔ ✔ ✖
CKA_WRAP_TEMPLATE ✖ ✔ ✖ ✔ ✔ ✔ ✖
CKA_TRUSTED ✖ ✔ ✖ ✔ ✔ ✔ ✔
CKA_WRAP_WITH_TRUSTED ✔ ✖ ✔ ✖ ✔ ✔ ✔
CKA_UNWRAP ✖ ✖ ✔ ✖ ✔ ✔ ✖
CKA_UNWRAP_TEMPLATE ✔ ✖ ✔ ✖ ✔ ✔ ✖
CKA_SENSITIVE ✔ ✖ ✔ ✖ ✔ ✔ ✔
CKA_EXTRACTABLE ✔ ✖ ✔ ✖ ✔ ✔ ✔
CKA_NEVER_EXTRACTABLE ✔ ✖ ✔ ✖ ✔ ✔ ✔
CKA_ALWAYS_SENSITIVE R R; R R R R R
CKA_MODULUS ✖ ✖ ✔ ✔ ✖ ✖ ✖
CKA_MODULUS_BITS ✖ ✖ ✖ ✔ ✖ ✖ ✖
CKA_PRIME_1 ✖ ✖ S ✖ ✖ ✖ ✖
CKA_PRIME_2 ✖ ✖ S ✖ ✖ ✖ ✖
CKA_COEFFICIENT ✖ ✖ S ✖ ✖ ✖ ✖
CKA_EXPONENT_1 ✖ ✖ S ✖ ✖ ✖ ✖
CKA_EXPONENT_2 ✖ ✖ S ✖ ✖ ✖ ✖
CKA_PRIVATE_EXPONENT ✖ ✖ S ✖ ✖ ✖ ✖
CKA_PUBLIC_EXPONENT ✖ ✖ ✔ ✔ ✖ ✖ ✖
CKA_EC_PARAMS ✔ ✔ ✖ ✖ ✖ ✖ ✖
CKA_EC_POINT ✖ ✔ ✖ ✖ ✖ ✖ ✖
CKA_VALUE S ✖ ✖ ✖ 2
✔
2
✔
2
✔
CKA_VALUE_LEN ✖ ✖ ✖ ✖ ✔ ✖ ✔
CKA_CHECK_VALUE ✔ ✔ ✔ ✔ ✔ ✔ ✖
245
AWS CloudHSM Guía del usuario
Atributos de PKCS # 11 admitidos
Anotaciones:
1
Este atributo es parcialmente compatible con el firmware y debe establecer de forma explícita únicamente
en el valor predeterminado.
2
Atributo obligatorio.
3
El atributo CKA_SIGN_RECOVER se obtiene del atributo CKA_SIGN. Si debe configurarse, solo se puede
establecer en el mismo valor que el establecido para CKA_SIGN. Si no se establece, se obtiene el valor
predeterminado de CKA_SIGN. Como CloudHSM solo admite los mecanismos de firma recuperable
basados en RSA, este atributo solo se puede aplicar a clases públicas de RSA actualmente.
4
El CKA_VERIFY_RECOVER atributo se obtiene del atributo CKA_VERIFY. Si debe configurarse, solo
se puede establecer en el mismo valor que el establecido para CKA_VERIFY. Si no se establece, se
obtiene el valor predeterminado de CKA_VERIFY. Como CloudHSM solo admite los mecanismos de firma
recuperable basados en RSA, este atributo solo se puede aplicar a clases públicas de RSA actualmente.
Modificación de atributos
Algunos atributos de un objeto se pueden modificar una vez creado el objeto, mientras que otros no.
Para modificar los atributos, utilice el comando setAttribute (p. 119) de cloudhsm_mgmt_util. También
puede generar una lista de atributos y las constantes que los representan mediante el comando
listAttribute (p. 113) de cloudhsm_mgmt_util.
En la siguiente lista se muestran los atributos que se pueden modificar después de crear un objeto:
• CKA_LABEL
• <<<<<CKA_TOKEN
Note
La modificación solo se permite para cambiar una clave de sesión por una clave de token.
Utilice el comando setAttribute (p. 200) de key_mgmt_util para cambiar el valor del atributo.
• CKA_ENCRYPT
• CKA_DECRYPT
• CKA_SIGN
• CKA_VERIFY
• CKA_WRAP
• CKA_UNWRAP
• CKA_LABEL
• CKA_SENSITIVE
• CKA_DERIVE
Note
Este atributo admite la derivación de claves. Debe ser False para todas las claves públicas
y no puede establecerse en True. Para las claves secretas y privadas de EC, se puede
establecer en True o False.
• CKA_TRUSTED
Note
Este atributo se puede establecer en True o False solo mediante Crypto Officer (CO).
• CKA_WRAP_WITH_TRUSTED
246
AWS CloudHSM Guía del usuario
Ejemplos de PKCS#11
Note
Este atributo se puede establecer enTrue si la clave solo se puede encapsular con una clave
de encapsulamiento que tenga CKA_TRUSTED establecido en True. Se permite la modificación
para cambiar el valor del atributo de False a True. Una vez establecido en True, no puede
modificar el valor del atributo.
• Instale y configure la biblioteca de software de PKCS#11 (p. 224) de AWS CloudHSM y el paquete de
cliente de AWS CloudHSM (p. 35).
• Configure un nombre de usuario y contraseña de HSM (p. 54) válidos. Los permisos del usuario
criptográfico (CU) son suficientes para estas tareas. La aplicación utiliza estas credenciales para iniciar
sesión en el HSM en cada ejemplo.
Ejemplos de código
Los ejemplos de código de la biblioteca de software de AWS CloudHSM para PKCS#11 están disponibles
en GitHub. Este repositorio contiene ejemplos acerca de cómo realizar operaciones comunes con
PKCS#11, como el cifrado, el descifrado, la firma y la verificación.
247
AWS CloudHSM Guía del usuario
Motor dinámico de OpenSSL
Temas
• Instalar y utilizar el motor dinámico de AWS CloudHSM para OpenSSL (p. 248)
El cliente es un demonio que establece una comunicación cifrada integral con los HSM del clúster, y el
motor de OpenSSL se comunica localmente con el cliente. Si no ha instalado y configurado el paquete de
cliente de AWS CloudHSM, hágalo ahora siguiendo los pasos de Instalar el cliente (Linux) (p. 35). Después
de instalar y configurar el cliente, utilice el siguiente comando para iniciarlo.
El motor dinámico de AWS CloudHSM para OpenSSL solo se admite en Linux y en sistemas operativos
compatibles.
Amazon Linux
248
AWS CloudHSM Guía del usuario
Instalación del motor dinámico de OpenSSL
Amazon Linux 2
CentOS 6
CentOS 7
RHEL 6
RHEL 7
Temas
• Instalar y configurar el motor dinámico de OpenSSL (p. 249)
• Usar el motor dinámico de OpenSSL (p. 251)
Amazon Linux
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-
client-dyn-latest.el6.x86_64.rpm
Amazon Linux 2
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-
client-dyn-latest.el7.x86_64.rpm
249
AWS CloudHSM Guía del usuario
Instalación del motor dinámico de OpenSSL
CentOS 6
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-
client-dyn-latest.el6.x86_64.rpm
CentOS 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-
client-dyn-latest.el7.x86_64.rpm
RHEL 6
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-
client-dyn-latest.el6.x86_64.rpm
RHEL 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-
client-dyn-latest.el7.x86_64.rpm
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-
client-dyn_latest_amd64.deb
250
AWS CloudHSM Guía del usuario
Biblioteca de Java
Si desea utilizar el motor dinámico de AWS CloudHSM para OpenSSL desde una aplicación integrada
de OpenSSL, asegúrese de que la aplicación utiliza el motor dinámico de OpenSSL denominado
cloudhsm. La biblioteca compartida para el motor dinámico se encuentra en /opt/cloudhsm/lib/
libcloudhsm_openssl.so.
Temas
• Instalación y utilización de la biblioteca de software de AWS CloudHSM para Java (p. 251)
• Mecanismos admitidos (p. 256)
• Atributos de Java admitidos (p. 259)
• Muestras de código de la biblioteca de software de AWS CloudHSM para Java (p. 266)
• Uso de la clase KeyStore de Java en CloudHSM (p. 266)
• Uso del almacén de claves de AWS CloudHSM con herramientas de terceros (p. 269)
El cliente es un demonio establece una comunicación cifrada integral con los HSM del clúster. La biblioteca
de Java se comunica localmente con el cliente. Si no ha instalado y configurado el paquete de cliente
de AWS CloudHSM, hágalo ahora siguiendo los pasos de Instalar el cliente (Linux) (p. 35). Después de
instalar y configurar el cliente, utilice el siguiente comando para iniciarlo.
Tenga en cuenta que la biblioteca de software de AWS CloudHSM para Java solo se admite en Linux y en
los sistemas operativos compatibles.
Amazon Linux
Amazon Linux 2
251
AWS CloudHSM Guía del usuario
Instalación de la biblioteca de Java
CentOS 6
CentOS 7
RHEL 6
RHEL 7
Temas
• Instalación de la biblioteca de Java (p. 252)
• Validación de la instalación (p. 253)
• Proporcionar credenciales a la biblioteca de Java (p. 255)
• Conceptos básicos de administración de claves en la biblioteca de Java (p. 256)
Amazon Linux
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
jce-latest.el6.x86_64.rpm
Amazon Linux 2
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
jce-latest.el7.x86_64.rpm
252
AWS CloudHSM Guía del usuario
Instalación de la biblioteca de Java
CentOS 6
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
jce-latest.el6.x86_64.rpm
CentOS 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
jce-latest.el7.x86_64.rpm
RHEL 6
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
jce-latest.el6.x86_64.rpm
RHEL 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
jce-latest.el7.x86_64.rpm
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-
client-jce_latest_amd64.deb
Después de ejecutar los comandos anteriores, encontrará los siguientes archivos de la biblioteca de Java:
• /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.8.jar
• /opt/cloudhsm/java/log4j-core-2.8.jar
• /opt/cloudhsm/lib/libcaviumjca.so
Validación de la instalación
Realice operaciones básicas en el HSM para validar la instalación.
253
AWS CloudHSM Guía del usuario
Instalación de la biblioteca de Java
1. (Opcional) Si todavía no tiene instalado Java en su entorno, ejecute el comando siguiente para
instalarlo.
Ubuntu
2. 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_PASSWORD=<password>
Time: 0.205
OK (1 test)
254
AWS CloudHSM Guía del usuario
Instalación de la biblioteca de Java
Inicio de sesión explícito: este método le permite proporcionar 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 configurar credenciales de CloudHSM en un archivo de
propiedades nuevo, en las propiedades del sistema o como variables de entorno.
HSM_PARTITION = PARTITION_1
HSM_USER = <HSM user name>
HSM_PASSWORD = <password>
• Propiedades del sistema: configure las credenciales a través de las propiedades del sistema cuando
ejecute la aplicación. En los siguientes ejemplos, se muestran dos maneras diferentes de hacerlo:
System.setProperty("HSM_PARTITION","PARTITION_1");
System.setProperty("HSM_USER","<HSM user name>");
System.setProperty("HSM_PASSWORD","<password>");
$ 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:
1. HsmCredentials.properties
2. Propiedades del sistema
3. 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.
255
AWS CloudHSM Guía del usuario
Mecanismos admitidos
También puede encontrar más ejemplos de código de la biblioteca de Java en Muestras de Java (p. 266).
Mecanismos admitidos
Para obtener más información acerca de las interfaces y clases de motor del estándar JCA (Java
Cryptography Architecture) admitidas por AWS CloudHSM, consulte los siguientes temas.
Temas
• Claves compatibles (p. 256)
• Cifrados compatibles (p. 256)
• Resúmenes compatibles (p. 258)
• Algoritmos de código de autenticación de mensajes basado en hash (HMAC) compatibles (p. 259)
• Mecanismos de firma y verificación compatibles (p. 259)
Claves compatibles
La biblioteca de software de AWS CloudHSM para Java le permite generar los siguientes tipos de claves.
Además de los parámetros estándar, admitimos los siguientes parámetros para cada clave que se genere.
Note
La versión 3.1 de la biblioteca de Java permite especificar parámetros con mayor detalle. Para
obtener más información, consulte este artículo sobre los atributos de Java admitidos (p. 259).
Cifrados compatibles
La biblioteca de software de AWS CloudHSM para Java es compatible con las siguientes combinaciones
de algoritmos, modos y rellenos.
256
AWS CloudHSM Guía del usuario
Mecanismos admitidos
Al realizar el cifrado
AES-GCM, el HSM
no tiene en cuenta el
vector de inicialización
(IV) de la solicitud y
utiliza un IV que él
mismo genera. Una vez
que se ha completado
la operación,
deberá llamar a
Cipher.getIV() para
obtener el IV.
AESWrap/ECB/
PKCS5Padding
257
AWS CloudHSM Guía del usuario
Mecanismos admitidos
RSA/ECB/
OAEPWithSHA-256ANDMGF1Padding
RSA/ECB/
OAEPWithSHA-384ANDMGF1Padding
RSA/ECB/
OAEPWithSHA-512ANDMGF1Padding
Resúmenes compatibles
La biblioteca de software de AWS CloudHSM para Java es compatible con los siguientes resúmenes de
mensajes.
• SHA-1
• SHA-224
• SHA-256
• SHA-384
• SHA-512
258
AWS CloudHSM Guía del usuario
Atributos de Java admitidos
Note
A los datos con una longitud inferior a 16 KB se les aplica la función hash en el HSM, mientras
que a los de mayor tamaño se les aplica localmente mediante software.
• HmacSHA1
• HmacSHA224
• HmacSHA256
• HmacSHA384
• HmacSHA512
• NONEwithRSA
• SHA1withRSA
• SHA224withRSA
• SHA256withRSA
• SHA384withRSA
• SHA512withRSA
• SHA1withRSA/PSS
• SHA224withRSA/PSS
• SHA256withRSA/PSS
• SHA384withRSA/PSS
• SHA512withRSA/PSS
• NONEwithECDSA
• SHA1withECDSA
• SHA224withECDSA
• SHA256withECDSA
• SHA384withECDSA
• SHA512withECDSA
259
AWS CloudHSM Guía del usuario
Atributos de Java admitidos
• Generación de claves
• Importación de claves
• Desencapsulamiento de claves
Note
Temas
• Descripción de los atributos (p. 260)
• Atributos admitidos (p. 260)
• Configuración de atributos para claves (p. 262)
• Resumen global (p. 264)
Sin embargo, Java Cryptography Extension (JCE) no especifica cómo deben establecerse los valores de
los atributos de clave, por lo que, de forma predeterminada, se permiten la mayoría de las acciones. Por
el contrario, el estándar PKCS #11 define un completo conjunto de atributos con valores predeterminados
más restrictivos. A partir de la versión 3.1 de la biblioteca de Java, CloudHSM cuenta con una extensión
propia que permite establecer valores más restrictivos para los atributos que se usan habitualmente.
Atributos admitidos
Puede establecer valores para los atributos que aparecen en la tabla siguiente. Es recomendable que
solamente establezca valores para los atributos que desee hacer más restrictivos. Si no se especifica
ningún valor, CloudHSM utilizará el valor predeterminado que se indica en la tabla siguiente. Las celdas
vacías de la columna «Valor predeterminado» indican que no hay ningún valor predeterminado específico
asignado al atributo.
260
AWS CloudHSM Guía del usuario
Atributos de Java admitidos
261
AWS CloudHSM Guía del usuario
Atributos de Java admitidos
Note
La compatibilidad con los atributos de la biblioteca PKCS #11 es más amplia. Para obtener más
información, consulte Atributos de PKCS #11 admitidos (p. 236).
Los objetos de mapa de atributos admiten los siguientes métodos para establecer atributos:
262
AWS CloudHSM Guía del usuario
Atributos de Java admitidos
Note
Los atributos que no se especifican explícitamente se establecen en los valores predeterminados
que se indican en la tabla anterior de the section called “Atributos admitidos” (p. 260).
import com.amazonaws.cloudhsm.CloudHsmKeyAttributes;
import com.amazonaws.cloudhsm.CloudHsmKeyAttributesMap;
import com.amazonaws.cloudhsm.CloudHsmKeyPairAttributesMap;
CloudHsmKeyAttributesMap keyAttributesSessionDecryptionKey =
new CloudHsmKeyAttributesMap.Builder()
.put(CloudHsmKeyAttributes.CKA_LABEL, "ExtractableSessionKeyEncryptDecrypt")
.put(CloudHsmKeyAttributes.CKA_WRAP, false)
.put(CloudHsmKeyAttributes.CKA_UNWRAP, false)
.put(CloudHsmKeyAttributes.CKA_SIGN, false)
.put(CloudHsmKeyAttributes.CKA_VERIFY, false)
.build();
CloudHsmKeyAttributesMap keyAttributesTokenWrappingKey =
new CloudHsmKeyAttributesMap.Builder()
.put(CloudHsmKeyAttributes.CKA_LABEL, "TokenWrappingKey")
.put(CloudHsmKeyAttributes.CKA_TOKEN, true)
.put(CloudHsmKeyAttributes.CKA_ENCRYPT, false)
.put(CloudHsmKeyAttributes.CKA_DECRYPT, false)
.put(CloudHsmKeyAttributes.CKA_SIGN, false)
.put(CloudHsmKeyAttributes.CKA_VERIFY, false)
.build();
Es posible que los desarrolladores utilicen también conjunto de atributos para aplicar con mayor
comodidad las prácticas recomendadas para las plantillas de claves. Por ejemplo:
263
AWS CloudHSM Guía del usuario
Atributos de Java admitidos
.build();
Para establecer por separado atributos específicos en la clave pública y en la clave privada, puede utilizar
el método put() en el objeto de mapa CloudHsmKeyAttributes que corresponda a esa clave. Utilice
el método getPublic() para recuperar el mapa de atributos de la clave pública y utilice getPrivate()
para recuperar el mapa de atributos de la clave privada. Puede rellenar el valor de varios atributos de clave
a la vez tanto de pares de claves públicas como de pares de claves privadas utilizando putAll() con un
mapa de atributos de pares de claves como argumento.
import com.amazonaws.cloudhsm.CloudHsmKeyAttributes;
import com.amazonaws.cloudhsm.CloudHsmKeyAttributesMap;
import com.amazonaws.cloudhsm.CloudHsmKeyPairAttributesMap;
CloudHsmKeyPairAttributesMap keyPairAttributes =
new CloudHsmKeyPairAttributesMap.Builder()
.withPublic(keyAttributes)
.withPrivate(
new CloudHsmKeyAttributesMap.Builder() //or specify them inline
.put(CloudHsmKeyAttributes.CKA_LABEL, "PrivateCertSerial12345")
.put (CloudHSMKeyAttributes.CKA_WRAP, FALSE)
.build()
)
.build();
Resumen global
Para especificar atributos de clave con operaciones de claves, siga estos pasos:
264
AWS CloudHSM Guía del usuario
Atributos de Java admitidos
2. Defina el objeto attributes en el paso 1 con los atributos de clave y los valores que corresponda.
3. Cree una instancia de la clase Cavium*ParameterSpec que corresponda al tipo de clave específico
y pase este objeto de atributos configurado a su constructor.
4. Pase este objeto Cavium*ParameterSpec a la clase o el método criptográfico que corresponda.
DES CaviumDESKeyGenParameterSpec
CaviumDESKeyGenParameterSpec(int
keySize, byte[] iv,
CloudHsmKeyAttributesMap
keyAttributesMap)
RSA CaviumRSAKeyGenParameterSpec
CaviumRSAKeyGenParameterSpec(int
keysize, BigInteger
publicExponent,
CloudHsmKeyPairAttributesMap
keyPairAttributesMap)
secreta CaviumGenericSecretKeyGenParameterSpec
CaviumGenericSecretKeyGenParameterSp
size,
CloudHsmKeyAttributesMap
keyAttributesMap)
AES CaviumAESKeyGenParameterSpec
CaviumAESKeyGenParameterSpec(int
keySize, byte[] iv,
CloudHsmKeyAttributesMap
keyAttributesMap)
EC CaviumECGenParameterSpec CaviumECGenParameterSpec(String
stdName,
CloudHsmKeyPairAttributesMap
keyPairAttributesMap)
265
AWS CloudHSM Guía del usuario
Muestras de Java
• Instale y configure la biblioteca de software de AWS CloudHSM para Java (p. 251) y el paquete de
cliente de AWS CloudHSM (p. 35).
• Configure un nombre de usuario y contraseña de HSM (p. 54) válidos. Los permisos del usuario
criptográfico (CU) son suficientes para estas tareas. La aplicación utiliza estas credenciales para iniciar
sesión en el HSM en cada ejemplo.
• Decida cómo especificar el proveedor Cavium.
Ejemplos de código
En los siguientes ejemplos de código de Java, se muestra cómo se utiliza la biblioteca de software de
AWS CloudHSM sobre Java (p. 251) para realizar tareas básicas en AWS CloudHSM. Encontrará más
ejemplos de código en GitHub.
266
AWS CloudHSM Guía del usuario
KeyStore de CloudHSM
jarsigner. 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.
Note
Como los certificados son información pública, para maximizar la capacidad de almacenamiento
de las claves criptográficas, AWS CloudHSM no permite almacenar certificados en los HSM.
La clase KeyStore de AWS CloudHSM implementa la interfaz de proveedor de servicios (SPI) KeyStore
de Java Cryptography Extension (JCE). Para obtener más información sobre el uso de KeyStore,
consulte Clase KeyStore.
Aunque los dos almacenes de claves utilizan el proveedor Cavium JCE para las operaciones, son
entidades independientes y no intercambian información entre sí.
KeyStore ks = KeyStore.getInstance("Cavium");
KeyStore ks = KeyStore.getInstance("CloudHSM")
Si lo desea, puede especificar una contraseña para cifrar el archivo PKCS12 local que contiene los
datos del almacén de claves. Cuando se crea el almacén de claves de AWS CloudHSM, se establece la
contraseña, que se proporciona cuando se utilizan los métodos load, set y get.
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);
267
AWS CloudHSM Guía del usuario
KeyStore de CloudHSM
• load
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 pueden eliminar datos de claves
almacenados en un HSM utilizando el objeto KeyStore de AWS CloudHSM. Puede eliminar las claves
con la herramienta key_mgmt_util de CloudHSM.
• 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
268
AWS CloudHSM Guía del usuario
Uso del almacén de claves de
AWS CloudHSM con herramientas
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 de clave que se corresponde con la etiqueta especificada.
Como getKey consulta directamente el HSM, puede utilizarse con cualquier clave del HSM,
independientemente de si la generó KeyStore.
• IsCertificateEntry
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 la clave de matriz de bytes especificada al alias proporcionado almacenándola dentro de HSM
como una clave genérica con el alias proporcionado.
• SetKeyEntry con un objeto Key
Asigna la clave especificada al alias proporcionado y la almacena dentro del HSM. Si el objeto Key no es
de tipo CaviumKey, la clave se importa en el HSM como clave de sesión extraíble.
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
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).
269
AWS CloudHSM Guía del usuario
Uso del almacén de claves de
AWS CloudHSM con herramientas
Cuando utiliza el almacén de claves de AWS CloudHSM para generar nuevas claves, no se generan
entradas en el archivo del almacén de claves local, sino que las claves se crean en el HSM. Del mismo
modo, cuando utiliza el almacén de claves de AWS CloudHSM para buscar claves, la búsqueda se
transfiere al HSM. Cuando almacena certificados en el almacén de claves de AWS CloudHSM, el
proveedor comprueba que existe un par de claves con el alias correspondiente en el HSM y asocia el
certificado proporcionado con el par de claves correspondiente.
Temas
• Requisitos previos (p. 270)
• Uso del almacén de claves de AWS CloudHSM con Keytool (p. 271)
• Uso del almacén de claves de AWS CloudHSM con Jarsigner (p. 274)
• Problemas conocidos (p. 275)
• Registro de claves preexistentes con el almacén de claves de AWS CloudHSM (p. 275)
Requisitos previos
Para usar el almacén de claves de AWS CloudHSM, primero debe inicializar y configurar el SDK de JCE
para AWS CloudHSM.
export HSM_PARTITION=PARTITION_1
export HSM_USER=<HSM user name>
export HSM_PASSWORD=<HSM password>
Note
La JCE de CloudHSM dispone de varias opciones de inicio de sesión. Para usar el almacén de
claves de AWS CloudHSM con aplicaciones de terceros, debe utilizar el inicio de sesión implícito
con las variables de entorno. Si desea usar el inicio de sesión explícito a través del código de la
aplicación, debe crear su propia aplicación usando el almacén de claves de AWS CloudHSM.
Para obtener más información, consulte el artículo sobre el uso del almacén de claves de AWS
CloudHSM (p. 266).
security.provider.10=com.cavium.provider.CaviumProvider
270
AWS CloudHSM Guía del usuario
Uso del almacén de claves de
AWS CloudHSM con herramientas
Note
Es posible que los usuarios avanzados estén acostumbrados a especificar las opciones -
providerpath, -providerName y -providerclass de la línea de comandos cuando
utilizan keytool en lugar de actualizar el archivo de configuración de seguridad. Si intenta
especificar las opciones de línea de comandos al generar claves con el almacén de claves de
AWS CloudHSM, se producirán errores.
Cuando utilice keytool con el almacén de claves de AWS CloudHSM, especifique los siguientes
argumentos en cualquier comando de keytool:
-storetype CLOUDHSM \
-J-classpath '-J/opt/cloudhsm/java/*' \
-J-Djava.library.path=/opt/cloudhsm/lib
Si desea crear un nuevo archivo para guardar las claves utilizando el almacén de claves de AWS
CloudHSM, consulte Uso del almacén de claves de AWS CloudHSM. Si desea utilizar un almacén de
claves existente, especifique el nombre (incluida la ruta) con el argumento —keystore en keytool. Si
especifica un archivo de almacén de claves que no existe en un comando de keytool, el almacén de claves
de AWS CloudHSM creará un nuevo archivo.
En el software se genera una clave a través de keytool y se importa en AWS CloudHSM como
una clave extraíble y persistente.
Puede ver las instrucciones para crear claves no extraíbles directamente en el HSM y utilizarlas luego con
keytool o Jarsigner en el ejemplo de código de Registrar claves preexistentes con el almacén de claves
de AWS CloudHSM (p. 275). Le recomendamos encarecidamente que genere las claves no exportables
fuera de keytool y que después importe los certificados correspondientes en el almacén de claves. Si utiliza
claves RSA o EC extraíbles a través de keytool y jarsigner, los proveedores exportarán las claves de AWS
CloudHSM y las utilizarán localmente en las operaciones de firma.
Si tiene varias instancias de cliente conectadas al clúster de CloudHSM, tenga en cuenta que, aunque
se importe un certificado en el almacén de claves de una instancia del cliente, los certificados no estarán
disponibles automáticamente en otras instancias del cliente. Para registrar la clave y los certificados
asociados en cada instancia del cliente, debe ejecutar una aplicación Java, tal y como se describe en
Generar una CSR usando Keytool (p. 272). Si lo desea, también puede realizar los cambios necesarios
en un cliente y copiar el archivo de almacén de claves resultante en las demás instancias del cliente.
Ejemplo 1: generar una clave AES-256 simétrica con la etiqueta «my_secret» y guardarla en un archivo de
almacén de claves llamado «my_keystore.store» en el directorio de trabajo.
271
AWS CloudHSM Guía del usuario
Uso del almacén de claves de
AWS CloudHSM con herramientas
Ejemplo 2: generar un par de claves RSA 2048 con la etiqueta «my_rsa_key_pair» y guardarlo en un
archivo de almacén de claves llamado «my_keystore.store» del directorio de trabajo.
Ejemplo 3: generar una clave p256 ED con la etiqueta «my_ec_key_pair» y guardarla en un archivo de
almacén de claves llamado «my_keystore.store» del directorio de trabajo.
Note
Para poder utilizar un par de claves de keytool, ese par de claves debe tener una entrada en el
archivo de almacén de claves especificado. Si desea utilizar un par de claves generado fuera de
keytool, debe importar los metadatos de las claves y los certificados en el almacén de claves.
Para obtener instrucciones acerca de cómo importar los datos del almacén de claves, consulte
Importación de certificados raíz y certificados intermedios en el almacén de claves de AWS
CloudHSM con Keytool (p. 273).
272
AWS CloudHSM Guía del usuario
Uso del almacén de claves de
AWS CloudHSM con herramientas
Si conecta varias instancias de cliente con el clúster de AWS CloudHSM, aunque importe un certificado en
el almacén de claves de una instancia del cliente, el certificado no estará disponible automáticamente en
las demás instancias del cliente. Es necesario importar el certificado en cada instancia del cliente.
Si conecta varias instancias del cliente con el clúster de AWS CloudHSM, aunque elimine un certificado
del almacén de claves de una instancia del cliente, este certificado no se eliminará automáticamente de las
demás instancias del cliente. Es necesario eliminar el certificado en cada instancia de cliente.
El alias debe ser un par de claves con un certificado asociado del almacén de claves. Si la clave se genera
fuera de keytool o en otra instancia del cliente, primero debe importar los metadatos de la clave y el
certificado en el almacén de claves. Para obtener instrucciones acerca de cómo importar los metadatos del
certificado, consulte el ejemplo de código deRegistrar claves preexistentes con el almacén de claves de
AWS CloudHSM (p. 275).
273
AWS CloudHSM Guía del usuario
Uso del almacén de claves de
AWS CloudHSM con herramientas
1. Siga las instrucciones de los requisitos previos del almacén de claves de AWS CloudHSM (p. 270).
2. Configure las claves de firma y los certificados asociados, así como la cadena de certificados, que
debería estar en el almacén de claves de AWS CloudHSM de la instancia actual del servidor o
cliente. Cree las claves en el AWS CloudHSM e importe los metadatos asociados en el almacén
de claves de AWS CloudHSM. Utilice el ejemplo de código de Registrar claves preexistentes con el
almacén de claves de AWS CloudHSM (p. 275) para importar metadatos en el almacén de claves.
Si desea utilizar keytool para configurar las claves y los certificados, consulte Crear nuevas claves con
keytool (p. 271). Si utiliza varias instancias de cliente para firmar los JAR, cree la clave e importe
la cadena de certificados. A continuación, copie el archivo de almacén de claves resultante en cada
instancia del cliente. Si genera nuevas claves con frecuencia, es posible que le resulte más fácil
importar uno por uno los certificados en cada instancia del cliente.
3. Toda la cadena de certificados debe ser verificable. Para que la cadena de certificados sea verificable,
es posible que deba agregar el certificado de CA y los certificados intermedios al almacén de claves
de AWS CloudHSM. Vea el fragmento de código de Firmar un archivo JAR con AWS CloudHSM y
Jarsigner (p. 274) para obtener instrucciones acerca de cómo utilizar código Java para verificar
la cadena de certificados. Si lo prefiere, puede utilizar keytool para importar los certificados. Para
obtener instrucciones sobre el uso de keytool, consulte Uso de keytool para importar certificados raíz e
intermedios en el almacén de claves de AWS CloudHSM (p. 273).
274
AWS CloudHSM Guía del usuario
Uso del almacén de claves de
AWS CloudHSM con herramientas
jarsigner -verify \
-keystore my_keystore.store \
-sigalg sha512withrsa \
-storetype CloudHSM \
-J-classpath ‘-J/opt/cloudhsm/java/*:/usr/lib/jvm/java-1.8.0/lib/tools.jar' \
-J-Djava.library.path=/opt/cloudhsm/lib \
signthisclass_signed.jar my_key_pair
Problemas conocidos
En la siguiente lista encontrará los problemas conocidos actuales.
• Cuando se generan claves con keytool, el primer proveedor de la configuración del proveedor no puede
ser CaviumProvider.
• Cuando se generan claves con keytool, el primer proveedor (compatible) del archivo de configuración
de seguridad se utiliza para generar la clave. Normalmente, es un proveedor de software. A la clave
generada se le asigna después un alias y se importa en el HSM de AWS CloudHSM como una clave
persistente (token) durante el proceso de adición de claves.
• Si utiliza keytool con el almacén de claves de AWS CloudHSM, no especifique las opciones -
providerName, -providerclass o -providerpath en la línea de comandos. Especifique estas
opciones en el archivo del proveedor de seguridad tal y como se describe en los requisitos previos del
almacén de claves (p. 270).
• Cuando se usan claves de EC no extraíbles a través de keytool y Jarsigner, es necesario eliminar o
deshabilitar el proveedor SunEC de la lista de proveedores del archivo java.security. Si utiliza claves de
EC extraíbles a través de keytool y Jarsigner, los proveedores exportan bits de la clave del HSM de AWS
CloudHSM y usan la clave localmente en las operaciones de firma. No se recomienda utilizar claves
exportables con keytool o Jarsigner.
La siguiente sección contiene un ejemplo de código en el que se muestra cómo se genera un nuevo par
de claves del HSM y se registra utilizando las claves existentes importadas en el almacén de claves de
AWS CloudHSM. Las claves importadas están disponibles para que puedan utilizarse en herramientas de
terceros como keytool y Jarsigner.
Si desea utilizar una clave preexistente, modifique el ejemplo de código para buscar una clave por su
etiqueta en lugar de generar una clave nueva. El código de muestra para buscar una clave por etiqueta
está disponible en el ejemplo KeyUtilitiesRunner.java de GitHub.
Important
Cuando una clave almacenada en AWS CloudHSM se registra con un almacén de claves local,
no se exporta la clave. Cuando se registra la clave, el almacén de claves registra el alias (o la
etiqueta) de la clave y relaciona localmente los objetos del certificado del almacén con un par de
claves de AWS CloudHSM. Si el par de claves se crea como no exportable, los bits de la clave no
saldrán del HSM.
275
AWS CloudHSM Guía del usuario
Uso del almacén de claves de
AWS CloudHSM con herramientas
//
// Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify,
// merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
package com.amazonaws.cloudhsm.examples;
import com.cavium.key.CaviumKey;
import com.cavium.key.parameter.CaviumAESKeyGenParameterSpec;
import com.cavium.key.parameter.CaviumRSAKeyGenParameterSpec;
import com.cavium.asn1.Encoder;
import com.cavium.cfm2.Util;
import javax.crypto.KeyGenerator;
import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.math.BigInteger;
import java.security.*;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.security.KeyStore.PasswordProtection;
import java.security.KeyStore.PrivateKeyEntry;
import java.security.KeyStore.Entry;
import java.util.Calendar;
import java.util.Date;
import java.util.Enumeration;
//
// KeyStoreExampleRunner demonstrates how to load a keystore, and associate a certificate
with a
// key in that keystore.
//
// This example relies on implicit credentials, so you must setup your environment
correctly.
//
// https://docs.aws.amazon.com/cloudhsm/latest/userguide/java-library-install.html#java-
library-credentials
//
private static byte[] COMMON_NAME_OID = new byte[] { (byte) 0x55, (byte) 0x04, (byte)
0x03 };
276
AWS CloudHSM Guía del usuario
Uso del almacén de claves de
AWS CloudHSM con herramientas
private static byte[] COUNTRY_NAME_OID = new byte[] { (byte) 0x55, (byte) 0x04, (byte)
0x06 };
private static byte[] LOCALITY_NAME_OID = new byte[] { (byte) 0x55, (byte) 0x04,
(byte) 0x07 };
private static byte[] STATE_OR_PROVINCE_NAME_OID = new byte[] { (byte) 0x55, (byte)
0x04, (byte) 0x08 };
private static byte[] ORGANIZATION_NAME_OID = new byte[] { (byte) 0x55, (byte) 0x04,
(byte) 0x0A };
private static byte[] ORGANIZATION_UNIT_OID = new byte[] { (byte) 0x55, (byte) 0x04,
(byte) 0x0B };
if (list) {
listKeys(keystoreFile, password);
return;
}
if (null == label) {
label = "Keystore Example Keypair";
}
//
// This call to keyStore.load() will open the pkcs12 keystore with the supplied
277
AWS CloudHSM Guía del usuario
Uso del almacén de claves de
AWS CloudHSM con herramientas
// password and connect to the HSM. The CU credentials must be specified using
// standard CloudHSM login methods.
//
try {
FileInputStream instream = new FileInputStream(keystoreFile);
keyStore.load(instream, password.toCharArray());
} catch (FileNotFoundException ex) {
System.err.println("Keystore not found, loading an empty store");
keyStore.load(null, null);
}
//
// Generate a certificate and associate the chain with the private key.
//
Certificate self_signed_cert = generateCert(kp);
Certificate[] chain = new Certificate[1];
chain[0] = self_signed_cert;
PrivateKeyEntry entry = new PrivateKeyEntry(kp.getPrivate(), chain);
//
// Set the entry using the label as the alias and save the store.
// The alias must match the private key label.
//
keyStore.setEntry(label, entry, passwd);
//
// Generate a non-extractable / non-persistent RSA keypair.
// This method allows us to specify the public and private labels, which
// will make KeyStore alises easier to understand.
278
AWS CloudHSM Guía del usuario
Uso del almacén de claves de
AWS CloudHSM con herramientas
//
public static KeyPair generateRSAKeyPair(int keySizeInBits, String publicLabel, String
privateLabel)
throws InvalidAlgorithmParameterException, NoSuchAlgorithmException,
NoSuchProviderException {
keyPairGen.initialize(spec);
return keyPairGen.generateKeyPair();
}
//
// Generate a certificate signed by a given keypair.
//
private static Certificate generateCert(KeyPair kp) throws CertificateException {
CertificateFactory cf = CertificateFactory.getInstance("X509");
PublicKey publicKey = kp.getPublic();
PrivateKey privateKey = kp.getPrivate();
byte[] version = Encoder.encodeConstructed((byte) 0,
Encoder.encodePositiveBigInteger(new BigInteger("2"))); // version 1
byte[] serialNo = Encoder.encodePositiveBigInteger(new BigInteger(1,
Util.computeKCV(publicKey.getEncoded())));
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_YEAR, -1);
Date notBefore = c.getTime();
c.add(Calendar.YEAR, 1);
Date notAfter = c.getTime();
byte[] validity = Encoder.encodeSequence(
Encoder.encodeUTCTime(notBefore),
Encoder.encodeUTCTime(notAfter)
);
byte[] key = publicKey.getEncoded();
279
AWS CloudHSM Guía del usuario
Uso del almacén de claves de
AWS CloudHSM con herramientas
key);
Signature sig;
byte[] signature = null;
try {
sig = Signature.getInstance(sigAlgoName, "Cavium");
sig.initSign(privateKey);
sig.update(certificate);
signature = Encoder.encodeBitstring(sig.sign());
} catch (Exception e) {
System.err.println(e.getMessage());
return null;
}
//
// Simple OID encoder.
// Encode a value with OID in ASN.1 format
//
private static byte[] encodeName(byte[] nameOid, String value) {
byte[] name = null;
name = Encoder.encodeSet(
Encoder.encodeSequence(
Encoder.encodeOid(nameOid),
Encoder.encodePrintableString(value)
)
);
return name;
}
//
// List all the keys in the keystore.
//
private static void listKeys(String keystoreFile, String password) throws Exception {
KeyStore keyStore = KeyStore.getInstance("CloudHSM");
try {
FileInputStream instream = new FileInputStream(keystoreFile);
keyStore.load(instream, password.toCharArray());
} catch (FileNotFoundException ex) {
System.err.println("Keystore not found, loading an empty store");
keyStore.load(null, null);
}
280
AWS CloudHSM Guía del usuario
Proveedores de KSP y CNG
Temas
• Instalación de los proveedores de KSP y CNG para Windows (p. 281)
• Requisitos previos de AWS CloudHSM para Windows (p. 283)
• Asociar una clave de AWS CloudHSM con un certificado (p. 284)
• Muestra de código para proveedor CNG de Cavium (p. 285)
281
AWS CloudHSM Guía del usuario
Instalación de los proveedores
Use Ctrl+C en la ventana de comandos desde donde inició el cliente de AWS CloudHSM.
Para obtener la dirección IP de la ENI de un HSM del clúster, vaya a la consola de AWS CloudHSM,
elija clusters (clústeres) y seleccione el clúster que desee. También puede utilizar la operación
DescribeClusters, el comando describe-clusters o el cmdlet Get-HSM2Cluster de PowerShell. Escriba una
sola dirección IP de ENI. No importa qué dirección IP de ENI use.
Verifique que los proveedores de KSP y CNG de Cavium estén instalados en su instancia EC2 de
Windows Server. Si falta el proveedor de CNG, ejecute el siguiente comando.
282
AWS CloudHSM Guía del usuario
Requisitos previos
Puede utilizar la interfaz del Administrador de credenciales para administrar manualmente las
credenciales.
1. Para abrir el Administrador de credenciales, escriba credential manager en el cuadro de
búsqueda de la barra de tareas y seleccione Credential Manager (Administrador de credenciales).
2. Seleccione Windows Credentials (Credenciales de Windows) para administrar las credenciales de
Windows.
3. Seleccione Add a generic credential (Agregar una credencial genérica) y rellene los detalles del modo
siguiente:
• En Internet o Network Address (Dirección de red o Internet), escriba el nombre de destino como
cloudhsm_client.
• En Username (Nombre de usuario) y Password (Contraseña), escriba las credenciales del CU.
• Haga clic en OK (Aceptar).
283
AWS CloudHSM Guía del usuario
Asociar una clave con un certificado
n3fips_password=CU-username:CU-password
Identifica un usuario de criptografía (p. 11) (CU) en el HSM y proporciona toda la información de
inicio de sesión necesaria. Su aplicación se autentica y ejecuta como este CU. La aplicación tiene los
permisos de este CU y puede ver y administrar solo las claves que el CU posee y comparte. Este CU
debe estar disponible en el HSM especificado por la variable de entorno n3fips_partition. Para
crear un nuevo CU, use createUser (p. 94). Para encontrar los CU existentes, use listUsers (p. 114).
Por ejemplo:
Sin embargo, si el doble clic no funciona, utilice la herramienta Microsoft Certreq para importar el
certificado en el administrador de certificados. Por ejemplo:
Si esta acción no se realiza correctamente y aparece el error Key not found, continúe en el paso 2.
Si el certificado aparece en el almacén de claves, la tarea se habrá completado correctamente y no será
necesario realizar más acciones.
284
AWS CloudHSM Guía del usuario
Muestra de código
Una vez que el número de serie del certificado está actualizado, puede utilizar este certificado y la clave
privada de AWS CloudHSM correspondiente con cualquier herramienta de firma de terceros de Windows.
Esta página incluye código de ejemplo que no se ha sometido a pruebas completas. Está diseñado para
entornos de prueba. No ejecute este código en un entorno de producción.
En la siguiente muestra se presenta cómo enumerar los proveedores de servicios criptográficos registrados
en su sistema para encontrar el proveedor CNG de Cavium. En la muestra también se presenta cómo
crear un par de claves asimétricas y cómo utilizar el par de claves para firmar datos.
285
AWS CloudHSM Guía del usuario
Muestra de código
Important
Antes de ejecutar este ejemplo, debe configurar las credenciales del HSM, tal y como se explica
en los requisitos previos. Para obtener más información, consulte Requisitos previos de AWS
CloudHSM para Windows (p. 283).
#include "stdafx.h"
#include <Windows.h>
#ifndef NT_SUCCESS
#define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
#endif
// Enumerate the registered providers and determine whether the Cavium CNG provider
// and the Cavium KSP provider exist.
//
bool VerifyProvider()
{
NTSTATUS status;
ULONG cbBuffer = 0;
PCRYPT_PROVIDERS pBuffer = NULL;
bool foundCng = false;
bool foundKeystore = false;
286
AWS CloudHSM Guía del usuario
Muestra de código
}
}
else
{
printf("BCryptEnumRegisteredProviders failed with error code 0x%08x\n", status);
}
// Generate an asymmetric key pair. As used here, this example generates an RSA key pair
// and returns a handle. The handle is used in subsequent operations that use the key
pair.
// The key material is not available.
//
// The key pair is used in the SignData function.
//
NTSTATUS GenerateKeyPair(BCRYPT_ALG_HANDLE hAlgorithm, BCRYPT_KEY_HANDLE *hKey)
{
NTSTATUS status;
// Finalize the key pair. The public/private key pair cannot be used until this
// function is called.
status = BCryptFinalizeKeyPair(*hKey, 0);
if (!NT_SUCCESS(status))
{
printf("BCryptFinalizeKeyPair failed with code 0x%08x\n", status);
return status;
}
return status;
}
// Sign and verify data using the RSA key pair. The data in this function is hardcoded
// and is for example purposes only.
//
NTSTATUS SignData(BCRYPT_KEY_HANDLE hKey)
{
NTSTATUS status;
PBYTE sig;
ULONG sigLen;
ULONG resLen;
BCRYPT_PKCS1_PADDING_INFO pInfo;
287
AWS CloudHSM Guía del usuario
Muestra de código
// Create a signature.
status = BCryptSignHash(hKey, &pInfo, message, messageLen, sig, sigLen, &resLen,
BCRYPT_PAD_PKCS1);
if (!NT_SUCCESS(status))
{
printf("BCryptSignHash failed with code 0x%08x\n", status);
return status;
}
return 0;
}
// Main function.
//
int main()
{
NTSTATUS status;
BCRYPT_ALG_HANDLE hRsaAlg;
BCRYPT_KEY_HANDLE hKey = NULL;
// Get the RSA algorithm provider from the Cavium CNG provider.
printf("Opening RSA algorithm\n");
status = BCryptOpenAlgorithmProvider(&hRsaAlg, BCRYPT_RSA_ALGORITHM, CAVIUM_CNG_PROVIDER,
0);
if (!NT_SUCCESS(status))
{
printf("BCryptOpenAlgorithmProvider RSA failed with code 0x%08x\n", status);
return status;
}
288
AWS CloudHSM Guía del usuario
Muestra de código
// Sign and verify [hardcoded] data using the RSA key pair.
printf("Sign/Verify data with key\n");
SignData(hKey);
printf("Done!\n");
return 0;
}
289
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS
Temas
• Mejore la seguridad de su servidor web con la descarga de SSL/TLS en AWS CloudHSM (p. 290)
• Configuración de Windows Server como entidad de certificación (CA) con AWS CloudHSM (p. 321)
• Cifrado de datos transparente (TDE) de Oracle Database con AWS CloudHSM (p. 325)
• Uso de Microsoft SignTool con AWS CloudHSM para firmar archivos (p. 329)
• Otras integraciones de proveedores externos (p. 333)
Los temas siguientes contienen información general acerca de cómo funciona la descarga SSL/TLS con
AWS CloudHSM y explican cómo se configura la descarga SSL/TLS con AWS CloudHSM en las siguientes
plataformas:
Temas
• Cómo funciona la descarga de SSL/TLS con AWS CloudHSM (p. 290)
• Tutorial: Uso de la descarga de SSL/TLS con AWS CloudHSM en Linux (p. 291)
• Tutorial: Uso de la descarga de SSL/TLS con AWS CloudHSM en Windows (p. 308)
290
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
Note
En la imagen y el proceso siguientes se presupone que se utiliza RSA para la verificación del
servidor y el intercambio de claves. El proceso es algo diferente cuando se utiliza Diffie–Hellman
en lugar de RSA.
Para obtener información acerca de cómo configurar la descarga SSL/TLS con AWS CloudHSM, consulte
uno de los temas siguientes:
• Tutorial: Uso de la descarga de SSL/TLS con AWS CloudHSM en Linux (p. 291)
• Tutorial: Uso de la descarga de SSL/TLS con AWS CloudHSM en Windows (p. 308)
291
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
Temas
• Información general (p. 292)
• Paso 1: Configurar los requisitos previos (p. 292)
• Paso 2: Generar o importar una clave privada y un certificado SSL/TLS (p. 293)
• Paso 3: Configurar el servidor web (p. 296)
• Paso 4: Habilitar el tráfico HTTPS y verificar el certificado (p. 301)
• (Opcional) Paso 5: Añadir un balanceador de carga con Elastic Load Balancing (p. 303)
Información general
En Linux, las aplicaciones de servidor web NGINX y Apache HTTP Server se integran con OpenSSL para
admitir HTTPS. El motor dinámico de AWS CloudHSM para OpenSSL (p. 248) proporciona una interfaz
que permite al software del servidor web utilizar los HSM de un clúster para las descargas criptográficas
y el almacenamiento de claves. El motor de OpenSSL es el puente que conecta el servidor web con su
clúster de AWS CloudHSM.
Para completar este tutorial, primero debe decidir si va a utilizar el software de servidor web NGINX o
Apache en Linux. A continuación, el tutorial le enseña a realizar las tareas siguientes:
Cuando esté listo para empezar, vaya al Paso 1: Configurar los requisitos previos (p. 292).
1. Realice los pasos que se indican en Introducción (p. 15). Dispondrá de un clúster activo con un HSM
y una instancia de cliente de Amazon EC2. La instancia EC2 se configurará con las herramientas de
línea de comandos. Utilice esta instancia de cliente como su servidor web.
2. Conéctese a su instancia de cliente. Para obtener más información, consulte Conexión a la instancia
de Linux mediante SSH o Conexión a la instancia de Linux desde Windows mediante PuTTY en la
documentación de Amazon EC2. A continuación, proceda del modo siguiente:
292
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
a. Elija si desea instalar la aplicación del servidor web NGINX o Apache. A continuación, realice uno
de los pasos siguientes:
• Para instalar NGINX, ejecute el siguiente comando.
Después de completar estos pasos, vaya a Paso 2: Generar o importar una clave privada y un certificado
SSL/TLS (p. 293).
• Si todavía no dispone de una clave privada y un certificado correspondiente, puede generar una clave
privada en un HSM (p. 294). A continuación, utilice la clave privada para crear una solicitud de firma de
certificado (CSR). Use la CSR para crear el certificado SSL/TLS.
• Si ya dispone de una clave privada y de su certificado correspondiente, puede importar la clave privada a
un HSM (p. 295).
Sea cual sea el método que elija, se exporta una clave privada PEM falsa desde el HSM y se guarda en
un archivo. Este archivo no contiene la verdadera clave privada. Contiene una referencia a la clave privada
que está almacenada en el HSM. El servidor web utiliza el archivo de la clave privada PEM falsa y el motor
dinámico de AWS CloudHSM para OpenSSL a fin de descargar el procesamiento de SSL/TLS en un HSM.
293
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
3. Ejecute el siguiente comando si desea utilizar el motor dinámico de AWS CloudHSM para OpenSSL
a fin de generar una clave privada en un HSM. Este comando también exporta la clave privada PEM
falsa y la guarda en un archivo. Reemplace <web_server_fake_PEM.key> por el nombre del
archivo que desea usar para la clave privada PEM falsa exportada.
Ejecute el siguiente comando si desea utilizar el motor dinámico de AWS CloudHSM para OpenSSL a fin
de crear una solicitud de firma de certificado (CSR). Reemplace <web_server_fake_PEM.key> por el
nombre del archivo que contiene la clave privada de PEM falsa. Reemplace <web_server.csr> por el
nombre del archivo que contiene la CSR.
El comando req es interactivo. Responderá a cada campo. La información del campo se copia en su
certificado SSL/TLS.
En un entorno de producción, normalmente se usa una entidad de certificación (CA) para crear un
certificado de una CSR. No es necesaria una CA para un entorno de prueba. Si utiliza una CA, envíe
el archivo de la CSR (<web_server.csr>) a la CA para que cree un certificado SSL/TLS firmado. Su
servidor web utiliza el certificado firmado para HTTPS.
Como alternativa al uso de una CA, puede utilizar el motor dinámico de AWS CloudHSM para OpenSSL
a fin de crear un certificado autofirmado. Los navegadores no confían en certificados autofirmados y no
deben utilizarse en entornos de producción. Se pueden usar en entornos de prueba.
Warning
Ejecute el comando siguiente para utilizar el motor dinámico de AWS CloudHSM para OpenSSL a fin de
firmar la CSR con la clave privada de un HSM. Esto creará un certificado autofirmado. Reemplace los
siguientes valores en el comando por sus propios valores.
294
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
• <web_server_fake_PEM.key>: nombre del archivo que contiene la clave privada de PEM falsa.
• <web_server.crt>: nombre del archivo que contendrá el certificado de servidor web.
Después de completar estos pasos, vaya a Paso 3: Configurar el servidor web (p. 296).
Amazon Linux
Amazon Linux 2
CentOS 6
CentOS 7
RHEL 6
RHEL 7
/opt/cloudhsm/bin/key_mgmt_util
4. Ejecute el siguiente comando para iniciar sesión en el HSM. Reemplace <nombre de usuario> y
<password> por el nombre de usuario y la contraseña del usuario criptográfico (CU).
295
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
a. Ejecute el siguiente comando para crear una clave de encapsulación simétrica que sea válida
únicamente para la sesión actual. El comando y el resultado se muestran aquí.
b. Ejecute el siguiente comando para importar la clave privada actual a un HSM. El comando y el
resultado se muestran aquí. Reemplace los valores siguientes por sus propios valores:
6. Ejecute el comando siguiente para exportar la clave privada en formato PEM falso y guardarla en un
archivo. Reemplace los valores siguientes por sus propios valores.
exit
Después de completar estos pasos, vaya a Paso 3: Configurar el servidor web (p. 296).
296
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
concluirá la configuración del software del servidor web de Linux para la descarga SSL/TLS con AWS
CloudHSM.
Para actualizar la configuración del servidor web, complete los pasos de uno de los procedimientos
siguientes. Elija el procedimiento que corresponde al software del servidor web.
3. Ejecute el siguiente comando para copiar su certificado de servidor web en la ubicación necesaria.
Sustituya <web_server.crt> por el nombre del certificado de servidor web.
4. Ejecute el siguiente comando para copiar la clave privada PEM falsa en la ubicación necesaria.
Reemplace <web_server_fake_PEM.key> por el nombre del archivo que contiene la clave privada
de PEM falsa.
5. Ejecute el siguiente comando para cambiar la propiedad de estos archivos para que el usuario
denominado nginx pueda leerlos.
6. Ejecute el siguiente comando para realizar una copia de seguridad del archivo /etc/nginx/
nginx.conf.
7. Utilice un editor de texto para editar el archivo /etc/nginx/nginx.conf. Al principio del archivo,
añada la línea siguiente:
ssl_engine cloudhsm;
env n3fips_password;
"
A continuación, anule el comentario de la sección TLS del archivo de manera que tenga el siguiente
aspecto:
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
297
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
ssl_certificate "/etc/pki/nginx/server.crt";
ssl_certificate_key "/etc/pki/nginx/private/server.key";
# It is *strongly* recommended to generate unique DH parameters
# Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048
#ssl_dhparam "/etc/pki/nginx/dhparams.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!
aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP;
ssl_prefer_server_ciphers on;
location / {
}
Amazon Linux
EnvironmentFile=/etc/sysconfig/nginx
CentOS 6
298
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
Ubuntu 16.04
EnvironmentFile=/etc/sysconfig/nginx
• Si el archivo existe, haga una copia de seguridad del mismo ejecutando el siguiente comando:
• Si el archivo no existe, abra un editor de texto y, a continuación, cree un archivo denominado nginx
en la carpeta /etc/sysconfig/.
Tip
No es necesario hacer una copia de seguridad del archivo que se acaba de crear.
10. Abra el archivo /etc/sysconfig/nginx en un editor de texto y, a continuación, añada las
credenciales del usuario de criptografía (CU):
Sustituya <CU user name> y <password><password> por las credenciales del usuario de
criptografía.
Amazon Linux
Amazon Linux 2
CentOS 6
299
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
RHEL 7
12. Configure el servidor para que arranque NGINX cuando se inicie el servidor si fuera necesario.
Amazon Linux
Amazon Linux 2
CentOS 6
Después de actualizar la configuración del servidor web, vaya a Paso 4: Habilitar el tráfico HTTPS y
verificar el certificado (p. 301).
3. Ejecute el siguiente comando para hacer una copia de seguridad de la clave privada predeterminada.
4. Ejecute el siguiente comando para copiar su certificado de servidor web en la ubicación necesaria.
Sustituya <web_server.crt> por el nombre del certificado de servidor web.
300
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
5. Ejecute el siguiente comando para copiar la clave privada PEM falsa en la ubicación necesaria.
Reemplace <web_server_fake_PEM.key> por el nombre del archivo que contiene la clave privada
de PEM falsa.
6. Ejecute el siguiente comando para cambiar la propiedad de estos archivos para que el usuario
denominado apache pueda leerlos.
7. Ejecute el siguiente comando para hacer una copia de seguridad del archivo /etc/httpd/conf.d/
ssl.conf.
SSLCryptoDevice cloudhsm
10. Utilice un editor de texto para editar el archivo /etc/apache2/envvars. Añada la siguiente línea,
especificando el nombre de usuario y la contraseña del usuario de criptografía (CU). Sustituya <CU
user name> por el nombre del usuario de criptografía. Sustituya <password> por la contraseña del
CU.
12. Ejecute el siguiente comando para configurar su servidor para iniciar Apache cuando se inicia el
servidor.
Después de actualizar la configuración del servidor web, vaya a Paso 4: Habilitar el tráfico HTTPS y
verificar el certificado (p. 301).
301
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
Temas
• Habilitar las conexiones HTTPS entrantes (p. 302)
• Verificar que HTTPS utiliza el certificado que se ha configurado (p. 302)
a. Para Security group name (Nombre del grupo de seguridad), escriba un nombre para el grupo de
seguridad que está creando.
b. De manera opcional, escriba una descripción del grupo de seguridad que está creando.
c. Para VPC, seleccione la VPC que contiene la instancia Amazon EC2 de su servidor web.
d. Seleccione Add Rule (Añadir regla).
e. En Type (Tipo), seleccione HTTPS.
5. Seleccione Create.
6. En el panel de navegación, seleccione Instances (Instancias).
7. Seleccione la casilla de verificación junto a la instancia del servidor web. A continuación, seleccione
Actions (Acciones), Networking (Redes) y Change Security Groups (Cambiar grupos de seguridad).
8. Seleccione la casilla de verificación situada junto al grupo de seguridad que creó para HTTPS. A
continuación, seleccione Assign Security Groups (Asignar grupos de seguridad).
1. Utilice un navegador web para conectarse a su servidor web mediante el nombre de DNS público o la
dirección IP del servidor. Asegúrese de que la dirección URL en la barra de direcciones comienza con
https://. Por ejemplo, https://ec2-52-14-212-67.us-east-2.compute.amazonaws.com/.
Tip
Puede utilizar un servicio DNS como, por ejemplo, Amazon Route 53 para dirigir el nombre
de dominio de su sitio web (por ejemplo, https://www.ejemplo.com/) a su servidor web.
Para obtener más información, consulte Routing Traffic to an Amazon EC2 Instance
(Direccionamiento del tráfico a una instancia) en Guía para desarrolladores de Amazon
Route 53 o en la documentación para su servicio DNS.
2. Utilice el navegador web para ver el certificado del servidor web. Para obtener más información,
consulte los siguientes temas:
• Para Mozilla Firefox, consulte View a Certificate (Ver un certificado) en el sitio web de Soporte de
Mozilla.
302
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
• Para Google Chrome, consulte Conocer los problemas de seguridad en el sitio web de herramientas
de Google para desarrolladores web.
Otros navegadores web pueden tener características similares que puede utilizar para ver el
certificado del servidor web.
3. Asegúrese de que el certificado SSL/TLS es el que ha configurado para que utilice el servidor web.
1. Ejecute el siguiente comando OpenSSL para conectarse a su servidor web a través de HTTPS.
Sustituya <server name> por el nombre de DNS público o la dirección IP de su servidor web.
Tip
Puede utilizar un servicio DNS como, por ejemplo, Amazon Route 53 para dirigir el nombre
de dominio de su sitio web (por ejemplo, https://www.ejemplo.com/) a su servidor web.
Para obtener más información, consulte Routing Traffic to an Amazon EC2 Instance
(Direccionamiento del tráfico a una instancia) en Guía para desarrolladores de Amazon
Route 53 o en la documentación para su servicio DNS.
2. Asegúrese de que el certificado SSL/TLS es el que ha configurado para que utilice el servidor web.
Ahora tiene un sitio web que se protege con HTTPS. La clave privada del servidor web está almacenada
en un HSM en su clúster de AWS CloudHSM. Sin embargo, dispone de solo un servidor web. Para
configurar un segundo servidor web y un balanceador de carga para incrementar la disponibilidad, vaya a
(Opcional) Paso 5: Añadir un balanceador de carga con Elastic Load Balancing (p. 303).
Temas
• Crear una subred para el segundo servidor web (p. 303)
• Crear el segundo servidor web (p. 304)
• Crear el balanceador de carga (p. 306)
303
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
304
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
9. En el panel de navegación izquierdo, seleccione My AMIs (Mis AMI). A continuación, borre el texto en
el campo de búsqueda.
10. Junto a la imagen del servidor web, seleccione Select (Seleccionar).
11. Seleccione Yes, I want to continue with this AMI (Sí, deseo continuar con esta AMI) (<imagine
name> (<nombre imagen>) - ami-<AMI ID> (<ID de AMI>)).
12. Seleccione Siguiente.
13. Seleccione un tipo de instancia y a continuación, seleccione Next: Configure Instance Details.
14. En Step 3: Configure Instance Details (Paso 3: Configure los detalles de la instancia), haga lo
siguiente:
a. Para Network (Red), seleccione la VPC que contiene su servidor web existente.
b. Para Subnet (Subred), seleccione la subred pública que creó para el segundo servidor web.
c. En Auto-assign Public IP (Autoasignar IP pública), elija Enable (Habilitar).
d. Cambie los detalles restantes de la instancia como desee. A continuación, seleccione Next: Add
Storage (Siguiente: Añadir almacenamiento).
15. Cambie la configuración de almacenamiento como desee. A continuación, elija Next: Add Tags
(Siguiente: Agregar etiquetas).
16. Añada o edite las etiquetas que desee. A continuación, seleccione Next: Configure Security Group
(Configurar grupo de seguridad).
17. En Step 6: Configure Security Group (Paso 6: Configurar grupo de seguridad), haga lo siguiente:
a. En Assign a security group (Asignar un grupo de seguridad), seleccione Select an existing security
group (Seleccionar un grupo de seguridad existente).
305
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
b. Select the check box next to the security group named cloudhsm-<cluster ID>-sg.. AWS
CloudHSM ha creado este grupo de seguridad en su nombre cuando usted creó el clúster (p. 18).
Debe elegir este grupo de seguridad para permitir que la instancia del servidor web se conecte a
los HSM del clúster.
c. Seleccione la casilla de verificación situada junto al grupo de seguridad que permite tráfico
HTTPS entrante. You created this security group previously (p. 302).
d. (Opcional) Seleccione la casilla de verificación situada junto a un grupo de seguridad que permite
el tráfico SSH (para Linux) o RDP (para Windows) entrante desde la red. Es decir, el grupo de
seguridad debe permitir el tráfico TCP entrante en el puerto 22 (para SSH en Linux) o en el puerto
3389 (para RDP en Windows). De lo contrario, no podrá conectarse a su instancia de cliente. Si
no dispone de un grupo de seguridad de este tipo, debe crearlo y, a continuación, asignarlo a la
instancia de cliente.
306
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Linux
1. Abra la sección Load Balancers (Balanceadores de carga) en la consola de Amazon EC2 en https://
console.aws.amazon.com/ec2/v2/home#LoadBalancers.
2. Elija Create Load Balancer.
3. En la sección Network Load Balancer (Balanceador de carga de red), seleccione Create (Crear).
4. En Step 1: Configure Load Balancer (Paso 1: Configurar el balanceador de carga), haga lo siguiente:
a. Para Name (Nombre), escriba un nombre para el balanceador de carga que está creando.
b. En la sección Listeners (Agentes de escucha), para Load Balancer Port (Puerto de balanceador
de carga), cambie el valor a 443.
c. En la sección Availability Zones (Zonas de disponibilidad), para VPC, seleccione la VPC que
contiene sus servidores web.
d. En la sección Availability Zones (Zonas de disponibilidad), seleccione las subredes que contienen
sus servidores web.
e. Elija Next: Configure Routing (Siguiente: Configuración del enrutamiento).
5. En Step 2: Configure Routing (Paso 2: Configurar direccionamiento), haga lo siguiente:
a. Para Name (Nombre), escriba un nombre para el grupo de destino que está creando.
b. Para Port (Puerto), cambie el valor a 443.
c. Elija Next: Register Targets (Siguiente: Registrar destinos).
6. Para Step 3: Register Targets (Paso 3: Registrar destinos), haga lo siguiente:
a. En la sección Instances (Instancias), seleccione las casillas de verificación junto a las instancias
de servidor web. A continuación, seleccione Add to registered (Añadir a registrados).
b. Elija Next: Review (Siguiente: Revisar).
7. Revise los detalles del balanceador de carga y, a continuación, seleccione Create (Crear).
8. Cuando se haya creado correctamente el balanceador de carga, seleccione Close (Cerrar).
Una vez que haya finalizado los pasos anteriores, la consola de Amazon EC2 muestra su balanceador de
carga de Elastic Load Balancing.
Cuando el estado del balanceador de carga sea activo, puede verificar que el balanceador de carga
está en ejecución. Es decir, puede verificar que está enviando tráfico HTTPS a sus servidores web con
descarga de SSL/TLS con AWS CloudHSM. Puede hacerlo mediante un navegador web o una herramienta
como OpenSSL s_client.
Para verificar que el balanceador de carga se está ejecutando con un navegador web
1. En la consola de Amazon EC2, encuentre el nombre de DNS para el balanceador de carga que acaba
de crear. A continuación, seleccione el nombre de DNS y cópielo.
2. Utilice un navegador web como Mozilla Firefox o Google Chrome para conectarse a su balanceador
de carga con el nombre de DNS del balanceador de carga. Asegúrese de que la dirección URL en la
barra de direcciones comienza con https://.
Tip
Puede utilizar un servicio DNS como, por ejemplo, Amazon Route 53 para dirigir el nombre
de dominio de su sitio web (por ejemplo, https://www.ejemplo.com/) a su servidor web.
Para obtener más información, consulte Routing Traffic to an Amazon EC2 Instance
(Direccionamiento del tráfico a una instancia) en Guía para desarrolladores de Amazon
Route 53 o en la documentación para su servicio DNS.
3. Utilice el navegador web para ver el certificado del servidor web. Para obtener más información,
consulte los siguientes temas:
307
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Windows
• Para Mozilla Firefox, consulte View a Certificate (Ver un certificado) en el sitio web de Soporte de
Mozilla.
• Para Google Chrome, consulte Conocer los problemas de seguridad en el sitio web de herramientas
de Google para desarrolladores web.
Otros navegadores web pueden tener características similares que puede utilizar para ver el
certificado del servidor web.
4. Asegúrese de que el certificado es el que ha configurado para que lo utilice el servidor web.
Para verificar que el balanceador de carga se está ejecutando con OpenSSL s_client
Tip
Puede utilizar un servicio DNS como, por ejemplo, Amazon Route 53 para dirigir el nombre
de dominio de su sitio web (por ejemplo, https://www.ejemplo.com/) a su servidor web.
Para obtener más información, consulte Routing Traffic to an Amazon EC2 Instance
(Direccionamiento del tráfico a una instancia) en Guía para desarrolladores de Amazon
Route 53 o en la documentación para su servicio DNS.
2. Asegúrese de que el certificado es el que ha configurado para que lo utilice el servidor web.
Ahora tiene un sitio web que se protege con HTTPS, con la clave privada del servidor web almacenada en
un HSM en su clúster de AWS CloudHSM. Su página web tiene dos servidores web y un balanceador de
carga para ayudar a mejorar la eficiencia y la disponibilidad.
Temas
• Información general (p. 308)
• Paso 1: Configurar los requisitos previos (p. 309)
• Paso 2: Crear una solicitud de firma de certificado (CSR) y un certificado (p. 310)
• Paso 3: Configurar el servidor web (p. 313)
• Paso 4: Habilitar el tráfico HTTPS y verificar el certificado (p. 314)
• (Opcional) Paso 5: Añadir un balanceador de carga con Elastic Load Balancing (p. 316)
Información general
En Windows, la aplicación del servidor web Internet Information Services (IIS) para Windows Server admite
HTTPS de forma nativa. El proveedor de almacenamiento de claves (KSP) de AWS CloudHSM para la API
de criptografía de nueva generación (CNG) de Microsoft (p. 281) proporciona la interfaz que permite a IIS
308
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Windows
utilizar los HSM del clúster para la descarga criptográfica y el almacenamiento de claves. El KSP de AWS
CloudHSM es el puente que conecta IIS con el clúster de AWS CloudHSM.
Cuando esté listo para empezar, vaya al Paso 1: Configurar los requisitos previos (p. 309).
Note
Este tutorial usa Microsoft Windows Server 2016. También es posible utilizar Microsoft Windows
Server 2012, pero no Microsoft Windows Server 2012 R2.
1. Realice los pasos que se indican en Introducción (p. 15). Cuando lance el cliente de Amazon EC2,
seleccione una AMI de Windows Server 2016 o Windows Server 2012. Cuando haya completado
estos pasos, dispondrá de un clúster activo con al menos un HSM. También tendrá una instancia de
cliente de Amazon EC2 que ejecuta Windows Server con el software de cliente de AWS CloudHSM
para Windows instalado.
2. (Opcional) Añada más HSM a su clúster. Para obtener más información, consulte Agregar un
HSM (p. 43).
3. Conéctese al servidor de Windows. Para obtener más información, consulte Conexión con la instancia
en la Guía del usuario de Amazon EC2 para instancias de Windows.
4. Para crear un usuario criptográfico (CU) en su HSM, haga lo siguiente:
309
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Windows
5. Establezca las credenciales de inicio de sesión del HSM (p. 283), utilizando el nombre de usuario y la
contraseña del CU que creó en el paso anterior.
6. En el paso 5, si utilizó el Administrador de credenciales de Windows para configurar las credenciales
de HSM, descargue psexec.exe de SysInternals para ejecutar el siguiente comando como NT
Authority\SYSTEM:
1. Si aún no lo ha hecho, conéctese a su servidor de Windows. Para obtener más información, consulte
Conexión con la instancia en la Guía del usuario de Amazon EC2 para instancias de Windows.
2. En su servidor de Windows, inicie Administrador del servidor.
3. En el panel Administrador del servidor, elija Agregar roles y características.
4. Lea la información de Antes de comenzar y, a continuación, elija Siguiente.
5. En Installation Type, elija Instalación basada en características o en roles. A continuación, elija Next.
6. En Selección de servidor, elija Seleccionar un servidor del grupo de servidores. A continuación, elija
Next.
7. En Roles de servidor, haga lo siguiente:
Después de completar estos pasos, vaya a Paso 2: Crear una solicitud de firma de certificado (CSR) y un
certificado (p. 310).
Temas
• Creación de una CSR (p. 311)
310
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Windows
1. Si aún no lo ha hecho, conéctese a su servidor de Windows. Para obtener más información, consulte
Conexión con la instancia en la Guía del usuario de Amazon EC2 para instancias de Windows.
2. Inicie el cliente de AWS CloudHSM (p. 84).
3. En Windows Server, utilice un editor de texto para crear un archivo de solicitud de certificado
denominado IISCertRequest.inf. A continuación, se muestra el contenido de un archivo
IISCertRequest.inf de ejemplo. Para obtener más información sobre las secciones, las claves y
los valores que puede especificar en el archivo, consulte la documentación de Microsoft. No cambie el
valor de ProviderName.
[Version]
Signature = "$Windows NT$"
[NewRequest]
Subject = "CN=example.com,C=US,ST=Washington,L=Seattle,O=ExampleOrg,OU=WebServer"
HashAlgorithm = SHA256
KeyAlgorithm = RSA
KeyLength = 2048
ProviderName = "Cavium Key Storage Provider"
KeyUsage = 0xf0
MachineKeySet = True
[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1
4. Utilice el comando certreq de Windows para crear una CSR a partir del archivo
IISCertRequest.inf que creó en el paso anterior. En el siguiente ejemplo, se guarda la CSR en
un archivo denominado IISCertRequest.csr. Si utilizó otro nombre para el archivo de solicitud de
certificado, sustituya IISCertRequest.inf por el nombre del archivo. Si lo desea, puede sustituir
IISCertRequest.csr por otro nombre de archivo para el archivo de la CSR.
El archivo IISCertRequest.csr contiene la CSR. Necesita esta CSR para obtener un certificado
firmado.
Como alternativa al uso de una CA, puede utilizar una herramienta como OpenSSL para crear un
certificado autofirmado.
Warning
311
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Windows
Los siguientes procedimientos muestran cómo crear un certificado autofirmado y cómo utilizarlo para firmar
la CSR del servidor web.
1. Utilice el siguiente comando de OpenSSL para crear una clave privada. Si lo desea, puede sustituir
SelfSignedCA.key por el nombre del archivo en que se va a guardar la clave privada.
2. Utilice el siguiente comando de OpenSSL para crear un certificado autofirmado con la clave privada
que ha creado en el paso anterior. Este es un comando interactivo. Lea las instrucciones que
aparecen en pantalla y siga las indicaciones. Sustituya SelfSignedCA.key por el nombre del
archivo que contiene la clave privada (si es distinto). Si lo desea, puede sustituir SelfSignedCA.crt
por el nombre del archivo en que se va a guardar el certificado autofirmado.
openssl req -new -x509 -days 365 -key SelfSignedCA.key -out SelfSignedCA.crt
Enter pass phrase for SelfSignedCA.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
Para utilizar el certificado autofirmado para firmar la CSR del servidor web
• Utilice el siguiente comando de OpenSSL para utilizar la clave privada y el certificado autofirmado
para firmar la CSR. Sustituya los nombres de los archivos siguientes por los que contienen los datos
correspondientes (si son distintos).
• IISCertRequest.csr: nombre del archivo que contiene la CSR del servidor web
• SelfSignedCA.crt: nombre del archivo que contiene el certificado autofirmado
• SelfSignedCA.key: nombre del archivo que contiene la clave privada
• IISCert.crt: nombre del archivo en que se va a guardar el certificado firmado del servidor web
312
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Windows
Una vez que haya completado el paso anterior, tendrá un certificado firmado para el servidor web
(IISCert.crt) y un certificado autofirmado (SelfSignedCA.crt). Cuando tenga estos archivos, vaya al
Paso 3: Configurar el servidor web (p. 313).
Si utilizó un certificado autofirmado para firmar la CSR, primero debe importar el certificado autofirmado en
las entidades de certificación raíz de confianza de Windows.
1. Si aún no lo ha hecho, conéctese a su servidor de Windows. Para obtener más información, consulte
Conexión con la instancia en la Guía del usuario de Amazon EC2 para instancias de Windows.
2. Copie el certificado autofirmado en el servidor de Windows.
3. En Windows Server, abra el Panel de control.
4. En Buscar en el Panel de control, escriba certificates. A continuación, elija Administrar
certificados de equipo.
5. En la ventana Certificados (equipo local), haga doble clic en Entidades de certificación raíz de
confianza.
6. Haga clic con el botón derecho en Certificados y, a continuación, elija Todas las tareas, Importar.
7. En el Asistente para importar certificados, elija Siguiente.
8. Elija Examinar y, a continuación, busque y seleccione el certificado autofirmado. Si creó el certificado
autofirmado siguiendo las instrucciones del paso anterior de este tutorial (p. 310), el certificado
autofirmado se llama SelfSignedCA.crt. Elija Open.
9. Seleccione Next (Siguiente).
10. En Almacén de certificados, elija Colocar todos los certificados en el siguiente almacén. A
continuación, asegúrese de que está seleccionada la opción Entidades de certificación raíz de
confianza para Almacén de certificados.
11. Elija Next y, a continuación, elija Finish.
1. Si aún no lo ha hecho, conéctese a su servidor de Windows. Para obtener más información, consulte
Conexión con la instancia en la Guía del usuario de Amazon EC2 para instancias de Windows.
2. Inicie el cliente de AWS CloudHSM (p. 84).
3. Copie el certificado firmado del servidor web, el que creó al final del paso anterior de este
tutorial (p. 310), en el servidor de Windows.
4. En Windows Server, utilice el comando certreq de Windows para aceptar el certificado firmado, tal
y como se muestra en el siguiente ejemplo. Sustituya IISCert.crt por el nombre del archivo que
contiene el certificado firmado del servidor web.
313
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Windows
Después de actualizar la configuración del sitio web, vaya al Paso 4: Habilitar el tráfico HTTPS y verificar el
certificado (p. 314).
Temas
• Habilitar las conexiones HTTPS entrantes (p. 314)
• Verificar que HTTPS utiliza el certificado que se ha configurado (p. 315)
a. Para Security group name (Nombre del grupo de seguridad), escriba un nombre para el grupo de
seguridad que está creando.
b. De manera opcional, escriba una descripción del grupo de seguridad que está creando.
c. Para VPC, seleccione la VPC que contiene la instancia Amazon EC2 de su servidor web.
d. Seleccione Add Rule (Añadir regla).
e. En Type (Tipo), seleccione HTTPS.
5. Seleccione Create.
6. En el panel de navegación, seleccione Instances (Instancias).
7. Seleccione la casilla de verificación junto a la instancia del servidor web. A continuación, seleccione
Actions (Acciones), Networking (Redes) y Change Security Groups (Cambiar grupos de seguridad).
314
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Windows
8. Seleccione la casilla de verificación situada junto al grupo de seguridad que creó para HTTPS. A
continuación, seleccione Assign Security Groups (Asignar grupos de seguridad).
1. Utilice un navegador web para conectarse a su servidor web mediante el nombre de DNS público o la
dirección IP del servidor. Asegúrese de que la dirección URL en la barra de direcciones comienza con
https://. Por ejemplo, https://ec2-52-14-212-67.us-east-2.compute.amazonaws.com/.
Tip
Puede utilizar un servicio DNS como, por ejemplo, Amazon Route 53 para dirigir el nombre
de dominio de su sitio web (por ejemplo, https://www.ejemplo.com/) a su servidor web.
Para obtener más información, consulte Routing Traffic to an Amazon EC2 Instance
(Direccionamiento del tráfico a una instancia) en Guía para desarrolladores de Amazon
Route 53 o en la documentación para su servicio DNS.
2. Utilice el navegador web para ver el certificado del servidor web. Para obtener más información,
consulte los siguientes temas:
• Para Mozilla Firefox, consulte View a Certificate (Ver un certificado) en el sitio web de Soporte de
Mozilla.
• Para Google Chrome, consulte Conocer los problemas de seguridad en el sitio web de herramientas
de Google para desarrolladores web.
Otros navegadores web pueden tener características similares que puede utilizar para ver el
certificado del servidor web.
3. Asegúrese de que el certificado SSL/TLS es el que ha configurado para que utilice el servidor web.
1. Ejecute el siguiente comando OpenSSL para conectarse a su servidor web a través de HTTPS.
Sustituya <server name> por el nombre de DNS público o la dirección IP de su servidor web.
Tip
Puede utilizar un servicio DNS como, por ejemplo, Amazon Route 53 para dirigir el nombre
de dominio de su sitio web (por ejemplo, https://www.ejemplo.com/) a su servidor web.
Para obtener más información, consulte Routing Traffic to an Amazon EC2 Instance
(Direccionamiento del tráfico a una instancia) en Guía para desarrolladores de Amazon
Route 53 o en la documentación para su servicio DNS.
2. Asegúrese de que el certificado SSL/TLS es el que ha configurado para que utilice el servidor web.
Ahora tiene un sitio web que se protege con HTTPS. La clave privada del servidor web está almacenada
en un HSM en su clúster de AWS CloudHSM. Sin embargo, dispone de solo un servidor web. Para
configurar un segundo servidor web y un balanceador de carga para incrementar la disponibilidad, vaya a
(Opcional) Paso 5: Añadir un balanceador de carga con Elastic Load Balancing (p. 316).
315
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Windows
Temas
• Crear una subred para el segundo servidor web (p. 316)
• Crear el segundo servidor web (p. 317)
• Crear el balanceador de carga (p. 319)
316
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Windows
317
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Windows
7. Seleccione Actions (Acciones) y después Launch More Like This (Lanzar más así).
8. Seleccione Edit AMI (Editar AMI).
9. En el panel de navegación izquierdo, seleccione My AMIs (Mis AMI). A continuación, borre el texto en
el campo de búsqueda.
10. Junto a la imagen del servidor web, seleccione Select (Seleccionar).
11. Seleccione Yes, I want to continue with this AMI (Sí, deseo continuar con esta AMI) (<imagine
name> (<nombre imagen>) - ami-<AMI ID> (<ID de AMI>)).
12. Seleccione Siguiente.
13. Seleccione un tipo de instancia y a continuación, seleccione Next: Configure Instance Details.
14. En Step 3: Configure Instance Details (Paso 3: Configure los detalles de la instancia), haga lo
siguiente:
a. Para Network (Red), seleccione la VPC que contiene su servidor web existente.
b. Para Subnet (Subred), seleccione la subred pública que creó para el segundo servidor web.
c. En Auto-assign Public IP (Autoasignar IP pública), elija Enable (Habilitar).
d. Cambie los detalles restantes de la instancia como desee. A continuación, seleccione Next: Add
Storage (Siguiente: Añadir almacenamiento).
15. Cambie la configuración de almacenamiento como desee. A continuación, elija Next: Add Tags
(Siguiente: Agregar etiquetas).
16. Añada o edite las etiquetas que desee. A continuación, seleccione Next: Configure Security Group
(Configurar grupo de seguridad).
17. En Step 6: Configure Security Group (Paso 6: Configurar grupo de seguridad), haga lo siguiente:
a. En Assign a security group (Asignar un grupo de seguridad), seleccione Select an existing security
group (Seleccionar un grupo de seguridad existente).
b. Select the check box next to the security group named cloudhsm-<cluster ID>-sg.. AWS
CloudHSM ha creado este grupo de seguridad en su nombre cuando usted creó el clúster (p. 18).
Debe elegir este grupo de seguridad para permitir que la instancia del servidor web se conecte a
los HSM del clúster.
c. Seleccione la casilla de verificación situada junto al grupo de seguridad que permite tráfico
HTTPS entrante. You created this security group previously (p. 314).
d. (Opcional) Seleccione la casilla de verificación situada junto a un grupo de seguridad que permite
el tráfico SSH (para Linux) o RDP (para Windows) entrante desde la red. Es decir, el grupo de
seguridad debe permitir el tráfico TCP entrante en el puerto 22 (para SSH en Linux) o en el puerto
3389 (para RDP en Windows). De lo contrario, no podrá conectarse a su instancia de cliente. Si
no dispone de un grupo de seguridad de este tipo, debe crearlo y, a continuación, asignarlo a la
instancia de cliente.
318
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Windows
1. Abra la sección Load Balancers (Balanceadores de carga) en la consola de Amazon EC2 en https://
console.aws.amazon.com/ec2/v2/home#LoadBalancers.
2. Elija Create Load Balancer.
3. En la sección Network Load Balancer (Balanceador de carga de red), seleccione Create (Crear).
4. En Step 1: Configure Load Balancer (Paso 1: Configurar el balanceador de carga), haga lo siguiente:
a. Para Name (Nombre), escriba un nombre para el balanceador de carga que está creando.
b. En la sección Listeners (Agentes de escucha), para Load Balancer Port (Puerto de balanceador
de carga), cambie el valor a 443.
c. En la sección Availability Zones (Zonas de disponibilidad), para VPC, seleccione la VPC que
contiene sus servidores web.
d. En la sección Availability Zones (Zonas de disponibilidad), seleccione las subredes que contienen
sus servidores web.
e. Elija Next: Configure Routing (Siguiente: Configuración del enrutamiento).
5. En Step 2: Configure Routing (Paso 2: Configurar direccionamiento), haga lo siguiente:
a. Para Name (Nombre), escriba un nombre para el grupo de destino que está creando.
b. Para Port (Puerto), cambie el valor a 443.
c. Elija Next: Register Targets (Siguiente: Registrar destinos).
6. Para Step 3: Register Targets (Paso 3: Registrar destinos), haga lo siguiente:
319
AWS CloudHSM Guía del usuario
Descarga de SSL/TLS en Windows
a. En la sección Instances (Instancias), seleccione las casillas de verificación junto a las instancias
de servidor web. A continuación, seleccione Add to registered (Añadir a registrados).
b. Elija Next: Review (Siguiente: Revisar).
7. Revise los detalles del balanceador de carga y, a continuación, seleccione Create (Crear).
8. Cuando se haya creado correctamente el balanceador de carga, seleccione Close (Cerrar).
Una vez que haya finalizado los pasos anteriores, la consola de Amazon EC2 muestra su balanceador de
carga de Elastic Load Balancing.
Cuando el estado del balanceador de carga sea activo, puede verificar que el balanceador de carga
está en ejecución. Es decir, puede verificar que está enviando tráfico HTTPS a sus servidores web con
descarga de SSL/TLS con AWS CloudHSM. Puede hacerlo mediante un navegador web o una herramienta
como OpenSSL s_client.
Para verificar que el balanceador de carga se está ejecutando con un navegador web
1. En la consola de Amazon EC2, encuentre el nombre de DNS para el balanceador de carga que acaba
de crear. A continuación, seleccione el nombre de DNS y cópielo.
2. Utilice un navegador web como Mozilla Firefox o Google Chrome para conectarse a su balanceador
de carga con el nombre de DNS del balanceador de carga. Asegúrese de que la dirección URL en la
barra de direcciones comienza con https://.
Tip
Puede utilizar un servicio DNS como, por ejemplo, Amazon Route 53 para dirigir el nombre
de dominio de su sitio web (por ejemplo, https://www.ejemplo.com/) a su servidor web.
Para obtener más información, consulte Routing Traffic to an Amazon EC2 Instance
(Direccionamiento del tráfico a una instancia) en Guía para desarrolladores de Amazon
Route 53 o en la documentación para su servicio DNS.
3. Utilice el navegador web para ver el certificado del servidor web. Para obtener más información,
consulte los siguientes temas:
• Para Mozilla Firefox, consulte View a Certificate (Ver un certificado) en el sitio web de Soporte de
Mozilla.
• Para Google Chrome, consulte Conocer los problemas de seguridad en el sitio web de herramientas
de Google para desarrolladores web.
Otros navegadores web pueden tener características similares que puede utilizar para ver el
certificado del servidor web.
4. Asegúrese de que el certificado es el que ha configurado para que lo utilice el servidor web.
Para verificar que el balanceador de carga se está ejecutando con OpenSSL s_client
Tip
Puede utilizar un servicio DNS como, por ejemplo, Amazon Route 53 para dirigir el nombre
de dominio de su sitio web (por ejemplo, https://www.ejemplo.com/) a su servidor web.
320
AWS CloudHSM Guía del usuario
Entidad de certificación de Windows Server
Para obtener más información, consulte Routing Traffic to an Amazon EC2 Instance
(Direccionamiento del tráfico a una instancia) en Guía para desarrolladores de Amazon
Route 53 o en la documentación para su servicio DNS.
2. Asegúrese de que el certificado es el que ha configurado para que lo utilice el servidor web.
Ahora tiene un sitio web que se protege con HTTPS, con la clave privada del servidor web almacenada en
un HSM en su clúster de AWS CloudHSM. Su página web tiene dos servidores web y un balanceador de
carga para ayudar a mejorar la eficiencia y la disponibilidad.
En este tutorial, va a usar Windows Server y AWS CloudHSM para configurar una entidad de certificación.
Tiene que instalar el software de cliente de AWS CloudHSM para Windows en el servidor de Windows y
agregar después la función Servicios de certificados de Active Directory (AD CS) a Windows Server. Al
configurar esta función, utiliza un proveedor de almacenamiento de claves (KSP) de AWS CloudHSM para
crear y almacenar la clave privada de la entidad de certificación en su clúster de AWS CloudHSM. El KSP
es el puente que conecta el servidor de Windows con el clúster de AWS CloudHSM. En el último paso,
usted firma una solicitud de firma de certificado (CSR) con su entidad de certificación de Windows Server.
Temas
• Paso 1 de la entidad de certificación de Windows Server: Configurar los requisitos previos (p. 321)
• Paso 2 de la entidad de certificación de Windows Server: Crear una entidad de certificación de
Windows Server con AWS CloudHSM (p. 322)
• Paso 3 de la entidad de certificación de Windows Server: Firmar una solicitud de firma de certificado
(CSR) utilizando la entidad de certificación de Windows Server con AWS CloudHSM (p. 324)
321
AWS CloudHSM Guía del usuario
Crear entidad de certificación de Windows Server
Para configurar los requisitos previos de una entidad de certificación de Windows Server con AWS
CloudHSM
1. Realice los pasos que se indican en Introducción (p. 15). Cuando lance el cliente de Amazon EC2,
elija una AMI de Windows Server. Este tutorial usa Microsoft Windows Server 2016. Cuando haya
completado estos pasos, dispondrá de un clúster activo con al menos un HSM. También tendrá una
instancia de cliente de Amazon EC2 que ejecuta Windows Server con el software de cliente de AWS
CloudHSM para Windows instalado.
2. (Opcional) Añada más HSM a su clúster. Para obtener más información, consulte Agregar un
HSM (p. 43).
3. Conéctese a su instancia de cliente. Para obtener más información, consulte Conexión con la instancia
en la Guía del usuario de Amazon EC2 para instancias de Windows.
4. Para crear un usuario criptográfico (CU) en su HSM, haga lo siguiente:
Para crear una entidad de certificación de Windows Server con AWS CloudHSM, vaya a Crear entidad de
certificación de Windows Server (p. 322).
Al crear tu entidad de certificación de Windows Server, puedes optar por crear una entidad de
certificación o una entidad de certificación subordinada. Normalmente, usted toma esta decisión
en función del diseño de su infraestructura de clave pública y las políticas de seguridad de
322
AWS CloudHSM Guía del usuario
Crear entidad de certificación de Windows Server
su organización. En este tutorial se explica cómo crear una entidad de certificación raíz para
simplificar.
Para agregar el rol AD CS a Windows Server y crear la clave privada de la entidad de certificación
1. Si aún no lo ha hecho, conéctese a su servidor de Windows. Para obtener más información, consulte
Conexión con la instancia en la Guía del usuario de Amazon EC2 para instancias de Windows.
2. En su servidor de Windows, inicie Administrador del servidor.
3. En el panel Administrador del servidor, elija Agregar roles y características.
4. Lea la información de Antes de comenzar y, a continuación, elija Siguiente.
5. En Installation Type, elija Instalación basada en características o en roles. A continuación, elija Next.
6. En Selección de servidor, elija Seleccionar un servidor del grupo de servidores. A continuación, elija
Next.
7. En Roles de servidor, haga lo siguiente:
Puede optar por crear una entidad de certificación raíz o una entidad de certificación
subordinada en función del diseño de su infraestructura de clave pública y las políticas
de seguridad de su organización. En este tutorial se explica cómo crear una entidad de
certificación raíz para simplificar.
16. En Clave privada, seleccione Crear una nueva clave privada. A continuación, elija Next.
17. En Criptografía, haga lo siguiente:
323
AWS CloudHSM Guía del usuario
Firmar una CSR
Ahora tiene una entidad de certificación de Windows con AWS CloudHSM. Para aprender a firmar una
solicitud de firma de certificado (CSR) con su entidad de certificación, vaya a Firmar una CSR (p. 324).
• Mediante OpenSSL
• Mediante el Administrador de Internet Information Services (IIS) de Windows Server
• Mediante el complemento de certificados en la consola de administración de Microsoft
• Mediante la utilidad de la línea de comandos certreq en Windows
Los pasos para crear una CSR quedan fuera del alcance de este tutorial. Al tener una CSR, puede firmarla
con su entidad de certificación de Windows Server.
1. Si aún no lo ha hecho, conéctese a su servidor de Windows. Para obtener más información, consulte
Conexión con la instancia en la Guía del usuario de Amazon EC2 para instancias de Windows.
2. En su servidor de Windows, inicie Administrador del servidor.
3. En el panel Administrador del servidor, en la esquina superior derecha, elija Herramientas, Entidad de
certificación.
4. En la ventana Entidad de certificación, elija el nombre de su equipo.
5. En el menú Acción, elija Todas las tareas, Enviar nueva solicitud.
6. Seleccione el archivo de la CSR y, a continuación, elija Abrir.
7. En la ventana Entidad de certificación, haga doble clic en Solicitudes pendientes.
8. Seleccione la solicitud pendiente. A continuación, en el menú Acción, elija Todas las tareas, Emitir.
9. En la ventana entidad de certificación, haga doble clic en Solicitudes emitidas para ver el certificado
firmado.
10. (Opcional) Para exportar el certificado firmado a un archivo, complete los pasos siguientes:
324
AWS CloudHSM Guía del usuario
Cifrado de Oracle Database
Ahora tiene una entidad de certificación de Windows Server con AWS CloudHSM y un certificado válido
firmado por la entidad de certificación de Windows Server.
En esta solución, Oracle Database está instalado en una instancia Amazon EC2. Oracle Database se
integra con la biblioteca de software de AWS CloudHSM para PKCS # 11 (p. 224) para almacenar la clave
maestra de TDE en los HSM de su clúster.
325
AWS CloudHSM Guía del usuario
Configuración de requisitos previos
Important
No puede utilizar una instancia de Oracle en Amazon Relational Database Service (Amazon RDS)
para realizar la integración con AWS CloudHSM. Debe instalar Oracle Database en una instancia
Amazon EC2.
Siga los pasos que se describen a continuación para realizar la integración del cifrado TDE de Oracle en
AWS CloudHSM.
Para configurar la integración del cifrado TDE de Oracle con AWS CloudHSM
1. Siga los pasos que se detallan en Configuración de requisitos previos (p. 326) para preparar el
entorno.
2. Siga los pasos indicados en Configuración de la base de datos (p. 327) para configurar Oracle
Database para que se integre en el clúster de AWS CloudHSM.
Complete los siguientes pasos para configurar todos los requisitos previos.
Para configurar los requisitos previos necesarios para integrar el cifrado TDE de Oracle con AWS
CloudHSM
1. Realice los pasos que se indican en Introducción (p. 15). A continuación, tendrá un clúster activo con
un HSM. También tendrá una instancia Amazon EC2 que se ejecuta en el sistema operativo Amazon
Linux. También se instalarán y configurarán las herramientas de línea de comandos y el cliente de
AWS CloudHSM.
2. (Opcional) Añada más HSM a su clúster. Para obtener más información, consulte Agregar un
HSM (p. 43).
3. Conéctese a la instancia de cliente de Amazon EC2 y haga lo siguiente:
a. Instale la biblioteca de software de AWS CloudHSM para PKCS #11 (p. 224).
b. Instale Oracle Database. Para obtener más información, consulte la documentación de Oracle
Database. AWS CloudHSM admite la integración del TDE de Oracle con las versiones 11 y 12 de
Oracle Database.
c. Inicie el cliente de AWS CloudHSM (p. 84).
d. Actualice el archivo de configuración de la herramienta de línea de comandos
cloudhsm_mgmt_util (p. 85).
326
AWS CloudHSM Guía del usuario
Configuración de la base de datos
Una vez que haya completado estos pasos, podrá Configuración de la base de datos (p. 327).
1. Actualizar la configuración de Oracle Database (p. 327) para utilizar los HSM en su clúster como el
módulo de seguridad externa. Para obtener información acerca de módulos de seguridad externos,
consulte Introduction to Transparent Data Encryption en la Oracle Database Advanced Security Guide.
2. Generar la clave de cifrado maestra de TDE de Oracle (p. 328) en los HSM en su clúster.
Temas
• Actualizar la configuración de Oracle Database (p. 327)
• Generar la clave de cifrado maestra de TDE de Oracle (p. 328)
1. Conéctese a la instancia de cliente de Amazon EC2. Se trata de la instancia donde instaló Oracle
Database.
2. Realice una copia de backup del archivo denominado sqlnet.ora. Para la ubicación de este archivo,
consulte la documentación de Oracle.
3. Utilice un editor de texto para editar el archivo denominado sqlnet.ora. Añada la siguiente línea. Si
una línea existente en el archivo comienza con encryption_wallet_location, sustituya la línea
existente por la siguiente.
encryption_wallet_location=(source=(method=hsm))
Guarde el archivo.
4. Ejecute el siguiente comando para crear el directorio donde Oracle Database espera encontrar el
archivo de la biblioteca de software de AWS CloudHSM para PKCS # 11.
327
AWS CloudHSM Guía del usuario
Configuración de la base de datos
Note
1. Utilice el siguiente comando para abrir Oracle SQL*Plus y establecer la variable de entorno
CLOUDHSM_IGNORE_CKA_MODIFIABLE_FALSE. Cuando se le solicite, escriba la contraseña del
sistema que configuró cuando instaló Oracle Database.
Note
Ejecute el siguiente comando solo una vez. Cada vez que se ejecuta el comando, se crea
una nueva clave de cifrado maestra.
• Para Oracle Database versión 11, ejecute la siguiente instrucción SQL.
SQL> alter system set encryption key identified by "<CU user name>:<password>";
SQL> administer key management set key identified by "<CU user name>:<password>";
328
AWS CloudHSM Guía del usuario
Microsoft SignTool
Si el wallet no está abierto, utilice uno de los siguientes comandos para abrirlo. Reemplace <nombre
de usuario CU> por el nombre del usuario criptográfico (CU). Reemplace <password> por la
contraseña del CU.
• Para Oracle 11, ejecute el siguiente comando para abrir el wallet.
SQL> alter system set encryption wallet open identified by "<CU user
name>:<password>";
SQL> alter system set encryption wallet close identified by "<CU user
name>:<password>";
SQL> administer key management set keystore open identified by "<CU user
name>:<password>";
SQL> administer key management set keystore close identified by "<CU user
name>:<password>";
Muchas organizaciones utilizan Microsoft SignTool, una herramienta de línea de comandos que firma,
verifica y aplica marcas de tiempo a los archivos para simplificar el proceso de firma de código. Puede
utilizar AWS CloudHSM para almacenar de forma segura sus pares de claves hasta que SignTool los
necesite, con lo que se crea un flujo de trabajo para firmar datos que puede automatizarse fácilmente.
Los temas siguientes proporcionan información general sobre cómo utilizar SignTool con AWS CloudHSM:
Temas
• Microsoft SignTool con AWS CloudHSM Paso 1: Configurar los requisitos previos (p. 330)
• Microsoft SignTool con AWS CloudHSM Paso 2: Crear un certificado de firma (p. 330)
• Microsoft SignTool con AWS CloudHSM Paso 3: Firmar un archivo (p. 332)
329
AWS CloudHSM Guía del usuario
Microsoft SignTool con AWS CloudHSM
Paso 1: Configurar los requisitos previos
Para configurar los requisitos previos para utilizar AWS CloudHSM con Windows SignTool
1. Siga las instrucciones de la sección Introducción (p. 15) de esta guía para lanzar una instancia EC2 de
Windows y un clúster de AWS CloudHSM.
2. Si desea alojar su propia CA de Windows Server, siga los pasos 1 y 2 de Configuración de Windows
Server como entidad de certificación con AWS CloudHSM (p. 321). De lo contrario, siga utilizando su
CA de terceros de confianza pública.
3. Descargue e instale una de las siguientes versiones de SDK de Microsoft Windows en la instancia
EC2 de Windows:
A partir de ahora, puede utilizar el SDK de Microsoft Windows, el clúster de AWS CloudHSM y la CA para
Crear un certificado de firma (p. 330).
330
AWS CloudHSM Guía del usuario
Microsoft SignTool con AWS CloudHSM
Paso 2: Crear un certificado de firma
1. Si todavía no lo ha hecho, conéctese a la instancia EC2 de Windows. Para obtener más información,
consulte Conexión con la instancia en la Guía del usuario de Amazon EC2 para instancias de
Windows.
2. Cree un archivo denominado request.inf que contenga las líneas siguientes. Sustituya la
información de Subject por la de su organización. Para ver una explicación de cada uno de los
parámetros, consulte la documentación de Microsoft.
[Version]
Signature= $Windows NT$
[NewRequest]
Subject = "C=<Country>,CN=<www.website.com>,\
O=<Organization>,OU=<Organizational-Unit>,\
L=<City>,S=<State>"
RequestType=PKCS10
HashAlgorithm = SHA256
KeyAlgorithm = RSA
KeyLength = 2048
ProviderName = Cavium Key Storage Provider
KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE"
MachineKeySet = True
Exportable = False
Internamente, se genera un par de claves nuevo en el clúster de AWS CloudHSM y se utiliza la clave
privada del par para crear la CSR.
4. Envíe la CSR a la CA. Si utiliza una CA de Windows Server, siga estos pasos:
certsrv.msc
b. En la ventana nueva, haga clic con el botón derecho del ratón en el nombre del servidor de la CA.
Elija Todas las tareas y, a continuación, elija Enviar solicitud nueva.
c. Vaya a la ubicación de request.csry elija Abrir.
d. Expanda el menú CA del servidor para ir a la carpeta Solicitudes pendientes. Haga clic con el
botón derecho del ratón en la solicitud que acaba de crear y, en Todas las tareas, elija Emitir.
e. Ahora vaya a la carpeta Certificados emitidos (situada encima de la carpeta Solicitudes
pendientes).
f. Elija Abrir para ver el certificado y, a continuación, elija la pestaña Detalles.
g. Elija Copiar en archivo para iniciar el Asistente para exportación de certificados. Guarde en un
lugar seguro el archivo X.509 con codificación DER como signedCertificate.cer.
h. Salga de la herramienta de CA y utilice el siguiente comando para mover el archivo de certificado
al almacén de certificados personales de Windows. Esto permite que puedan utilizarlo otras
aplicaciones.
A partir de ahora, puede utilizar el certificado importado para Firmar un archivo (p. 332).
331
AWS CloudHSM Guía del usuario
Microsoft SignTool con AWS
CloudHSM Paso 3: Firmar un archivo
332
AWS CloudHSM Guía del usuario
Otras integraciones de proveedores externos
333
AWS CloudHSM Guía del usuario
Obtención de los registros del cliente
AWS CloudHSM está integrado con AWS CloudTrail, un servicio que registra todas las llamadas a la
API de AWS CloudHSM que se producen en la cuenta de AWS. CloudTrail registra estas llamadas en
archivos de registro que se entregan a un bucket Amazon Simple Storage Service (Amazon S3) de su
elección. Por ejemplo, al crear y eliminar clústeres de AWS CloudHSM, crear y eliminar módulos HSM
en un clúster, etiquetar los recursos de AWS CloudHSM, etc., las llamadas a las API correspondientes
se registran en archivos de registro de CloudTrail.
Amazon CloudWatch Logs para registros de auditoría de HSM
AWS CloudHSM envía los registros de auditoría capturados en las instancias de HSM a Amazon
CloudWatch Logs, un servicio que almacena, organiza y muestra los datos de registro de diferentes
orígenes. Por ejemplo, al crear y eliminar usuarios de HSM, cambiar las contraseñas de los usuarios,
crear y eliminar claves, etc., estos eventos se recopilan y se almacenan en CloudWatch Logs.
Temas
• Obtención de los registros del cliente de AWS CloudHSM (p. 334)
• Registro de llamadas a la API de AWS CloudHSM con AWS CloudTrail (p. 335)
• Monitorización de registros de auditoría de AWS CloudHSM en Amazon CloudWatch Logs (p. 337)
Amazon Linux
En Amazon Linux, the AWS CloudHSM client logs are written to the file named /opt/cloudhsm/
run/cloudhsm_client.log. You can use logrotate or a similar tool to rotate and manage these
logs.
Amazon Linux 2
En Amazon Linux 2, the AWS CloudHSM Client logs are collected and stored in the journal. You can
use journalctl to view and manage these logs. For example, use the following command to view the
AWS CloudHSM Client logs.
journalctl -f -u cloudhsm-client
334
AWS CloudHSM Guía del usuario
Registro de llamadas a la API de
AWS CloudHSM con AWS CloudTrail
CentOS 6
En CentOS 6, the AWS CloudHSM client logs are written to the file named /opt/cloudhsm/run/
cloudhsm_client.log. You can use logrotate or a similar tool to rotate and manage these logs.
CentOS 7
En CentOS 7, the AWS CloudHSM Client logs are collected and stored in the journal. You can use
journalctl to view and manage these logs. For example, use the following command to view the AWS
CloudHSM Client logs.
journalctl -f -u cloudhsm-client
RHEL 6
En Red Hat Enterprise Linux 6, the AWS CloudHSM client logs are written to the file named /opt/
cloudhsm/run/cloudhsm_client.log. You can use logrotate or a similar tool to rotate and
manage these logs.
RHEL 7
En Red Hat Enterprise Linux 7, the AWS CloudHSM Client logs are collected and stored in the journal.
You can use journalctl to view and manage these logs. For example, use the following command to
view the AWS CloudHSM Client logs.
journalctl -f -u cloudhsm-client
Ubuntu 16.04
En Ubuntu, the AWS CloudHSM Client logs are collected and stored in the journal. You can use
journalctl to view and manage these logs. For example, use the following command to view the AWS
CloudHSM Client logs.
journalctl -f -u cloudhsm-client
Windows
335
AWS CloudHSM Guía del usuario
Información de AWS CloudHSM en CloudTrail
de eventos de CloudTrail a un bucket de Amazon S3, incluidos los eventos de AWS CloudHSM. Si no
configura un registro de seguimiento, puede ver los eventos más recientes en la consola de CloudTrail
en el Event history (Historial de eventos). Gracias a la información recopilada por CloudTrail, se puede
determinar qué solicitud se envió a AWS CloudHSM, desde qué dirección IP se realizó, quién lo hizo,
cuándo y otros detalles.
Para obtener más información sobre CloudTrail, consulte la AWS CloudTrail User Guide. Para ver una lista
completa de las operaciones de API de AWS CloudHSM, consulte Acciones en la Referencia de la API de
AWS CloudHSM.
Para mantener un registro continuo de los eventos de la cuenta de AWS, incluidos los eventos de AWS
CloudHSM, cree un registro de seguimiento. Un registro de seguimiento permite a CloudTrail enviar
archivos de registro a un bucket de Amazon S3. De forma predeterminada, cuando se crea un registro
de seguimiento en la consola, este se aplica a todas las regiones de AWS. El registro de seguimiento
registra los eventos de todas las regiones de la partición de AWS y envía los archivos de registro al bucket
de Amazon S3 especificado. También puede configurar otros servicios de AWS para analizar y actuar en
función de los datos de eventos recopilados en los registros de CloudTrail. Para obtener más información,
consulte los siguientes temas:
CloudTrail registra todas las operaciones de AWS CloudHSM, incluidas las de solo lectura (como
DescribeClusters y ListTags), y las de administración (como InitializeCluster, CreatHsm y
DeleteBackup).
Cada entrada de registro o evento contiene información acerca de quién generó la solicitud. La información
de identidad del usuario le ayuda a determinar lo siguiente:
• Si la solicitud se realizó con credenciales de usuario raíz o de AWS Identity and Access Management
(IAM).
• Si la solicitud se realizó con credenciales de seguridad temporales de un rol o fue un usuario federado.
• Si la solicitud la realizó otro servicio de AWS.
336
AWS CloudHSM Guía del usuario
Monitorización de registros de auditoría
etcétera. Los archivos de registro de CloudTrail no son un registro de seguimiento de la pila ordenada de
las llamadas a la API públicas, por lo que no aparecen en ningún orden específico.
En el ejemplo siguiente, se muestra una entrada de registro de CloudTrail que ilustra la acción CreateHsm
de AWS CloudHSM.
{
"eventVersion": "1.05",
"userIdentity": {
"type": "AssumedRole",
"principalId": "AROAJZVM5NEGZSTCITAMM:ExampleSession",
"arn": "arn:aws:sts::111122223333:assumed-role/AdminRole/ExampleSession",
"accountId": "111122223333",
"accessKeyId": "ASIAIY22AX6VRYNBGJSA",
"sessionContext": {
"attributes": {
"mfaAuthenticated": "false",
"creationDate": "2017-07-11T03:48:44Z"
},
"sessionIssuer": {
"type": "Role",
"principalId": "AROAJZVM5NEGZSTCITAMM",
"arn": "arn:aws:iam::111122223333:role/AdminRole",
"accountId": "111122223333",
"userName": "AdminRole"
}
}
},
"eventTime": "2017-07-11T03:50:45Z",
"eventSource": "cloudhsm.amazonaws.com",
"eventName": "CreateHsm",
"awsRegion": "us-west-2",
"sourceIPAddress": "205.251.233.179",
"userAgent": "aws-internal/3",
"requestParameters": {
"availabilityZone": "us-west-2b",
"clusterId": "cluster-fw7mh6mayb5"
},
"responseElements": {
"hsm": {
"eniId": "eni-65338b5a",
"clusterId": "cluster-fw7mh6mayb5",
"state": "CREATE_IN_PROGRESS",
"eniIp": "10.0.2.7",
"hsmId": "hsm-6lz2hfmnzbx",
"subnetId": "subnet-02c28c4b",
"availabilityZone": "us-west-2b"
}
},
"requestID": "1dae0370-65ec-11e7-a770-6578d63de907",
"eventID": "b73a5617-8508-4c3d-900d-aa8ac9b31d08",
"eventType": "AwsApiCall",
"recipientAccountId": "111122223333"
}
337
AWS CloudHSM Guía del usuario
Cómo funciona el proceso de registro de auditoría
forma de un registro de auditoría. Los registros de auditoría del HSM contienen todos los comandos de
administración (p. 351) iniciados por el cliente, incluidos los que crean y eliminan el HSM, los que inician
y cierran sesión en el HSM y los que administran usuarios y claves. Estos registros conforman un registro
de confianza de las acciones que han cambiado el estado del HSM.
AWS CloudHSM recopila los registros de auditoría del HSM y los envía a Amazon CloudWatch Logs en su
nombre. Puede utilizar las características de CloudWatch Logs para administrar los registros de auditoría
de AWS CloudHSM, como la búsqueda y el filtrado de los registros y la exportación de datos de registro a
Amazon S3. Puede trabajar con los registros de auditoría de HSM en la consola de Amazon CloudWatch o
utilizar los comandos de CloudWatch Logs en la AWS CLI y los SDK de CloudWatch Logs.
Temas
• Cómo funciona el proceso de registro de auditoría (p. 338)
• Visualización de registros de auditoría en CloudWatch Logs (p. 338)
• Interpretación de los registros de auditoría de HSM (p. 341)
• Referencia del registro de auditoría (p. 351)
Cada instancia de HSM genera su propio registro. Los registros de auditoría de los distintos HSM, incluidos
aquellos que están en el mismo clúster, pueden ser diferentes. Por ejemplo, solo el primer HSM de cada
clúster registra la inicialización del HSM. Los eventos de inicialización no aparecen en los registros de
los HSM que se clonan de las copias de seguridad. Del mismo modo, cuando se crea una clave, el HSM
que la genera registra un evento de generación de clave. Los demás HSM del clúster registran un evento
cuando reciben la clave a través de una sincronización.
AWS CloudHSM recopila los registros y los publica en las entradas de CloudWatch Logs de la cuenta.
Para comunicarse con el servicio CloudWatch Logs en su nombre, AWS CloudHSM utiliza una función
vinculada a un servicio (p. 360). La política de IAM que está asociada a la función permite que AWS
CloudHSM efectúe únicamente las tareas necesarias para enviar los registros de auditoría a CloudWatch
Logs.
Important
Si creó un clúster antes del 20 de enero de 2018 pero no ha creado ninguna función vinculada al
servicio asociada, debe crear una manualmente. Esto es necesario para que CloudWatch pueda
recibir los registros de auditoría del clúster de AWS CloudHSM. Para obtener más información
acerca de la creación de funciones vinculadas a servicios, consulte Descripción de las funciones
vinculadas a servicios (p. 360) y Crear una función vinculada a un servicio en la Guía del
usuario de IAM.
338
AWS CloudHSM Guía del usuario
Visualización de registros de auditoría en CloudWatch Logs
Por lo general, suele haber una secuencia de registros en cada HSM. Sin embargo, cualquier acción
que cambie el ID de HSM, como cuando se produce un error en un HSM y se sustituye, crea una nueva
secuencia de registros.
Para obtener más información acerca de los conceptos de CloudWatch Logs, consulteConceptos en la
Amazon CloudWatch Logs User Guide.
Puede ver los registros de auditoría de un HSM en la página CloudWatch Logs de Consola de
administración de AWS, los comandos de CloudWatch Logs de la AWS CLI, los cmdlets de PowerShell
para CloudWatch Logs o los SDK de CloudWatch Logs. Para obtener instrucciones, consulte Ver datos de
registro en la Amazon CloudWatch Logs User Guide.
Por ejemplo, en la siguiente imagen se muestra el grupo de registros del clúster cluster-likphkxygsn
de la Consola de administración de AWS.
Cuando seleccione el nombre del grupo de registros del clúster, puede ver la secuencia de registros de
cada uno de los HSM del clúster. En la imagen siguiente, se muestran las secuencias de registros de los
HSM del clúster cluster-likphkxygsn.
339
AWS CloudHSM Guía del usuario
Visualización de registros de auditoría en CloudWatch Logs
Cuando elige el nombre de una secuencia de registros de HSM, puede ver los eventos del registro de
auditoría. Por ejemplo, este evento, cuyo número de secuencia es 0x0 y donde el valor de Opcode es
CN_INIT_TOKEN, suele ser el primer evento del primer HSM de cada clúster. Este evento registra la
inicialización del HSM del clúster.
Puede utilizar las numerosas características de CloudWatch Logs para administrar los registros de
auditoría. Por ejemplo, puede utilizar la características Filter events (Filtrar eventos) para buscar un texto
específico de un evento,como el Opcode CN_CREATE_USER.
Para buscar todos los eventos que no incluyen el texto especificado, añada un signo menos (-) delante del
texto. Por ejemplo, para buscar eventos que no incluyen CN_CREATE_USER, escriba -CN_CREATE_USER.
340
AWS CloudHSM Guía del usuario
Interpretación de los registros de auditoría de HSM
Por ejemplo, el siguiente evento de ejemplo es el segundo evento (Sequence No: 0x1) de la secuencia
de registros de un HSM. Muestra el HSM que generó una clave de cifrado de contraseña, lo que forma
parte de la rutina de inicio.
Los siguientes campos son comunes a todos los eventos de AWS CloudHSM en el registro de auditoría.
341
AWS CloudHSM Guía del usuario
Interpretación de los registros de auditoría de HSM
Time (Hora)
Hora a la que tuvo lugar el evento en la zona horaria UTC. La hora se muestra en lenguaje natural y
en formato Unix en microsegundos.
Reboot counter (Contador de reinicios)
Contador ordinal persistente de 32 bits que aumenta cuando el hardware del HSM se reinicia.
Todos los eventos de una secuencia de registros tienen el mismo valor de contador de reinicios. Sin
embargo, el contador de reinicios podría no ser el único en una secuencia de registros, ya que podría
haber otros en las distintas instancias del HSM del mismo clúster.
Sequence No (Número de secuencia)
Contador ordinal de 64 bits que aumenta con cada evento del registro. El primer evento de cada
secuencia de registros tiene el número de secuencia 0x0. No debe haber espacios en los valores de
Sequence No. El número de secuencia solamente es único dentro de una secuencia de registros.
Command type (Tipo de comando)
Valor hexadecimal que representa la categoría del comando. Los comandos de las secuencias de
registros de AWS CloudHSM tienen el tipo de comandos CN_MGMT_CMD (0x0) o CN_CERT_AUTH_CMD
(0x9).
Opcode
Identifica el comando de administración ejecutado. Para ver una lista con los valores de Opcode en los
registros de auditoría de AWS CloudHSM, consulte Referencia del registro de auditoría (p. 351).
Session handle (Identificador de sesión)
Registra la respuesta del comando de administración. El campo Response, tendrá los valores
SUCCESS y ERROR.
Log type (Tipo de registro)
Temas
• Ejemplo: Inicialización del primer HSM de un clúster (p. 343)
• Eventos de inicio y cierre de sesión (p. 344)
• Ejemplo: Creación y eliminación de usuarios (p. 343)
• Ejemplo: Creación y eliminación de un par de claves (p. 346)
• Ejemplo: Creación y sincronización de una clave (p. 348)
342
AWS CloudHSM Guía del usuario
Interpretación de los registros de auditoría de HSM
Los siguientes eventos de ejemplo aparecen en la secuencia de registros del primer HSM de un clúster.
El primer evento del registro —el que tiene el valor de Sequence No 0x0— representa el comando para
inicializar el HSM (CN_INIT_TOKEN). La respuesta indica que el comando se ha realizado correctamente
(Response : 0: HSM Return: SUCCESS).
El segundo evento de esta secuencia de registros de ejemplo (Sequence No 0x1) registra el comando
para crear la clave de cifrado de contraseñas que el HSM utiliza (CN_GEN_PSWD_ENC_KEY).
Esta secuencia de inicio es habitual entre los primeros HSM de cada clúster. Como los siguientes HSM del
mismo clúster son clones del primero, utilizan la misma clave de cifrado de contraseñas.
El tercer evento de esta secuencia de registros de ejemplo (Sequence No 0x2) es la creación del usuario
de dispositivos (AU) (p. 11), que es el servicio AWS CloudHSM. Los eventos que implican a usuarios de
HSM contienen campos adicionales para el nombre de usuario y el tipo de usuario.
343
AWS CloudHSM Guía del usuario
Interpretación de los registros de auditoría de HSM
El cuarto evento de esta secuencia de registros de ejemplo (Sequence No 0x3) registra el evento
CN_INIT_DONE, que completa la inicialización del HSM.
Puede seguir el resto de eventos en la secuencia de inicio. Estos eventos podrían incluir varios eventos
de inicio y cierre de sesión y la generación de la clave de cifrado de claves (KEK). El siguiente evento
registra el comando que cambia la contraseña del responsable de criptografía previa (PRECO) (p. 11).
Este comando activa el clúster.
Por ejemplo, esta entrada del registro recopila un inicio de sesión de un responsable de criptografía
llamado admin. El número de secuencia, 0x0, indica que este es el primer evento de esta secuencia de
registros.
Cuando un usuario inicia sesión en un HSM, los demás HSM del clúster también registran un evento de
inicio de sesión para el usuario. Puede buscar los eventos de inicio de sesión correspondientes en las
secuencias de registros de otros HSM del clúster poco después del evento de inicio de sesión inicial.
El siguiente evento de ejemplo recopila el cierre de sesión del responsable de criptografía admin. El
número de secuencia, 0x2, indica que este es el tercer evento de esta secuencia de registros.
344
AWS CloudHSM Guía del usuario
Interpretación de los registros de auditoría de HSM
Si el usuario conectado cierra la sesión sin desconectarse, la secuencia de registros contendrá un evento
CN_APP_FINALIZE o de cierre de sesión (CN_SESSION_CLOSE) en lugar de un evento CN_LOGOUT.
A diferencia del evento de inicio de sesión, este cierre de sesión solo suele registrarse en el HSM que
ejecuta el comando.
Si se produce un error al intentar iniciar sesión porque el nombre de usuario no es válido, el HSM registra
un evento CN_LOGIN con el nombre y el tipo de usuario proporcionados en el comando de inicio de sesión.
La respuesta mostrará el mensaje de error 157, que indica que el nombre de usuario no existe.
Si se produce un error al intentar iniciar sesión porque la contraseña no es válida, el HSM registra un
evento CN_LOGIN con el nombre y el tipo de usuario proporcionados en el comando de inicio de sesión. La
respuesta muestra el mensaje de error con el código RET_USER_LOGIN_FAILURE.
El primer evento registra un CO, admin, que inicia sesión en el HSM. El número de secuencia, 0x0, indica
que se trata del primer evento de la secuencia de registros. El nombre y el tipo de usuario que ha iniciado
sesión se incluyen en el evento.
345
AWS CloudHSM Guía del usuario
Interpretación de los registros de auditoría de HSM
El siguiente evento de la secuencia de registros (con el número 0x1) registra el CO que crea un nuevo
usuario de criptografía (CU). El nombre y el tipo del nuevo usuario se incluyen en el evento.
A continuación, el CO crea otro responsable de criptografía, alice. El número de secuencia indica que
esta acción va detrás de la anterior sin que haya ninguna acción en medio.
Después, el CO admin inicia sesión y elimina al responsable de criptografía llamado alice. El HSM
registra un evento CN_DELETE_USER. El nombre y el tipo del usuario eliminado se incluyen en el evento.
El siguiente evento registra el usuario de criptografía (CU) crypto_user, que inicia sesión en la HSM.
346
AWS CloudHSM Guía del usuario
Interpretación de los registros de auditoría de HSM
347
AWS CloudHSM Guía del usuario
Interpretación de los registros de auditoría de HSM
Las herramientas de cliente podrían dar error al sincronizar la clave. O bien el comando
podría incluir el parámetro min_srv, que sincroniza la clave únicamente en el número de HSM
especificado. En cualquier caso, el servicio AWS CloudHSM sincroniza la clave con los demás
HSM del clúster. Como los HSM solamente registran los comandos de administración del cliente
en sus registros, la sincronización del servidor no se escribe en el registro de HSM.
En primer lugar, observe la secuencia de registros del HSM que recibe y ejecuta los comandos. La
secuencia de registro tiene como nombre el ID del HSM, hsm-abcde123456, pero este ID no aparece en
los eventos de registro.
El CU ejecuta un comando exSymKey (p. 167) para generar una clave simétrica. El HSM hsm-
abcde123456 genera una clave simétrica con el identificador de clave 262152. El HSM registra un evento
CN_GENERATE_KEY en su registro.
El siguiente evento de la secuencia de registros de hsm-abcde123456 registra el primer paso del proceso
de sincronización. La nueva clave (identificador de clave 262152) se extrae del HSM como un objeto
enmascarado.
348
AWS CloudHSM Guía del usuario
Interpretación de los registros de auditoría de HSM
Ahora, observe la secuencia de registros del HSM hsm-zyxwv987654, otro HSM del mismo clúster. Esta
secuencia de registros también contiene un evento de inicio de sesión del CU testuser. El valor de la
hora indica que tuvo lugar poco después de que el usuario iniciara sesión en el HSM hsm-abcde123456.
Cuando el usuario CU cierra sesión, este evento CN_LOGOUT solamente aparece en la secuencia de
registros del HSM que recibió los comandos.
El evento siguiente registra el CU, testuser, que inicia sesión en key_mgmt_util (p. 129).
El CU ejecuta un comando exSymKey (p. 143) para exportar la clave 7, una clave AES de 256 bits. El
comando utiliza la clave 6, que es una clave AES de 256 bits de los HSM, como clave de encapsulamiento.
El HSM que recibe el comando registra un evento CN_WRAP_KEY de la clave 7, la clave que se va a
exportar.
349
AWS CloudHSM Guía del usuario
Interpretación de los registros de auditoría de HSM
El comando exSymKey escribe la clave exportada en un archivo, pero no cambia la clave del HSM. Por
tanto, no habrá eventos correspondientes en los registros de otros HSM del clúster.
El HSM que recibe el comando primero registra un evento CN_NIST_AES_WRAP para la clave 6, la clave
de encapsulamiento.
350
AWS CloudHSM Guía del usuario
Referencia del registro de auditoría
Cuando se genera o importa una nueva clave, las herramientas del cliente intentan sincronizar
automáticamente la nueva clave con otros HSM del clúster. En este caso, el HSM registra un evento
CN_EXTRACT_MASKED_OBJECT_USER cuando la clave 11 se extrae del HSM como un objeto
enmascarado.
La secuencia de registros de otros HSM del clúster refleja la llegada de la nueva clave importada.
Por ejemplo, este evento se registró en la secuencia de registros de otro HSM del mismo clúster. Este
evento CN_INSERT_MASKED_OBJECT_USER registra la llegada de un objeto enmascarado que representa
la clave 11.
En el siguiente ejemplo, el HSM que recibe el comando registra un evento CM_SHARE_OBJECT que
representa la operación de compartición.
351
AWS CloudHSM Guía del usuario
Referencia del registro de auditoría
En la siguiente tabla, se definen los valores de Opcode de un registro de auditoría de AWS CloudHSM.
Inicio de sesión del usuario: estos eventos incluyen el nombre y el tipo de usuario.
CN_LOGIN (0xd) Inicio de sesión del usuario (p. 116) (sin incluir al
usuario de dispositivos [AU]).
CN_LOGOUT (0xe) Cierre de sesión del usuario (p. 116) (sin incluir al
usuario de dispositivos [AU]).
352
AWS CloudHSM Guía del usuario
Referencia del registro de auditoría
Clone HSMs
Certificate-Based Authentication
353
AWS CloudHSM Guía del usuario
Obtención de las métricas de CloudWatch
Temas
• Obtención de las métricas de CloudWatch (p. 354)
354
AWS CloudHSM Guía del usuario
Protección de los datos
Esta documentación le ayuda a comprender cómo puede aplicar el modelo de responsabilidad compartida
cuando se utiliza AWS CloudHSM. En los siguientes temas, aprenderá a configurar AWS CloudHSM para
satisfacer sus objetivos de seguridad y conformidad. También aprenderá a utilizar otros servicios de AWS
que le ayudarán a monitorear y proteger sus recursos de AWS CloudHSM.
Contenido
• Protección de datos en AWS CloudHSM (p. 355)
• Identity and Access Management para AWS CloudHSM (p. 356)
• Validación FIPS (p. 362)
• Resiliencia en AWS CloudHSM (p. 362)
• Seguridad de la infraestructura en AWS CloudHSM (p. 363)
• Administración de actualizaciones en AWS CloudHSM (p. 363)
Para fines de protección de datos, le recomendamos proteger las credenciales de la cuenta de AWS y
configurar cuentas de usuario individuales con AWS Identity and Access Management (IAM), de modo que
a cada usuario se le concedan únicamente los permisos necesarios para llevar a cabo su trabajo. También
le recomendamos proteger sus datos de las siguientes formas:
355
AWS CloudHSM Guía del usuario
Cifrado en reposo
Para obtener más información sobre la protección de datos, consulte la entrada de blog relativa al modelo
de responsabilidad compartida de AWS y GDPR en el blog de seguridad de AWS.
Cifrado en reposo
Cuando AWS CloudHSM hace una copia de seguridad de un HSM, el HSM cifra todos sus datos antes
de enviarlos a AWS CloudHSM. Los datos se cifran mediante una clave de cifrado única y efímera. Para
obtener más información, consulte Seguridad de los backups (p. 7).
Cifrado en tránsito
La comunicación entre el cliente de AWS CloudHSM y los HSM del clúster se realiza con cifrado integral.
Esta comunicación solo la puede descifrar su cliente y sus HSM.
De forma predeterminada, los usuarios de IAM no tienen permiso para crear, ver ni modificar recursos
de AWS. Para permitir que un usuario de IAM obtenga acceso a los recursos, como, por ejemplo, un
balanceador de carga, y realizar tareas, debe:
1. Crear una política de IAM que conceda permiso al usuario de IAM para utilizar los recursos específicos y
las acciones de la API que necesita.
2. Asocie la política al usuario de IAM o al grupo al que pertenece el usuario de IAM.
Cuando se asocia una política a un usuario o grupo de usuarios, les otorga o deniega el permiso para
realizar las tareas especificadas en los recursos indicados.
Por ejemplo, puede utilizar IAM para crear usuarios y grupos en su cuenta de AWS. Un usuario de IAM
puede ser una persona, un sistema o una aplicación. A continuación, puede conceder permisos a los
356
AWS CloudHSM Guía del usuario
Concesión de permisos mediante políticas de IAM
usuarios y grupos de tal forma que puedan llevar a cabo acciones concretas en determinados recursos
especificados mediante una política de IAM.
Una política de IAM es un documento JSON que contiene una o varias instrucciones. Cada instrucción se
estructura, tal y como se muestra en el siguiente ejemplo.
{
"Version": "2012-10-17",
"Statement":[{
"Effect": "effect",
"Action": "action",
"Resource": "resource-arn",
"Condition": {
"condition": {
"key":"value"
}
}
}]
}
• Effect (Efecto) — El valor de effect (efecto) puede ser Allow o Deny. De forma predeterminada, los
usuarios de IAM no tienen permiso para utilizar los recursos y las acciones de la API, por lo que se
deniegan todas las solicitudes. Si se concede un permiso explícito se anula el valor predeterminado. Una
denegación explícita invalida cualquier permiso concedido.
• Action (Acción) — El valor de action (acción) es la acción de la API para la que concede o deniega
permisos. Para obtener más información sobre cómo especificar action, consulte Acciones de la API
para AWS CloudHSM (p. 357).
• Resource (Recurso): el recurso que se ve afectado por la acción. AWS CloudHSM no admite permisos
de nivel de recursos. Debe utilizar el comodín * para especificar todos los recursos de AWS CloudHSM.
• Condition (Condición) — Si lo desea, puede utilizar condiciones para controlar cuándo está en vigor la
política. Para obtener más información, consulte Claves de condición de AWS CloudHSM (p. 358).
"Action": "cloudhsm:DescribeClusters"
Para especificar varias acciones en una misma instrucción, inclúyalas entre corchetes y sepárelas por
comas, tal y como se muestra en el siguiente ejemplo.
"Action": [
"cloudhsm:DescribeClusters",
"cloudhsm:DescribeHsm"
]
357
AWS CloudHSM Guía del usuario
Claves de condición de AWS CloudHSM
También puede utilizar el carácter comodín * para especificar varias acciones. En el siguiente ejemplo se
especifican todos los nombres de acción de la API para AWS CloudHSM que comienzan por List.
"Action": "cloudhsm:List*"
Para especificar todas las acciones de la API para AWS CloudHSM, utilice el carácter comodín *, tal y
como se muestra en el siguiente ejemplo.
"Action": "cloudhsm:*"
Para obtener la lista de acciones de API para AWS CloudHSM, consulte Acciones de AWS CloudHSM.
Para obtener más información sobre las claves de condición globales, consulte Claves de contexto de
condición globales de AWS en la Guía del usuario de IAM.
• AWScloudhsmFullAccess: otorga el acceso completo necesario para usar las funciones de AWS
CloudHSM.
• AWSCloudHSReadOnlyAccess: otorga el de sólo lectura a las funciones de AWS CloudHSM.
Además, le recomendamos que cree grupos de usuarios adicionales en función de los permisos que
necesitan los usuarios. Esto garantiza que solo los usuarios de confianza tengan acceso a acciones
críticas de la API. Por ejemplo, puede crear un grupo de usuarios que utilice para conceder acceso de
solo lectura a clústeres y HSM. Dado que este grupo no permite a un usuario eliminar clústeres o HSM,
un usuario que no sea de confianza no puede afectar a la disponibilidad de una carga de trabajo de
producción.
358
AWS CloudHSM Guía del usuario
Políticas administradas por el cliente para AWS CloudHSM
a las políticas en el momento de su creación, podrá asignarles manualmente los permisos de las nuevas
características más adelante.
A continuación, se describen políticas de ejemplo de AWS CloudHSM. Para obtener información acerca
de cómo crear una política y asociarla a un grupo de usuarios de IAM, consulte Creación de políticas en la
pestaña JSON en Guía del usuario de IAM.
Ejemplos
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": [
"cloudhsm:DescribeClusters",
"cloudhsm:DescribeBackups",
"cloudhsm:ListTags"
],
"Resource": "*"
}
}
Esta política permite el acceso a un subconjunto de las acciones de la API de AWS CloudHSM. También
incluye permisos adicionales para acciones de Amazon EC2 específicas. No permite al usuario eliminar
clústeres ni HSM. Debe incluir la acción iam:CreateServiceLinkedRole para permitir a AWS
CloudHSM crear automáticamente el rol vinculado al servicio AWSServiceRoleForCloudHSM en su cuenta.
Esta función permite que AWS CloudHSM registre eventos. Para obtener más información, consulte Roles
vinculados a servicios de AWS CloudHSM (p. 360).
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": [
"cloudhsm:DescribeClusters",
"cloudhsm:DescribeBackups",
"cloudhsm:CreateCluster",
"cloudhsm:CreateHsm",
"cloudhsm:RestoreBackup",
"cloudhsm:CopyBackupToRegion",
"cloudhsm:InitializeCluster",
"cloudhsm:ListTags",
"cloudhsm:TagResource",
"cloudhsm:UntagResource",
"ec2:CreateNetworkInterface",
"ec2:DescribeNetworkInterfaces",
359
AWS CloudHSM Guía del usuario
Roles vinculados a servicios
"ec2:DescribeNetworkInterfaceAttribute",
"ec2:DetachNetworkInterface",
"ec2:DeleteNetworkInterface",
"ec2:CreateSecurityGroup",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:RevokeSecurityGroupEgress",
"ec2:DescribeSecurityGroups",
"ec2:DeleteSecurityGroup",
"ec2:CreateTags",
"ec2:DescribeVpcs",
"ec2:DescribeSubnets",
"iam:CreateServiceLinkedRole"
],
"Resource": "*"
}
}
Esta política permite el acceso a todas las acciones de la API de AWS CloudHSM, incluidas las acciones
para eliminar HSM y clústeres. También incluye permisos adicionales para acciones de Amazon EC2
específicas. Debe incluir la acción iam:CreateServiceLinkedRole para permitir a AWS CloudHSM
crear automáticamente el rol vinculado al servicio AWSServiceRoleForCloudHSM en su cuenta. Esta
función permite que AWS CloudHSM registre eventos. Para obtener más información, consulte Roles
vinculados a servicios de AWS CloudHSM (p. 360).
{
"Version":"2012-10-17",
"Statement":{
"Effect":"Allow",
"Action":[
"cloudhsm:*",
"ec2:CreateNetworkInterface",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeNetworkInterfaceAttribute",
"ec2:DetachNetworkInterface",
"ec2:DeleteNetworkInterface",
"ec2:CreateSecurityGroup",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:RevokeSecurityGroupEgress",
"ec2:DescribeSecurityGroups",
"ec2:DeleteSecurityGroup",
"ec2:CreateTags",
"ec2:DescribeVpcs",
"ec2:DescribeSubnets",
"iam:CreateServiceLinkedRole"
],
"Resource":"*"
}
}
360
AWS CloudHSM Guía del usuario
Roles vinculados a servicios
La política de la función permite que AWS CloudHSM cree grupos de registros de Amazon CloudWatch
Logs y secuencias de registros, además de escribir eventos de registro en su nombre. Puede verlo a
continuación y en la consola de IAM.
{
"Version": "2018-06-12",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"
],
"Resource": [
"arn:aws:logs:*:*:*"
]
}
]
}
La política de confianza del rol AWSServiceRoleForCloudHSM permite que AWS CloudHSM asuma el rol.
{
"Version": "2018-06-12",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "cloudhsm.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Si ya tiene uno o más clústeres y solo desea agregar el rol AWSServiceRoleForCloudHSM, puede usar
la consola, el comando create-cluster o la operación CreateCluster de la API para crear un clúster. A
continuación, puede usar la consola, el comando delete-cluster o la operación DeleteCluster de la API para
eliminarlo. Al crear el nuevo clúster se crea la función vinculada al servicio y se aplica a todos los clústeres
de la cuenta. También puede crear el rol manualmente. Consulte la siguiente sección para obtener más
información.
Note
No es necesario que realice todos los pasos descritos en Introducción a AWS CloudHSM (p. 15)
para crear un clúster si solo va a crearlo para agregar el rol AWSServiceRoleForCloudHSM.
361
AWS CloudHSM Guía del usuario
Validación FIPS
Validación FIPS
Utilizar un HSM validado mediante FIPS puede ayudarle a cumplir los requisitos de conformidad normativa,
corporativos y contractuales sobre la seguridad de datos en la nube de AWS. Puede revisar las políticas de
seguridad aprobadas por FIPS para los HSM proporcionados por AWS CloudHSM a continuación.
PCI DSS (siglas en inglés de estándar de seguridad de los datos del sector de tarjetas de pago) es
un estándar de seguridad de la información propio administrado por el Consejo de estándares de
seguridad del sector de tarjetas de pago. Los HSM proporcionados por AWS CloudHSM cumplen con
PCI DSS.
Para obtener más información sobre zonas de disponibilidad y las regiones de AWS, consulte
Infraestructura global de AWS. Para obtener más información acerca de las características de AWS
CloudHSM que admiten la resiliencia, consulte Alta disponibilidad y balanceo de carga de clúster (p. 5).
362
AWS CloudHSM Guía del usuario
Seguridad de la infraestructura
Puede utilizar las llamadas a la API publicadas en AWS para obtener acceso a AWS CloudHSM a través
de la red. Los clientes deben ser compatibles con Transport Layer Security (TLS) 1.0 o una versión
posterior. Le recomendamos TLS 1.2 o una versión posterior. Los clientes también deben ser compatibles
con conjuntos de cifrado con confidencialidad directa total (PFS) tales como Ephemeral Diffie-Hellman
(DHE) o Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). La mayoría de los sistemas modernos como
Java 7 y posteriores son compatibles con estos modos.
Además, las solicitudes deben estar firmadas mediante un ID de clave de acceso y una clave de acceso
secreta que esté asociada a una entidad principal de IAM. También puede utilizar AWS Security Token
Service (AWS STS) para generar credenciales de seguridad temporales para firmar solicitudes.
Aislamiento de red
Una nube virtual privada (VPC) es una red virtual en su propia área, aislada lógicamente en la nube de
AWS. Puede crear un clúster en una subred privada en la VPC. Para obtener más información, consulte
Crear una subred privada (p. 17).
Cuando cree un HSM, AWS CloudHSM coloca una interfaz de red elástica (ENI) en su subred para que
pueda interactuar con sus HSM. Para obtener más información, consulte Arquitectura de clúster (p. 3).
AWS CloudHSM crea un grupo de seguridad que permite la comunicación entrante y saliente entre HSM
en el clúster. Puede utilizar este grupo de seguridad para permitir que las instancias EC2 se comuniquen
con los HSM en el clúster. Para obtener más información, consulte Conexión de una instancia Amazon
EC2 a un Cluster de AWS CloudHSM (p. 21).
Autorización de usuarios
Con AWS CloudHSM, las operaciones realizadas en HSM requieren las credenciales de un usuario de
HSM autenticado. Para obtener más información, consulte Usuarios de HSM (p. 10).
363
AWS CloudHSM Guía del usuario
Problemas conocidos
Temas
• Problemas conocidos (p. 364)
• Conexión perdida con el clúster (p. 372)
• Mantener sincronizados los usuarios de los HSM del clúster (p. 374)
• Verificación del desempeño en el HSM (p. 374)
• Solución de errores de creación de clústeres (p. 378)
• Faltan los registros de auditoría de AWS CloudHSM en CloudWatch (p. 379)
• Recuperación de registros de configuración de los clientes (p. 379)
Problemas conocidos
Actualmente, se conocen los siguientes problemas de AWS CloudHSM.
Temas
• Problemas conocidos para todas las instancias de HSM (p. 364)
• Problemas conocidos para las instancias Amazon EC2 que ejecutan Amazon Linux 2 (p. 366)
• Problemas conocidos para el SDK de PKCS#11 (p. 366)
• Problemas conocidos para el SDK de JCE (p. 369)
• Problemas conocidos con el SDK del motor dinámico de OpenSSL (p. 370)
• Problemas conocidos para integrar aplicaciones de terceros (p. 371)
Problema: el encapsulamiento de claves con AES utiliza el relleno PKCS#5 en vez de proporcionar una
implementación compatible con los estándares de encapsulamiento de clave con cero relleno. Además, no
se admite el encapsulamiento de clave sin relleno o con cero relleno.
• Impacto: no hay impacto si encapsula y desencapsula usando este algoritmo dentro de AWS CloudHSM.
Sin embargo, las claves encapsuladas con AWS CloudHSM no pueden desencapsularse en otros
HSM o software que espera conformidad con la especificación de ausencia de relleno. Esto se
debe a que se pueden agregar ocho bytes de datos de relleno al final de los datos clave durante un
desencapsulamiento compatible con los estándares. Las claves desencapsuladas externamente no se
pueden desencapsular correctamente en una instancia de AWS CloudHSM.
364
AWS CloudHSM Guía del usuario
Problemas conocidos para todas las instancias de HSM
• Solución: para desencapsular externamente una clave encapsulada con el encapsulamiento de clave
con AES con relleno PKCS #5 en una instancia de AWS CloudHSM, quite el relleno adicional antes de
intentar utilizar la clave. Puede hacerlo si recorta los bytes adicionales en un editor de archivos o copia
solo los bytes de clave en un nuevo búfer en el código.
• Estado de la resolución: con la versión de software y cliente 3.1.0, AWS CloudHSM ofrece opciones
compatibles con los estándares para el encapsulamiento de claves con AES. Para obtener más
información, consulte este artículo sobre el encapsulamiento de claves AES (p. 64).
Problema: el demonio de cliente requiere al menos una dirección IP válida en su archivo de configuración
para conectarse correctamente al clúster.
• Impacto: si elimina cada HSM en el clúster y, a continuación, añade otro HSM, que obtiene una nueva
dirección IP, el demonio de cliente sigue buscando sus HSM en las direcciones IP originales.
• Solución: si ejecuta una carga de trabajo intermitente, le recomendamos que utilice el argumento
IpAddress en la función CreateHsm para establecer la interfaz de red elástica (ENI) en su valor
original. Tenga en cuenta que la ENI es específica de la zona de disponibilidad (AZ). La alternativa
consiste en eliminar el archivo /opt/cloudhsm/daemon/1/cluster.info y, a continuación,
restablecer la configuración del cliente a la dirección IP de su nuevo HSM. Puede utilizar el comando
client -a <IP address>. Para obtener más información, consulte Instalación y configuración del
cliente de AWS CloudHSM (Linux) (p. 35) o Instalación y configuración del cliente de AWS CloudHSM
(Windows) (p. 37).
Problema: había un límite superior de 16 KB en los datos que AWS CloudHSM podía firmar y a los que
podía aplicar la función hash.
• Estado de resolución: los datos con un tamaño inferior a 16 KB siguen siendo enviados al HSM para
aplicarles la función hash. Hemos añadido la posibilidad de aplicar la función hash localmente, mediante
software, a los datos con un tamaño entre 16 KB y 64 KB. El cliente y los SDK generarán un error de
forma explícita si el búfer de datos tiene un tamaño superior a 64 KB. Debe actualizar el cliente y los
SDK a la versión 1.1.1 o posterior para beneficiarse de la corrección.
• Estado de resolución: este problema se ha corregido. No es necesario que realice ninguna acción para
beneficiarse de la corrección.
• Solución: cuando utilice los comandos wrapKey o unWrapKey, debe usar la opción -m para especificar el
mecanismo. Consulte los ejemplos de los artículos wrapKey (p. 211) o unWrapKey (p. 204) para obtener
más información.
Problema: si tiene un único HSM en el clúster, la conmutación por error de HSM no funciona
correctamente.
• Impacto: si la única instancia de HSM del clúster pierde la conectividad, el cliente no se volverá a
conectar con ella, incluso si la instancia de HSM se restaura posteriormente.
• Solución provisional: le recomendamos al menos dos instancias de HSM en cualquier clúster de
producción. Si utiliza esta configuración, no se verá afectado por este problema. Para los clústeres de un
solo HSM, reinicie el demonio de cliente para restaurar la conectividad.
• Estado de resolución: este problema se ha solucionado en la versión 1.1.2 del cliente de AWS
CloudHSM (p. 391). Debe actualizar a este cliente para beneficiarse de la corrección.
365
AWS CloudHSM Guía del usuario
Problemas conocidos para las instancias
Amazon EC2 que ejecutan Amazon Linux 2
Problema: si se supera la capacidad de claves de los HSM del clúster en un breve periodo de tiempo, el
cliente entra en un estado de error no gestionado.
• Impacto: cuando el cliente encuentra el estado de error no gestionado, se bloquea y debe reiniciarse.
• Solución provisional: pruebe el rendimiento para asegurarse de que no está creando claves de sesión
a una velocidad que el cliente no pueda gestionar. Puede reducir la velocidad añadiendo un HSM al
clúster o ralentizando la creación de claves de sesión.
• Estado de resolución: este problema se ha solucionado en la versión 1.1.2 del cliente de AWS
CloudHSM (p. 391). Debe actualizar a este cliente para beneficiarse de la corrección.
• Impacto: las claves de HMAC de más de 800 bytes se pueden generar o importar en el HSM. Sin
embargo, si utiliza esta clave más grande en una operación de resumen a través de JCE o de
key_mgmt_util, la operación no se realizará correctamente. Tenga en cuenta que si utiliza PKCS11 las
claves HMAC se limitan a un tamaño de 64 bytes.
• Solución provisional: si va a utilizar claves de HMAC para operaciones de resumen en el HSM,
asegúrese de que el tamaño es inferior a 800 bytes.
• Estado de resolución: ninguno por el momento.
• Impacto: las instancias que se ejecuten en Amazon Linux 2 versión 2018.07 no podrán utilizar ninguna
de las utilidades de AWS CloudHSM.
• Solución: emita el siguiente comando en las instancias EC2 de Amazon Linux 2 para instalar el paquete
ncurses admitido (la versión 5):
• Estado de resolución: este problema se ha solucionado en la versión 1.1.2 del cliente de AWS
CloudHSM (p. 391). Debe actualizar a este cliente para beneficiarse de la corrección.
• Impacto: si proporciona un vector de inicialización que es más corto que 8 bytes en el SDK de PKCS #11
3.0.0, es posible que no pueda desencapsular la clave.
366
AWS CloudHSM Guía del usuario
Problemas conocidos para el SDK de PKCS#11
• Soluciones provisionales:
• Le recomendamos encarecidamente que actualice al SDK de PKCS #11 3.0.1 o superior, que aplica
correctamente la longitud del vector de inicialización durante el encapsulado de claves AES. Modifique
su código de encapsulado para pasar un vector de inicialización NULO, o especifique el vector de
inicialización predeterminado de 0xA6A6A6A6A6A6A6A6. Para obtener más información, consulte la
Guía de resolución de problemas: vectores de inicialización personalizados con longitud no compatible
para el encapsulado de claves AES .
• Si encapsuló alguna clave con el SDK de PKCS #11 3.0.0 usando un vector de inicialización menor
que 8 bytes, llámenos para obtener soporte técnico.
• Estado de resolución: este problema se ha solucionado en el SDK de PKCS #11 3.0.1. Para ajustar
claves mediante el encapsulado de claves AES, especifique un vector de inicialización que sea NULO o
de 8 bytes de longitud.
Problema: el SDK de PKCS #11 2.0.4 y las versiones anteriores siempre usaban el vector de inicialización
predeterminado de 0xA6A6A6A6A6A6A6A6 para el encapsulado y desencapsulado de claves AES. Los
vectores de inicialización proporcionados por el usuario se han ignorado de forma silenciosa.
Note
• Impacto:
• Si utilizó el SDK de PKCS #11 2.0.4 o una versión anterior y un vector de inicialización proporcionado
por el usuario, las claves se encapsulan con el vector de inicialización predeterminado de
0xA6A6A6A6A6A6A6A6.
• Si utilizó el SDK de PKCS #11 3.0.0 o posterior y un vector de inicialización proporcionado por el
usuario, las claves se encapsulan con el vector de inicialización proporcionado por el usuario.
• Soluciones provisionales:
• Para desencapsular las claves encapsuladas con el SDK de PKCS #11 2.0.4 o anterior, utilice el
vector de inicialización predeterminado de 0xA6A6A6A6A6A6A6A6.
• Para desencapsular claves encapsuladas con el SDK de PKCS #11 3.0.0 o posterior, utilice el vector
de inicialización proporcionado por el usuario.
• Estado de resolución: le recomendamos que modifique el código de encapsulado y desencapsulado
para pasar un vector de inicialización NULO o que especifique el vector de inicialización predeterminado
de 0xA6A6A6A6A6A6A6A6.
367
AWS CloudHSM Guía del usuario
Problemas conocidos para el SDK de PKCS#11
• Solución: aplique la función hash a sus datos dentro de la aplicación y use AWS CloudHSM solamente
para firmar el hash.
• Estado de resolución: estamos corrigiendo el cliente y los SDK para implementar correctamente la
función hash multiparte. Las actualizaciones se anunciarán en el foro de AWS CloudHSM y en la página
de historial de versiones.
Problema: no se podía aplicar la función hash a datos con un tamaño superior a 16 KB. Para búferes
de mayor tamaño, solo se aplica la función de hash y se devuelven los primeros 16 KB. No se tenían en
cuenta los datos por encima de ese límite.
• Estado de resolución: los datos con un tamaño inferior a 16 KB siguen siendo enviados al HSM para
aplicarles la función hash. Hemos añadido la posibilidad de aplicar la función hash localmente, mediante
software, a los datos con un tamaño entre 16 KB y 64 KB. El cliente y los SDK generarán un error de
forma explícita si el búfer de datos tiene un tamaño superior a 64 KB. Debe actualizar el cliente y los
SDK a la versión 1.1.1 o posterior para beneficiarse de la corrección.
Problema: los búferes para las API de operaciones de C_Encrypt y C_Decrypt no pueden exceder
16 KB si se usa el mecanismo CKM_AES_GCM. Además, AWS CloudHSM no admite el cifrado AES-GCM
multiparte.
• Impacto: no puede usar el mecanismo CKM_AES_GCM para cifrar datos mayores de 16 KB.
• Solución: puede usar un mecanismo alternativo como CKM_AES_CBC o puede dividir los datos en partes
y cifrar cada parte individualmente. Debe administrar la división de los datos y el cifrado posterior. AWS
CloudHSM no realiza el cifrado AES-GCM multiparte por usted. Tenga en cuenta que FIPS requiere que
se genere en el HSM el vector de inicialización (IV) para AES-GCM. Por lo tanto, el IV será diferente
para cada parte de sus datos con cifrado AES-GCM.
• Estado de resolución: estamos corrigiendo los SDK para que produzcan un error de forma explícita
si el búfer de datos es demasiado grande. Se devuelve CKR_MECHANISM_INVALID para las API de
operaciones C_EncryptUpdate y C_DecryptUpdate. Estamos evaluando alternativas para admitir
búferes más grandes sin recurrir al cifrado multiparte. Las actualizaciones se anunciarán en el foro de
AWS CloudHSM y en la página de historial de versiones.
368
AWS CloudHSM Guía del usuario
Problemas conocidos para el SDK de JCE
• Solución: si implementa una descarga de SSL/TLS en AWS CloudHSM, es posible que esta limitación no
represente un problema. Si su aplicación requiere que su clave permanezca dentro de un límite FIPS en
todo momento, considere el uso de un protocolo alternativo que no se base en la generación de la clave
ECDH.
• Estado de resolución: desarrollamos la opción para llevar a cabo la generación de la clave ECDH en
su totalidad dentro del HSM. La implementación actualizada se anunciará en la página de historial de
versiones una vez que esté disponible.
Problema:la verificación de firmas secp256k1 produce un error en las plataformas EL6 como CentOS6 y
RHEL6. Esto se debe a que la biblioteca de PKCS #11 de CloudHSM impide que se realice una llamada de
red durante la inicialización de la operación de verificación mediante el uso de OpenSSL para verificar los
datos de la curva de EC. Como Secp256k1 no es compatible con el paquete OpenSSL en las plataformas
EL6, la inicialización produce un error.
• Impacto: la verificación de firmas Secp256k1 producirá un error en las plataformas EL6. La llamada de
verificación producirá el error CKR_HOST_MEMORY.
• Solución: le recomendamos que utilice Amazon Linux 1 o cualquier plataforma EL7 si su aplicación
PKCS # 11 necesita verificar firmas secp256k1. Otra solución consiste en actualizar a una versión del
paquete OpenSSL que admita la curva secp256k1.
• Estado de resolución: estamos implementando correcciones para revertir al HSM si la validación de
curvas locales no está disponible. La biblioteca de PKCS #11 actualizada se anunciará en la página de
historial de versiones (p. 381).
• Impacto: este problema puede provocar que los HSM se queden sin espacio para las claves de
forma inesperada y se produce cuando la aplicación utiliza un objeto de clave JCE estándar para
las operaciones de criptografía en lugar de un objeto CaviumKey. Si utiliza un objeto de clave JCE
estándar, CaviumProvider importa implícitamente esa clave en el HSM como una clave de sesión y no
elimina esta clave hasta que se cierra la aplicación. Como resultado, las claves se acumulan mientras la
aplicación se está ejecutando y pueden hacer que los HSM se queden sin espacio libre para las claves,
lo que bloquea la aplicación.
• Solución: si utiliza la clase CaviumSignature, la clase CaviumCipher, la clase CaviumMac o la clase
CaviumKeyAgreement, debe proporcionar la clave como un objeto CaviumKey en lugar que como un
objeto de clave JCE estándar.
Puede convertir manualmente una clave normal en un objeto CaviumKey utilizando la clase ImportKey
y puede eliminar manualmente la clave una vez que se haya completado la operación.
• Estado de la resolución: estamos actualizando CaviumProvider para administrar correctamente las
importaciones implícitas. La corrección se anunciará en la página del historial de versiones una vez que
esté disponible.
369
AWS CloudHSM Guía del usuario
Problemas conocidos con el SDK
del motor dinámico de OpenSSL
• Estado de resolución: tenemos previsto añadir la posibilidad de especificar todos los parámetros de
claves al comando unwrap del SDK de JCE en una versión futura. La actualización se anunciará en la
página del historial de versiones cuando esté disponible.
• Impacto: en la actualidad no puede almacenar un tipo de objeto que no sea compatible con HSM en el
almacén de claves de JCE. En concreto, no puede almacenar certificados en el almacén de claves. Esto
impide la interoperabilidad con herramientas como jarsigner, que espera encontrar el certificado en el
almacén de claves.
• Solución: puede rehacer el código para cargar los certificados desde archivos locales o desde una
ubicación de bucket de S3 en lugar de hacerlo desde el almacén de claves.
• Estado de resolución: estamos añadiendo compatibilidad con el almacenamiento de certificados en el
almacén de claves. La característica se anunciará en la página de historial de versiones una vez que
esté disponible.
Problema: los búferes para el cifrado AES-GCM no pueden superar los 16.000 bytes. Además, no se
admite el cifrado AES-GCM multiparte.
• Impacto: no puede usar AES-GCM para cifrar datos que superen los 16.000 bytes.
• Solución: puede usar un mecanismo alternativo como AES-CBC o puede dividir los datos en partes
y cifrar cada parte individualmente. Si divide los datos, debe administrar el texto cifrado dividido y su
descifrado. Como FIPS requiere que el vector de inicialización (IV) para AES-GCM se genere en el HSM,
el IV de cada elemento de datos con cifrado AES-GCM será diferente.
• Estado de resolución: estamos corrigiendo los SDK para que produzcan un error de forma explícita si el
búfer de datos es demasiado grande. Estamos evaluando alternativas que admitan búferes más grandes
sin recurrir al cifrado multiparte. Las actualizaciones se anunciarán en el foro de AWS CloudHSM y en la
página de historial de versiones.
• Impacto: la versión 3.0 del software agrega la funcionalidad ECDH a JCE. Cuando se utiliza el
mecanismo CKM_ECDH1_DERIVE para derivar la clave, este está disponible primero en el cliente y se
importa en el HSM. Un identificador de clave se devuelve después a su aplicación.
• Solución: si implementa una descarga de SSL/TLS en AWS CloudHSM, es posible que esta limitación no
represente un problema. Si su aplicación requiere que su clave permanezca dentro de un límite FIPS en
todo momento, considere el uso de un protocolo alternativo que no se base en la generación de la clave
ECDH.
• Estado de resolución: desarrollamos la opción para llevar a cabo la generación de la clave ECDH en su
totalidad dentro del HSM. Cuando esté disponible, anunciaremos la implementación actualizada en la
página del historial de versiones.
370
AWS CloudHSM Guía del usuario
Problemas conocidos para integrar aplicaciones de terceros
• Impacto: el motor dinámico de OpenSSL solo admite OpenSSL 1.0.2 [f+] (p. 397). De forma
predeterminada, RHEL 6 y CentOS 6 vienen con OpenSSL 1.0.1.
• Solución: actualice la biblioteca OpenSSL de RHEL 6 y CentOS 6 a la versión 1.0.2 [f+].
• Impacto: para maximizar el desempeño, el SDK no está configurada para descargar funciones
adicionales, como la generación de números aleatorios o las operaciones EC-DH.
• Solución: contacte con nosotros a través de un caso de soporte si necesita descargar operaciones
adicionales.
• Estado de resolución: estamos agregando compatibilidad al SDK para configurar las opciones de
descarga a través de un archivo de configuración. La actualización se anunciará en la página del
historial de versiones cuando esté disponible.
Problema: no se admite el cifrado y descifrado RSA con relleno OAEP por medio de una clave en el HSM.
• Impacto: cualquier llamada a cifrado y descifrado RSA con relleno OAEP falla con un error de división
entre cero. Esto se debe a que el motor dinámico de OpenSSL llama a la operación localmente mediante
el archivo PEM falso en lugar de descargar la operación al HSM.
• Solución: puede realizar este procedimiento mediante Biblioteca de software de AWS CloudHSM para
PKCS #11 (p. 224) o Biblioteca de software de AWS CloudHSM para Java (p. 251).
• Estado de resolución: estamos añadiendo el servicio de soporte para el SDK para descargar
correctamente esta operación. La actualización se anunciará en la página del historial de versiones
cuando esté disponible.
Problema: solo se lleva a cabo en el HSM la generación de la clave privada para las claves RSA y ECC.
En todos los demás tipos de clave, no se utiliza el motor de OpenSSL de AWS CloudHSM para procesar
las llamadas. En su lugar se usa el motor de OpenSSL local. Esto genera una clave localmente mediante
software.
• Impacto: debido a que la conmutación por error es silenciosa, no hay ninguna indicación que no ha
recibido una clave generada de forma segura en el HSM. Verá un rastro de salida que contiene la
cadena "...........++++++" si la clave se ha generado localmente por OpenSSL mediante
software. Este rastro no aparece cuando la operación se lleva a cabo en el HSM. Dado que la clave no
se genera ni está almacenada en el HSM, no estará disponible para su uso futuro.
• Solución provisional: utilice el motor de OpenSSL para los tipos de claves que admite. Para todos los
demás tipos de claves, utilice PKCS #11 o JCE en las aplicaciones, o bien utilice key_mgmt_util en la
AWS CLI.
371
AWS CloudHSM Guía del usuario
Conexión perdida
clave maestra. Para obtener más información, consulte Generar la clave de cifrado maestra de TDE de
Oracle (p. 328).
• Estado de la resolución: estamos mejorando el firmware de HSM para que sea totalmente compatible
con el atributo CKA_MODIFIABLE. Las actualizaciones se anunciarán en el foro de AWS CloudHSM y
en la página del historial de versiones.
Para resolver estos errores, actualice el archivo de configuración con la dirección IP de un HSM activo y
accesible del clúster.
1. Utilice una de las siguientes formas para buscar la dirección IP de un HSM activo de su clúster.
• Consulte la pestaña HSMs de la página de detalles del clúster en la consola de AWS CloudHSM.
• Utilice la AWS Command Line Interface (AWS CLI) para ejecutar el comando describe-clusters.
Amazon Linux
Amazon Linux 2
CentOS 6
CentOS 7
RHEL 6
372
AWS CloudHSM Guía del usuario
Conexión perdida
RHEL 7
Windows
Use Ctrl+C en la ventana de comandos desde donde inició el cliente de AWS CloudHSM.
3. Utilice el siguiente comando para actualizar el archivo de configuración del cliente, proporcionando la
dirección IP que obtuvo un paso anterior.
Amazon Linux
Amazon Linux 2
CentOS 6
CentOS 7
RHEL 6
RHEL 7
373
AWS CloudHSM Guía del usuario
Mantener sincronizados los usuarios de HSM
Windows
AWS CloudHSM sincroniza las claves de los HSM con todos los demás HSM del clúster, pero no
sincroniza los usuarios ni las políticas del HSM. Al utilizar cloudhsm_mgmt_util para administrar usuarios
de HSM (p. 54), estos cambios de usuarios podrían afectar únicamente a algunos de los HSM del clúster,
es decir, los que están en el archivo de configuración de cloudhsm_mgmt_util. Esto puede provocar
problemas cuando AWS CloudHSM sincroniza las claves en varios HSM del clúster, ya que es posible que
los usuarios que poseen las claves no existan en todos los HSM del clúster.
Para evitar estos problemas, edite el archivo de configuración de cloudhsm_mgmt_util antes de administrar
los usuarios. Para obtener más información, consulte Paso 4: Actualizar el archivo de configuración de
cloudhsm_mgmt_util (p. 85).
Después de instalar y configurar el cliente de AWS CloudHSM, ejecute el siguiente comando para iniciarlo.
Amazon Linux
Amazon Linux 2
CentOS 6
374
AWS CloudHSM Guía del usuario
Verificación del desempeño
CentOS 7
RHEL 6
RHEL 7
Windows
Si ya ha instalado el software de cliente, es posible que deba descargar e instalar la última versión para
obtener pkpspeed. Puede encontrar la herramienta pkpspeed /opt/cloudhsm/bin/pkpspeed en Linux
o en C:\Program Files\Amazon\CloudHSM\ en Windows.
En los ejemplos siguientes se muestran las opciones que puede elegir con pkpspeed (Linux) o
pkpspeed_blocking (Windows) para probar el desempeño de HSM para las operaciones de RSA y AES.
Linux
375
AWS CloudHSM Guía del usuario
Verificación del desempeño
Available Ciphers:
AES_128
AES_256
3DES
RSA (non-CRT. modulus size can be 2048/3072)
RSA_CRT (same as RSA)
For RSA, Exponent will be 65537
Do you want to use static key[y/n] (Make sure that KEK is available)?n
Windows
RSA non-CRT------------------->A
RSA CRT----------------------->B
Basic 3DES CBC---------------->C
Basic AES--------------------->D
FIPS Random------------------->H
Random------------------------>I
AES GCM ---------------------->K
eXit------------------------>X
B
376
AWS CloudHSM Guía del usuario
Verificación del desempeño
Linux
Available Ciphers:
AES_128
AES_256
3DES
RSA (non-CRT. modulus size can be 2048/3072)
RSA_CRT (same as RSA)
For RSA, Exponent will be 65537
Windows
RSA non-CRT------------------->A
RSA CRT----------------------->B
Basic 3DES CBC---------------->C
Basic AES--------------------->D
FIPS Random------------------->H
Random------------------------>I
AES GCM ---------------------->K
eXit------------------------>X
D
377
AWS CloudHSM Guía del usuario
Solución de errores de creación de clústeres
En este tema se explica cómo resolver los problemas más habituales para que pueda crear un clúster
correctamente. Tiene que crear este rol una única vez. Una vez que el rol vinculado al servicio se cree
en su cuenta, podrá utilizar cualquiera de los métodos admitidos para crear y administrar clústeres
adicionales.
En las secciones siguientes se ofrecen sugerencias para solucionar errores de creación de clústeres
relacionados con el rol vinculado al servicio. Si prueba estas sugerencias pero sigue sin poder crear
un clúster, póngase en contacto con AWS Support. Para obtener más información acerca del rol
vinculado al servicio AWSServiceRoleForCloudHSM, consulte Roles vinculados a servicios de AWS
CloudHSM (p. 360).
Temas
• Agregar el permiso que falta (p. 378)
• Crear el rol vinculado a un servicio manualmente (p. 378)
• Uso de un usuario no federado (p. 378)
Cuando el error se produce porque falta un permiso, el mensaje de error contiene el texto siguiente.
This operation requires that the caller have permission to call iam:CreateServiceLinkedRole
to create the CloudHSM Service Linked Role.
Para solucionar este error, dé al usuario de IAM que crea el clúster el permiso AdministratorAccess
o añada el permiso iam:CreateServiceLinkedRole a la política de IAM del usuario. Para leer las
instrucciones, consulte Agregar permisos a un usuario nuevo o existente.
Para solucionar este problema, cree un usuario no federado (p. 15) con el permiso
iam:CreateServiceLinkedRole o conceda a un usuario no federado ya existente el permiso
378
AWS CloudHSM Guía del usuario
Faltan los registros de auditoría de
AWS CloudHSM en CloudWatch
iam:CreateServiceLinkedRole. A continuación, haga que ese usuario cree un clúster (p. 18) desde la
AWS CLI. Esto creará el rol vinculado al servicio en su cuenta.
Una vez que haya creado el rol vinculado al servicio, podrá eliminar el clúster que el usuario no federado
creó. La eliminación del clúster no afecta al rol. A partir de ese momento, todo usuario que tenga los
permisos necesarios, incluidos los usuarios federados, podrá crear clústeres de AWS CloudHSM en su
cuenta.
379
AWS CloudHSM Guía del usuario
Ejecución del script de registro del cliente
Reemplace el parámetro output por la ruta del directorio en la que desea crear el archivo de salida.
380
AWS CloudHSM Guía del usuario
Historial de versiones
Esta sección contiene información sobre las plataformas compatibles, un historial de versiones completo e
instrucciones para actualizar el cliente y las bibliotecas.
Temas
• Historial de versiones de software y del cliente de AWS CloudHSM (p. 381)
• Plataformas compatibles (p. 397)
• Actualización del cliente y las bibliotecas de Linux (p. 398)
Para poder actualizar, debe utilizar un comando por lotes que actualice el cliente y todas las bibliotecas
al mismo tiempo. Para obtener más información, consulte este artículo sobre la actualización del
cliente (p. 398).
Notas de la versión
• Versión 3.1.1 (p. 381)
• Versión 3.1.0 (p. 383)
• Versiones de software y cliente obsoletas (p. 386)
Versión 3.1.1
Para descargar el software, elija la pestaña correspondiente al sistema operativo que prefiera y, a
continuación, elija el enlace a cada paquete de software.
381
AWS CloudHSM Guía del usuario
Versión 3.1.1
Amazon Linux
Amazon Linux 2
CentOS 6
CentOS 7
RHEL 6
RHEL 7
382
AWS CloudHSM Guía del usuario
Versión 3.1.0
Windows Server
AWS CloudHSM admite las versiones de 64 bits de Windows Server 2012, Windows Server 2012 R2
y Windows Server 2016. El software de cliente de AWS CloudHSM 3.1.1 para Windows Server incluye
los proveedores de CNG y KSP obligatorios. Para obtener más información, consulte Instalación y
configuración del cliente de AWS CloudHSM (Windows) (p. 37). Descargue la versión más reciente
(3.1.1) del software para Windows Server:
Biblioteca de Java
Versión 3.1.0
Para descargar el software, elija la pestaña correspondiente al sistema operativo que prefiera y, a
continuación, elija el enlace a cada paquete de software.
Amazon Linux
383
AWS CloudHSM Guía del usuario
Versión 3.1.0
Amazon Linux 2
CentOS 6
CentOS 7
RHEL 6
RHEL 7
384
AWS CloudHSM Guía del usuario
Versión 3.1.0
• Biblioteca de Java
Windows Server
AWS CloudHSM admite las versiones de 64 bits de Windows Server 2012, Windows Server 2012
R2 y Windows Server 2016. El software de cliente de AWS CloudHSM 3.1.0 para Windows Server
incluye los proveedores CNG y KSP necesarios. Para obtener más información, consulte Instalación
y configuración del cliente de AWS CloudHSM (Windows) (p. 37). Descargue la versión más reciente
(3.1.0) del software para Windows Server:
La versión 3.1.0 añade mecanismos de encapsulamiento de claves AES que cumplen los
estándares (p. 64).
• Nuevo requisito para la actualización: la versión del cliente debe coincidir con la versión de cualquier
biblioteca de software que esté utilizando. Para poder actualizar, debe utilizar un comando por lotes que
actualice el cliente y todas las bibliotecas al mismo tiempo. Para obtener más información, consulte este
artículo sobre la actualización del cliente (p. 398).
• Key_mgmt_util (KMU) incluye las siguientes actualizaciones:
• Se han agregado dos nuevos métodos de encapsulamiento de claves AES con y sin relleno de ceros
a la izquierda que cumplen los estándares. Para obtener más información, consulte wrapKey (p. 211) y
unwrapKey (p. 204).
• Se ha deshabilitado la funcionalidad que permitía especificar un IV personalizado al encapsular una
clave con AES_KEY_WRAP_PAD_PKCS5. Para obtener más información, consulte este artículo sobre
el encapsulamiento de claves AES (p. 64).
• Se han agregado dos nuevos métodos de encapsulamiento de claves AES con y sin relleno de ceros a
la izquierda que cumplen los estándares. Para obtener más información, consulte este artículo sobre el
encapsulamiento de claves AES (p. 64).
• Puede configurar la longitud de sal en las firmas RSA-PSS. Para obtener información sobre el uso de
esta característica, consulte Configurable salt length for RSA-PSS signatures en GitHub.
• CAMBIO IMPORTANTE: los conjuntos de cifrado TLS 1.0 y 1.2 con SHA1 no están disponibles en la
versión 3.1.0 del motor de OpenSSL. Este problema se resolverá en breve.
• Si desea instalar la biblioteca del motor dinámico de OpenSSL en RHEL 6 o CentOS 6, infórmese sobre
un problema conocido (p. 370) relacionado con la versión predeterminada de OpenSSL instalada en
esos sistemas operativos.
385
AWS CloudHSM Guía del usuario
Versiones de software y cliente obsoletas
Biblioteca de Java
• CAMBIO IMPORTANTE: para solucionar los problemas de conformidad de Java Cryptography Extension
(JCE), ahora, en el encapsulamiento y desencapsulamiento de AES, se utiliza correctamente el
algoritmo de AESWrap en lugar del algoritmo de AES. Esto significa que Cipher.WRAP_MODE y
Cipher.UNWRAP_MODE ya no tienen éxito para los mecanismos AES/ECB y AES/CBC.
Para actualizar a la versión de cliente 3.1.0, debe actualizar el código. Si tiene claves encapsuladas
existentes, debe prestar especial atención al mecanismo que usa para desencapsular y a cómo han
cambiado los valores predeterminados del IV. Si encapsuló claves con la versión de cliente 3.0.0 o
anterior, entonces en 3.1.1 debe usar AESWrap/ECB/PKCS5Padding para desencapsular sus claves
existentes. Para obtener más información, consulte este artículo sobre el encapsulamiento de claves
AES (p. 64).
• Puede mostrar varias claves con la misma etiqueta desde la biblioteca de Java. Para aprender a iterar a
través de todas las claves disponibles, consulte Find all keys en GitHub.
• Al crear las claves, puede establecer valores más restrictivos en los atributos; por ejemplo, especificar
etiquetas diferentes para claves públicas y privadas. Para obtener más información, consulte este
artículo sobre los atributos de Java admitidos (p. 259).
Versión: 3.0.1
La versión 3.0.1 es una actualización muy recomendable. Proporciona una corrección de errores críticos
para los usuarios de PKCS #11.
• Para evitar errores de usuario que dan como resultado claves que no se pueden desencapsular, esta
versión requiere que el vector de inicialización de C_WrapKey con el mecanismo CKM_AES_KEY_WRAP
sea de exactamente 8 bytes. Para obtener más información, consulte Problemas conocidos para el SDK
de PKCS#11 (p. 366).
• Para realizar la actualización, consulte Instalar la biblioteca de PKCS #11 (p. 224).
Biblioteca de Java
386
AWS CloudHSM Guía del usuario
Versiones de software y cliente obsoletas
Versión: 3.0.0
La versión 3.0 contiene mejoras importantes en el rendimiento y la estabilidad de funcionamiento. Esta es
una actualización recomendada, ya que incluye varias correcciones de errores.
• PKCS #11 ya no necesita Redis para disfrutar de un alto rendimiento. Redis ya no se incluye en los
paquetes de instalación. Si utilizaba Redis en instalaciones anteriores, actualice los scripts de inicio e
instalación para eliminar los comandos de Redis.
• Ahora, se puede usar D3DES ECB y AES_CTR para el cifrado y el descifrado. La lista completa de
funciones y mecanismos compatibles de PKCS#11 está disponible en el artículo Mecanismos de PKCS
#11 admitidos (p. 231) .
387
AWS CloudHSM Guía del usuario
Versiones de software y cliente obsoletas
Puede consultar la lista completa de atributos admitidos en el artículo Atributos de PKCS #11
admitidos (p. 236). Para obtener más información sobre el uso de claves de confianza para encapsular
y desencapsular de forma controlada, consulte el artículo sobre el uso de claves de confianza para
controlar el desencapsulamiento de claves (p. 62). Para ver los ejemplos disponibles que funcionan con
los atributos que acaban de admitirse, consulte los ejemplos de AWS CloudHSM en GitHub,
• Se agregó el mecanismo CKM_CLOUDSHM_AES_GCM, que es una implementación segura en
memoria de AES-GCM. Este mecanismo patentado es una alternativa más segura que el estándar
CKM_AES_GCM. CKM_CLOUDSHM_AES_GCM antepone el IV generado por el HSM al texto cifrado en
lugar de volver a escribirlo en la estructura CK_GCM_PARAMS proporcionada durante la inicialización
del cifrado. Puede utilizar CKM_CLOUDSHM_AES_GCM con las funciones C_Encrypt o C_WrapKey. Si
utiliza este mecanismo, la variable pIV de la estructura CK_GCM_PARAMS debe establecerse en NULL.
Consulte la entrada CKM_CLOUDHSM_AES_GCM en la tabla del artículo Mecanismos de PCKS #11
admitidos (p. 231).
Biblioteca de Java
• Se agregó el almacén de claves CloudHSM, que es compatible con los certificados, lo que permite
la interoperabilidad con herramientas de terceros como keytool y jarsigner. Para obtener información
sobre el uso de este almacén de claves, consulte el artículo acerca del almacén de claves de
CloudHSM (p. 266) o el ejemplo de CloudHSMKeyStoreExampleRunner de GitHub. Para utilizar el
almacén de claves con KeyTool y Jarsigner, consulte la guía de integración de KeyStore de CloudHSM.
• Ahora, se puede usar D3DES ECB y AES_CTR para el cifrado y el descifrado. Puede consultar la lista
completa de funciones admitidas en JDE en el artículo Mecanismos admitidos (p. 256). Encontrará
código de muestra sobre DESedeECMEncryptDecryptRunner y AESCTREncryptDecryptRunner en
GitHub.
• Ahora se permite usar el encapsulamiento y desencapsulamiento de claves con AES-GCM. Consulte el
ejemplo de AESGCMWrappingRunner en GitHub.
• Ahora, ECDH es compatible. La derivación se ejecuta parcialmente en el HSM. Para obtener más
información, consulte la lista de problemas conocidos del SDK de JCE (p. 364) antes de usar ECDH
con CloudHSM. Para aprender a usar ECDH con JCE, consulte el ejemplo ECDHOperationsRunner en
GitHub.
• El encapsulamiento de claves de confianza y la derivación de claves aún no están disponibles a través
de JCE.
Versión: 2.0.4
Para descargar el software, elija la pestaña correspondiente al sistema operativo que prefiera y, a
continuación, elija el enlace a cada paquete de software.
388
AWS CloudHSM Guía del usuario
Versiones de software y cliente obsoletas
La versión 2.0.4 contiene mejoras importantes en lo que respecta al rendimiento y la estabilidad operativa.
Esta es una actualización recomendada, ya que incluye varias correcciones de errores.
Biblioteca de Java
Versión: 2.0.3
La versión 2.0.3 proporciona mejoras importantes en cuanto a rendimiento y estabilidad de funcionamiento.
Esta es una actualización recomendada, ya que incluye varias correcciones de errores.
Biblioteca de Java
389
AWS CloudHSM Guía del usuario
Versiones de software y cliente obsoletas
Versión: 2.0.1
La versión 2.0.1 es una actualización muy recomendable, ya que proporciona varias mejoras de seguridad
y correcciones de errores. Los cambios más significativos de esta versión son los siguientes:
Biblioteca de Java
Versión: 2.0.0
La versión 2.0.0 proporciona mejoras importantes en cuanto a rendimiento y estabilidad de funcionamiento.
También permite el intercambio seguro de claves entre distintos HSM. Los cambios más significativos de
esta versión son los siguientes:
• Se han añadido los mecanismos de encapsulamiento de claves RSA OAEP y RSA AES.
• Se ha añadido compatibilidad con el cifrado AES-ECB.
• Se ha añadido compatibilidad con la curva secp256k1.
Para obtener más información acerca de los mecanismos de encapsulamiento de claves actualizados,
consulte Biblioteca de software de AWS CloudHSM para PKCS # 11 (p. 224).
Biblioteca de Java
390
AWS CloudHSM Guía del usuario
Versiones de software y cliente obsoletas
• Se han añadido los mecanismos de encapsulamiento de claves RSA OAEP y RSA AES. Tenga en
cuenta que no puede especificar atributos clave al desencapsular con la biblioteca de Java. Para obtener
más información, consulte Problemas conocidos para el SDK de JCE (p. 369).
• Se ha añadido compatibilidad con el cifrado AES-ECB.
• Se ha añadido compatibilidad con la curva secp256k1.
Para obtener más información acerca de los mecanismos de encapsulamiento de claves actualizados,
consulte Biblioteca de software de AWS CloudHSM para Java (p. 251).
Versión: 1.1.2
Se recomienda encarecidamente la versión 1.1.2, ya que contiene un cambio que ejecuta el software
de cliente de AWS CloudHSM para Windows como un servicio, así como mejoras de rendimiento y
correcciones de errores. Los cambios más significativos de esta versión son los siguientes:
• El software de cliente de AWS CloudHSM para Windows ahora se ejecuta como un servicio de Windows.
Por el momento, AWS CloudHSM sigue teniendo la posibilidad de importar claves de EC sin
formatear. La posibilidad de utilizar este formato puede que desaparezca en el futuro, ya que no
es compatible con las especificaciones de PKCS#11.
• Mejoras de rendimiento y correcciones de errores.
Biblioteca de Java
• El cliente de AWS CloudHSM ahora se ejecuta como servicio. Para obtener las instrucciones de uso
actualizadas, consulte Instalación y configuración del cliente de AWS CloudHSM (Windows) (p. 37)
Versión: 1.1.1
A continuación, se enumeran los cambios significativos de esta versión:
391
AWS CloudHSM Guía del usuario
Versiones de software y cliente obsoletas
Biblioteca de Java
392
AWS CloudHSM Guía del usuario
Versiones de software y cliente obsoletas
Versión: 1.1.0
Esta versión incluye los siguientes cambios significativos:
El software de cliente de AWS CloudHSM para Windows Server incluye los proveedores de CNG y KSP
necesarios.
Biblioteca de Java
• Si descargó este paquete antes del 23 de mayo a las 5 p. m. PDT, deberá volver a compilar su
aplicación para que funcione con esta versión de JCE, ya que el método loadNative() había
cambiado temporalmente de no estático a estático. También puede descargar el paquete otra vez e
instalar JCE. Ahora hemos restaurado el método loadNative() a estático.
• Se eliminó el cambio brusco en la versión 1.0.18. El método público LoginManager.getInstance()
acepta los argumentos username y password.
• Se agregó compatibilidad con las plataformas Linux.
Versión: 1.0.18
Esta versión incluye los siguientes cambios significativos:
393
AWS CloudHSM Guía del usuario
Versiones de software y cliente obsoletas
Se agregó un cliente de AWS CloudHSM para Windows Server. Actualmente se admiten los siguientes
sistemas operativos de Windows Server:
Biblioteca de Java
Versión: 1.0.14
Esta versión incluye los siguientes cambios significativos:
394
AWS CloudHSM Guía del usuario
Versiones de software y cliente obsoletas
Biblioteca de Java
Versión: 1.0.11
Esta versión incluye los siguientes cambios significativos:
Biblioteca de Java
Versión: 1.0.10
Esta versión incluye los siguientes cambios significativos:
395
AWS CloudHSM Guía del usuario
Versiones de software y cliente obsoletas
Biblioteca de Java
Versión: 1.0.8
Esta versión incluye los siguientes cambios significativos:
• Se mejoró el desempeño.
Biblioteca de Java
Versión: 1.0.7
Esta versión incluye los siguientes cambios significativos:
• Se ha añadido una versión acelerada de la biblioteca que utiliza una caché local de Redis para mejorar
el desempeño.
• Se han corregido errores relacionados con la gestión de atributos.
• Se ha añadido la capacidad de generar claves ECDSA.
Biblioteca de Java
396
AWS CloudHSM Guía del usuario
Plataformas compatibles
Versión: 1.0.0
Esta es la versión inicial.
Plataformas compatibles
El cliente de AWS CloudHSM (p. 9) y las bibliotecas de software (p. 224) relacionadas admiten las
versiones de 64 bits de los siguientes sistemas operativos.
Amazon Linux 2
CentOS 6.7+
CentOS 7.3+
Amazon Linux 2
CentOS 6.7+
CentOS 7.3+
Amazon Linux 2
397
AWS CloudHSM Guía del usuario
Actualización del cliente
CentOS 6.7+
CentOS 7.3+
Amazon Linux 2
CentOS 6.7+
CentOS 7.3+
Note
En este tema, se proporciona información sobre plataformas compatibles con la versión más
reciente del cliente de AWS CloudHSM y otro software relacionado. Las versiones anteriores del
cliente y las bibliotecas de software no son compatibles con todos los sistemas operativos que se
indican. Para obtener información sobre la compatibilidad de cada versión, consulte Historial de
versiones de software y del cliente de AWS CloudHSM (p. 381).
Si ejecuta el cliente de CloudHSM versión 1.1.1 o anterior en una instancia EC2 con Amazon
Linux 2, consulte Problemas conocidos para las instancias Amazon EC2 que ejecutan Amazon
Linux 2 (p. 366).
Si desea instalar la biblioteca del motor dinámico de OpenSSL en RHEL 6 o CentOS 6, infórmese
sobre un problema conocido (p. 370) relacionado con la versión predeterminada de OpenSSL
instalada en esos sistemas operativos.
Temas
• Requisitos previos (p. 399)
• Paso 1: Detenga el cliente (p. 402)
• Paso 2: Actualice el cliente y las bibliotecas (p. 402)
• Paso 3: Inicie el cliente (p. 403)
398
AWS CloudHSM Guía del usuario
Requisitos previos
Requisitos previos
Descargue la última versión del cliente de AWS CloudHSM y elija las bibliotecas.
Note
No es necesario instalar todas las bibliotecas. Deberá actualizar cada una de las bibliotecas que
tenga instaladas para que coincida con la versión del cliente.
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
latest.el6.x86_64.rpm
Amazon Linux 2
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
latest.el7.x86_64.rpm
CentOS 6
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
latest.el6.x86_64.rpm
CentOS 7
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
latest.el7.x86_64.rpm
RHEL 6
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
latest.el6.x86_64.rpm
RHEL 7
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
latest.el7.x86_64.rpm
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-
client_latest_amd64.deb
399
AWS CloudHSM Guía del usuario
Requisitos previos
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
pkcs11-latest.el6.x86_64.rpm
Amazon Linux 2
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
pkcs11-latest.el7.x86_64.rpm
CentOS 6
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
pkcs11-latest.el6.x86_64.rpm
CentOS 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
pkcs11-latest.el7.x86_64.rpm
RHEL 6
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
pkcs11-latest.el6.x86_64.rpm
RHEL 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
pkcs11-latest.el7.x86_64.rpm
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-
client-pkcs11_latest_amd64.deb
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
dyn-latest.el6.x86_64.rpm
Amazon Linux 2
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
dyn-latest.el7.x86_64.rpm
CentOS 6
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
dyn-latest.el6.x86_64.rpm
400
AWS CloudHSM Guía del usuario
Requisitos previos
CentOS 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
dyn-latest.el7.x86_64.rpm
RHEL 6
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
dyn-latest.el6.x86_64.rpm
RHEL 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
dyn-latest.el7.x86_64.rpm
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-
client-dyn_latest_amd64.deb
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
jce-latest.el6.x86_64.rpm
Amazon Linux 2
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
jce-latest.el7.x86_64.rpm
CentOS 6
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
jce-latest.el6.x86_64.rpm
CentOS 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
jce-latest.el7.x86_64.rpm
RHEL 6
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-
jce-latest.el6.x86_64.rpm
RHEL 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-
jce-latest.el7.x86_64.rpm
401
AWS CloudHSM Guía del usuario
Paso 1: Detenga el cliente
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-
client-jce_latest_amd64.deb
Amazon Linux
Amazon Linux 2
CentOS 6
CentOS 7
RHEL 6
RHEL 7
Amazon Linux
Amazon Linux 2
402
AWS CloudHSM Guía del usuario
Paso 3: Inicie el cliente
<./cloudhsm-client-pkcs11-latest.el7.x86_64.rpm> \
<./cloudhsm-client-dyn-latest.el7.x86_64.rpm> \
<./cloudhsm-client-jce-latest.el7.x86_64.rpm>
CentOS 6
CentOS 7
RHEL 6
RHEL 7
Amazon Linux
Amazon Linux 2
CentOS 6
403
AWS CloudHSM Guía del usuario
Paso 3: Inicie el cliente
CentOS 7
RHEL 6
RHEL 7
404
AWS CloudHSM Guía del usuario
Actualizaciones recientes
Historial de revisión
En este tema se describen actualizaciones importantes en la Guía del usuario de AWS CloudHSM.
Temas
• Actualizaciones recientes (p. 405)
• Actualizaciones anteriores (p. 407)
Actualizaciones recientes
En la siguiente tabla se describen cambios importantes en esta documentación desde abril de
2018. Además de los cambios importantes que se indican a continuación, también actualizamos la
documentación con frecuencia para mejorar las descripciones y los ejemplos y para dar cuenta de los
comentarios que nos envía. Si desea recibir notificaciones sobre cambios importante, utilice el enlace de la
esquina superior derecha para suscribirse a la fuente RSS.
405
AWS CloudHSM Guía del usuario
Actualizaciones recientes
406
AWS CloudHSM Guía del usuario
Actualizaciones anteriores
Actualizaciones anteriores
En la siguiente tabla se describen cambios importantes en la AWS CloudHSM antes de 2018.
407
AWS CloudHSM Guía del usuario
Actualizaciones anteriores
408