AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS...

281
AWS CloudHSM Guía del usuario

Transcript of AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS...

Page 1: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSMGuía del usuario

Page 2: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuario

AWS CloudHSM: Guía del usuarioCopyright © 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any mannerthat is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks notowned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored byAmazon.

Page 3: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuario

Table of Contents¿Qué es AWS CloudHSM? .................................................................................................................. 1

Casos de uso ............................................................................................................................ 1Descargar el procesamiento de SSL/TLS en los servidores web ................................................ 2Proteger las claves privadas de una entidad de certificación (CA) de emisión ............................... 2Activar el cifrado de datos transparente (TDE) para bases de datos de Oracle .............................. 2

Clústeres ................................................................................................................................... 2Arquitectura de clúster ........................................................................................................ 3Sincronización de clúster ..................................................................................................... 4Alta disponibilidad y balanceo de carga de clúster ................................................................... 5

Backups .................................................................................................................................... 6Información general de los backups ...................................................................................... 7Seguridad de los backups .................................................................................................... 7Durabilidad de los backups .................................................................................................. 8Frecuencia de los backups .................................................................................................. 8

Herramientas y bibliotecas del cliente ............................................................................................ 9Cliente de AWS CloudHSM .................................................................................................. 9Herramientas de línea de comandos de AWS CloudHSM ........................................................ 10Bibliotecas de software de AWS CloudHSM .......................................................................... 10

Usuarios de HSM ..................................................................................................................... 10Responsable de criptografía previa (PRECO) ........................................................................ 11Responsable de criptografía (CO) ....................................................................................... 11Usuario de criptografía (CU) ............................................................................................... 11Usuario de dispositivo (AU) ................................................................................................ 11Tabla de permisos de usuario de HSM ................................................................................ 11

Conformidad ............................................................................................................................. 13Precios .................................................................................................................................... 13Regiones ................................................................................................................................. 13Límites .................................................................................................................................... 13

Introducción ..................................................................................................................................... 15Crear administradores de IAM .................................................................................................... 15

Crear un grupo de usuarios y de administradores de IAM ....................................................... 16Restringir los permisos de usuario a lo estrictamente necesario para AWS CloudHSM .................. 17Descripción de los roles vinculados a servicios ...................................................................... 18

Creación de una VPC ............................................................................................................... 19Crear una subred privada .......................................................................................................... 20Crear un clúster ........................................................................................................................ 20Lanzar un cliente EC2 ............................................................................................................... 22

Lanzar un cliente EC2 ....................................................................................................... 22Crear un HSM .......................................................................................................................... 23Verificar la identidad del HSM (opcional) ...................................................................................... 24

Información general ........................................................................................................... 24Obtener los certificados del HSM ........................................................................................ 26Obtener los certificados raíz ............................................................................................... 27Verificar las cadenas de certificados .................................................................................... 27Extraer y comparar las claves públicas ................................................................................ 28Certificado raíz de AWS CloudHSM ..................................................................................... 29

Inicializar el clúster ................................................................................................................... 30Obtener el CSR del clúster ................................................................................................ 30Firmar la CSR .................................................................................................................. 31Inicializar el clúster ........................................................................................................... 33

Instalar el cliente (Linux) ............................................................................................................ 34Instalar el cliente y las herramientas de línea de comandos de AWS CloudHSM ......................... 34Editar la configuración del cliente ........................................................................................ 36

Instalación del cliente de (Windows) ............................................................................................ 36

iii

Page 4: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuario

Activar el clúster ....................................................................................................................... 37Reconfigurar SSL (opcional) ....................................................................................................... 39

Administración de clústeres ................................................................................................................ 41Agregar o eliminar HSM ............................................................................................................ 41

Agregar un HSM ............................................................................................................... 41Eliminación de un HSM ..................................................................................................... 43

Eliminación de un clúster ........................................................................................................... 44Creación de un clúster a partir de un backup ................................................................................ 45Etiquetado de recursos .............................................................................................................. 46

Añadir o actualizar etiquetas .............................................................................................. 46Visualización de etiquetas .................................................................................................. 48Eliminar etiquetas ............................................................................................................. 48

Administración de claves y de usuarios de HSM ................................................................................... 50Administración de usuarios de HSM ............................................................................................ 50

Crear usuarios .................................................................................................................. 50Enumerar usuarios ............................................................................................................ 51Cambiar la contraseña de un usuario .................................................................................. 52Eliminar usuarios .............................................................................................................. 52

Administrar claves ..................................................................................................................... 53Generar claves ................................................................................................................. 53Importar claves ................................................................................................................. 54Exportar claves ................................................................................................................. 56Eliminar claves ................................................................................................................. 57Compartir y dejar de compartir claves .................................................................................. 57

Autenticación de cuórum (M de N) .............................................................................................. 58Información general sobre la autenticación de cuórum ............................................................ 59Detalles adicionales sobre la autenticación de cuórum ............................................................ 59Primera configuración para responsables de criptografía ......................................................... 59Autenticación de cuórum para responsables de criptografía ..................................................... 64Cambiar el valor de cuórum para responsables de criptografía ................................................. 69

Herramientas de línea de comandos .................................................................................................... 72cloudhsm_mgmt_util .................................................................................................................. 72

Introducción ..................................................................................................................... 73Referencia ....................................................................................................................... 79

key_mgmt_util ......................................................................................................................... 109Introducción .................................................................................................................... 110Referencia ...................................................................................................................... 112

Herramienta de configuración .................................................................................................... 171Sintaxis .......................................................................................................................... 171Ejemplos ........................................................................................................................ 171Parámetros ..................................................................................................................... 173Temas relacionados ........................................................................................................ 174

Uso de las bibliotecas de software .................................................................................................... 175Biblioteca de PKCS #11 ........................................................................................................... 175

Instalar la biblioteca de PKCS #11 ..................................................................................... 175Autenticación en PKCS #11 .............................................................................................. 180Tipos de clave de PKCS #11 admitidos .............................................................................. 181Mecanismos de PKCS #11 admitidos ................................................................................. 181Operaciones API de PKCS #11 admitidas ........................................................................... 183

Motor dinámico de OpenSSL .................................................................................................... 184Instalación del motor dinámico de OpenSSL ....................................................................... 184

Biblioteca de Java ................................................................................................................... 187Instalar la biblioteca de Java ............................................................................................. 187Mecanismos admitidos ..................................................................................................... 191Requisitos previos de la muestra ....................................................................................... 194Muestras de Java ........................................................................................................... 195

Proveedores de KSP y CNG .................................................................................................... 221

iv

Page 5: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuario

Instalar los proveedores ................................................................................................... 221Requisitos previos ........................................................................................................... 222Muestra de código .......................................................................................................... 222

Integración de aplicaciones de terceros .............................................................................................. 227Descarga de SSL/TLS ............................................................................................................. 227

Información general ......................................................................................................... 228Configuración de requisitos previos .................................................................................... 228Obtener una clave privada ................................................................................................ 229Configurar el servidor web ................................................................................................ 233Añadir un balanceador de carga ........................................................................................ 238

Entidad de certificación de Windows Server ................................................................................ 243Configuración de requisitos previos .................................................................................... 243Crear entidad de certificación de Windows Server ................................................................ 244Firmar una CSR .............................................................................................................. 246

Cifrado de Oracle Database ..................................................................................................... 246Configuración de requisitos previos .................................................................................... 248Configuración de la base de datos .................................................................................... 248

Recuperación de métricas ................................................................................................................ 251Uso de CloudWatch ................................................................................................................ 251Uso de CloudTrail ................................................................................................................... 251

Solución de problemas ..................................................................................................................... 253Problemas conocidos ............................................................................................................... 253

Problemas conocidos para todas las instancias de HSM ....................................................... 253Problemas conocidos para el SDK de PKCS#11 .................................................................. 254Problemas conocidos para el SDK de JCE ......................................................................... 256Problemas conocidos para el SDK de OpenSSL .................................................................. 257

Conexión perdida .................................................................................................................... 258Mantener actualizados los usuarios de HSM ............................................................................... 260Verificación del desempeño ...................................................................................................... 260Solución de errores de creación de clústeres .............................................................................. 263

Agregar el permiso que falta ............................................................................................. 264Crear el rol vinculado a un servicio manualmente ................................................................ 264Uso de un usuario no federado ......................................................................................... 264

Información de cliente y de software .................................................................................................. 266Historial de versiones .............................................................................................................. 266

Versión actual: 1.1.0 ........................................................................................................ 266Versión: 1.0.18 ............................................................................................................... 269Versión 1.0.14 ................................................................................................................ 270Versión 1.0.11 ................................................................................................................ 271Versión 1.0.10 ................................................................................................................ 271Versión 1.0.8 .................................................................................................................. 272Versión 1.0.7 .................................................................................................................. 272Versión 1.0.0 .................................................................................................................. 273

Plataformas admitidas .............................................................................................................. 273Historial de revisión ......................................................................................................................... 275

v

Page 6: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCasos de uso

¿Qué es AWS CloudHSM?AWS CloudHSM proporciona módulos de seguridad de hardware en la nube de AWS. Un módulo deseguridad de hardware (HSM) es un dispositivo informático que procesa las operaciones criptográficas yproporciona almacenamiento seguro de las claves criptográficas.

Al utilizar un HSM desde AWS CloudHSM, puede realizar diversas tareas criptográficas:

• Generar, almacenar, importar, exportar y administrar claves criptográficas, incluidas las claves simétricasy 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 desea un servicio administrado para la creación y el control de las claves de cifrado, pero no desea o nonecesita operar 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 temassiguientes. Cuando esté listo para comenzar a usar AWS CloudHSM, consulte Introducción (p. 15).

Temas• Casos de uso de AWS CloudHSM (p. 1)• Clústeres de AWS CloudHSM (p. 2)• Backups de clúster de AWS CloudHSM (p. 6)• Herramientas y bibliotecas de software del cliente de AWS CloudHSM (p. 9)• Usuarios de HSM (p. 10)• Conformidad (p. 13)• Precios (p. 13)• Regiones (p. 13)• Límites de AWS CloudHSM (p. 13)

Casos de uso de AWS CloudHSMUn módulo de seguridad de hardware (HSM) en AWS CloudHSM puede ayudarle a lograr diferentesobjetivos.

Temas• Descargar el procesamiento de SSL/TLS en los servidores web (p. 2)• 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

Page 7: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioDescargar el procesamiento deSSL/TLS en los servidores web

Descargar el procesamiento de SSL/TLS en losservidores webLos servidores web y sus clientes (navegadores web) pueden usar la capa de conexión segura (SSL) oTransport Layer Security (TLS). Estos protocolos confirman la identidad del servidor web y establecen unaconexión segura para enviar y recibir páginas web u otros datos a través de Internet. Esto se denominacomúnmente HTTPS. El servidor web utiliza un par de claves pública–privada y un certificado de clavepública para establecer una sesión HTTPS con cada cliente. Este proceso conlleva un gran volumende cómputo para el servidor web, pero puede descargar parte de este cómputo en los HSM del clústerde AWS CloudHSM. Esto a veces recibe el nombre de aceleración SSL. Esta descarga reduce la cargainformática del servidor web y proporciona seguridad adicional al almacenar la clave privada del servidoren los HSM.

Para obtener información sobre la configuración de la descarga de SSL/TLS con AWS CloudHSM, consulteDescarga de SSL/TLS (p. 227).

Proteger las claves privadas de una entidad decertificación (CA) de emisiónEn una infraestructura de clave pública (PKI), una entidad de certificación (CA) es una entidad deconfianza que emite certificados digitales. Estos certificados digitales vinculan una clave pública a unaidentidad (una persona u organización) mediante criptografía de clave pública y firmas digitales. Paraoperar una CA, debe mantener la confianza protegiendo la clave privada que firma los certificados emitidospor la CA. Puede almacenar esta clave privada en el HSM del clúster de AWS CloudHSM y usarlo pararealizar las operaciones de firma criptográfica.

Activar el cifrado de datos transparente (TDE) parabases de datos de OracleSome versions of Oracle's database software offer a feature called Transparent Data Encryption (TDE).With TDE, the database software encrypts data before storing it on disk. The data in the database's tablecolumns or tablespaces is encrypted with a table key or tablespace key. These keys are encrypted withthe TDE master encryption key. You can store the TDE master encryption key in the HSMs in your AWSCloudHSM cluster, which provides additional security.

Para obtener información sobre la configuración de TDE de Oracle con AWS CloudHSM, consulte Cifradode Oracle Database (p. 246).

Clústeres de AWS CloudHSMAWS CloudHSM proporciona módulos de seguridad de hardware (HSM) en un clúster. Un clúster esuna colección de HSM individuales que AWS CloudHSM mantiene sincronizados. Un clúster se puedeconsiderar un HSM lógico. Al realizar una tarea o una operación en un HSM en un clúster, el resto de losHSM de ese clúster se actualizan automáticamente.

Puede crear un clúster que tenga de 1 a 28 HSM (el límite predeterminado (p. 13) es de 6 HSMpor cada cuenta de AWS y cada región de AWS). Puede colocar los HSM en diferentes zonas dedisponibilidad en una región de AWS. Agregar más HSM a un clúster ofrece más desempeño. Distribuirclú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 altadisponibilidad puede ser difícil, pero AWS CloudHSM se ocupa de algunas de las tareas pesadas.

2

Page 8: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioArquitectura de clúster

Puede añadir y eliminar HSM de un clúster, y AWS CloudHSM se ocupará de mantenerlos conectados ysincronizados automáticamente.

Para crear un clúster, consulte Introducción (p. 15).

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ústerAl crear un clúster, especifique una Amazon Virtual Private Cloud (VPC) en la cuenta de AWS y una ovarias 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. 20).

Cada vez que crea un HSM, debe especificar el clúster y la zona de disponibilidad del HSM. Al colocar losHSM en diferentes zonas de disponibilidad, obtiene redundancia y alta disponibilidad en el caso de queuna zona de disponibilidad no esté disponible.

Al crear un HSM, AWS CloudHSM incluye una interfaz de red elástica (ENI) en la subred especificada dela cuenta de AWS. La interfaz de red elástica es la que se usa para interactuar con el HSM. El HSM seencuentra en una VPC independiente en una cuenta de AWS que es propiedad de AWS CloudHSM. ElHSM 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 de Amazon EC2, que se denominan instancias decliente y que se encuentran en la misma VPC que los ENI de los HSM, como se muestra en la siguienteilustración. Esto no es necesario desde el punto de vista técnico; puede instalar el cliente en cualquierequipo compatible, siempre que pueda conectarse a las ENI de los HSM. El cliente se comunica con cadauno 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 dedisponibilidad diferente en la VPC.

3

Page 9: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioSincronización de clúster

Sincronización de clústerEn un clúster de AWS CloudHSM, AWS CloudHSM mantiene sincronizadas las claves de los HSMindividuales. No tiene que hacer nada para sincronizar las claves en los HSM. Para mantenersincronizados los usuarios y las políticas de cada HSM, actualice el archivo de configuración del cliente

4

Page 10: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAlta disponibilidad y balanceo de carga de clúster

de AWS CloudHSM antes de administrar los usuarios de HSM (p. 50). Para obtener más información,consulte Mantener actualizados los usuarios de HSM (p. 260).

Al agregar un HSM nuevo a un clúster, AWS CloudHSM hace un backup de todas las claves, los usuariosy 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 sincronizarautomáticamente. Para habilitarlo, AWS CloudHSM utiliza las credenciales del usuario dedispositivo (p. 10). Este usuario existe en todos los HSM proporcionados por AWS CloudHSM y tienepermisos limitados. También puede obtener un hash de los objetos del HSM y extraer e insertar objetosenmascarados (cifrados). AWS no puede ver ni modificar los usuarios o las claves, y no puede realizaroperaciones criptográficas con esas claves.

Alta disponibilidad y balanceo de carga de clústerAl crear un clúster de AWS CloudHSM con varios HSM, obtiene automáticamente el balanceo de carga.El balanceo de carga significa que el cliente de AWS CloudHSM (p. 9) distribuye las operacionescriptográficas entre todos los HSM del clúster en función de la capacidad de procesamiento adicional decada uno de ellos.

Al crear los HSM en diferentes zonas de disponibilidad de AWS, obtiene automáticamente altadisponibilidad. Alta disponibilidad significa que obtiene mayor fiabilidad porque ningún HSM es un puntoúnico de error. Recomendamos que tenga un mínimo de dos HSM en cada clúster, cada uno de ellos enuna 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 sus clavesmaestras en un clúster que contiene un HSM en cada zona de disponibilidad. AWS CloudHSM sincronizaautomáticamente las claves en ambos HSM para que sea posible obtener acceso inmediatamente a ellos ysean redundantes.

5

Page 11: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioBackups

Backups de clúster de AWS CloudHSMAWS CloudHSM hace backups periódicos del clúster. No puede ordenar a AWS CloudHSM que hagabackups siempre que usted quiera, pero sí puede ejecutar determinadas acciones que hacen que AWSCloudHSM realice un backup. Para obtener más información, consulte los siguientes temas.

Cuando añade un HSM a un clúster que anteriormente contenía uno o varios HSM activos, AWSCloudHSM restaura el backup más reciente en el nuevo HSM. Esto significa que puede utilizar AWSCloudHSM 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, puedecrear 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 elnuevo clúster en la misma región de AWS que contiene el backup ya 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

Page 12: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInformación general de los backups

Información general de los backupsCada backup contiene copias cifradas de los siguientes datos:

• Todos los usuarios (CO, CU y AU) (p. 10) del HSM.• Todo el material de claves y certificados del HSM.• La configuración y las políticas del HSM.

AWS CloudHSM almacena los backups en un bucket de Amazon Simple Storage Service (Amazon S3)controlado por servicios en la misma región de AWS que su clúster.

Seguridad de los backupsCuando AWS CloudHSM hace un backup del HSM, el HSM cifra todos sus datos antes de enviarlos aAWS CloudHSM. Los datos nunca salen del HSM en formato de texto no cifrado.

Para cifrar los datos, el HSM utiliza una clave de cifrado única y efímera, conocida como la clave debackup efímera (EBK). La EBK es una clave de cifrado AES de 256 bits generada en el HSM cuando AWSCloudHSM hace un backup. El HSM genera la EBK y, a continuación, la utiliza para cifrar sus datos con unmétodo de encapsulación de clave AES aprobado por FIPS que cumple la Publicación especial de NIST800-38F. A continuación, el HSM ofrece los datos cifrados a AWS CloudHSM. Los datos cifrados contienenuna 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

Page 13: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioDurabilidad de los backups

función de derivación de clave (KDF) aprobada por FIPS en modo contador que cumple la Publicaciónespecial 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 delHSM por parte del fabricante.

• Una clave de backup de clave de AWS (AKBK), instalada de forma segura en el HSM cuando AWSCloudHSM lo configura inicialmente.

Los procesos de cifrado se resumen en la siguiente figura. La clave de cifrado de backup representa laclave de backup persistente (PBK) y la clave de backup efímera (EBK).

AWS CloudHSM solo puede restaurar los backups en los de HSM propiedad de AWS que haya realizadoel mismo fabricante. Dado que cada backup contiene todos los usuarios, claves y la configuración delHSM 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 larestauración.

Un backup solo contiene datos cifrados. Antes de que cada backup se almacene en Amazon S3, se cifrade nuevo con una clave maestra de cliente (CMK) de AWS Key Management Service (AWS KMS).

Durabilidad de los backupsAWS CloudHSM almacena los backups del clúster en un bucket de Amazon S3 de una cuenta de AWScontrolada por AWS CloudHSM. La durabilidad de los backups es la misma que la de cualquier objetoalmacenado en Amazon S3. Amazon S3 está diseñado para ofrecer una durabilidad del 99,999999999%.

Frecuencia de los backupsAWS CloudHSM hace un backup del clúster al menos una vez cada 24 horas. Además de los backupsdiarios recurrentes, AWS CloudHSM hace un backup cuando se realiza cualquiera de las siguientesacciones:

• Inicializar el clúster (p. 30).• Añadir un HSM a un clúster inicializado (p. 41).• Eliminar un HSM de un clúster (p. 43).

8

Page 14: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioHerramientas y bibliotecas del cliente

Herramientas y bibliotecas de software del clientede AWS CloudHSM

Para administrar y utilizar los HSM en su clúster, utilice el software de cliente de AWS CloudHSM. Elsoftware de cliente incluye varios componentes, tal y como se describe en los siguientes temas.

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)

Cliente de AWS CloudHSMEl cliente de AWS CloudHSM es un daemon que se instala y se ejecuta en sus hosts de aplicaciones. Elcliente establece y mantiene una conexión cifrada integral con los HSM en su clúster de AWS CloudHSM.El cliente proporciona la conexión fundamental entre sus hosts de aplicaciones y los HSM. La mayoría delos demás componentes de software de cliente de AWS CloudHSM confían en el cliente para comunicarsecon sus HSM. Para comenzar a utilizar el cliente de AWS CloudHSM si utiliza Linux, consulte Instalar elcliente (Linux) (p. 34). Si usa Windows, consulte Instalación del cliente de (Windows) (p. 36).

Cifrado integral del cliente de AWS CloudHSMLa comunicación entre el cliente de AWS CloudHSM y los HSM del clúster se realiza con cifrado integral.Solo pueden descifrarla el cliente y los HSM.

En el siguiente proceso se explica cómo establece el cliente una comunicación cifrada integral con unHSM.

1. El cliente establece una conexión Transport Layer Security (TLS) con el servidor que aloja el hardwaredel HSM. El grupo de seguridad del clúster únicamente permite el tráfico entrante al servidor desde lasinstancias de cliente del grupo de seguridad. El cliente también comprueba el certificado del servidorpara asegurarse de que es un servidor de confianza.

9

Page 15: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioHerramientas 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 elcertificado de clúster firmado por usted con su propia entidad de certificación (CA), y el cliente tieneel 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 seestablece cuando el cliente verifica correctamente que el HSM es de confianza. La conexión cifradaentre el cliente y el HSM se realiza a través de la conexión cliente–servidor establecida anteriormente.

Herramientas de línea de comandos de AWSCloudHSMEl software de cliente de AWS CloudHSM incluye dos herramientas de línea de comandos. Puedeutilizar las herramientas de línea de comandos para administrar los usuarios y las claves en los HSM.Por ejemplo, puede crear usuarios de HSM, cambiar las contraseñas de los usuarios, crear claves ymucho más. Para obtener más información sobre estas herramientas, consulte Herramientas de línea decomandos (p. 72).

Bibliotecas de software de AWS CloudHSMPuede usar las bibliotecas de software de AWS CloudHSM para integrar sus aplicaciones con los HSMde un clúster y utilizarlas para el procesamiento criptográfico. Para obtener más información acerca de lainstalación y el uso de las distintas bibliotecas, consulte Uso de las bibliotecas de software (p. 175).

Usuarios de HSMLa mayoría de las operaciones que realiza en el HSM requieren las credenciales de un usuario de HSM. ElHSM 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 lossiguientes temas se explican los tipos de usuarios de HSM.

Temas

10

Page 16: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioResponsable de criptografía previa (PRECO)

• Responsable de criptografía previa (PRECO) (p. 11)• Responsable de criptografía (CO) (p. 11)• Usuario de criptografía (CU) (p. 11)• Usuario de dispositivo (AU) (p. 11)• Tabla de permisos de usuario de HSM (p. 11)

Responsable de criptografía previa (PRECO)El responsable de criptografía previa (PRECO) es un usuario temporal que solo existe en el primerHSM de un clúster de AWS CloudHSM. El primer HSM de un nuevo clúster contiene un usuarioPRECO predeterminado con un nombre de usuario y contraseña predeterminados. Para activar unclúster (p. 37), inicie sesión en el HSM y cambie la contraseña del usuario PRECO. Al cambiar lacontraseña, el usuario PRECO se convierte en un responsable de criptografía (CO). El usuario PRECOsolo puede cambiar su contraseña y realizar operaciones de solo lectura en el HSM.

Responsable de criptografía (CO)Un responsable de criptografía (CO) puede realizar operaciones de administración de usuarios. Porejemplo, un CO puede crear y eliminar usuarios, así como cambiar las contraseñas de los usuarios. Paraobtener más información, consulte Tabla de permisos de usuario de HSM (p. 11). Cuando activa unnuevo clúster (p. 37), el usuario cambia de responsable de criptografía previa (p. 11) (PRECO) aresponsable de criptografía (CO).

Usuario de criptografía (CU)Un usuario de criptografía (CU) puede realizar las siguientes operaciones de administración de claves ycriptografía.

• Administración de claves: crear, eliminar, compartir, importar y exportar claves criptográficas.• Operaciones criptográficas: utilizar las claves criptográficas para cifrado, descifrado, firma, verificación y

mucho más.

Para obtener más información, consulte Tabla de permisos de usuario de HSM (p. 11).

Usuario de dispositivo (AU)El usuario de dispositivo (AU) puede realizar las operaciones de clonación y sincronización. AWSCloudHSM utiliza el AU para sincronizar los HSM de un clúster de AWS CloudHSM. El AU existe en todoslos HSM proporcionados por AWS CloudHSM y tiene permisos limitados. 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 nopuede realizar ninguna operación en los HSM, excepto las permitidas para los usuarios AU y sin autenticar.AWS no puede ver ni modificar los usuarios o las claves, y no puede realizar operaciones criptográficascon esas claves.

Tabla de permisos de usuario de HSMEn la siguiente tabla se enumeran las operaciones de HSM y si cada tipo de usuario de HSM puederealizarlas.

11

Page 17: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioTabla de permisos de usuario de HSM

  Responsable decriptografía (CO)

Usuario decriptografía (CU)

Usuario dedispositivo (AU)

Usuario sinautenticar

Obtenerinformación básicadel clúster¹

Sí Sí Sí Sí

Poner a cero unHSM²

Sí Sí Sí Sí

Cambiar su propiacontraseña

Sí Sí Sí No aplicable

Cambiar lacontraseña decualquier usuario

Sí No No No

Agregar o eliminarusuarios

Sí No No No

Obtener el estadode sincronización³

Sí Sí Sí No

Extraer oinsertar objetosenmascarados⁴

Sí Sí Sí No

Crear, compartir oeliminar claves

No Sí No No

Cifrar o descifrar No Sí No No

Firmar o verificar No Sí No No

Generarresúmenes yHMAC

No Sí No No

¹La información básica sobre el clúster incluye el número de HSM que hay en del 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 elHSM. Para obtener más información, consulte Crear un clúster (p. 20).

³El usuario puede obtener un conjunto resúmenes (hashes) correspondientes a las claves del HSM. Unaaplicación puede comparar estos conjuntos de resúmenes para conocer el estado de la sincronización delos HSM de un clúster.

⁴Los objetos enmascarados son claves que se cifran antes de salir del HSM. No se pueden descifrar fueradel HSM. Solo se descifran después de insertarlos en un HSM que se encuentra en el mismo clúster que elHSM del que se extrajeron. Una aplicación puede extraer e insertar objetos enmascarados para sincronizarlos HSM de un clúster.

12

Page 18: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioConformidad

ConformidadLos socios de AWS y AWS Marketplace ofrecen muchas soluciones para proteger los datos en AWS. Sinembargo, algunas aplicaciones y datos están sujetos a estrictos requisitos contractuales o normativos paraadministrar y utilizar claves criptográficas. Utilizar un HSM de AWS CloudHSM puede ayudarle a cumplirlos requisitos de conformidad corporativa, contractual y normativa para la seguridad de los datos en lanube de AWS.

FIPS 140-2

La Publicación 140-2 del Federal Information Processing Standard (Estándar Federal deProcesamiento de Información, FIPS) es un estándar de seguridad del Gobierno de EE. UU. queespecifica los requisitos de seguridad para los módulos criptográficos que protegen informaciónconfidencial. Los HSM proporcionados por AWS CloudHSM cumplen con FIPS 140-2 nivel 3. Paraobtener más información, consulte Conformidad de FIPS en el sitio web de AWS.

PCI DSS

PCI DSS (siglas en inglés de estándar de seguridad de los datos del sector de tarjetas de pago) esun estándar de seguridad de la información propio administrado por el Consejo de estándares deseguridad del sector de tarjetas de pago. Los HSM proporcionados por AWS CloudHSM cumplen conPCI DSS. Para obtener más información, consulte Conformidad de PCI DSS en el sitio web de AWS.

PreciosCon AWS CloudHSM paga por horas, sin compromisos a largo plazo ni pagos iniciales. Para obtener másinformación, consulte Precios de AWS CloudHSM en el sitio web de AWS.

RegionesVisite Regiones y puntos de conexión de AWS en la AWS General Reference o la Tabla de regiones deAWS para ver la disponibilidad regional de AWS CloudHSM.

Al igual que la mayoría de los recursos de AWS, los clústeres y HSM se utilizan a nivel regional. Paracrear un HSM en más de una región, primero debe crear un clúster en esa región. No es posible reutilizaro ampliar un clúster entre regiones. Debe realizar todos los pasos necesarios que se muestran enIntroducción a AWS CloudHSM (p. 15) para crear un nuevo clúster en una nueva región.

Límites de AWS CloudHSMLos siguientes límites se aplican a sus recursos de AWS CloudHSM por región de AWS y cuenta de AWS.

Límites de los servicios

Elemento Límite predeterminado Límite invariable

Clústeres 4 N/D

HSM 6 N/D

HSM por clúster N/D 28

13

Page 19: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioLímites

Límites del sistema

Elemento Límite invariable

Claves por clúster 3500

Número de usuarios por clúster 1024

Longitud máxima de un nombre de usuario 31 caracteres

Longitud de contraseña obligatoria De 7 a 32 caracteres

Número máximo de clientes simultáneos 1024

Para solicitar un aumento del número de clústeres o HSM, use el formulario de aumento de límite deservicio en el Centro de soporte de AWS.

14

Page 20: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCrear administradores de IAM

Introducción a AWS CloudHSMLos siguientes temas contienen información para ayudarle a crear, inicializar y activar un clúster de AWSCloudHSM. Después de completar las instrucciones incluidas en estos temas, estará preparado paraadministrar usuarios, administrar clústeres y realizar operaciones criptográficas mediante las bibliotecas desoftware incluidas.

Para comenzar a trabajar con AWS CloudHSM

1. Siga los pasos de Crear administradores de IAM (p. 15) para configurar los usuarios y grupos deIAM.

2. Siga los pasos de Crear un clúster (p. 20).3. Siga los pasos de Crear un HSM (p. 23).4. (Opcional) Siga los pasos de Verificar la identidad del HSM (opcional) (p. 24) para verificar la

identidad y la autenticidad del HSM del clúster.5. Siga los pasos de Inicializar el clúster (p. 30).6. (Solo la primera vez) Siga los pasos de Lanzar un cliente EC2 (p. 22).7. (Solo la primera vez) Siga los pasos de Instalar el cliente (Linux) (p. 34) si usa Linux o Instalación

del cliente de (Windows) (p. 36) si usa Windows.8. Siga los pasos de Activar el clúster (p. 37).

Temas• Crear grupos administrativos de IAM (p. 15)• Crear una nube virtual privada (VPC) (p. 19)• Crear una subred privada (p. 20)• Crear un clúster (p. 20)• Lanzar una instancia de cliente de Amazon EC2 (p. 22)• Crear un HSM (p. 23)• Verificar la identidad y la autenticidad del HSM de un clúster (opcional) (p. 24)• Inicializar el clúster (p. 30)• Instalar y configurar el cliente de AWS CloudHSM (Linux) (p. 34)• Instalar y configurar el cliente de AWS CloudHSM (Windows) (p. 36)• Activar el clúster (p. 37)• Reconfigurar SSL con un nuevo certificado y clave privada (opcional) (p. 39)

Crear grupos administrativos de IAMComo práctica recomendada, no utilice su usuario raíz de cuenta de AWS para interactuar con AWS,incluido el AWS CloudHSM. En su lugar, utilice AWS Identity and Access Management (IAM) para crearun usuario de IAM, un rol de IAM o un usuario federado. Siga los pasos de la sección Crear un grupo deusuarios y de administradores de IAM (p. 16) para crear un grupo de administradores y adjuntarle lapolítica AdministratorAccess. A continuación, cree un usuario administrativo y agréguelo al grupo. Puedeagregar usuarios adicionales al grupo según sea necesario. Cada usuario que agregue heredará la políticaAdministratorAccess del grupo.

Otra práctica recomendada consiste en crear un grupo de administradores de AWS CloudHSM solotenga los permisos necesarios para ejecutar AWS CloudHSM. Puede agregar usuarios individuales aeste grupo según sea necesario. Cada usuario heredará los permisos limitados adjuntados al grupo en

15

Page 21: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCrear un grupo de usuarios y de administradores de IAM

lugar del acceso de AWS completo. La sección Restringir los permisos de usuario a lo estrictamentenecesario para AWS CloudHSM (p. 17) más adelante contiene la política que debe adjuntar a su grupode administradores de AWS CloudHSM.

AWS CloudHSM define un rol vinculado al servicio de IAM para su cuenta de AWS. El rol vinculado alservicio define actualmente los permisos que permiten que su cuenta registre eventos de AWS CloudHSM.AWS CloudHSM puede crear automáticamente el rol o puede hacerlo manualmente el usuario. Nopuede editar el rol, pero puede eliminarlo. Para obtener más información, consulte la siguiente secciónDescripción de los roles vinculados a servicios (p. 18) más adelante.

Temas• Crear un grupo de usuarios y de administradores de IAM (p. 16)• Restringir los permisos de usuario a lo estrictamente necesario para AWS CloudHSM (p. 17)• Descripción de los roles vinculados a servicios (p. 18)

Crear un grupo de usuarios y de administradores deIAMPara crear un usuario de IAM para sí mismo y agregarlo a un grupo de administradores

1. Utilice la dirección de correo electrónico y la contraseña de su cuenta de AWS para iniciar sesióncomo Usuario de la cuenta raíz de AWS en la consola de IAM en https://console.aws.amazon.com/iam/.

Note

Recomendamos que siga la práctica recomendada de utilizar el usuario Administradorde IAM como se indica a continuación, y que guarde en un lugar seguro las credencialesde usuario raíz. Inicie sesión como usuario raíz únicamente para realizar algunas tareas deadministración de servicios y de cuentas.

2. En el panel de navegación de la consola, elija Usuarios y, a continuación, elija Añadir usuario.3. En Nombre de usuario, escriba Administrador.4. Active la casilla de verificación situada junto a Consola de administración de AWS access, seleccione

Custom password y escriba la contraseña del nuevo usuario en el cuadro de texto. También puedeseleccionar Require password reset (Obligar a restablecer contraseña) para obligar al usuario a crearuna nueva contraseña la próxima vez que inicie sesión.

5. Elija Next: Permissions.6. En la página Set permissions for user, elija Add user to group.7. Elija Create group.8. En el cuadro de diálogo Crear grupo, escriba Administradores.9. En Filter, elija Job function.10. En la lista de políticas, active la casilla de verificación AdministratorAccess. A continuación, elija

Create group.11. 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.12. 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.

Puede usar este mismo proceso para crear más grupos y usuarios, y para conceder a los usuarios accesolos recursos de su cuenta de AWS. Para obtener más información sobre cómo usar las políticas pararestringir los permisos de los usuarios a recursos de AWS específicos, vaya a Administración de acceso yPolíticas de ejemplo.

16

Page 22: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioRestringir los permisos de usuario a lo

estrictamente necesario para AWS CloudHSM

Puede crear varios administradores en su cuenta y agregarlos al grupo Administradores. Para iniciarsesión en la Consola de administración de AWS, cada usuario necesita un ID o alias de la cuenta de AWS.Para obtenerlos, consulte Su ID de cuenta y alias de AWS en la Guía del usuario de IAM.

Restringir los permisos de usuario a lo estrictamentenecesario para AWS CloudHSMLe recomendamos que cree un grupo de administradores de IAM para AWS CloudHSM que contengaúnicamente los permisos necesarios para ejecutar AWS CloudHSM. Adjunte la política siguiente al grupo.Puede agregar usuarios de IAM al grupo según sea necesario. Cada usuario que agregue heredará lapolítica del grupo.

Crear una política administrada por el cliente

1. Inicie sesión en la consola de IAM con las credenciales de un administrador de AWS.2. En el panel de navegación de la consola, elija Policies (Políticas).3. Elija Create Policy.4. Seleccione la pestaña JSON.5. Copie la política siguiente en el editor.

{ "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": "*" }}

6. Elija Review policy.7. En Name, ingrese CloudHsmAdminPolicy.8. Escriba una descripción opcional.9. Elija Create Policy.

Crear un grupo de administradores de AWS CloudHSM

1. Inicie sesión en la consola de IAM con las credenciales de un administrador de AWS.2. En el panel de navegación de la consola, elija Groups (Grupos).3. Elija Create New Group (Crear nuevo grupo).

17

Page 23: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioDescripción de los roles vinculados a servicios

4. En Group Name (Nombre de grupo), escriba CloudHsmAdministrator.5. En Filter:, elija Customer Managed.6. Seleccione CloudHsmAdminPolicy y elija Next Step (Paso siguiente).7. Elija Create Group.

La política anterior incluye acceso completo a la API de AWS CloudHSM y permisos adicionales paraseleccionar acciones de Amazon Elastic Compute Cloud (Amazon EC2). Cuando usa la consola o laAPI de AWS CloudHSM AWS CloudHSM realiza acciones adicionales en su nombre para administrardeterminados recursos de Amazon EC2. Esto sucede, por ejemplo, al crear y eliminar clústeres y HSM.

La política anterior también incluye la acción iam:CreateServiceLinkedRole. Debe incluiresta acción para permitir que AWS CloudHSM cree automáticamente el rol vinculado al servicioAWSServiceRoleForCloudHSM en su cuenta. Este rol permite que AWS CloudHSM registre eventos.Consulte la sección siguiente para obtener más información acerca del rol vinculado al servicioAWSServiceRoleForCloudHSM.

Descripción de los roles vinculados a serviciosLa política de IAM que ha creado anteriormente para Restringir los permisos de usuario a lo estrictamentenecesario para AWS CloudHSM (p. 17) incluye la acción iam:CreateServiceLinkedRole. AWSCloudHSM define un rol vinculado al servicio denominado AWSServiceRoleForCloudHSM. El papel estápredefinido por AWS CloudHSM e incluye los permisos que necesita AWS CloudHSM para llamar a otrosservicios de AWS en su nombre. El rol facilita la configuración del servicio, ya que no es necesario agregarmanualmente los permisos de las políticas de rol y de confianza.

La política de rol permite que AWS CloudHSM cree grupos de registro de Amazon CloudWatch Logs yflujos de registro, además de escribir eventos de registro en su nombre. Puede verlo a continuación y en laconsola de IAM.

{ "Version": "2012-10-17", "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": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudhsm.amazonaws.com" },

18

Page 24: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCreación de una VPC

"Action": "sts:AssumeRole" } ]}

Creación de un rol vinculado a un servicio (automático)AWS CloudHSM crea el rol AWSServiceRoleForCloudHSM al crear un clúster si incluye la accióniam:CreateServiceLinkedRole en los permisos definidos al crear el grupo de administradores deAWS CloudHSM. Consulte Restringir los permisos de usuario a lo estrictamente necesario para AWSCloudHSM (p. 17).

Si ya tiene uno o varios clústeres y solo desea agregar el rol AWSServiceRoleForCloudHSM, puede utilizarla consola, el comando create-cluster o la API CreateCluster para crear un clúster. A continuación, usela consola, el comando delete-cluster o la API DeleteCluster para eliminarlo. Al crear el nuevo clúster secrea el rol vinculado al servicio y lo aplica a todos los clústeres de su cuenta. También puede crear el rolmanualmente. 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 AWSCloudHSM (p. 15) para crear un clúster si solo va a crearlo para agregar el rolAWSServiceRoleForCloudHSM.

Creación de un rol vinculado a un servicio (manual)Puede utilizar la consola, la AWS CLI o la API de IAM para crear el rol vinculado al servicioAWSServiceRoleForCloudHSM. Para obtener más información, consulte Crear un rol vinculado a unservicio en la Guía del usuario de IAM.

Edición del rol vinculado a un servicioAWS CloudHSM no le permite editar el rol vinculado al servicio AWSServiceRoleForCloudHSM. Despuésde que se cree el rol, por ejemplo, no podrá cambiar su nombre porque varias entidades pueden hacerreferencia al rol por su nombre. Además, no puede cambiar la política de rol. Sin embargo, puede usarIAM para editar la descripción del rol. Para obtener más información, consulte Editar un rol vinculado a unservicio en la Guía del usuario de IAM.

Eliminación del rol vinculado a servicioNo puede eliminar un rol vinculado a servicio si todavía existe un clúster al que se haya aplicado. Paraeliminar el rol, primero debe eliminar cada HSM de su clúster y, a continuación, eliminar el clúster. Sedebe eliminar cada clúster de su cuenta. A continuación, puede utilizar la consola, la AWS CLI o la APIde IAM para eliminar el rol. Para obtener más información acerca de la eliminación de un clúster, consulteEliminación de un clúster de AWS CloudHSM (p. 44). Para obtener más información acerca de laeliminación de un rol, consulte Eliminar un rol vinculado a un servicio en la Guía del usuario de IAM.

Crear una nube virtual privada (VPC)Si aún no tiene una Virtual Private Cloud (VPC), créela ahora.

Para crear una VPC

1. Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.2. En la barra de navegación, utilice el selector de regiones para elegir una de las regiones de AWS

donde se admite AWS CloudHSM actualmente.

19

Page 25: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCrear una subred privada

3. Elija Start VPC Wizard.4. Elija la primera opción, VPC with a Single Public Subnet (VPC con una única subred pública). A

continuación, elija Select (Seleccionar).5. En VPC name:, escriba un nombre identificable, como CloudHSM. En Subnet name:, escriba un

nombre identificable, como Subred pública de CloudHSM. Deje el resto de opciones con susvalores predeterminados. A continuación, elija Create VPC. Una vez creada la VPC, elija Aceptar.

Crear una subred privadaCree una subred privada (una subred que no tenga asociado un puerto de enlace a Internet) para cadazona de disponibilidad donde desee crear un HSM. La creación de una subred privada en cada zona dedisponibilidad ofrece la configuración de alta disponibilidad más robusta.

Para crear las subredes privadas en la VPC

1. Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.2. En el panel de navegación, elija Subnets (Subredes) y, a continuación, elija Create Subnet (Crear

subred).3. En el cuadro de diálogo Create Subnet, haga lo siguiente:

a. En Name tag, escriba un nombre identificable, como Subred privada de CloudHSM.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 para la VPC en el procedimiento anterior, escriba 10.0.1.0/28.

Elija Yes, Create.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ústerUn clúster es una colección de HSM individuales. El AWS CloudHSM sincronizará los HSM en cada clústerpara que funcionen como una unidad lógica.

Important

Cuando crea un clúster, el AWS CloudHSM crea un rol vinculado al servicio denominadoAWSServiceRoleForCloudHSM. Si el AWS CloudHSM no puede crear el rol, o el rol no existe,es posible que no pueda crear un clúster. Para obtener más información, consulte Solución deerrores de creación de clústeres (p. 263). Para obtener más información acerca de los rolesvinculados a servicios, consulte Descripción de los roles vinculados a servicios (p. 18).

Cuando crea un clúster, AWS CloudHSM crea un grupo de seguridad para el clúster en su nombre. Estegrupo de seguridad controla el acceso de red a los HSM del clúster. Permite las conexiones entrantes solodesde 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, puede lanzar unainstancia de cliente (p. 22) y agregarla a este grupo de seguridad.

Warning

El grupo de seguridad del clúster impide el acceso no autorizado a sus HSM. Cualquier usuarioque puede obtener acceso a las instancias del grupo de seguridad también puede obtener acceso

20

Page 26: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCrear un clúster

a sus HSM. La mayoría de las operaciones requieren que un usuario inicie sesión en el HSM,pero es posible poner a cero los HSM sin autenticación, lo que destruye el material de claves, loscertificados y otros datos. Si sucede esto, los datos creados o modificados después del backupmás reciente se pierden y no se pueden recuperar. Para evitarlo, asegúrese de que solo losadministradores de confianza pueden obtener acceso a las instancias del grupo de seguridad delclúster o modificar el grupo de seguridad.

Puede crear un clúster a partir de la consola de AWS CloudHSM, la AWS Command Line Interface (AWSCLI) o la API de AWS CloudHSM.

Para crear un clúster (consola)

1. Open the AWS CloudHSM console at https://console.aws.amazon.com/cloudhsm/.2. En la barra de navegación, utilice el selector de regiones para elegir una de las regiones de AWS

donde se admite AWS CloudHSM actualmente.3. Elija Create cluster.4. En la sección Cluster configuration, haga lo siguiente:

a. En VPC, seleccione la VPC que ha creado.b. En AZ(s) (Zonas de disponibilidad), junto a cada zona de disponibilidad, elija la subred privada

que ha creado.5. Elija Next: Review.6. Revise la configuración del clúster y, a continuación, elija Create cluster (Crear clúster).

Para crear un clúster (AWS CLI)

• En el símbolo del sistema, ejecute el comando create-cluster. Especifique el tipo de instancia deHSM y los ID de subred de las subredes donde piensa crear los HSM. Utilice los ID de las subredesprivadas que ha creado. Especifique solo una subred por zona de disponibilidad.

$ aws cloudhsmv2 create-cluster --hsm-type hsm1.medium --subnet-ids <subnet ID 1> <subnet ID 2> <subnet ID N>

{ "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 }}

Para crear un clúster (API de AWS CloudHSM)

• Envíe una solicitud CreateCluster. Especifique el tipo de instancia de HSM y los ID de subred delas subredes donde piensa crear los HSM. Utilice los ID de las subredes privadas que ha creado.Especifique solo una subred por zona de disponibilidad.

21

Page 27: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioLanzar un cliente EC2

Si sus intentos de crear un clúster fallan, podría estar relacionado con problemas con roles vinculados aservicios de AWS CloudHSM. Para ayudar a resolver el error, consulte Solución de errores de creación declústeres (p. 263).

Lanzar una instancia de cliente de Amazon EC2Para interactuar con y administrar su clúster de AWS CloudHSM e instancias de HSM, debe podercomunicarse con las interfaces de red elásticas de los HSM. La forma más sencilla de hacer esto es utilizaruna instancia Amazon EC2 en la misma VPC que su clúster (ver a continuación). También puede utilizarlos siguientes recursos de AWS para conectarse a su clúster:

• Interconexión de Amazon VPC• AWS Direct Connect• Conexiones de VPN

Lanzar un cliente EC2La documentación de AWS CloudHSM normalmente supone que está utilizando una instancia EC2 en lamisma VPC y zona de disponibilidad (AZ) en la que se crea el clúster.

Para crear una instancia de cliente de Amazon EC2

1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.2. Elija Launch instance (Lanzar instancia) en el EC2 Dashboard (Panel de EC2).3. Seleccione una imagen de máquina de Amazon (AMI). Elija una AMI de Linux o una AMI de Windows

Server.4. Elija un tipo de instancia y, a continuación, elija Next: Configure Instance Details (Siguiente: Configurar

detalles de la instancia).5. En Red, elija la VPC que ha creado anteriormente para el clúster.6. En Subnet (Subred), elija la subred pública que ha creado para la VPC.7. En Auto-assign Public IP, elija Enable.8. Elija Next: Add Storage (Siguiente: Añadir almacenamiento) y configure el almacenamiento.9. Elija Next: Add Tags (Siguiente: Añadir etiquetas) y añada los pares de nombre-valor que desee

asociar a la instancia. Le recomendamos que al menos agregue un nombre. Elija Agregar etiqueta yescriba un nombre para Clave y hasta 255 caracteres para Valor.

10. Elija Next: Configure Security Group.11. Seleccione un grupo de seguridad. Puede seleccionar el grupo de seguridad predeterminado que

se creó para usted al crear su clúster. O bien, puede seleccionar un grupo de seguridad existentediferente o crear uno nuevo.

Note

Para conectarse a una instancia EC2 de Windows Server, debe configurar una de las Reglasentrantes en RDP (3389) para permitir el tráfico TCP entrante en el puerto 3389. Paraconectarse a una instancia EC2 de Linux, debe configurar una de las Reglas entrantes enSSH (22) para permitir el tráfico TCP entrante en el puerto 22. Especifique las direccionesIP de origen que pueden conectarse a la instancia. No debe especificar 0.0.0.0/0 porquecualquier usuario obtendrá acceso a la instancia.Si desea que la instancia EC2 pueda conectarse a Internet, establezca las Outbound Rules(Reglas salientes) en su grupo de seguridad para permitir ALL Traffic (Todo el tráfico) entodos los puertos a un destino de 0.0.0.0/0.

22

Page 28: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCrear un HSM

No puede editar grupos de seguridad en esta página. Para establecer reglas de entrada ysalida, cree un nuevo grupo de seguridad o use la consola de Amazon EC2 para actualizarsus reglas de grupos de seguridad.

12. Elija Review and Launch.

Para obtener más información acerca de la creación de un cliente de Linux Amazon EC2, consulteIntroducción a las instancias Amazon EC2 Linux. Para obtener información acerca de la conexión al clienteen ejecución, consulte los siguientes temas:

• Conexión a la instancia de Linux mediante SSH• Conexión a la instancia Linux desde Windows utilizando PuTTY

Para obtener más información acerca de la creación de un cliente de Windows Amazon EC2, consulteIntroducción a las instancias Amazon EC2 Windows. Para obtener más información acerca de cómoconectarse a su cliente de Windows, consulte Conectarse a su instancia de Windows.

Tenga en cuenta que puede utilizar su instancia EC2 para ejecutar todos los comandos de la AWS CLIincluidos en esta guía. Si la AWS CLI no está instalada, puede descargarla desde AWS Command LineInterface. Si utiliza Windows, puede descargar y ejecutar un instalador de Windows de 64 o 32 bits. Siutiliza Linux o macOS, puede instalar la CLI con pip.

Para comunicarse con los HSM del clúster, debe instalar el software de cliente de AWS CloudHSM en lainstancia. Para obtener más información si utiliza Linux, consulte Instalar el cliente (Linux) (p. 34). Paraobtener más información si utiliza Windows, consulte Instalación del cliente de (Windows) (p. 36).

Crear un HSMDespué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áginade 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 a partirde la consola de AWS CloudHSM la AWS CLI o la API de AWS CloudHSM.

Para crear un HSM (consola)

1. Open the AWS CloudHSM console at https://console.aws.amazon.com/cloudhsm/.2. Elija Initialize junto al clúster que creó anteriormente.3. Elija una zona de disponibilidad (AZ) para el HSM que está creando. A continuación, elija Create.

Para crear un HSM (AWS CLI)

• En el símbolo del sistema, ejecute el comando create-hsm. Especifique el ID del clúster que ha creadoanteriormente y una zona de disponibilidad para el HSM. Especifique la zona de disponibilidad con elformato us-west-2a, us-west-2b, etc.

$ aws cloudhsmv2 create-hsm --cluster-id <cluster ID> --availability-zone <Availability Zone>

{ "Hsm": { "HsmId": "hsm-ted36yp5b2x", "EniIp": "10.0.1.12", "AvailabilityZone": "us-west-2a",

23

Page 29: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioVerificar la identidad del HSM (opcional)

"ClusterId": "cluster-igklspoyj5v", "EniId": "eni-5d7ade72", "SubnetId": "subnet-fd54af9b", "State": "CREATE_IN_PROGRESS" }}

Para crear un HSM (API de AWS CloudHSM)

• Envíe una solicitud CreateHsm. Especifique el ID del clúster que ha creado anteriormente y una zonade 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. 24), ocontinuar directamente en Inicializar el clúster (p. 30).

Verificar la identidad y la autenticidad del HSM deun clúster (opcional)

Para inicializar el clúster, debe firmar una solicitud de firma de certificado (CSR) generada por el primerHSM del clúster. Antes de hacerlo, es posible que desee verificar la identidad y la autenticidad del HSM.

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 overificar los HSM.

Temas• Información general (p. 24)• Obtener los certificados del HSM (p. 26)• Obtener los certificados raíz (p. 27)• Verificar las cadenas de certificados (p. 27)• Extraer y comparar las claves públicas (p. 28)• Certificado raíz de AWS CloudHSM (p. 29)

Información generalPara 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 elHSM. También obtendrá dos certificados raíz, uno de AWS CloudHSM y otro del fabricante de hardwaredel HSM.

2. Verificar las cadenas de certificados (p. 27): en este paso, creará dos cadenas de certificados, unapara el certificado raíz de AWS CloudHSM y otra para el certificado raíz del fabricante. A continuación,verificará el certificado del HSM con estas cadenas de certificados para determinar que tanto AWSCloudHSM como el fabricante de hardware certifican la identidad y la autenticidad del HSM.

3. Comparar las claves públicas (p. 28): en este paso, extraerá y comparará las claves públicas delcertificado del HSM y de la CSR del clúster, para asegurarse de que sean las mismas. Esto deberíadarle la seguridad de que la CSR fue generada por un HSM auténtico y de confianza.

24

Page 30: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInformación general

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.

Certificado raíz de AWS

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. 29).

Certificado raíz del fabricante

Este es el certificado raíz del fabricante del hardware. Puede ver y descargar este certificado enhttps://www.cavium.com/LS/TAmanuCert/.

Certificado de hardware de AWS

AWS CloudHSM creó este certificado cuando reclamó el hardware del HSM. Este certificado confirmaque 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. Estecertificado confirma que el fabricante creó el hardware.

25

Page 31: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioObtener los certificados del HSM

Certificado del HSM

El certificado del HSM es generado por el hardware validado por FIPS cuando crea el primer HSM enel 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. 31), solicita el clúster. Acontinuación, puede utilizar la CSR firmada para inicializar el clúster (p. 33).

Obtener los certificados del HSMPara verificar la identidad y la autenticidad del HSM, empiece por obtener una CSR y cinco certificados.Puede obtener tres de los certificados del HSM y puede hacerlo con la consola de AWS CloudHSM, laAWS Command Line Interface (AWS CLI) o la API de AWS CloudHSM.

Para obtener la CSR y los certificados del HSM (consola)

1. Open the AWS CloudHSM console at https://console.aws.amazon.com/cloudhsm/.2. Elija Initialize junto al clúster que creó anteriormente.3. Cuando los certificados y la CSR estén listos, verá enlaces para descargarlos.

Elija los enlaces necesarios para descargar y guardar la CSR y los certificados. Para simplificar lospasos posteriores, guarde todos los archivos en el mismo directorio y utilice los nombres de archivopredeterminados.

Para obtener los certificados de CSR y HSM (AWS CLI)

• En el símbolo del sistema, ejecute cuatro veces el comando describe-clusters para extraer la CSR ycada uno de los certificados y guárdelos en archivos.

a. Escriba el siguiente comando para extraer la CSR del clúster. Sustituya <cluster ID> por el IDdel clúster que creó anteriormente.

$ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \ --output text \ --query 'Clusters[].Certificates.ClusterCsr' \

26

Page 32: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioObtener los certificados raíz

> <cluster ID>_ClusterCsr.csr

b. Escriba el siguiente comando para extraer el certificado del HSM. Sustituya <cluster ID> porel ID del clúster que creó anteriormente.

$ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \ --output text \ --query 'Clusters[].Certificates.HsmCertificate' \ > <cluster ID>_HsmCertificate.crt

c. Escriba el siguiente comando para extraer el certificado de hardware de AWS. Sustituya<cluster ID> por el ID del clúster que creó anteriormente.

$ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \ --output text \ --query 'Clusters[].Certificates.AwsHardwareCertificate' \ > <cluster ID>_AwsHardwareCertificate.crt

d. Escriba el siguiente comando para extraer el certificado de hardware del fabricante. Sustituya<cluster ID> por el ID del clúster que creó anteriormente.

$ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \ --output text \ --query 'Clusters[].Certificates.ManufacturerHardwareCertificate' \ > <cluster ID>_ManufacturerHardwareCertificate.crt

Para obtener los certificados de CSR y HSM (API del AWS CloudHSM)

• Envíe una solicitud DescribeClusters y, a continuación, extraiga y guarde la CSR y los certificados dela respuesta.

Obtener los certificados raízSiga estos pasos para obtener los certificados raíz de AWS CloudHSM y del fabricante. Guarde losarchivos del certificado raíz en el directorio que contiene los archivos de los certificados de la CSR y delHSM.

Para obtener los certificados raíz de AWS CloudHSM y del fabricante

1. Vaya a https://docs.aws.amazon.com/cloudhsm/latest/userguide/root-certificate.html (p. 29) yseleccione AWS_CloudHSM_Root-G1.zip. Después de descargar el archivo, extraiga (descomprima)su contenido.

2. Vaya a https://www.cavium.com/LS/TAmanuCert/ y seleccione Download Certificate. Es posibleque tenga que hacer clic con el botón derecho del ratón en el enlace Download Certificate y, acontinuación, elegir Save Link As... para guardar el archivo del certificado.

Verificar las cadenas de certificadosEn este paso, construye dos cadenas de certificados, una para el certificado raíz de AWS CloudHSM y otrapara el certificado raíz del fabricante. A continuación, utilice OpenSSL para verificar el certificado del HSMcon cada una de las cadenas de certificados.

27

Page 33: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioExtraer y comparar las claves públicas

Para crear cadenas de certificados, abra un shell de Linux. Necesita OpenSSL, que está disponible enla mayoría de los shells de Linux, y necesita el certificado raíz (p. 27) y los archivos del certificado delHSM (p. 26) que descargó. Sin embargo, no necesita el AWS CLI para este paso y no es necesarioasociar el shell a la cuenta de AWS.

Note

Para verificar la cadena del certificado, utilice OpenSSL 1.0. Debido a un cambio en la verificacióndel certificado OpenSSL, las siguientes instrucciones no funcionan con OpenSSL 1.1.

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. 27) y los archivos del certificadodel HSM (p. 26) que descargó. Los siguientes comandos presuponen que todos los certificados seencuentran 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 dehardware de AWS y el certificado raíz de AWS CloudHSM, en ese orden. Sustituya <cluster ID>por el ID del clúster que creó anteriormente.

$ cat <cluster ID>_AwsHardwareCertificate.crt \ AWS_CloudHSM_Root-G1.crt \ > <cluster ID>_AWS_chain.crt

2. Utilice el siguiente comando de OpenSSL para verificar el certificado del HSM con la cadena decertificados de AWS. Sustituya <cluster ID> por el ID del clúster que creó anteriormente.

$ openssl verify -CAfile <cluster ID>_AWS_chain.crt <cluster ID>_HsmCertificate.crt<cluster ID>_HsmCertificate.crt: OK

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 dehardware del fabricante y el certificado raíz del fabricante, en ese orden. Sustituya <cluster ID> porel ID del clúster que creó anteriormente.

$ cat <cluster ID>_ManufacturerHardwareCertificate.crt \ cavium_cert.crt \ > <cluster ID>_manufacturer_chain.crt

2. Utilice el siguiente comando de OpenSSL para verificar el certificado del HSM con la cadena decertificados del fabricante. Sustituya <cluster ID> por el ID del clúster que creó anteriormente.

$ openssl verify -CAfile <cluster ID>_manufacturer_chain.crt <cluster ID>_HsmCertificate.crt<cluster ID>_HsmCertificate.crt: OK

Extraer y comparar las claves públicasUtilice OpenSSL para extraer y comparar las claves públicas del certificado del HSM y de la CSR delclúster, con objeto de asegurarse de que sean las mismas.

Para comparar las claves públicas, utilice el shell de Linux. Necesita OpenSSL, que está disponible en lamayoría de los shells de Linux, pero no necesita la AWS CLI para este paso. No es necesario asociar elshell a su cuenta de AWS.

28

Page 34: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCertificado raíz de AWS CloudHSM

Para extraer y comparar las claves públicas

1. Utilice el siguiente comando para extraer la clave pública del certificado del HSM.

$ openssl x509 -in <cluster ID>_HsmCertificate.crt -pubkey -noout > <cluster ID>_HsmCertificate.pub

2. Utilice el siguiente comando para extraer la clave pública de la CSR del clúster.

$ openssl req -in <cluster ID>_ClusterCsr.csr -pubkey -noout > <cluster ID>_ClusterCsr.pub

3. Utilice el siguiente comando para comparar las claves públicas. Si las claves públicas son idénticas, elsiguiente comando no devuelve ningún resultado.

$ diff <cluster ID>_HsmCertificate.pub <cluster ID>_ClusterCsr.pub

Después de verificar la identidad y autenticidad del HSM, continúe con Inicializar el clúster (p. 30).

Certificado raíz de AWS CloudHSMDescargue el certificado raíz de AWS CloudHSM: AWS_CloudHSM_Root-G1.zip.

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:

29

Page 35: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInicializar el 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

X509v3 Basic Constraints: CA:TRUE Signature Algorithm: sha256WithRSAEncryption 71:ff:e5:46:27:9c:d0:85:97:5e:c0:82:9a:d4:1b:48:96:75: 2a:40:32:07:80:95:c5:eb:26:1b:46:37:7e:86:12:99:68:b1: 15:bb:f5:55:85:6f:a2:e4:28:70:47:73:07:84:fc:12:28:cc: 8b:3e:b8:f6:60:85:bb:23:6a:cb:6e:a7:ed:82:7e:ed:64:9c: c1:df:c8:51:db:b9:a4:76:ee:ba:53:aa:e7:30:86:74:5e:be: 2f:1a:c1:88:30:c4:61:02:50:9f:c9:80:7b:7e:f5:1e:49:c8: 6c:1a:39:00:4d:98:1e:21:26:4a:02:f5:d5:3e:6c:47:d9:9c: 94:6f:d7:25:2e:1d:7c:a3:18:ee:8a:32:8a:15:f3:85:39:76: c3:b9:ba:4e:58:0c:5b:65:44:2e:eb:ab:6c:27:9a:a6:67:df: 22:d4:81:02:2e:c6:34:1b:fe:55:31:8b:d5:73:57:d8:0e:0d: 5a:27:7d:ce:3d:3b:84:80:b3:32:00:e0:6a:f0:32:8a:85:2a: f8:de:20:bf:65:f7:c9:a8:42:c9:cb:fa:03:d4:10:29:5e:25: 63:a5:71:06:2e:72:78:8a:05:c3:f9:56:e9:b1:e4:2b:6e:f7: 46:5d:b3:12:ed:14:2a:51:d4:56:56:48:ab:7d:fe:d6:49:af: d6:8e:84:62

Inicializar el clústerComplete los pasos de los siguientes temas para inicializar el clúster de AWS CloudHSM.

Note

Antes de inicializar el clúster, revise el proceso mediante el cual se puede verificar la identidady autenticidad de los HSM (p. 24). Este proceso es opcional y solo funciona hasta que seinicializa un clúster. Una vez que se inicializa el clúster, no puede utilizar este proceso paraobtener sus certificados o verificar los HSM.

Temas• Obtener el CSR del clúster (p. 30)• Firmar la CSR (p. 31)• Inicializar el clúster (p. 33)

Obtener el CSR del clústerPara poder inicializar el clúster, debe descargar y firmar una solicitud de firma de certificado (CSR)generada por el primer HSM del clúster. Si ha seguido los pasos para verificar la identidad del HSM delclúster (p. 24), ya tiene la CSR y puede firmarla. De lo contrario, obtenga la CSR ahora mediante laconsola de AWS CloudHSM, el AWS Command Line Interface (AWS CLI) o la API de AWS CloudHSM.

Para obtener la CSR (consola)

1. Open the AWS CloudHSM console at https://console.aws.amazon.com/cloudhsm/.

30

Page 36: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioFirmar la CSR

2. Elija Initialize junto al clúster que creó anteriormente (p. 20).3. Cuando la CSR esté lista, verá un enlace para descargarla.

Elija Cluster CSR para descargar y guardar la CSR.

Para obtener la CSR (AWS CLI)

• En un símbolo del sistema, ejecute el siguiente comando describe-clusters, que extrae laCSR y la guarda en un archivo. Sustituya <cluster ID> por el ID del clúster que creóanteriormente (p. 20).

$ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \ --output text \ --query 'Clusters[].Certificates.ClusterCsr' \ > <cluster ID>_ClusterCsr.csr

Para obtener la CSR (API de AWS CloudHSM)

1. Envíe una solicitud DescribeClusters request.2. Extraiga y guarde la CSR de la respuesta.

Firmar la CSRActualmente, debe crear un certificado de firma autofirmado y utilizarlo para firmar la CSR del clúster. Nonecesita la AWS CLI de para este paso y no es necesario asociar el shell a la cuenta de AWS. Para firmarla CSR, haga lo siguiente:

1. Obtenga la CSR (consulte Obtener el CSR del clúster (p. 30)).2. Crear un clave privada.3. Utilice la clave privada para crear un certificado de firma.4. Firme la CSR del clúster.

31

Page 37: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioFirmar la CSR

Crear un clave privadaUtilice el siguiente comando para crear una clave privada. Para un clúster de producción, la clave debecrearse de forma segura mediante una fuente de aleatoriedad de confianza. Recomendamos que utiliceun HSM externo seguro que esté sin conexión o equivalente. Guarde la clave de forma segura. Si puededemostrar que es el propietario de la clave, también puede demostrar que es el propietario del clúster y delos datos que contiene.

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, el certificado debeestar disponible, pero la clave privada no. La clave solo se utiliza para fines específicos como, por ejemplo,la restauración a partir de una copia de seguridad.

$ openssl genrsa -aes256 -out customerCA.key 2048Generating RSA private key, 2048 bit long modulus........+++............+++e is 65537 (0x10001)Enter pass phrase for customerCA.key:Verifying - Enter pass phrase for customerCA.key:

Utilizar la clave privada para crear un certificado autofirmadoEl hardware de confianza que se utiliza para crear la clave privada del clúster de producción también debeproporcionar una herramienta de software para generar un certificado autofirmado con dicha clave. Enel ejemplo siguiente se utiliza OpenSSL y la clave privada que ha creado en el paso anterior para crearun certificado de firma. El certificado es válido durante 10 años (3652 días). Lea las instrucciones queaparecen en pantalla y siga las indicaciones.

$ openssl req -new -x509 -days 3652 -key customerCA.key -out customerCA.crtEnter pass phrase for customerCA.key:You are about to be asked to enter information that will be incorporatedinto 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 blankFor 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 []:

Este comando crea un archivo de certificado denominado customerCA.crt. Ponga este certificado encada host desde el que se conectará con el clúster de AWS CloudHSM. Si asigna otro nombre al archivoo lo almacenarla en una ruta distinta de la raíz del host, debe editar el archivo de configuración del clientesegún sea necesario. Utilice el certificado y la clave privada que acaba de crear para firmar la solicitud defirma de certificado (CSR) del clúster en el paso siguiente.

32

Page 38: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInicializar el clúster

Firmar la CSR del clústerEl hardware de confianza que se utiliza para crear la clave privada del clúster de producción también debeproporcionar una herramienta para firmar la CSR con dicha clave. En el siguiente ejemplo se usa OpenSSLpara firmar la CSR del clúster. En el ejemplo se utiliza la clave privada y el certificado autofirmado que hacreado en el paso anterior.

$ openssl x509 -req -days 3652 -in <cluster ID>_ClusterCsr.csr \ -CA customerCA.crt \ -CAkey customerCA.key \ -CAcreateserial \ -out <cluster ID>_CustomerHsmCertificate.crtSignature oksubject=/C=US/ST=CA/O=Cavium/OU=N3FIPS/L=SanJose/CN=HSM:<HSM identifer>:PARTN:<partition number>, for FIPS modeGetting CA Private KeyEnter pass phrase for customerCA.key:

Este comando crea un archivo denominado <cluster ID>_CustomerHsmCertificate.crt. Utiliceeste archivo como el certificado firmado al inicializar el clúster.

Inicializar el clústerUse el certificado HSM firmado y su certificado de firma para inicializar el clúster. Puede utilizar la consolede AWS CloudHSM, la AWS CLI o la API de AWS CloudHSM.

Para inicializar el clúster (consola)

1. Open the AWS CloudHSM console at https://console.aws.amazon.com/cloudhsm/.2. Elija Initialize junto al clúster que creó anteriormente.3. En la página de descarga de solicitud de firma de certificado, elija Next (Siguiente). Si la opción Next

no está disponible, primero elija uno de los enlaces de certificados o de CSR. A continuación, elijaNext.

4. En la página Sign certificate signing request (CSR), elija Next.5. En la página Upload the certificates, haga lo siguiente:

a. Junto a Cluster certificate, elija Upload file. A continuación, localice y seleccione el certificadodel HSM que firmó anteriormente. Si ha realizado los pasos de la sección anterior, seleccione elarchivo <cluster ID>_CustomerHsmCertificate.crt.

b. Junto a Issuing certificate, elija Upload file. A continuación, seleccione el certificado de firma. Si harealizado los pasos de la sección anterior, seleccione el archivo customerCA.crt.

c. Elija Upload and initialize.

Para inicializar un clúster (AWS CLI)

• En el símbolo del sistema, ejecute el comando initialize-cluster. Proporcione lo siguiente:

• El ID del clúster que ha creado anteriormente.• El certificado del HSM que firmó anteriormente. Si ha realizado los pasos de la sección anterior, se

encuentra en un archivo denominado <cluster ID>_CustomerHsmCertificate.crt.• Su certificado de firma. Si ha realizado los pasos de la sección anterior, el certificado de firma se

guarda en un archivo denominado customerCA.crt.

$ aws cloudhsmv2 initialize-cluster --cluster-id <cluster ID> \

33

Page 39: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInstalar el cliente (Linux)

--signed-cert file://<cluster ID>_CustomerHsmCertificate.crt \ --trust-anchor file://customerCA.crt{ "State": "INITIALIZE_IN_PROGRESS", "StateMessage": "Cluster is initializing. State will change to INITIALIZED upon completion."}

Para inicializar un clúster (API de AWS CloudHSM)

• Envíe una solicitud InitializeCluster con lo siguiente:

• El ID del clúster que ha creado anteriormente.• El certificado del HSM que firmó anteriormente.• Su certificado de firma.

Instalar y configurar el cliente de AWS CloudHSM(Linux)

Para interactuar con el HSM de un clúster de AWS CloudHSM, necesita el software de cliente de AWSCloudHSM para Linux. Debe instalarlo en la instancia de cliente de Linux EC2 que creó anteriormente.También puede instalar un cliente si utiliza Windows. Para obtener más información, consulte Instalar yconfigurar el cliente de AWS CloudHSM (Windows) (p. 36).

Temas• Instalar el cliente y las herramientas de línea de comandos de AWS CloudHSM (p. 34)• Editar la configuración del cliente (p. 36)

Instalar el cliente y las herramientas de línea decomandos de AWS CloudHSMRealice los pasos del siguiente procedimiento para instalar el cliente y las herramientas de línea decomandos de AWS CloudHSM.

Para instalar (o actualizar) el cliente y las herramientas de línea de comandos

1. Conéctese a su instancia de cliente.2. Utilice los siguientes comandos para descargar y, a continuación, instalar el cliente y las herramientas

de línea de comandos.

Amazon Linux

wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/AmazonLinux/cloudhsm-client-latest.amzn1.x86_64.rpm

sudo yum install -y ./cloudhsm-client-latest.amzn1.x86_64.rpm

34

Page 40: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInstalar el cliente y las herramientas delínea de comandos de AWS CloudHSM

Amazon Linux 2

wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/AmazonLinux2/cloudhsm-client-latest.amzn2.x86_64.rpm

sudo yum install -y ./cloudhsm-client-latest.amzn2.x86_64.rpm

CentOS6

sudo yum install wget

wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-latest.el6.x86_64.rpm

sudo yum install -y ./cloudhsm-client-latest.el6.x86_64.rpm

CentOS 7

sudo yum install wget

wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-latest.el7.x86_64.rpm

sudo yum install -y ./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

sudo yum install -y ./cloudhsm-client-latest.el6.x86_64.rpm

RHEL 7

sudo yum install wget

wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-latest.el7.x86_64.rpm

sudo yum install -y ./cloudhsm-client-latest.el7.x86_64.rpm

Ubuntu 16.04 LTS

wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-client_latest_amd64.deb

sudo dpkg -i cloudhsm-client_latest_amd64.deb

35

Page 41: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioEditar la configuración del cliente

Editar la configuración del clientePara poder utilizar el de cliente de AWS CloudHSM para conectarse a su clúster, debe editar laconfiguración del cliente.

Para editar la configuración del cliente

1. Copie el certificado de emisión (el que utilizó para firmar el certificado del clúster (p. 31)) en lasiguiente ubicación en la instancia del cliente: /opt/cloudhsm/etc/customerCA.crt. Necesitapermisos de usuario Usuario de la cuenta raíz de AWS en la instancia de cliente para copiar elcertificado en esta ubicación.

2. Utilice el siguiente comando configure (p. 171) para actualizar los archivos de configuración parael cliente y las herramientas de línea de comandos de AWS CloudHSM, especificando la direcciónIP del HSM del clúster. Para obtener la dirección IP del HSM, vea el clúster en la consola de AWSCloudHSM o ejecute el comando de la AWS CLI describe-clusters. En la salida del comando, ladirección IP del HSM es el valor del campo EniIp. Si tiene más de un HSM, elija la dirección IP decualquiera de ellos; no importa el que elija.

sudo /opt/cloudhsm/bin/configure -a <IP address> Updating server config in /opt/cloudhsm/etc/cloudhsm_client.cfgUpdating server config in /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg

3. Vaya a Activar el clúster (p. 37).

Instalar y configurar el cliente de AWS CloudHSM(Windows)

Para interactuar con un HSM de un clúster de AWS CloudHSM, necesita el software de cliente de AWSCloudHSM para Windows. Debe instalarlo en la instancia de Windows Server que creó anteriormente.También puede instalar un cliente si utiliza Linux. Para obtener más información, consulte Instalar yconfigurar el cliente de AWS CloudHSM (Linux) (p. 34).

Para instalar (o actualizar) el cliente y las herramientas de línea de comandos

1. Conéctese a su instancia de Windows Server.2. Descargue el instalador AWSCloudHSMClient.msi.3. Vaya a la ubicación de descarga y ejecute el instalador AWSCloudHSMClient.msi. Siga las

instrucciones del instalador.Important

Debe ejecutar el instalador con privilegios administrativos.

El instalador registra de forma automática la API de criptografía: proveedores de almacenamientode claves (KSP) de nueva generación (CNG) para AWS CloudHSM. Para desinstalar el software decliente de AWS CloudHSM para Windows, vuelva a ejecutar el instalador y siga las instrucciones.

4. Elija Cerrar cuando haya finalizado el instalador.

El instalador copia los siguientes archivos ejecutables en la carpeta C:\Program Files\Amazon\CloudHSM:

• cloudhsm_client.exe

• cloudhsm_mgmt_util.exe

36

Page 42: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioActivar el clúster

• cng_config.exe

• configure.exe

• key_mgmt_util.exe

• ksp_config.exe

• pkpspeed_blocking.exe

El instalador copia los siguientes archivos de certificado y claves en la carpeta C:\ProgramData\Amazon\CloudHSM:

• client.crt

• client.key

El instalador copia los siguientes archivos de configuración en la carpeta C:\ProgramData\Amazon\CloudHSM\data:

• application.cfg

• cloudhsm_client.cfg

• cloudhsm_mgmt_util.cfg

5. Copie el certificado de emisión autofirmado (el que utilizó para firmar el certificado delclúster (p. 31)) en la carpeta C:\ProgramData\Amazon\CloudHSM.

6. Ejecute el siguiente comando para actualizar los archivos de configuración:

c:\Program Files\Amazon\CloudHSM>configure.exe -a <HSM IP address>

7. Vaya a Activar el clúster (p. 37).

Activar el clústerCuando se activa un clúster de AWS CloudHSM, su estado cambia de inicializado a activo. A continuación,es posible administrar los usuarios de HSM (p. 50) y utilizar el HSM (p. 175).

Para activar el clúster, inicie sesión en el HSM con las credenciales del usuario responsable de criptografíaprevia (PRECO) (p. 10). Es un usuario temporal que solo existe en el primer HSM de un clúster deAWS CloudHSM. El primer HSM de un nuevo clúster contiene un usuario PRECO predeterminado conun nombre de usuario y contraseña predeterminados. Al cambiar la contraseña, el usuario PRECO seconvierte en un responsable de criptografía (CO).

Para activar un clúster

1. Establezca conexión con la instancia cliente que lanzó anteriormente. Para obtener más información,consulte Lanzar una instancia de cliente de Amazon EC2 (p. 22). Puede lanzar una instancia deLinux o Windows Server.

2. Use el siguiente comando para iniciar la utilidad de la línea de comandos cloudhsm_mgmt_util.

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

37

Page 43: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioActivar el clúster

Windows

c:\Program Files\Amazon\CloudHSM>cloudhsm_mgmt_util.exe c:\ProgramData\Amazon\CloudHSM\data\cloudhsm_mgmt_util.cfg

3. Utilice el comando enable_e2e para habilitar el cifrado integral.

aws-cloudhsm>enable_e2e

E2E enabled on server 0(server1)

4. (Opcional) Utilice el comando listUsers para mostrar los usuarios existentes.

aws-cloudhsm>listUsersUsers on server 0(server1):Number of users found:2

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PRECO admin NO 0 NO 2 AU app_user NO 0 NO

5. Utilice el comando loginHSM para iniciar sesión en el HSM como usuario PRECO. Es un usuariotemporal que existe en el primer HSM de su clúster.

aws-cloudhsm>loginHSM PRECO admin password

loginHSM success on server 0(server1)

6. Ejecute el comando changePswd para cambiar la contraseña del usuario PRECO. Al cambiar lacontraseña, el usuario PRECO se convierte en un responsable de criptografía (CO).

aws-cloudhsm>changePswd PRECO admin <NewPassword>

*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?yChanging password for admin(PRECO) on 1 nodes

Le recomendamos que anote la contraseña nueva en una hoja de cálculo de contraseñas. No pierdala 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 quedespués la guarde en un lugar seguro. También es conveniente que guarde una copia de esta hoja decá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 responsablede criptografía (CO) (p. 11).

aws-cloudhsm>listUsers

38

Page 44: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReconfigurar SSL (opcional)

Users on server 0(server1):Number of users found:2

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 CO admin NO 0 NO 2 AU app_user NO 0 NO

8. Utilice el comando quit para detener la herramienta cloudhsm_mgmt_util.

aws-cloudhsm>quit

Reconfigurar SSL con un nuevo certificado y claveprivada (opcional)

AWS CloudHSM utiliza un certificado SSL para establecer una conexión con un HSM. Al instalar elcliente, se incluyen una clave predeterminada y un certificado SSL. Sin embargo, puede crear y usarlos suyos. Tenga en cuenta que necesitará el certificado autofirmado (customerCA.crt) que creó alinicializar (p. 32) el clúster.

Para reconfigurar SSL con un nuevo certificado y clave privada

1. Cree una clave privada con el siguiente comando de OpenSSL:

genrsa -aes256 -out ssl-client.key 2048Generating RSA private key, 2048 bit long modulus........+++............+++e is 65537 (0x10001)Enter pass phrase for customerCA.key:Verifying - Enter pass phrase for customerCA.key:

2. Utilice el siguiente comando de OpenSSL para crear una solicitud de firma de certificado (CSR). Se leharán varias preguntas sobre su certificado.

req -new -sha256 -key ssl-client.key -out ssl-client.csrEnter pass phrase for ssl-client.key:You are about to be asked to enter information that will be incorporatedinto 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 blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:State or Province Name (full name) []:Locality Name (eg, city) [Default City]:Organization Name (eg, company) [Default Company Ltd]:Organizational Unit Name (eg, section) []:Common Name (eg, your name or your server's hostname) []:Email Address []: Please enter the following 'extra' attributesto be sent with your certificate requestA challenge password []:

39

Page 45: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReconfigurar SSL (opcional)

An optional company name []:

3. Firme la CSR con el certificado customerCA.crt que creó al inicializar el clúster.

x509 -req -days 3652 -in ssl-client.csr \ -CA customerCA.crt \ -CAkey customerCA.key \ -CAcreateserial \ -out ssl-client.crtSignature oksubject=/C=US/ST=WA/L=Seattle/O=Example Company/OU=salesGetting CA Private Key

4. Copie la clave y el certificado en el directorio adecuado. En Linux, utilice los siguientes comandos. Laopción configure --ssl está disponibles con la versión 1.0.14 del cliente de AWS CloudHSM.

sudo cp ssl-client.crt /opt/cloudhsm/etc/sudo cp ssl-client.key /opt/cloudhsm/etc/sudo /opt/cloudhsm/bin/configure --ssl --pkey /opt/cloudhsm/etc/ssl-client.key --cert /opt/cloudhsm/etc/ssl-client.crt

5. Agregue el certificado customerCA.crt al almacén de confianza. Cree un hash del nombre delfirmante del certificado. De este modo se crea un índice que permite que busque el certificado por esenombre. Cree un archivo que contenga el certificado con el nombre de hash.

x509 -in /opt/cloudhsm/etc/customerCA.crt -hash | head -n 11234abcdsudo cp /opt/cloudhsm/etc/customerCA.crt /opt/cloudhsm/etc/certs/1234abcd.0

40

Page 46: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAgregar o eliminar HSM

Administración de clústeres de AWSCloudHSM

Puede administrar sus clústeres de AWS CloudHSM desde la consola de AWS CloudHSM o desde unode los SDK de AWS o herramientas de línea de comandos. Para obtener más información, consulte lossiguientes temas.

Para crear un clúster, consulte Introducción (p. 15).

Temas• Agregar o eliminar HSM en un clúster de AWS CloudHSM (p. 41)• Eliminación de un clúster de AWS CloudHSM (p. 44)• Creación un clúster de AWS CloudHSM a partir de un backup anterior (p. 45)• Etiquetado de recursos de AWS CloudHSM (p. 46)

Agregar o eliminar HSM en un clúster de AWSCloudHSM

Para aumentar o reducir el tamaño de su clúster de AWS CloudHSM, añada o quite HSM utilizando laconsola de AWS CloudHSM o uno de los SDK de AWS SDK o las herramientas de la línea de comandos.

Temas• Agregar un HSM (p. 41)• Eliminación de un HSM (p. 43)

Agregar un HSMEn la figura siguiente se muestran los eventos que se producen cuando se añade un HSM a un clúster.

41

Page 47: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAgregar un HSM

1. Añada un HSM nuevo a un clúster. En los siguientes procedimientos se explica cómo realizar estaoperación en la consola de AWS CloudHSM, la AWS Command Line Interface (AWS CLI) y la API deAWS CloudHSM.

Esta es la única acción que lleva a cabo. Los demás eventos se realizan de forma automática.2. AWS CloudHSM hace un backup de un HSM del clúster. Para obtener más información, consulte

Backups (p. 6).3. AWS CloudHSM restaura el backup en el nuevo HSM. Esto garantiza que el HSM esté sincronizado con

los demás HSM del clúster.4. Los HSM 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.

42

Page 48: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioEliminación de un HSM

Para añadir un HSM (consola)

1. Open the AWS CloudHSM console at https://console.aws.amazon.com/cloudhsm/.2. Elija un clúster para el HSM que va a añadir.3. En la pestaña HSMs, elija Create HSM (Crear HSM).4. Elija una zona de disponibilidad (AZ) para el HSM que está creando. A continuación, elija Create.

Para añadir un HSM (AWS CLI)

• En el símbolo del sistema, ejecute el comando create-hsm especificando un ID de clúster y una zonade disponibilidad para el HSM que va a crear. Si no sabe cuál es el ID de su clúster preferido, ejecuteel comando describe-clusters. Especifique la zona de disponibilidad con el formato us-east-2a, us-east-2b, etc.

$ aws cloudhsmv2 create-hsm --cluster-id <cluster ID> --availability-zone <Availability Zone>{ "Hsm": { "State": "CREATE_IN_PROGRESS", "ClusterId": "cluster-5a73d5qzrdh", "HsmId": "hsm-lgavqitns2a", "SubnetId": "subnet-0e358c43", "AvailabilityZone": "us-east-2c", "EniId": "eni-bab18892", "EniIp": "10.0.3.10" }}

Para añadir un HSM (API de AWS CloudHSM)

• Envíe una solicitud CreateHsm en la que especifique el ID de clúster y una zona de disponibilidad parael HSM que está creando.

Eliminación de un HSMPuede eliminar un HSM utilizando la consola de AWS CloudHSM, la AWS CLI o la API de AWSCloudHSM.

Para eliminar un HSM (consola)

1. Open the AWS CloudHSM console at https://console.aws.amazon.com/cloudhsm/.2. Elija el clúster que contiene el HSM que va a eliminar.3. En la pestaña HSMs elija el HSM que va a eliminar. A continuación, elija Delete HSM (Eliminar HSM).4. Confirme que desea eliminar el HSM. A continuación, elija Delete.

Para eliminar un HSM (AWS CLI)

• En el símbolo del sistema, ejecute el comando delete-hsm. Pase el ID del clúster que contiene el HSMque está eliminando y uno de los siguientes identificadores de HSM:

• El ID del HSM (--hsm-id)• La dirección IP del HSM (--eni-ip)• El ID de interfaz de red elástica del HSM (--eni-id)

43

Page 49: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioEliminación de un clúster

Si no sabe cuáles son los valores de estos identificadores, ejecute el comando describe-clusters.

$ aws cloudhsmv2 delete-hsm --cluster-id <cluster ID> --eni-ip <HSM IP address>{ "HsmId": "hsm-lgavqitns2a"}

Para eliminar un HSM (API de AWS CloudHSM)

• Envíe una solicitud DeleteHsm en la que especifique el ID de clúster y un identificador para el HSMque está eliminando.

Eliminación de un clúster de AWS CloudHSMPara eliminar un clúster, antes debe eliminar todos los HSM del clúster. Para obtener más información,consulte Eliminación de un HSM (p. 43).

Después de eliminar todos los HSM, puede eliminar un clúster mediante la consola de AWS CloudHSM, laAWS Command Line Interface (AWS CLI) o la API de AWS CloudHSM.

Para eliminar un clúster (consola)

1. Open the AWS CloudHSM console at https://console.aws.amazon.com/cloudhsm/.2. Elija el clúster que está eliminado. A continuación, elija Delete cluster (Eliminar clúster).3. Confirme que desea eliminar el clúster y, a continuación, elija Delete (Eliminar).

Para eliminar un clúster (AWS CLI)

• 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.

$ aws cloudhsmv2 delete-cluster --cluster-id <cluster ID>{ "Cluster": { "Certificates": { "ClusterCertificate": "<certificate string>" }, "SourceBackupId": "backup-rtq2dwi2gq6", "SecurityGroup": "sg-40399d28", "CreateTimestamp": 1504903546.035, "SubnetMapping": { "us-east-2a": "subnet-f1d6e798", "us-east-2c": "subnet-0e358c43", "us-east-2b": "subnet-40ed9d3b" }, "ClusterId": "cluster-kdmrayrc7gi", "VpcId": "vpc-641d3c0d", "State": "DELETE_IN_PROGRESS", "HsmType": "hsm1.medium", "StateMessage": "The cluster is being deleted.", "Hsms": [], "BackupPolicy": "DEFAULT" }}

44

Page 50: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCreación de un clúster a partir de un backup

Para eliminar un clúster (API de AWS CloudHSM)

• Envíe una solicitud DeleteCluster en la que se especifique el ID del clúster que está eliminando.

Creación un clúster de AWS CloudHSM a partir deun backup anterior

Para restaurar un clúster de AWS CloudHSM a partir de un backup anterior, cree un clúster nuevo yespecifique el backup que debe restaurarse. Después de crear el clúster, no es necesario que lo inicialiceni que lo active. Solo tiene que añadir un HSM al clúster; dicho HSM contiene los mismos usuarios,material de clave, certificados, configuración y políticas que el backup que ha restaurado. Para obtenermás información acerca de los backups, consulte Backups (p. 6).

Puede restaurar un clúster a partir de un backup desde la consola de AWS CloudHSM, la AWS CommandLine Interface (AWS CLI) o la API de AWS CloudHSM.

Para crear un clúster a partir de un backup anterior (consola)

1. Open the AWS CloudHSM console at https://console.aws.amazon.com/cloudhsm/.2. Elija Create cluster.3. En la sección Cluster configuration, haga lo siguiente:

a. En VPC elija una VPC para el clúster que está creando.b. En AZ (s) elija una subred privada para cada zona de disponibilidad que esté añadiendo al clúster.

4. En la sección Cluster source (Origen del clúster) haga lo siguiente:

a. Elija Restore cluster from existing backup (Restaurar clúster a partir de un backup ya existente).b. Elija el backup 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).

Para crear un clúster a partir de un backup anterior (AWS CLI)

• En el símbolo del sistema, ejecute el comando create-cluster. Especifique el tipo de instancia de HSM,los ID de las subredes donde piensa crear los HSM y el ID del backup que está restaurando. Si nosabe cuál es el ID del backup, ejecute el comando describe-backups.

$ aws cloudhsmv2 create-cluster --hsm-type hsm1.medium \ --subnet-ids <subnet ID 1> <subnet ID 2> <subnet ID N> \ --source-backup-id <backup ID>{ "Cluster": { "HsmType": "hsm1.medium", "VpcId": "vpc-641d3c0d", "Hsms": [], "State": "CREATE_IN_PROGRESS", "SourceBackupId": "backup-rtq2dwi2gq6", "BackupPolicy": "DEFAULT", "SecurityGroup": "sg-640fab0c", "CreateTimestamp": 1504907311.112, "SubnetMapping": { "us-east-2c": "subnet-0e358c43",

45

Page 51: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioEtiquetado de recursos

"us-east-2a": "subnet-f1d6e798", "us-east-2b": "subnet-40ed9d3b" }, "Certificates": { "ClusterCertificate": "<certificate string>" }, "ClusterId": "cluster-jxhlf7644ne" }}

Para crear un clúster a partir de un backup anterior (API de AWS CloudHSM)

• Envíe una solicitud CreateCluster request. Especifique el tipo de instancia de HSM, los ID de lassubredes donde piensa crear los HSM y el ID del backup que está restaurando.

Para crear un HSM que contenga los mismos usuarios, material de clave, certificados, configuración ypolíticas que estaban en el backup que ha restaurado, añada un HSM (p. 41) al clúster.

Etiquetado de recursos de AWS CloudHSMUna etiqueta es una marca que se asigna a un recurso de AWS. Puede asignar etiquetas a sus clústeresde AWS CloudHSM. Cada etiqueta consta de una clave de etiqueta y un valor de etiqueta, ambos definidospor el usuario. Por ejemplo, la clave de etiqueta puede ser Centro de costos y el valor de etiqueta puedeser 12345. Las claves de las etiquetas deben ser únicas para cada clúster.

Puede usar etiquetas para distintos fines. Un uso habitual es categorizar y realizar el seguimiento de loscostos de AWS. Puede aplicar etiquetas que representen categorías de negocio (por ejemplo, centros decostos, nombres de aplicación o propietarios) para estructurar los costos entre diferentes servicios. Cuandose agregan etiquetas a los recursos de AWS, AWS genera un informe de asignación de costos de AWScon el uso y los costos agregados por etiquetas. Puede usar este informe para ver los costos de AWSCloudHSM en términos de proyectos o aplicaciones, en vez de ver todos los costos de AWS CloudHSMcomo una sola partida.

Para obtener más información sobre el uso de etiquetas para la asignación de costos, consulte Uso deetiquetas 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 de AWS o las herramientas de línea decomandos para añadir, actualizar, generar una lista o quitar etiquetas.

Temas• Añadir o actualizar etiquetas (p. 46)• Visualización de etiquetas (p. 48)• Eliminar etiquetas (p. 48)

Añadir o actualizar etiquetasPuede añadir o actualizar etiquetas en la consola de AWS CloudHSM, la AWS Command Line Interface(AWS CLI)o la API de AWS CloudHSM.

Para añadir o actualizar etiquetas (consola)

1. Open the AWS CloudHSM console at https://console.aws.amazon.com/cloudhsm/.

46

Page 52: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAñadir o actualizar etiquetas

2. Elija el clúster que está etiquetando.3. Seleccione Tags (Etiquetas).4. Para añadir una etiqueta, haga lo siguiente:

a. Elija Add Tag (Añadir etiqueta).b. En Tag Key (Clave de etiqueta) escriba una clave para la etiqueta.c. (Opcional) En Tag Value (Valor de la etiqueta) escriba un valor para la etiqueta.d. Elija la acción para añadir una etiqueta, tal y como se muestra en la siguiente imagen.

5. Para actualizar una etiqueta, haga lo siguiente:

a. Elija el valor de la etiqueta que quiere actualizar.

Note

Si actualiza la clave de una etiqueta existente, la consola elimina la etiqueta existente ycrea otra nueva.

b. Escriba el valor de la etiqueta nueva. A continuación, elija la acción para actualizar una etiqueta,tal y como se muestra en la siguiente imagen.

Para añadir o actualizar etiquetas (AWS CLI)

1. En el símbolo del sistema ejecute el comando tag-resource especificando las etiquetas y el ID delclúster que está etiquetando. Si no sabe cuál es el ID del clúster, ejecute el comando describe-clusters.

47

Page 53: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioVisualización de etiquetas

$ aws cloudhsmv2 tag-resource --resource-id <cluster ID> \ --tag-list Key="<tag key>",Value="<tag value>"

2. Para actualizar etiquetas, utilice el mismo comando, pero especifique una clave de etiqueta yaexistente. Cuando especifique un valor de etiqueta nuevo para una etiqueta ya existente, la etiqueta sesobrescribe con el nuevo valor.

Para añadir o actualizar etiquetas (API de AWS CloudHSM)

• Envíe una solicitud TagResource request. Especifique las etiquetas y el ID del clúster que estáetiquetando.

Visualización de etiquetasPuede generar etiquetas para un clúster en la consola de AWS CloudHSM, la AWS CLI o la API de AWSCloudHSM.

Para generar una lista de etiquetas (consola)

1. Open the AWS CloudHSM console at https://console.aws.amazon.com/cloudhsm/.2. Elija el clúster cuyas etiquetas vaya a incluir en una lista.3. Seleccione Tags (Etiquetas).

Para generar una lista de etiquetas (AWS CLI)

• En el símbolo del sistema ejecute el comando list-tags especificando el ID del clúster cuyas etiquetasva a mostrar en una lista. Si no sabe cuál es el ID del clúster, ejecute el comando describe-clusters.

$ aws cloudhsmv2 list-tags --resource-id <cluster ID>{ "TagList": [ { "Key": "Cost Center", "Value": "12345" } ]}

Para generar una lista de etiquetas (API de AWS CloudHSM)

• Envíe una solicitud ListTags en la que se especifique el ID del clúster cuyas etiquetas incluye en unalista.

Eliminar etiquetasPuede eliminar las etiquetas de un clúster utilizando la consola de AWS CloudHSM, la AWS CLI o la APIde AWS CloudHSM.

Para eliminar etiquetas (consola)

1. Open the AWS CloudHSM console at https://console.aws.amazon.com/cloudhsm/.2. Elija el clúster cuyas etiquetas va a eliminar.

48

Page 54: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioEliminar etiquetas

3. Seleccione Tags (Etiquetas).4. Junto a la etiqueta que va a eliminar, elija la acción para eliminar una etiqueta, tal y como se muestra

en la siguiente imagen.

Para eliminar etiquetas (AWS CLI)

• En el símbolo del sistema ejecute el comando untag-resource especificando las claves de etiqueta delas etiquetas que está eliminando y el ID del clúster cuyas etiquetas está eliminando. Cuando utilice laAWS CLI para eliminar etiquetas, especifique solo las claves de las etiquetas y no sus valores.

$ aws cloudhsmv2 untag-resource --resource-id <cluster ID> \ --tag-key-list "<tag key>"

Para eliminar etiquetas (API de AWS CloudHSM)

• Envíe una solicitud UntagResource en la API de AWS CloudHSM especificando el ID del clúster y lasetiquetas que está eliminando.

49

Page 55: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAdministración de usuarios de HSM

Administración de claves y deusuarios de HSM en AWS CloudHSM

Para poder utilizar un clúster de AWS CloudHSM para el procesamiento criptográfico, debe crear usuariosy claves en los HSM del clúster. Consulte los siguientes temas para obtener más información acerca de lautilización de las herramientas de línea de comandos de AWS CloudHSM para administrar los usuarios ylas claves de HSM. También puede aprender a utilizar la autenticación de cuórum (también conocida como"control de acceso M de N").

Temas• Administración de usuarios de HSM en AWS CloudHSM (p. 50)• Administrar claves en AWS CloudHSM (p. 53)• Aplicación de la autenticación de cuórum (control de acceso M de N) (p. 58)

Administración de usuarios de HSM en AWSCloudHSM

Para administrar usuarios en los HSM de un clúster de AWS CloudHSM, utilice la herramienta de líneade comandos de AWS CloudHSM, denominada cloudhsm_mgmt_util. Para poder administrar usuarios,debe iniciar cloudhsm_mgmt_util, habilitar el cifrado integral e iniciar sesión en los HSM. Para obtener másinformación, consulte cloudhsm_mgmt_util (p. 72).

Para administrar usuarios de HSM, inicie sesión en el HSM con el nombre de usuario y la contraseñade un responsable de criptografía (p. 11) (CO). Solo los CO pueden administrar otros usuarios. El HSMcontiene un CO predeterminado denominado admin. La contraseña de este usuario se establece al activarel clúster (p. 37).

Temas• Crear usuarios (p. 50)• Enumerar usuarios (p. 51)• Cambiar la contraseña de un usuario (p. 52)• Eliminar usuarios (p. 52)

Crear usuariosUtilice el comando createUser (p. 83) para crear un usuario en el HSM. Los siguientes ejemplos creannuevos usuarios CO y CU, respectivamente. Para obtener información sobre los tipos de usuario, consulteUsuarios de HSM (p. 10).

aws-cloudhsm>createUser CO example_officer <password>*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?y

50

Page 56: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioEnumerar usuarios

Creating User example_officer(CO) on 3 nodes

aws-cloudhsm>createUser CU example_user <password>*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?yCreating User example_user(CU) on 3 nodes

A continuación se muestra la sintaxis del comando createUser (p. 83). En los comandos decloudhsm_mgmt_util, en los tipos de usuario y las contraseñas, se distingue entre mayúsculas yminúsculas, aunque no en los nombres de usuario.

aws-cloudhsm>createUser <user type> <user name> <password>

Enumerar usuariosUtilice el comando listUsers (p. 102) para enumerar los usuarios de cada HSM del clúster. Todos lostipos de usuarios de HSM (p. 10) pueden utilizar este comando, ya que no está restringido únicamente alos CO.

El PCO es el primer ("principal") CO creado en cada HSM. Tiene los mismos permisos en el HSM quecualquier otro CO.

aws-cloudhsm>listUsersUsers on server 0(10.0.2.9):Number of users found:4

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 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 NOUsers on server 1(10.0.3.11):Number of users found:4

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 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 NOUsers on server 2(10.0.1.12):Number of users found:4

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA

51

Page 57: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCambiar 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

Cambiar la contraseña de un usuarioEjecute el comando changePswd para cambiar la contraseña de cualquier usuario. Todos los tipos deusuario de HSM (p. 10) pueden emitir este comando, pero solo los CO pueden cambiar la contraseña deotros usuarios. Los usuarios de criptografía (CU) y los usuarios de dispositivo (AU) solo pueden cambiar sucontraseña. En los siguientes ejemplos se cambia la contraseña de los usuarios CO y CU creados en losejemplos de Crear usuarios (p. 50).

aws-cloudhsm>changePswd CO example_officer <new password>*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?yChanging password for example_officer(CO) on 3 nodes

aws-cloudhsm>changePswd CU example_user <new password>*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?yChanging password for example_user(CU) on 3 nodes

A continuación se muestra la sintaxis del comando changePswd. En los tipos de usuario y las contraseñasse distingue entre mayúsculas y minúsculas, pero no en los nombres de usuario.

aws-cloudhsm>changePswd <user type> <user name> <new password>

Warning

El CO no puede cambiar la contraseña de un usuario (CO o CU) que ya ha iniciado sesión.

Eliminar usuariosEjecute el comando deleteUser para eliminar un usuario. En los siguientes ejemplos se eliminan losusuarios CO y CU creados en los ejemplos de Crear usuarios (p. 50).

aws-cloudhsm>deleteUser CO example_officerDeleting user example_officer(CO) on 3 nodesdeleteUser 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)

52

Page 58: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAdministrar claves

aws-cloudhsm>deleteUser CU example_userDeleting user example_user(CU) on 3 nodesdeleteUser 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)

A continuación se muestra la sintaxis del comando deleteUser.

aws-cloudhsm>deleteUser <user type> <user name>

Warning

La eliminación de un usuario CU dejará huérfanas todas las claves propiedad de dicho CU y estasquedarán inservibles. No recibirá ninguna advertencia que el usuario que está a punto de eliminaraún tiene claves de su propiedad en el clúster.

Administrar claves en AWS CloudHSMPara administrar claves en los HSM de un clúster de AWS CloudHSM, utilice la herramienta de línea decomandos key_mgmt_util (p. 109). Para poder administrar las claves, debe iniciar el cliente de AWSCloudHSM y key_mgmt_util, e iniciar sesión en los HSM.

Para administrar las claves, inicie sesión en el HSM (p. 112) con el nombre de usuario y la contraseña deun usuario de criptografía (CU). Solo los usuarios de criptografía pueden crear claves. El CU que creó lasclaves es su propietario inherente y las administra.

Temas• Generar claves (p. 53)• Importar claves (p. 54)• Exportar claves (p. 56)• Eliminar claves (p. 57)• Compartir y dejar de compartir claves (p. 57)

Generar clavesPara generar claves en el HSM, utilice el comando que corresponde al tipo de clave que desea generar.

Generar claves simétricasUtilice el comando genSymKey (p. 142) para generar AES, triple DES y otros tipos de claves simétricas.Para ver todas las opciones disponibles, utilice el comando genSymKey -h.

El siguiente ejemplo crea una clave AES de 256 bits.

Command: genSymKey -t 31 -s 32 -l aes256Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Created. Key Handle: 524295

Cluster Error StatusNode id 0 and err state 0x00000000 : HSM Return: SUCCESSNode id 1 and err state 0x00000000 : HSM Return: SUCCESSNode id 2 and err state 0x00000000 : HSM Return: SUCCESS

53

Page 59: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioImportar claves

Generar pares de claves RSAPara generar un par de claves RSA, utilice el comando genRSAKeyPair (p. 137). Para ver todas lasopciones disponibles, utilice el comando genRSAKeyPair -h.

El siguiente ejemplo genera un par de claves RSA de 2048 bits.

Command: genRSAKeyPair -m 2048 -e 65537 -l rsa2048Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

Cfm3GenerateKeyPair: public key handle: 524294 private key handle: 524296

Cluster Error StatusNode id 0 and err state 0x00000000 : HSM Return: SUCCESSNode id 1 and err state 0x00000000 : HSM Return: SUCCESSNode id 2 and err state 0x00000000 : HSM Return: SUCCESS

Generar pares de claves ECC (criptografía de curva elíptica)Pares de claves de cifradoPara generar un par de claves ECC, utilice el comando genECCKeyPair (p. 133). Para ver todas lasopciones disponibles, incluida una lista de las curvas elípticas admitidas, use el comando genECCKeyPair-h.

En el ejemplo siguiente se genera un par de claves ECC con la curva elíptica P-384 definida en lapublicación de NIST FIPS 186-4.

Command: genECCKeyPair -i 14 -l ecc-p384Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

Cfm3GenerateKeyPair: public key handle: 524297 private key handle: 524298

Cluster Error StatusNode id 0 and err state 0x00000000 : HSM Return: SUCCESSNode id 1 and err state 0x00000000 : HSM Return: SUCCESSNode id 2 and err state 0x00000000 : HSM Return: SUCCESS

Importar clavesPara 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 sinuna clave de encapsulamiento.

Importar claves secretasComplete los pasos siguientes para importar una clave secreta. Antes de importar una clave secreta,guárdela en un archivo. Guarde las claves simétricas como bytes sin procesar y las claves privadasasimétricas en formato PEM.

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. 164).

Para importar una clave secreta

1. Utilice el comando genSymKey (p. 142) para crear una clave de encapsulamiento. El siguientecomando crea una clave de encapsulamiento AES de 128 bits que solo es válida durante la sesiónactual. Puede utilizar una clave de sesión o una clave persistente como clave de encapsulación.

54

Page 60: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioImportar claves

Command: genSymKey -t 31 -s 16 -sess -l import-wrapping-keyCfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Created. Key Handle: 524299

Cluster Error StatusNode id 2 and err state 0x00000000 : HSM Return: SUCCESS

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 unaclave AES de un archivo denominado aes256.key utilizando la clave de encapsulamiento creadaen el paso anterior. Para ver todas las opciones disponibles, utilice el comando imSymKey -h.

Command: imSymKey -f aes256.key -t 31 -l aes256-imported -w 524299Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Unwrapped. Key Handle: 524300

Cluster Error StatusNode id 0 and err state 0x00000000 : HSM Return: SUCCESSNode id 1 and err state 0x00000000 : HSM Return: SUCCESSNode id 2 and err state 0x00000000 : HSM Return: SUCCESS

• Para importar una clave privada asimétrica, utilice el comando importPrivateKey. El siguientecomando importa una clave privada de un archivo denominado rsa2048.key utilizando la clavede encapsulamiento creada en el paso anterior. Para ver todas las opciones disponibles, utilice elcomando importPrivateKey -h.

Command: importPrivateKey -f rsa2048.key -l rsa2048-imported -w 524299BER encoded key length is 1216

Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

Private Key Unwrapped. Key Handle: 524301

Cluster Error StatusNode id 0 and err state 0x00000000 : HSM Return: SUCCESSNode id 1 and err state 0x00000000 : HSM Return: SUCCESSNode id 2 and err state 0x00000000 : HSM Return: SUCCESS

Importar claves públicasUtilice el comando importPubKey para importar una clave pública. Para ver todas las opciones disponibles,utilice el comando importPubKey -h.

El siguiente ejemplo importa una clave pública RSA de un archivo denominado rsa2048.pub.

Command: importPubKey -f rsa2048.pub -l rsa2048-public-importedCfm3CreatePublicKey returned: 0x00 : HSM Return: SUCCESS

55

Page 61: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioExportar claves

Public Key Handle: 524302

Cluster Error StatusNode id 0 and err state 0x00000000 : HSM Return: SUCCESSNode id 1 and err state 0x00000000 : HSM Return: SUCCESSNode id 2 and err state 0x00000000 : HSM Return: SUCCESS

Exportar clavesPara exportar claves secretas (es decir, claves simétricas y claves privadas asimétricas) desde el HSM,primero debe crear un clave de encapsulación. Puede exportar claves públicas directamente sin una clavede encapsulamiento.

Solo el propietario de la clave puede exportarla. Los usuarios con los que se comparte la clave puedenutilizarla 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. 119) escribe una copia sin cifrar de la clave secreta en un archivo. Elproceso de exportación requiere una clave de encapsulación, pero la clave que hay en el archivono es una clave encapsulada. Para exportar una copia encapsulada (cifrada) de una clave, utiliceel comando wrapKey (p. 167).

Exportar claves secretasComplete los pasos siguientes para exportar una clave secreta.

Para exportar una clave secreta

1. Utilice el comando genSymKey (p. 142) para crear una clave de encapsulamiento. El siguientecomando crea una clave de encapsulamiento AES de 128 bits que solo es válida durante la sesiónactual.

Command: genSymKey -t 31 -s 16 -sess -l export-wrapping-keyCfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Created. Key Handle: 524304

Cluster Error StatusNode id 2 and err state 0x00000000 : HSM Return: SUCCESS

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. 119). El siguiente ejemploexporta una clave AES a un archivo denominado aes256.key.exp. Para ver todas las opcionesdisponibles, utilice el comando exSymKey -h.

Command: exSymKey -k 524295 -out aes256.key.exp -w 524304Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS

Wrapped Symmetric Key written to file "aes256.key.exp"

Note

La salida del comando indica que se ha escrito una "Wrapped Symmetric Key" (clavesimétrica encapsulada) en el archivo de salida. Sin embargo, el archivo de salida contiene

56

Page 62: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioEliminar claves

una clave sin cifrar (sin encapsular). Para exportar una clave encapsulada (cifrada) a unarchivo, utilice el comando wrapKey (p. 167).

• Para exportar una clave privada, utilice el comando exportPrivateKey. El siguiente comando exportauna clave privada a un archivo denominado rsa2048.key.exp. Para ver todas las opcionesdisponibles, utilice el comando exportPrivateKey -h.

Command: exportPrivateKey -k 524296 -out rsa2048.key.exp -w 524304Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS

PEM formatted private key is written to rsa2048.key.exp

Exportar claves públicasUtilice el comando exportPubKey para exportar una clave pública. Para ver todas las opciones disponibles,utilice el comando exportPubKey -h.

El siguiente ejemplo exporta una clave pública RSA a un archivo denominado rsa2048.pub.exp.

Command: exportPubKey -k 524294 -out rsa2048.pub.expPEM formatted public key is written to rsa2048.pub.key

Cfm3ExportPubKey returned: 0x00 : HSM Return: SUCCESS

Eliminar clavesUtilice el comando deleteKey (p. 117) para eliminar una clave, como en el siguiente ejemplo. Solo elpropietario de la clave puede eliminar una clave.

Command: deleteKey -k 524300Cfm3DeleteKey returned: 0x00 : HSM Return: SUCCESS

Cluster Error StatusNode id 0 and err state 0x00000000 : HSM Return: SUCCESSNode id 1 and err state 0x00000000 : HSM Return: SUCCESSNode id 2 and err state 0x00000000 : HSM Return: SUCCESS

Compartir y dejar de compartir clavesEn AWS CloudHSM el CU que crea la clave es su propietario. El propietario administra la clave, puedeexportarla y eliminarla y, además, puede utilizar la clave en operaciones criptográficas. El propietariotambién puede compartir la clave con otros usuarios CU. Los usuarios con quien se comparte la clavepueden utilizar la clave en operaciones criptográficas, pero no pueden exportarla ni eliminarla ni tampocopueden compartirla con otros usuarios.

Puede compartir claves con otros usuarios CU cuando crea la clave, por ejemplo, utilizando el parámetro -u de los comandos genSymKey (p. 142) o genRSAKeyPair (p. 137). Para compartir claves existentescon otro usuario del HSM, utilice la herramienta de línea de comandos cloudhsm_mgmt_util (p. 72). Esteproceso es distinto de la mayoría de las tareas documentadas en esta sección, que utilizan la herramientade línea de comandos key_mgmt_util (p. 109).

Para poder compartir una clave, debe iniciar cloudhsm_mgmt_util, habilitar el cifrado integral e iniciarsesió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.

57

Page 63: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAutenticación de cuórum (M de N)

Utilice el comando shareKey para compartir o dejar de compartir una clave, especificando el identificadorde la clave y el ID del usuario o los ID de los usuarios. Para compartir o dejar de compartir con variosusuarios, especifique una lista separada por comas de ID de usuario. Para compartir una clave, utilice 1como ú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 thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?yshareKey success on server 0(10.0.2.9)shareKey success on server 1(10.0.3.11)shareKey success on server 2(10.0.1.12)

A continuación se muestra la sintaxis del comando shareKey.

aws-cloudhsm>shareKey <key handle> <user ID> <Boolean: 1 for share, 0 for unshare>

Aplicación de la autenticación de cuórum (controlde acceso M de N)

Los HSM de su clúster de AWS CloudHSM admiten la autenticación de cuórum, también conocida comocontrol de acceso M de N. Con la autenticación de cuórum ningún usuario único del HSM puede realizaroperaciones controladas mediante cuórum en el HSM. En su lugar, para llevar a cabo estas operacionesdebe cooperar un número mínimo de usuarios del HSM (al menos 2). Con la autenticación de cuórum,puede añadir una capa adicional de protección al exigir la aprobación de más de un usuario del HSM.

La autenticación de cuórum puede controlar las siguientes operaciones:

• Administración de usuarios del HSM realizada mediante responsables de criptografía (p. 11): creación yeliminación de usuarios de HSM y cambio de la contraseña de otro usuario del HSM. Para obtener másinformación, consulte Uso de la autenticación de cuórum para responsables de criptografía (p. 64).

• Operaciones criptográficas realizadas por usuarios de criptografía (CU) (p. 11): por ejemplo:• Uso de claves privadas asimétricas en el HSM para firmar criptográficamente los mensajes.• Uso de claves simétricas AES en el HSM para encapsulación y desencapsulación AES.

Los siguientes temas proporcionan más información acerca de la autenticación de cuórum en AWSCloudHSM.

Temas• Información general sobre la autenticación de cuórum (p. 59)• Detalles adicionales sobre la autenticación de cuórum (p. 59)• Uso de la autenticación de cuórum para responsables de criptografía: primera configuración (p. 59)• Uso de la autenticación de cuórum para responsables de criptografía (p. 64)• Cambiar el valor mínimo de cuórum para responsables de criptografía (p. 69)

58

Page 64: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInformación general sobre la autenticación de cuórum

Información general sobre la autenticación de cuórumEn los pasos siguientes se resumen los procesos de autenticación de cuórum. Para informarse de lospasos y las herramientas específicos, consulte Uso de la autenticación de cuórum para responsables decriptografía (p. 64).

1. Cada usuario del HSM crea una clave asimétrica para la firma. El usuario efectúa esta operación fueradel 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 clavepública) en el HSM.

3. Cuando un usuario del HSM quiere realizar una operación controlada mediante cuórum, inicia sesión enel 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 suaprobación.

5. Los otros usuarios del HSM dan su aprobación utilizando sus claves para firmar criptográficamente eltoken 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 pasael 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 sonválidas, el HSM aprueba el token.

8. Ahora el usuario del HSM ya puede realizar la operación controlada mediante cuórum.

Detalles adicionales sobre la autenticación de cuórumTenga en cuenta la siguiente información adicional acerca del uso de la autenticación de cuórum en AWSCloudHSM.

• Un usuario del HSM puede firmar su propio token de cuórum; es decir, el usuario solicitante puedeproporcionar 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 usuariosde HSM realizadas por CO, el mayor número que puede elegir es veinte (20). Para las operacionescriptográficas realizadas por CU, el mayor número que puede elegir es ocho (8).

• El HSM puede almacenar hasta 1024 tokens de cuórum. Si el HSM ya tiene 1024 tokens cuando intentacrear uno nuevo, el HSM eliminará uno de los tokens que haya caducado. De forma predeterminada, lostokens caducan diez minutos después de su creación.

Uso de la autenticación de cuórum para responsablesde criptografía: primera configuraciónLos siguientes temas describen los pasos que debe seguir para configurar el HSM de forma quelos responsables de criptografía (CO) (p. 11) puedan usar la autenticación de cuórum. Debe seguirestos pasos solo una vez cuando configure por primera vez la autenticación de cuórum para CO.Después de completar estos pasos, consulte Uso de la autenticación de cuórum para responsables decriptografía (p. 64).

Temas• Requisitos previos (p. 60)• Crear y registrar una clave de firma (p. 60)• Establecer el valor mínimo de cuórum en el HSM (p. 62)

59

Page 65: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioPrimera configuración para responsables de criptografía

Requisitos previosPara comprender este ejemplo, debe conocer la cloudhsm_mgmt_util herramienta de línea decomandos (p. 72). En este ejemplo, el clúster AWS CloudHSM tiene dos HSM, cada uno de ellos conel mismo CO, tal y como se muestra en el siguiente resultado del comando listUsers. Para obtener másinformación sobre la creación de usuarios, consulte Administración de usuarios de HSM (p. 50).

aws-cloudhsm>listUsersUsers on server 0(10.0.2.14):Number of users found:7

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 NO 0 NO 4 CO officer2 NO 0 NO 5 CO officer3 NO 0 NO 6 CO officer4 NO 0 NO 7 CO officer5 NO 0 NOUsers on server 1(10.0.1.4):Number of users found:7

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 NO 0 NO 4 CO officer2 NO 0 NO 5 CO officer3 NO 0 NO 6 CO officer4 NO 0 NO 7 CO officer5 NO 0 NO

Crear y registrar una clave de firmaPara utilizar la autenticación de cuórum, cada CO debe crear una clave asimétrica para firmar (una clavede firma). Esto se realiza fuera del HSM.

Hay muchas formas de crear y proteger una clave de firma personal. El siguiente ejemplo muestra cómohacerlo con OpenSSL.

Example : crear una clave de firma personal 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 nombredel archivo donde desea almacenar la clave.

$ openssl genrsa -out officer1.key -aes256 2048

60

Page 66: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioPrimera configuración para responsables de criptografía

Generating RSA private key, 2048 bit long modulus.....................................+++.+++e is 65537 (0x10001)Enter pass phrase for officer1.key:Verifying - Enter pass phrase for officer1.key:

Cada CO debe crear su propia 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.

Para registrar una clave pública en el HSM

1. Use the following command to start the cloudhsm_mgmt_util command line tool.

$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg

2. Use the enable_e2e command to establish end-to-end encrypted communication.3. Use the loginHSM command to log in to the HSM as a CO. For more information, see Iniciar sesión en

los HSM (p. 78).4. Utilice el comando registerMofnPubKey para registrar la clave pública. Para obtener más información,

consulte el siguiente ejemplo o utilice el comando de ayuda registerMofnPubKey.

Example : registrar una clave pública en el HSM

El siguiente ejemplo muestra cómo utilizar el comando registerMofnPubKey en la cloudhsm_mgmt_utilherramienta de línea de comandos para registrar la clave pública de un CO en el HSM. Para utilizar estecomando, el CO tiene que haber iniciado sesión en el HSM. Reemplace estos valores por sus propiosvalores:

• key_match_string: una cadena arbitraria que se utiliza en función de las claves públicas y privadas.Puede utilizar cualquier cadena para este valor. La cloudhsm_mgmt_util herramienta de línea decomandos cifra esta cadena con la clave privada y, a continuación, envía el blob de cifrado y la cadenade 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 HSMregistra la clave pública; de lo contrario, no lo hace.

• officer1: el nombre de usuario del CO que está registrando la clave pública. Debe ser el mismo COque ha iniciado sesión en el HSM y está ejecutando este comando.

• officer1.key: el nombre del archivo que contiene la clave del CO. Este archivo debe contenerla clave completa (no solo la parte pública), ya que la cloudhsm_mgmt_util herramienta de línea decomandos utiliza la clave privada para cifrar la cadena de coincidencia de clave.

Cuando se le solicite, escriba la frase de contraseña que protege la clave del CO.

aws-cloudhsm>registerMofnPubKey CO key_match_string officer1 officer1.key*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?yEnter PEM pass phrase:registerMofnPubKey success on server 0(10.0.2.14)registerMofnPubKey success on server 1(10.0.1.4)

61

Page 67: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioPrimera configuración para responsables de criptografía

Cada CO debe registrar su clave pública en el HSM. Una vez que todos los COs registran las clavespúblicas, el resultado del comando listUsers muestra esto en la columna MofnPubKey, tal y como semuestra en el siguiente ejemplo.

aws-cloudhsm>listUsersUsers on server 0(10.0.2.14):Number of users found:7

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 YES 0 NO 4 CO officer2 YES 0 NO 5 CO officer3 YES 0 NO 6 CO officer4 YES 0 NO 7 CO officer5 YES 0 NOUsers on server 1(10.0.1.4):Number of users found:7

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 YES 0 NO 4 CO officer2 YES 0 NO 5 CO officer3 YES 0 NO 6 CO officer4 YES 0 NO 7 CO officer5 YES 0 NO

Establecer el valor mínimo de cuórum en el HSMPara utilizar autenticación de cuórum para CO, un CO debe iniciar sesión en el HSM y, a continuación,establecer el valor mínimo de cuórum, también conocido como "valor m". Este es el número mínimode aprobaciones del CO necesarias para realizar las operaciones de administración de usuarios deHSM. Cualquier CO en el HSM puede establecer el valor mínimo de cuórum, incluidos los CO queno han registrado una clave para firmar. Puede cambiar el valor mínimo del cuórum en cualquiermomento; para obtener más información, consulte Cambiar el valor de cuórum para responsables decriptografía (p. 69).

Para establecer el valor mínimo de cuórum en el HSM

1. Use the following command to start the cloudhsm_mgmt_util command line tool.

$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg

2. Use the enable_e2e command to establish end-to-end encrypted communication.

62

Page 68: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioPrimera configuración para responsables de criptografía

3. Use the loginHSM command to log in to the HSM as a CO. For more information, see Iniciar sesión enlos HSM (p. 78).

4. Utilice el comando setMValue para establecer el valor mínimo de cuórum. Para obtener másinformación, consulte el siguiente ejemplo o utilice el comando help setMValue.

Example : establecer el valor mínimo de cuórum en el HSM

Este ejemplo utiliza un valor mínimo de cuórum de dos. Puede elegir cualquier valor entre dos y veinte,hasta alcanzar el número total de CO en el HSM. En este ejemplo, el HSM tiene seis CO (el usuarioPCO (p. 11) es el mismo que el CO), por lo que el valor máximo posible es seis.

Para utilizar el siguiente comando de ejemplo, reemplace el número final (2) por el valor mínimo de cuórumpreferido.

aws-cloudhsm>setMValue 3 2*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?ySetting M Value(2) for 3 on 2 nodes

En el ejemplo anterior, el primer número (3) identifica el servicio de HSM cuyo valor mínimo de cuórumestá estableciendo.

The following table lists the HSM service identifiers along with their names, descriptions, and thecommands that are included in the service.

Service Identifier Service Name Service Description HSM Commands

3 USER_MGMT HSM user management • createUser• deleteUser• changePswd (applies

only when changingthe password of adifferent HSM user)

4 MISC_CO Miscellaneous COservice

• setMValue

Para obtener el valor mínimo de cuórum para un servicio, utilice el comando getMValue, como se muestraen el siguiente ejemplo.

aws-cloudhsm>getMValue 3MValue 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 operacionesde administración de usuarios de HSM (servicio 3) es ahora dos.

Después de completar estos pasos, consulte Uso de la autenticación de cuórum para responsables decriptografía (p. 64).

63

Page 69: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAutenticación de cuórum para responsables de criptografía

Uso de la autenticación de cuórum para responsablesde criptografíaUn responsable de criptografía (CO) (p. 11) en el HSM puede configurar la autenticación de cuórum paralas siguientes operaciones en el HSM:

• Creación de usuarios de HSM• Eliminación de usuarios de HSM• Cambio de la contraseña de otro usuario de HSM

Después de la configuración de HSM para la autenticación de cuórum, los CO no puede realizaroperaciones de administración de usuarios de HSM por su cuenta. El siguiente ejemplo muestra elresultado cuando un CO intenta crear un usuario nuevo en el HSM. Se produce un error en el comando,RET_MXN_AUTH_FAILED, lo que indica un error en la autenticación de cuórum.

aws-cloudhsm>createUser CU user1 password*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?yCreating User user1(CU) on 2 nodescreateUser failed: RET_MXN_AUTH_FAILEDcreating user on server 0(10.0.2.14) failed

Retry/Ignore/Abort?(R/I/A):A

Para realizar una operación de administración de usuarios de HSM, un CO debe completar las siguientestareas:

1. Obtenga un token de cuórum (p. 64).2. Obtenga aprobaciones (firmas) de otros CO (p. 65).3. Apruebe el token en el HSM (p. 66).4. Realice la operación de administración de usuarios de HSM (p. 67).

Si aún no ha configurado el HSM para la autenticación de cuórum para CO, hágalo ahora. Para obtenermás información, consulte Primera configuración para responsables de criptografía (p. 59).

Obtener un token de cuórumEn primer lugar el CO debe utilizar la cloudhsm_mgmt_util herramienta de línea de comandos para solicitarun token de cuórum.

Para obtener un token de cuórum

1. Use the following command to start the cloudhsm_mgmt_util command line tool.

$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg

2. Use the enable_e2e command to establish end-to-end encrypted communication.

64

Page 70: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAutenticación de cuórum para responsables de criptografía

3. Use the loginHSM command to log in to the HSM as a CO. For more information, see Iniciar sesión enlos HSM (p. 78).

4. Utilice el comando getToken para obtener un token de cuórum. Para obtener más información,consulte el siguiente ejemplo o utilice el comando de ayuda getToken.

Example : obtener un token de cuórum

Este ejemplo obtiene un token de cuórum para el CO con nombre de usuario officer1 y guarda el token enun archivo denominado officer1.token. Para utilizar el comando de ejemplo, sustituya estos valorespor los suyos:

• officer1: el nombre del CO que está obteniendo el token. Debe ser el mismo CO que ha iniciadosesión en el HSM y está ejecutando este comando.

• officer1.token: el nombre del archivo que se debe 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). Paraobtener más información, consulte Establecer el valor mínimo de cuórum en el HSM (p. 62).

aws-cloudhsm>getToken 3 officer1 officer1.tokengetToken success on server 0(10.0.2.14)Token:Id:1Service:3Node:1Key Handle:0User:officer1getToken success on server 1(10.0.1.4)Token:Id:1Service:3Node:0Key Handle:0User:officer1

Obtener firmas de CO responsables de la aprobaciónUn CO que tiene un token de cuórum debe obtener la aprobación del token de otros CO. Para dar suaprobación, los otros CO utilizan su clave de firma para firmar criptográficamente el token. Lo hacen fueradel HSM.

Existen muchas maneras diferentes de firmar el token. El siguiente ejemplo muestra cómo hacerlo conOpenSSL. Para utilizar otra herramienta de firma, asegúrese de que la herramienta utiliza la clave privadadel CO (clave de firma) para firmar un resumen SHA-256 del token.

Example : obtener firmas de CO responsables de la aprobación

En este ejemplo, el CO que tiene el token (officer1) necesita al menos dos aprobaciones. Lossiguientes comandos de ejemplo muestran cómo pueden dos CO utilizar OpenSSL para firmar el tokencriptográ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: el nombre del archivo que contiene la clave de firma del CO.• officer1.token.sig1 y officer1.token.sig2: el nombre del archivo que se debe utilizar para

almacenar la firma. Asegúrese de guardar cada firma en un archivo diferente.

65

Page 71: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAutenticación de cuórum para responsables de criptografía

• officer1.token: el nombre del archivo que contiene el token que el CO está firmando.

$ openssl dgst -sha256 -sign officer1.key -out officer1.token.sig1 officer1.tokenEnter pass phrase for officer1.key:

En el siguiente comando, officer2 firma el mismo token.

$ openssl dgst -sha256 -sign officer2.key -out officer1.token.sig2 officer1.tokenEnter pass phrase for officer2.key:

Aprobar el token firmado en el HSMUna vez que un CO obtiene el número mínimo de aprobaciones (firmas) de otros CO, debe aprobar eltoken firmado en el HSM.

Para aprobar el token firmado en el HSM

1. Cree un archivo de aprobación del token. Para obtener más información, consulte el siguiente ejemplo.2. Use the following command to start the cloudhsm_mgmt_util command line tool.

$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg

3. Use the enable_e2e command to establish end-to-end encrypted communication.4. Use the loginHSM command to log in to the HSM as a CO. For more information, see Iniciar sesión en

los HSM (p. 78).5. Utilice el comando approveToken para aprobar el token firmado, transmitiendo el archivo de

aprobación del token. Para obtener más información, consulte el siguiente ejemplo.

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. Semuestra 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 = ;

# Total number of approvalsNumber of Approvals = 2;

# 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 CUApprover 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 CUApprover Name = officer2;Approval File = officer1.token.sig2;

66

Page 72: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAutenticación de cuórum para responsables de criptografía

Después de crear el archivo de aprobación del token, el CO utiliza la cloudhsm_mgmt_util herramienta delínea de comandos para iniciar sesión en el HSM. El CO utiliza, a continuación, el comando approveTokenpara aprobar el token, tal y como se muestra en el siguiente ejemplo. Sustituya approval.txt por elnombre del archivo de aprobación del token.

aws-cloudhsm>approveToken approval.txtapproveToken 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. Paracomprobar el estado de un token, utilice el comando listTokens, tal y como se muestra en el siguienteejemplo. 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 eltoken.

aws-cloudhsm>listTokens

===================== Server 0(10.0.2.14)=====================-------- Token - 0 ----------Token:Id:1Service:3Node:1Key Handle:0User:officer1Token Validity: 506 secRequired num of approvers : 2Current num of approvals : 2Approver-0: officer1Approver-1: officer2Num of tokens = 1

===================== Server 1(10.0.1.4)=====================-------- Token - 0 ----------Token:Id:1Service:3Node:0Key Handle:0User:officer1Token Validity: 506 secRequired num of approvers : 2Current num of approvals : 2Approver-0: officer1Approver-1: officer2Num of tokens = 1

listTokens success

Utilizar el token para operaciones de administración de usuariosUna vez que un CO tiene un token con el número necesario de aprobaciones, tal y como se muestra en lasección anterior, el CO puede realizar una de las siguientes operaciones de administración de usuarios deHSM:

67

Page 73: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAutenticación de cuórum para responsables de criptografía

• Crear un usuario de HSM con el comando createUser (p. 83)• Eliminar un usuario de HSM con el comando deleteUser• Cambiar la contraseña de un usuario de HSM diferente con el comando changePswd

Para obtener más información acerca del uso de estos comandos, consulte Administración de usuarios deHSM (p. 50).

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 queobtener un token de cuórum nuevo, obtener firmas nuevas de los aprobadores y aprobar el token nuevo enel HSM.

En el siguiente comando de ejemplo, el CO crea un usuario nuevo en el HSM.

aws-cloudhsm>createUser CU user1 password*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?yCreating User user1(CU) on 2 nodes

Una vez que el comando anterior se ejecuta correctamente, un comando listUsers subsiguiente muestra alusuario nuevo.

aws-cloudhsm>listUsersUsers on server 0(10.0.2.14):Number of users found:8

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 YES 0 NO 4 CO officer2 YES 0 NO 5 CO officer3 YES 0 NO 6 CO officer4 YES 0 NO 7 CO officer5 YES 0 NO 8 CU user1 NO 0 NOUsers on server 1(10.0.1.4):Number of users found:8

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 YES 0 NO

68

Page 74: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCambiar el valor de cuórum para

responsables de criptografía

4 CO officer2 YES 0 NO 5 CO officer3 YES 0 NO 6 CO officer4 YES 0 NO 7 CO officer5 YES 0 NO 8 CU user1 NO 0 NO

Si el CO intenta realizar otra operación de administración de usuarios de HSM, da error con un error deautenticación de cuórum, tal y como se muestra en el siguiente ejemplo.

aws-cloudhsm>deleteUser CU user1Deleting user user1(CU) on 2 nodesdeleteUser failed: RET_MXN_AUTH_FAILEDdeleteUser failed on server 0(10.0.2.14)

Retry/rollBack/Ignore?(R/B/I):IdeleteUser failed: RET_MXN_AUTH_FAILEDdeleteUser failed on server 1(10.0.1.4)

Retry/rollBack/Ignore?(R/B/I):I

El comando listTokens muestra que el CO no tiene ningún token aprobado, como se muestra en elsiguiente ejemplo. Para realizar otra operación de administración de usuarios de HSM, el CO tiene queobtener un token de cuórum nuevo, obtener firmas nuevas de los aprobadores y aprobar el token nuevo enel 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

Cambiar el valor mínimo de cuórum para responsablesde criptografíaDespués de establecer el valor mínimo de cuórum (p. 62) para que los responsables de criptografía(CO) (p. 11) puedan usar autenticación de cuórum, sería aconsejable que cambiara el valor mínimo decuórum. El HSM le permite cambiar el valor mínimo de cuórum solo cuando el número de aprobadores esigual o superior al actual valor mínimo de cuórum. Por ejemplo, si el valor mínimo de cuórum es dos, almenos dos CO deben dar su aprobación para cambiar el valor mínimo de cuórum.

Para obtener aprobación de cuórum para cambiar el valor mínimo de cuórum, necesita un token de cuórumpara el comando setMValue (servicio 4). Para obtener un token de cuórum para el comando setMValue(servicio 4), el valor mínimo de cuórum para el servicio 4 debe ser superior a uno. Esto significa que parapoder cambiar el valor mínimo de cuórum para CO (servicio 3), es posible que tenga que cambiar el valormínimo de cuórum para el servicio 4.

69

Page 75: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCambiar el valor de cuórum para

responsables de criptografía

The following table lists the HSM service identifiers along with their names, descriptions, and thecommands that are included in the service.

Service Identifier Service Name Service Description HSM Commands

3 USER_MGMT HSM user management • createUser• deleteUser• changePswd (applies

only when changingthe password of adifferent HSM user)

4 MISC_CO Miscellaneous COservice

• setMValue

Para cambiar el valor mínimo de cuórum para responsables de criptografía

1. Use the following command to start the cloudhsm_mgmt_util command line tool.

$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg

2. Use the enable_e2e command to establish end-to-end encrypted communication.3. Use the loginHSM command to log in to the HSM as a CO. For more information, see Iniciar sesión en

los HSM (p. 78).4. Utilice el comando getMValue para obtener el valor mínimo de cuórum para el servicio 3. Para obtener

más información, consulte el siguiente ejemplo.5. Utilice el comando getMValue para obtener el valor mínimo de cuórum para el servicio 4. Para obtener

más información, consulte el siguiente ejemplo.6. Si el valor mínimo de cuórum para el servicio 4 es inferior al valor para el servicio 3, utilice el comando

setMValue para cambiar el valor para el servicio 4. Cambie el valor para el servicio 4 a uno quesea igual o superior al valor para el servicio 3. Para obtener más información, consulte el siguienteejemplo.

7. Obtenga un token de cuórum (p. 64), teniendo cuidado de especificar el servicio 4 como el serviciopara el que puede utilizar el token.

8. Obtenga aprobaciones (firmas) de otros CO (p. 65).9. Apruebe el token en el HSM (p. 66).10. Utilice el comando setMValue para cambiar el valor mínimo de cuórum para el servicio 3 (operaciones

de administración de usuarios realizadas por CO).

Example : obtener valores mínimos de cuórum y cambiar el valor para el servicio 4

El siguiente comando de ejemplo muestra que el valor mínimo de cuórum para el servicio 3 es actualmentedos.

aws-cloudhsm>getMValue 3MValue 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 actualmenteuno.

aws-cloudhsm>getMValue 4

70

Page 76: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCambiar el valor de cuórum para

responsables de criptografía

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 para el servicio 4, utilice el comando setMValue, estableciendo unvalor que sea igual o superior al valor para el servicio 3. El siguiente ejemplo establece el valor mínimo decuó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 thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?ySetting M Value(2) for 4 on 2 nodes

El siguiente comando muestra que el valor mínimo de cuórum es ahora dos para el servicio 3 y para elservicio 4.

aws-cloudhsm>getMValue 3MValue of service 3[USER_MGMT] on server 0 : [2]MValue of service 3[USER_MGMT] on server 1 : [2]

aws-cloudhsm>getMValue 4MValue of service 4[MISC_CO] on server 0 : [2]MValue of service 4[MISC_CO] on server 1 : [2]

71

Page 77: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuariocloudhsm_mgmt_util

Herramientas de línea de comandosde AWS CloudHSM

AWS CloudHSM proporciona herramientas de línea de comandos para administrar y utilizar AWSCloudHSM.

Temas• cloudhsm_mgmt_util (p. 72)• key_mgmt_util (p. 109)• Herramienta de configuración (p. 171)

Administración de clústeres y HSM

Las herramientas siguientes obtienen, crean, eliminan y etiquetan clústeres de AWS CloudHSM yHSM:• Comandos de CloudHSMv2 en la interfaz de línea de comandos de AWS (AWS CLI). Para utilizar

estos comandos, debe instalar y configurar la 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

Esta herramienta crea y elimina usuarios de HSM, incluida la implementación de la autenticación decuórum de las tareas de administración de usuarios:• cloudhsm_mgmt_util (p. 72). Esta herramienta está incluida en el software cliente de AWS

CloudHSM.

 Administración de claves

Esta herramienta crea, elimina, importa y exporta claves simétricas y pares de claves asimétricos:• key_mgmt_util (p. 109). Esta herramienta está incluida en el software cliente de AWS CloudHSM.

 Herramientas ayudantes

Estas herramientas le ayudan a utilizar las bibliotecas de software y de herramientas.• configure (p. 171) actualiza sus archivos de configuración de cliente de CloudHSM. De este modo

habilita a AWS CloudHSM para que sincronice los HSM de un clúster.• pkpspeed (p. 260) mide el desempeño del hardware del HSM con independencia de las

bibliotecas de software.

 

cloudhsm_mgmt_utilLa herramienta de línea de comandos cloudhsm_mgmt_util ayuda a los responsables de criptografía(PCO y CO) a administrar usuarios en los HSM. Incluye herramientas que crean, eliminan y enumeran losusuarios, y cambian las contraseñas de los usuarios.

72

Page 78: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioIntroducción

cloudhsm_mgmt_util también incluye los comandos que permiten a los usuarios de criptografía (CU)compartir claves, obtener y configurar atributos de clave. Estos comandos complementan los comandos deadministración de claves en la herramienta de administración de clave principal, key_mgmt_util (p. 109).

Para informarse sobre cómo comenzar rápidamente, consulte Introducción acloudhsm_mgmt_util (p. 73). Para obtener información detallada acerca de los comandoscloudhsm_mgmt_util y ejemplos del uso de los comandos, consulte Referencia de los comandoscloudhsm_mgmt_util (p. 79).

Temas• Introducción a cloudhsm_mgmt_util (p. 73)• Referencia de los comandos cloudhsm_mgmt_util (p. 79)

Introducción a cloudhsm_mgmt_utilAWS CloudHSM incluye dos herramientas de línea de comandos con el software de cliente de AWSCloudHSM (p. 34). La herramienta cloudhsm_mgmt_util (p. 79) incluye comandos para la administraciónde usuarios de HSM. La herramienta key_mgmt_util (p. 112)incluye comandos para administrar lasclaves. Para comenzar a utilizar la herramienta de línea de comandos cloudhsm_mgmt_util, consulte lossiguientes temas.

Temas• Prepararse para ejecutar cloudhsm_mgmt_util (p. 73)• Uso básico de cloudhsm_mgmt_util (p. 76)

Prepararse para ejecutar cloudhsm_mgmt_utilAntes de poder utilizar cloudhsm_mgmt_util, debe llevar a cabo los pasos siguientes. Tiene que realizarestos pasos la primera vez que utilice cloudhsm_mgmt_util y después de añadir o quitar HSM en el clúster.Con los pasos se actualizará la lista de HSM en los archivos de configuración que el cliente de AWSCloudHSM y las herramientas de línea de comandos utilizan. Mantener estos archivos actualizados ayudaa AWS CloudHSM a sincronizar datos y a mantener la coherencia en todos los HSM en el clúster.

Temas• Paso 1: Detener el cliente de AWS CloudHSM (p. 73)• Paso 2: Actualizar los archivos de configuración de AWS CloudHSM (p. 74)• Paso 3: Iniciar el cliente de AWS CloudHSM (p. 75)• Paso 4: Actualizar el archivo de configuración de cloudhsm_mgmt_util (p. 76)

Paso 1: Detener el cliente de AWS CloudHSMAntes de actualizar los archivos de configuración que AWS CloudHSM y las herramientas de línea decomandos utilizan, detenga el cliente de AWS CloudHSM. Si ya se ha detenido el cliente, la ejecución delcomando de detención no tiene ningún efecto nocivo.

Amazon Linux

$ sudo stop cloudhsm-client

Amazon Linux 2

$ sudo service cloudhsm-client stop

73

Page 79: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioIntroducción

CentOS 6

$ sudo stop cloudhsm-client

CentOS 7

$ sudo service cloudhsm-client stop

RHEL 6

$ sudo stop cloudhsm-client

RHEL 7

$ sudo service cloudhsm-client stop

Ubuntu 16.04 LTS

$ sudo service cloudhsm-client stop

Windows

You can use Ctrl+C to stop the client.

Paso 2: Actualizar los archivos de configuración de AWS CloudHSMEn este paso se utiliza el parámetro -a de la herramienta Configure (p. 171) para agregar la dirección IPde la interfaz de red elástica (ENI) de uno de los HSM del clúster al archivo de configuración.

Amazon Linux

$ sudo /opt/cloudhsm/bin/configure -a <HSM ENI IP>

Amazon Linux 2

$ sudo /opt/cloudhsm/bin/configure -a <HSM ENI IP>

CentOS 6

$ sudo /opt/cloudhsm/bin/configure -a <HSM ENI IP>

CentOS 7

$ sudo /opt/cloudhsm/bin/configure -a <HSM ENI IP>

RHEL 6

$ sudo /opt/cloudhsm/bin/configure -a <HSM ENI IP>

RHEL 7

$ sudo /opt/cloudhsm/bin/configure -a <HSM ENI IP>

74

Page 80: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioIntroducción

Ubuntu 16.04 LTS

$ sudo /opt/cloudhsm/bin/configure -a <HSM ENI IP>

Windows

c:\Program Files\Amazon\CloudHSM>configure.exe -a <HSM ENI IP>

Para obtener la dirección IP de ENI de un HSM en su clúster, puede utilizar el comando DescribeClusters,el comando describe-cluster o el cmdlet de PowerShell Get-HSM2Cluster. Escriba una sola dirección IP deENI. No importa qué dirección IP de ENI use.

Paso 3: Iniciar el cliente de AWS CloudHSM

A continuación, inicie o reinicie el cliente de AWS CloudHSM. Cuando el cliente de AWS CloudHSM seinicia, utiliza la dirección IP de ENI en su archivo de configuración para consultar al clúster. A continuación,añade las direcciones IP de ENI de todos los HSM en el clúster al archivo de información del clúster.

Amazon Linux

$ sudo start cloudhsm-client

Amazon Linux 2

$ sudo service cloudhsm-client start

CentOS 6

$ sudo start cloudhsm-client

CentOS 7

$ sudo service cloudhsm-client start

RHEL 6

$ sudo start cloudhsm-client

RHEL 7

$ sudo service cloudhsm-client start

Ubuntu 16.04 LTS

$ sudo service cloudhsm-client start

Windows

C:\Program Files\Amazon\CloudHSM>start "cloudhsm_client" cloudhsm_client.exe C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_client.cfg

75

Page 81: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioIntroducción

Paso 4: Actualizar el archivo de configuración de cloudhsm_mgmt_utilEl último paso utiliza el parámetro -m de la herramienta de configuración (p. 171) para copiar lasdirecciones IP de ENI actualizadas del archivo de información del clúster al archivo de configuraciónque utiliza cloudhsm_mgmt_util. Si omite este paso, podría tener problemas de sincronización, como porejemplo datos de usuario incoherentes (p. 260) en los HSM de su clúster.

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

Ubuntu 16.04 LTS

$ sudo /opt/cloudhsm/bin/configure -m

Windows

c:\Program Files\Amazon\CloudHSM>configure.exe -m

Una vez completado este paso, está preparado para iniciar cloudhsm_mgmt_util. Si añade o eliminaalgún HSM en cualquier momento, asegúrese de que repite este procedimiento antes de usarcloudhsm_mgmt_util.

Uso básico de cloudhsm_mgmt_utilConsulte los siguientes temas para conocer el uso básico de la herramienta cloudhsm_mgmt_util.

Note

La herramienta cloudhsm_mgmt_util no permite completar automáticamente los comandos con latecla tabulador. No utilice la tecla tabulador con cloudhsm_mgmt_util, ya que la herramienta puededejar de responder.

Temas

76

Page 82: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioIntroducción

• Inicie cloudhsm_mgmt_util (p. 77)• Habilitar el cifrado integral (p. 78)• Iniciar sesión en los HSM (p. 78)• Cerrar la sesión de los HSM (p. 78)• Detener cloudhsm_mgmt_util (p. 78)

Inicie cloudhsm_mgmt_utilUse 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

Ubuntu 16.04 LTS

$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg

Windows

C:\Program Files\Amazon\CloudHSM>cloudhsm_mgmt_util.exe C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_mgmt_util.cfg

La salida será parecida a la que se muestra a continuación en función de la cantidad de HSM que tenga.

Connecting to the server(s), it may take timedepending on the server(s) load, please wait...

Connecting to server '10.0.2.9': hostname '10.0.2.9', port 2225...Connected to server '10.0.2.9': hostname '10.0.2.9', port 2225.

Connecting to server '10.0.3.11': hostname '10.0.3.11', port 2225...Connected to server '10.0.3.11': hostname '10.0.3.11', port 2225.

77

Page 83: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioIntroducción

Connecting to server '10.0.1.12': hostname '10.0.1.12', port 2225...Connected to server '10.0.1.12': hostname '10.0.1.12', port 2225.

El símbolo cambia a aws-cloudhsm> cuando se ejecuta cloudhsm_mgmt_util.

Habilitar el cifrado integralUtilice el comando enable_e2e para establecer la comunicación cifrada integral entre cloudhsm_mgmt_utily los HSM de su clúster. Debe habilitar el cifrado integral cada vez que inicie cloudhsm_mgmt_util.

aws-cloudhsm>enable_e2eE2E 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)

Iniciar sesión en los HSMUtilice el comando loginHSM para iniciar sesión en los HSM. Cualquier usuario de cualquier tipo puedeutilizar este comando para iniciar sesión en los HSM.

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. 37). Elresultado 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, verifique que las direcciones IP deENI en los mensajes de éxito coinciden exactamente con las direcciones IP de ENI de todos losHSM en el clúster. Si no es así, deténgase y ejecute todos los pasos en el procedimiento thesection called “Prepararse para ejecutar cloudhsm_mgmt_util” (p. 73).Para obtener las direcciones IP de ENI de los HSM de su clúster, use la operaciónDescribeClusters, el comando describe-clusters o el cmdlet de PowerShell Get-HSM2Cluster.

aws-cloudhsm>loginHSM CO admin <password>loginHSM success on server 0(10.0.2.9)loginHSM success on server 1(10.0.3.11)loginHSM success on server 2(10.0.1.12)

A continuación se muestra la sintaxis del comando loginHSM.

aws-cloudhsm>loginHSM <user type> <user name> <password>

Cerrar la sesión de los HSMUtilice el comando logoutHSM para cerrar la sesión en los HSM.

aws-cloudhsm>logoutHSMlogoutHSM success on server 0(10.0.2.9)logoutHSM success on server 1(10.0.3.11)logoutHSM success on server 2(10.0.1.12)

Detener cloudhsm_mgmt_utilUtilice el comando quit para detener cloudhsm_mgmt_util.

aws-cloudhsm>quit

78

Page 84: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

disconnecting from servers, please wait...

Referencia de los comandos cloudhsm_mgmt_utilLa herramienta de línea de comandos cloudhsm_mgmt_util ayuda a los responsables de criptografía(PCO y CO) a administrar usuarios en los HSM. También incluye comandos que permiten a losusuarios de criptografía (CU) compartir claves, obtener y configurar atributos de clave. Estos comandoscomplementan los comandos de administración de clave principal en la herramienta de línea de comandoskey_mgmt_util (p. 109).

Para informarse sobre cómo comenzar rápidamente, consulte Introducción acloudhsm_mgmt_util (p. 73).

Para poder ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciarcloudhsm_mgmt_util (p. 77), habilitar el cifrado integral (p. 78) e iniciar sesión en (p. 78) elHSM. Asegúrese de que el tipo de usuario de la cuenta que utilice para iniciar sesión puede ejecutar loscomandos que desea utilizar.

Para generar una lista de todos los comandos cloudhsm_mgmt_util, escriba:

aws-cloudhsm> help

Para obtener la sintaxis para un comando cloudhsm_mgmt_util, escriba:

aws-cloudhsm> help <command-name>

Para ejecutar un comando, escriba el nombre del comando o lo suficiente del nombre para distinguirlo delos nombres de otros comandos cloudhsm_mgmt_util.

Por ejemplo, para obtener una lista de los usuarios en los HSM, escriba listUsers o listU.

aws-cloudhsm> listUsers

Para finalizar su sesión de cloudhsm_mgmt_util, escriba:

aws-cloudhsm> quit

For help interpreting the key attributes, see the Referencia de los atributos de claves (p. 168).

En los temas siguientes se describen comandos de la herramienta cloudhsm_mgmt_util.Note

Algunos comandos en key_mgmt_util y cloudhsm_mgmt_util tienen los mismos nombres.Sin embargo, normalmente los comandos tienen una sintaxis y una salida diferentes, y sufuncionalidad varía ligeramente.

Comando Descripción Tipo de usuario

changePswd (p. 80) Cambia las contraseñas de losusuarios en los HSM. Cualquierusuario puede cambiar supropia contraseña. Los COpueden cambiar la contraseña decualquier persona.

CO

79

Page 85: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Comando Descripción Tipo de usuario

createUser (p. 83) Crea usuarios de todo tipo en losHSM.

CO

deleteUser (p. 87) Elimina usuarios de todo tipo delos HSM.

CO

findAllKeys (p. 89) Obtiene las claves que unusuario posee o comparte.También obtiene un hash de lapropiedad de la clave y del usocompartido de datos para todaslas claves en cada HSM.

CO, AU

getAttribute (p. 92) Obtiene un valor de atributo parauna clave de AWS CloudHSM ylo escribe en un archivo o stdout.

CU

getHSMInfo (p. 95) Obtiene información sobre elhardware en el que se estáejecutando un HSM.

Todos. No es necesario iniciarsesión.

getKeyInfo (p. 95) Obtiene propietarios, usuarioscompartidos y el estado deautenticación de cuórum de unaclave.

Todos. No es necesario iniciarsesión.

info (p. 100) Obtiene información sobre unHSM, incluida la dirección IP,nombre de host, puerto y usuarioactual.

Todos. No es necesario iniciarsesión.

listUsers (p. 102) Obtiene los usuarios de cadauno de los HSM, su ID y tipo deusuario y otros atributos.

Todos. No es necesario iniciarsesión.

setAttribute (p. 104) Cambia los valores de losatributos de la etiqueta, decifrado, descifrado, encapsuladoy desencapsulado de una claveexistente.

CU

shareKey (p. 107) Comparte una clave existentecon otros usuarios.

CU

changePswdEl comando changePswd de cloudhsm_mgmt_util cambia la contraseña de un usuario existente en losHSM del clúster.

Cualquier usuario puede cambiar su propia contraseña. Los responsables de criptografía (CO y PCO)también pueden cambiar la contraseña de cualquier otro usuario. No es necesario que escriba lacontraseña actual para realizar el cambio. Sin embargo, no puede cambiar la contraseña de un usuarioque ha iniciado sesión en el cliente de AWS CloudHSM o en key_mgmt_util.

Para poder ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciarcloudhsm_mgmt_util (p. 77), habilitar el cifrado integral (p. 78) e iniciar sesión en (p. 78) el

80

Page 86: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

HSM. Asegúrese de que el tipo de usuario de la cuenta que utilice para iniciar sesión puede ejecutar loscomandos que desea utilizar.

Si añade o elimina HSM, actualice los archivos de configuración (p. 73) utilizados por el cliente de AWSCloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que realiceno 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.

Sintaxis

Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

changePswd <user-type> <user-name> <password>

Ejemplos

En estos ejemplos se muestra cómo utilizar changePassword para crear usuarios nuevos en los HSM.

Example : cambio de la contraseña

Cualquier usuario de los HSM puede utilizar changePswd para cambiar su propia contraseña.

El primer comando utiliza info (p. 100) para obtener el usuario actual. La salida muestra que el usuarioactual bob es un usuario criptográfico (CU).

aws-cloudhsm> info server 0Id Name Hostname Port State Partition LoginState0 10.0.3.10 10.0.3.10 2225 Connected hsm-aaaabbbbccc Logged in as 'bob(CU)'

aws-cloudhsm> info server 1Id Name Hostname Port State Partition LoginState0 10.0.3.10 10.0.3.10 2225 Connected hsm-ccccaaaabbb Logged in as 'bob(CU)'

Para cambiar su contraseña el usuario bob ejecuta changePswd con una nueva contraseña,newPasswerd.

Cuando se completa el comando, el cambio de la contraseña entra en vigor.

aws-cloudhsm> createUser CU bob newPasswerd

*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?y

81

Page 87: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Changing password for bob(CU) on 2 nodes

Example : cambio de la contraseña de otro usuario

En este ejemplo se muestra cómo cambiar la contraseña de otro usuario. Cualquier responsable decriptografía (CO, PCO) puede cambiar la contraseña de cualquier usuario de los HSM sin tener queespecificar la contraseña existente.

El primer comando utiliza info (p. 100) para confirmar que alice, una responsable de criptografía, hayainiciado sesión en los HSM del clúster.

aws-cloudhsm>info server 0Id Name Hostname Port State Partition LoginState0 10.0.3.10 10.0.3.10 2225 Connected hsm-aaaabbbbccc Logged in as 'alice(CO)'

aws-cloudhsm>info server 1Id Name Hostname Port State Partition LoginState0 10.0.3.10 10.0.3.10 2225 Connected hsm-ccccaaaabbb Logged in as 'alice(CO)'

Este comando utiliza changePswd para cambiar la contraseña de officer1, otro responsable decriptografía en los HSM. En este caso, el comando restablece la contraseña en defaultPassword,la contraseña que esta compañía ficticia utiliza como valor predeterminado. Después officer1 podrárestablecer su contraseña en un valor más seguro.

aws-cloudhsm>changePswd CO officer1 defaultPassword

*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?yChanging password for officer1(CO) on 2 nodes

Argumentos

Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

changePswd <user-type> <user-name> <password> [1FA | 2FA]

<user-type>

Especifica el tipo actual de usuario cuya contraseña está cambiando. No puede utilizar changePswdpara cambiar el tipo de usuario.

Los valores válidos son CO, CU, AU, PCO y PRECO.

Para obtener el tipo de usuario, utilice listUsers (p. 102). Para obtener información detallada sobrelos tipos de usuario en un HSM, consulte Usuarios de HSM (p. 10).

Requerido: sí

82

Page 88: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

<user-name>

Especifica el nombre fácil de recordar del usuario. Este parámetro no distingue entre mayúsculas yminúsculas. No puede utilizar changePswd para cambiar el nombre de usuario.

Requerido: sí<password>

Especifica una contraseña nueva para el usuario. Escriba una cadena de entre 7 y 32 caracteres. Estevalor distingue entre mayúsculas y minúsculas. La contraseña aparece en texto no cifrado cuando laescribe.

Requerido: sí1FA | 2FA

Activa o desactiva la autenticación de doble factor para el nuevo usuario. Escriba 1FA o 2FA.

Este parámetro es válido solo cuando se ha configurado el clúster para la autenticación de doblefactor.

Requerido: No

Valor predeterminado: 1FA. La autenticación de dos factores no está habilitada.

Temas relacionados

• listUsers (p. 102)• createUser (p. 83)• deleteUser (p. 87)• syncUser

createUserEl comando createUser en cloudhsm_mgmt_util crea un usuario en los HSM. Solo los responsablesde criptografía (CO y PCO) pueden ejecutar este comando. Al crear un usuario, debe especificar eltipo de usuario (CO o CU), un nombre de usuario y una contraseña. Cuando el comando se ejecutacorrectamente, crea el usuario en todos los HSM en el clúster.

Sin embargo, si su configuración de HSM es inexacta, es posible que no se haya creado el usuario entodos los HSM. Para añadir el usuario a cualquier HSM en el que falte, utilice los comandos syncUser ocreateUser solo en los HSM en los que falta ese usuario. Para evitar errores de configuración, ejecute laherramienta de configuración con la opción -m.

Para poder ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciarcloudhsm_mgmt_util (p. 77), habilitar el cifrado integral (p. 78) e iniciar sesión en (p. 78) elHSM. Asegúrese de que el tipo de usuario de la cuenta que utilice para iniciar sesión puede ejecutar loscomandos que desea utilizar.

Si añade o elimina HSM, actualice los archivos de configuración (p. 73) utilizados por el cliente de AWSCloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que realiceno se hagan efectivos en todos los HSM del clúster.

Tipo de usuarioLos tipos de usuarios siguientes pueden ejecutar este comando.

• Responsables de criptografía (CO, PCO)

83

Page 89: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

SintaxisDado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

Tipo de usuario: responsable de criptografía (CO, PCO)

createUser <user-type> <user-name> <password> [1FA | 2FA]

EjemplosEn estos ejemplos se muestra cómo utilizar createUser para crear usuarios nuevos en los HSM.

Example : crear un responsable de criptografía

Este ejemplo crea a un responsable de criptografía (CO) en los HSM en un clúster. El primer comandoutiliza loginHSM para iniciar sesión en los HSM como responsable de criptografía.

aws-cloudhsm> loginHSM CO admin 735782961

loginHSM success on server 0(10.0.0.1)loginHSM success on server 1(10.0.0.2)loginHSM success on server 1(10.0.0.3)

El segundo comando utiliza el comando createUser para crear alice, un nuevo responsable decriptografía en el HSM.

El mensaje de precaución explica que el comando crea usuarios en todos los HSM en el clúster. Sinembargo, si el comando produce un error en cualquier HSM, el usuario no existe en esos HSM. Paracontinuar, escriba y.

El resultado muestra que se creó el usuario nuevo en los tres HSM del clúster.

aws-cloudhsm> createUser CO alice 391019314

*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?Invalid option, please type 'y' or 'n'

Do you want to continue(y/n)?yCreating User alice(CO) on 3 nodes

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. 102) para verificar que alice existe en los tres HSM enel clúster. El resultado también muestra que se ha asignado a alice el ID de usuario 3.. Puede utilizar elID de usuario para identificar alice en otros comandos, como findAllKeys (p. 89).

aws-cloudhsm> listUsersUsers on server 0(10.0.0.1):Number of users found:3

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA

84

Page 90: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

1 PCO admin YES 0 NO 2 AU app_user NO 0 NO 3 CO alice NO 0 NOUsers on server 1(10.0.0.2):Number of users found:3

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin YES 0 NO 2 AU app_user NO 0 NO 3 CO alice NO 0 NO

Users on server 1(10.0.0.3):Number of users found:3

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin YES 0 NO 2 AU app_user NO 0 NO 3 CO alice NO 0 NO

Example : crear un usuario de criptografía

Este ejemplo crea un usuario de criptografía (CU) bob, en el HSM. Los usuarios de criptografía puedencrear 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ó enlos 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 puedenusar el comando changePswd (p. 80) para cambiar su contraseña.

aws-cloudhsm> createUser CU bob defaultPassword

*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?Invalid option, please type 'y' or 'n'

Do you want to continue(y/n)?yCreating User bob(CU) on 3 nodes

Argumentos

Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

createUser <user-type> <user-name> <password> [ 1FA | 2FA ]

85

Page 91: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

<user-type>

Especifica el tipo de usuario. Este parámetro es obligatorio.

Para obtener información detallada sobre los tipos de usuario en un HSM, consulte Usuarios deHSM (p. 10).

Valores válidos:• CO: los responsables de criptografía pueden administrar usuarios, pero no pueden administrar

claves.• 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 lamisma funcionalidad que un usuario CO. Un usuario PRECO es un tipo temporal que se creaautomáticamente en cada HSM. El PRECO se convierte en un PCO cuando asigna una contraseñadurante la activación de HSM (p. 37).

Requerido: sí<user-name>

Especifica un nombre fácil de recordar para el usuario. La longitud máxima es de 31 caracteres. Elúnico carácter especial permitido es un guion bajo (_).

No puede cambiar el nombre de un usuario después de crearlo. En los comandoscloudhsm_mgmt_util, el tipo de usuario y la contraseña distinguen entre mayúsculas y minúsculas,pero el nombre de usuario no.

Requerido: sí<password>

Especifica una contraseña para el usuario. Escriba una cadena de entre 7 y 32 caracteres. Estevalor distingue entre mayúsculas y minúsculas. La contraseña aparece en texto no cifrado cuando laescribe.

Para cambiar una contraseña de usuario, utilice changePswd. Cualquier usuario de HSM puedecambiar su propia contraseña, pero los usuarios CO pueden cambiar la contraseña de cualquierusuario (de cualquier tipo) en los HSM.

Requerido: sí1FA | 2FA

Activa o desactiva la autenticación de doble factor para el nuevo usuario. Escriba 1FA o 2FA.

Este parámetro es válido solo cuando se ha configurado el clúster para la autenticación de doblefactor.

Requerido: No

Predeterminado: 1FA: la autenticación de doble factor no está activada.

Temas relacionados

• listUsers (p. 102)• deleteUser (p. 87)

86

Page 92: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

• syncUser• changePswd (p. 80)

deleteUserEl comando deleteUser en cloudhsm_mgmt_util elimina un usuario de los HSM. Solo los responsablesde criptografía (CO y PCO) pueden ejecutar este comando, pero cualquier usuario CO puede eliminar acualquier usuario de cualquier tipo de los HSM. Sin embargo, no puede eliminar un usuario que ha iniciadosesió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 seeliminan, incluso si las claves se compartían con otros usuarios. Para evitar la eliminaciónaccidental o maliciosa de usuarios, utilice la autenticación de cuórum (p. 64).

Para poder ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciarcloudhsm_mgmt_util (p. 77), habilitar el cifrado integral (p. 78) e iniciar sesión en (p. 78) elHSM. Asegúrese de que el tipo de usuario de la cuenta que utilice para iniciar sesión puede ejecutar loscomandos que desea utilizar.

Si añade o elimina HSM, actualice los archivos de configuración (p. 73) utilizados por el cliente de AWSCloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que realiceno se hagan efectivos en todos los HSM del clúster.

Tipo de usuario

Los tipos de usuarios siguientes pueden ejecutar este comando.

• Responsables de criptografía (CO, PCO)

Sintaxis

Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

deleteUser <user-type> <user-name>

Ejemplo

Este ejemplo elimina a un responsable de criptografía (CO) de los HSM en un clúster. El primer comandoutiliza listUsers para generar una lista de todos los usuarios en los HSM.

El resultado muestra que el usuario 3, alice, es un CO en los HSM.

aws-cloudhsm> listUsersUsers on server 0(10.0.0.1):Number of users found:3

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin YES 0 NO 2 AU app_user NO 0 NO 3 CO alice NO 0 NO

87

Page 93: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Users on server 1(10.0.0.2):Number of users found:3

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin YES 0 NO 2 AU app_user NO 0 NO 3 CO alice NO 0 NO

Users on server 1(10.0.0.3):Number of users found:3

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin YES 0 NO 2 AU app_user NO 0 NO 3 CO alice NO 0 NO

El segundo comando utiliza el comando deleteUser para eliminar alice de los HSM.

El resultado muestra que el comando se ha ejecutado correctamente en los tres HSM del clúster.

aws-cloudhsm> deleteUser CO aliceDeleting user alice(CO) on 3 nodesdeleteUser success on server 0(10.0.0.1)deleteUser success on server 0(10.0.0.2)deleteUser success on server 0(10.0.0.3)

El comando final utiliza el comando listUsers (p. 102) para verificar que se elimina a alice de los tresHSM en el clúster.

aws-cloudhsm> listUsersUsers on server 0(10.0.0.1):Number of users found:2

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin YES 0 NO 2 AU app_user NO 0 NOUsers on server 1(10.0.0.2):Number of users found:2

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin YES 0 NO 2 AU app_user NO 0 NOUsers on server 1(10.0.0.3):Number of users found:2

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin YES 0 NO

88

Page 94: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

2 AU app_user NO 0 NO

Argumentos

Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

deleteUser <user-type> <user-name>

<user-type>

Especifica el tipo de usuario. Este parámetro es obligatorio.

Warning

Cuando elimina un usuario de criptografía (CU), todas las claves propiedad del usuario seeliminan, incluso si las claves se compartían con otros usuarios. Para evitar la eliminaciónaccidental o maliciosa de usuarios, utilice la autenticación de cuórum (p. 64).

Los valores válidos son CO, CU, AU, PCO y PRECO.

Para obtener el tipo de usuario, utilice listUsers (p. 102). Para obtener información detallada sobrelos tipos de usuario en un HSM, consulte Usuarios de HSM (p. 10).

Requerido: sí<user-name>

Especifica un nombre fácil de recordar para el usuario. La longitud máxima es de 31 caracteres. Elúnico carácter especial permitido es un guion bajo (_).

No puede cambiar el nombre de un usuario después de crearlo. En los comandoscloudhsm_mgmt_util, el tipo de usuario y la contraseña distinguen entre mayúsculas y minúsculas,pero el nombre de usuario no.

Requerido: sí

Temas relacionados

• listUsers (p. 102)• createUser (p. 83)• syncUser• changePswd (p. 80)

findAllKeysEl comando findAllKeys en 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 delos HSM. Puede utilizar el hash para determinar de un vistazo si los usuarios, la propiedad de la clave y losdatos de uso compartido de la clave son los mismos en todos los HSM en el clúster.

findAllKeys solo devuelve claves públicas cuando el CU especificado posee la clave, aunque todos los CUen el HSM pueden utilizar cualquier clave pública. Este comportamiento es diferente de findKey; (p. 124)en key_mgmt_util, que devuelve claves públicas para todos los usuarios de CU.

89

Page 95: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Solo los responsables de criptografía (CO y PCO) y los usuarios de dispositivos (AU) pueden ejecutareste comando. Los usuarios de criptografía (CU) pueden ejecutar listUsers (p. 102) para encontrartodos los usuarios, findKey (p. 124) en key_mgmt_util para encontrar las claves que pueden utilizar ygetKeyInfo (p. 150) en key_mgmt_util para encontrar al propietario y los usuarios compartidos de unaclave en particular que poseen o comparten.

Para poder ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciarcloudhsm_mgmt_util (p. 77), habilitar el cifrado integral (p. 78) e iniciar sesión en (p. 78) elHSM. Asegúrese de que el tipo de usuario de la cuenta que utilice para iniciar sesión puede ejecutar loscomandos que desea utilizar.

Si añade o elimina HSM, actualice los archivos de configuración (p. 73) utilizados por el cliente de AWSCloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que realiceno se hagan efectivos en todos los HSM del clúster.

Tipo de usuarioLos tipos de usuarios siguientes pueden ejecutar este comando.

• Responsables de criptografía (CO, PCO)• Usuarios de dispositivo (AU)

SintaxisDado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

findAllKeys<user id> <key hash (0/1)> [<output file>]

EjemplosEstos ejemplos muestran cómo utilizar findAllKeys para encontrar todas las claves para un usuario yobtener un hash de la información del usuario de la clave en cada uno de los HSM.

Example : encontrar las claves para un CU

Este ejemplo utiliza findAllKeys para encontrar las claves en los HSM que el usuario 4 posee y comparte.El comando utiliza un valor de 0 para el segundo argumento para suprimir el valor hash. Dado que omite elnombre del archivo opcional, el comando escribe en stdout.

El resultado muestra que el usuario 4 puede utilizar 6 claves: 8, 9, 17, 262162, 19 y 31. El resultado utilizauna (s) para indicar que las claves 8, 9 y 262162 se comparten de forma explícita, aunque no indica si elusuario 4 las posee o las comparte. Las claves que no están marcadas con (s) incluyen claves simétricasy privadas que el usuario 4 posee y no comparte, y las claves públicas que están disponibles para todoslos usuarios de criptografía.

aws-cloudhsm> findAllKey 4 0Keys on server 0(10.0.0.1):Number of keys found 6number of keys matched from start index 0::68(s),9(s),17,262162(s),19,31findAllKeys success on server 0(10.0.0.1)

Keys on server 1(10.0.0.2):Number of keys found 6number of keys matched from start index 0::68(s),9(s),17,262162(s),19,31findAllKeys success on server 1(10.0.0.2)

90

Page 96: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Keys on server 1(10.0.0.3):Number of keys found 6number of keys matched from start index 0::68(s),9(s),17,262162(s),19,31findAllKeys success on server 1(10.0.0.3)

Example : verificar que los datos del usuario están sincronizados

Este ejemplo utiliza findAllKeys para verificar que todos los HSM en el clúster contienen los mismosusuarios, propiedad de la clave y valores para el uso compartido claves. Para ello, obtiene un hash de losdatos de usuario de la clave en cada HSM y compara los valores hash.

Para obtener el hash de la clave, el comando utiliza un valor de 1 en el segundo argumento. El nombre delarchivo 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 ocomparta cualquiera de las claves en los HSM. Si el usuario especificado no posee ni comparte ningunaclave, como por ejemplo un CO, el comando no devuelve un valor hash.

El resultado muestra que el hash de la clave es idéntico a ambos HSM en el clúster. Si uno de los HSMtuviera diferentes usuarios, diferentes propietarios de clave o diferentes usuarios compartidos, los valoresdel hash de la clave no serían iguales.

aws-cloudhsm> findAllKeys 6 1Keys on server 0(10.0.0.1):Number of keys found 3number of keys matched from start index 0::38(s),9(s),11,17(s)Key Hash:55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49

findAllKeys success on server 0(10.0.0.1)Keys on server 1(10.0.0.2):Number of keys found 3number of keys matched from start index 0::38(s),9(s),11,17(s)Key Hash:55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49

findAllKeys success on server 1(10.0.0.2)

Este comando demuestra que el valor hash representa los datos de usuario para todas las claves en elHSM. El comando utiliza findAllKeys para el usuario 3. A diferencia del usuario 6, que posee o compartesolo 3 claves, el usuario 3 es propietario o comparte 17 claves, pero el valor del hash de la clave es elmismo.

aws-cloudhsm> findAllKeys 3 1Keys on server 0(10.0.0.1):Number of keys found 17number of keys matched from start index 0::176,7,8(s),11,12,14,262159,262160,17(s),262162(s),19(s),20,21,262177,262179,262180,262181Key Hash:55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49

findAllKeys success on server 0(10.0.0.1)Keys on server 1(10.0.0.2):Number of keys found 17number of keys matched from start index 0::176,7,8(s),11,12,14,262159,262160,17(s),262162(s),19(s),20,21,262177,262179,262180,262181Key Hash:

91

Page 97: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49

findAllKeys success on server 1(10.0.0.2)

Argumentos

Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

findAllKeys <user id> <key hash (0/1)> [<output file>]

<user id>

Obtiene todas las claves que el usuario especificado posee o comparte. Escriba el ID del usuario enlos HSM. Para encontrar los ID de todos los usuarios, utilice listUsers (p. 102).

Todos los ID de usuario son válidos, pero findAllKeys devuelve claves solo para usuarios decriptografía (CU).

Requerido: sí<key hash>

Incluye (1) o excluye (0) un hash de la propiedad del usuario y del uso compartido de datos para todaslas claves en cada HSM.

Cuando el argumento user id representa a un usuario que posee o comparte claves, se rellenael hash de la clave. El valor del hash de la clave es idéntico para todos los usuarios que poseen ocomparten claves en el HSM, aunque posean y compartan claves diferentes. Sin embargo, cuandoel user id representa a un usuario que no posee ni comparte ninguna clave, como un CO, el valorhash no se rellena.

Requerido: sí<output file>

Escribe la salida en el archivo especificado.

Requerido: No

Valor predeterminado: stdout

Temas relacionados

• changePswd (p. 80)• deleteUser (p. 87)• listUsers (p. 102)• syncUser• findKey (p. 124) en key_mgmt_util• getKeyInfo (p. 150) en key_mgmt_util

getAttributeEl comando getAttribute en cloudhsm_mgmt_util obtiene un valor de atributo de una clave de todos losHSM del clúster y lo escribe en stdout o en un archivo. Solo los usuarios de criptografía (CU) puedenejecutar este comando.

92

Page 98: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Los atributos de la clave son las propiedades de una clave. Contienen características, como el tipo declave, 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.

Puede utilizar getAttribute solo en claves de su propiedad y las claves que se comparten con usted. Puedeejecutar este comando o el comando getAttribute (p. 92) en key_mgmt_util, que escribe uno o todos losvalores de los atributos de una clave en un archivo.

Para obtener una lista de los atributos y las constantes que los representan, ejecute el comandolistAttributes (p. 160). Para cambiar los valores de los atributos de las claves existentes, utilicesetAttribute (p. 162) en key_mgmt_util y setAttribute (p. 104) en cloudhsm_mgmt_util. For helpinterpreting the key attributes, see the Referencia de los atributos de claves (p. 168).

Para poder ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciarcloudhsm_mgmt_util (p. 77), habilitar el cifrado integral (p. 78) e iniciar sesión en (p. 78) elHSM. Asegúrese de que el tipo de usuario de la cuenta que utilice para iniciar sesión puede ejecutar loscomandos que desea utilizar.

Si añade o elimina HSM, actualice los archivos de configuración (p. 73) utilizados por el cliente de AWSCloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que realiceno se hagan efectivos en todos los HSM del clúster.

Tipo de usuario

Los tipos de usuarios siguientes pueden ejecutar este comando.

• Usuarios de criptografía (CU)

Sintaxis

Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

Tipo de usuario: usuario de criptografía (CU)

getAttribute <key handle> <attribute id> [<filename>]

Ejemplo

En este ejemplo se obtiene el valor del atributo extraíble de una clave de los HSM. Puede utilizar uncomando de este tipo para determinar si puede exportar una clave desde los HSM.

El primer comando utiliza listAttributes para encontrar la constante que representa el atributoextraíble. La salida muestra que la constante de OBJ_ATTR_EXTRACTABLE es 354. También puedeencontrar esta información con descripciones de los atributos y sus valores, en la Referencia de losatributos de claves (p. 168).

aws-cloudhsm> listAttributes

Following are 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_ENCRYPT = 260 OBJ_ATTR_DECRYPT = 261

93

Page 99: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

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 utiliza getAttribute para obtener el valor del atributo extraíble de la clave que tieneel identificador de clave 262170 en los HSM. Para especificar el atributo extraíble, el comando utiliza354, la constante que representa el atributo. Dado que el comando no especifica un 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 elpropietario 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.

aws-cloudhsm> getAttribute 262170 354

Attribute Value on server 0(10.0.1.10):OBJ_ATTR_EXTRACTABLE0x00000001

Attribute Value on server 1(10.0.1.12):OBJ_ATTR_EXTRACTABLE0x00000001

Attribute Value on server 2(10.0.1.7):OBJ_ATTR_EXTRACTABLE0x00000001

Argumentos

Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

getAttribute <key handle> <attribute id> [<filename>]

<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. 124) en key_mgmt_util.

Debe ser propietario de la clave especificada o esta debe compartirse con usted. Para encontrar losusuarios de una clave, use getKeyInfo (p. 150) en key_mgmt_util.

Requerido: sí<attribute id>

Identifica el atributo. Escriba una constante que represente un atributo o 512, que representa todoslos atributos. Por ejemplo, para obtener el tipo de clave, escriba 256, que es la constante del atributoOBJ_ATTR_KEY_TYPE.

Para generar una lista de los atributos y sus constantes, utilice listAttributes (p. 160). For helpinterpreting the key attributes, see the Referencia de los atributos de claves (p. 168).

94

Page 100: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Requerido: sí<filename>

Escribe la salida en el archivo especificado. Escriba una ruta de archivo.

Si el archivo especificado existe, getAttribute sobrescribe el archivo sin ningún tipo de advertencia.

Requerido: No

Valor predeterminado: stdout

Temas relacionados

• getAttribute (p. 147) en key_mgmt_util• listAttributes (p. 101)• setAttribute (p. 104) en cloudhsm_mgmt_util• setAttribute (p. 162) en key_mgmt_util• Referencia de los atributos de claves (p. 168)

getHSMInfoEl comando getHSMInfo en cloudhsm_mgmt_util obtiene información sobre el hardware en el que seejecuta cada HSM, incluido el modelo, número de serie, estado de FIPS, memoria, temperatura y losnúmeros de versión del hardware y el firmware. La información también incluye el ID del servidor quecloudhsm_mgmt_util utiliza para consultar el HSM.

Para poder ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciarcloudhsm_mgmt_util (p. 77), habilitar el cifrado integral (p. 78) e iniciar sesión en (p. 78) elHSM. Asegúrese de que el tipo de usuario de la cuenta que utilice para iniciar sesión puede ejecutar loscomandos que desea utilizar.

Si añade o elimina HSM, actualice los archivos de configuración (p. 73) utilizados por el cliente de AWSCloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que realiceno 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> getHSMInfoGetting HSM Info on 3 nodes

95

Page 101: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

*** Server 0 HSM Info ***

Label :cavium Model :NITROX-III CNN35XX-NFBE

Serial Number :3.0A0101-ICM000001 HSM Flags :0 FIPS state :2 [FIPS mode with single factor authentication]

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

Build Number :13

Firmware ID :xxxxxxxxxxxxxxx

...

Temas relacionados

• info (p. 100)• loginHSM

getKeyInfoEl comando getKeyInfo en la herramienta key_mgmt_util devuelve los ID de HSM de los usuarios quepueden utilizar la clave, incluidos el propietario y los usuarios de criptografía (CU) con quienes se compartela clave. Cuando la autenticación de cuórum está habilitada en una clave, getKeyInfo también devuelve elnúmero de usuarios que debe aprobar las operaciones criptográficas que utilizan la clave. Puede ejecutargetKeyInfo solo en claves de su propiedad y las claves que se comparten con usted.

Cuando ejecuta getKeyInfo en claves públicas, getKeyInfo solo 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 losusuarios en sus HSM, utilice listUsers (p. 161). Para encontrar las claves de un usuario concreto, usefindKey (p. 124) -u en la herramienta key_mgmt_util. Los responsables de criptografía pueden usarfindAllKeys (p. 89) en la herramienta cloudhsm_mgmt_util.

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. 107) encloudhsm_mgmt_util.

Para poder ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciarcloudhsm_mgmt_util (p. 77), habilitar el cifrado integral (p. 78) e iniciar sesión en (p. 78) el

96

Page 102: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

HSM. Asegúrese de que el tipo de usuario de la cuenta que utilice para iniciar sesión puede ejecutar loscomandos que desea utilizar.

Si añade o elimina HSM, actualice los archivos de configuración (p. 73) utilizados por el cliente de AWSCloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que realiceno se hagan efectivos en todos los HSM del clúster.

Tipo de usuarioLos tipos de usuarios siguientes pueden ejecutar este comando.

• Usuarios de criptografía (CU)

Sintaxis

getKeyInfo -k <key-handle> <output file>

EjemplosEn estos ejemplos se muestra cómo utilizar getKeyInfo para obtener información sobre los usuarios de unaclave.

Example : obtener los usuario para una clave asimétrica

Este comando obtiene los usuarios que pueden utilizar la clave AES (asimétrica) con identificador de clave262162. El resultado muestra que el usuario 3 es propietario de la clave y la comparte con los usuarios 4 y6.

Solo los usuarios 3, 4 y 6 pueden ejecutar getKeyInfo en la clave 262162.

aws-cloudhsm>getKeyInfo 262162Key Info on server 0(10.0.0.1):

Token/Flash Key,

Owned by user 3

also, shared to following 2 user(s):

4 6Key Info on server 1(10.0.0.2):

Token/Flash Key,

Owned by user 3

also, shared to following 2 user(s):

4 6

Example : obtener los usuarios para un par de claves simétricas

Estos comandos utilizan getKeyInfo para obtener los usuarios que pueden utilizar las claves en un parde claves ECC (simétricas) (p. 142). La clave pública tiene el identificador de clave 262179. La claveprivada tiene el identificador de clave 262177.

Cuando ejecuta getKeyInfo en la clave privada (262177), devuelve el propietario de la clave (3) y losusuarios de criptografía (CU) 4, con quienes se comparte la clave.

97

Page 103: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

aws-cloudhsm>getKeyInfo -k 262177Key Info on server 0(10.0.0.1):

Token/Flash Key,

Owned by user 3

also, shared to following 1 user(s):

4Key Info on server 1(10.0.0.2):

Token/Flash Key,

Owned by user 3

also, shared to following 1 user(s):

4

Cuando ejecuta getKeyInfo en la clave pública (262179), devuelve solo el propietario de la clave, elusuario 3.

aws-cloudhsm>getKeyInfo -k 262179Key Info on server 0(10.0.3.10):

Token/Flash Key,

Owned by user 3

Key Info on server 1(10.0.3.6):

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 en el HSM),utilice el parámetro -u de findKey (p. 124) 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 claveprivada creadas o que se hayan compartido con ellos.

Command: findKey -u 4

Total number of keys present 8

number of keys matched from start index 0::711, 12, 262159, 262161, 262162, 19, 20, 21, 262177, 262179

Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS

Example : obtener el 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 enel cuórum que debe aprobar las operaciones criptográficas que utilizan la clave y las operaciones paracompartir y dejar de compartir la clave.

98

Page 104: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Cuando la autenticación de cuórum está habilitada en una clave, un cuórum de usuarios debe aprobarcualquier operación criptográfica que utilice la clave. Para habilitar la autenticación de cuórum y establecerel tamaño de cuórum, utilice el parámetro -m_value al crear la clave.

Este comando utiliza genSymKey (p. 142) para crear una clave AES de 256 bits que se compartecon el usuario 4. Utiliza el parámetro m_value para habilitar la autenticación de cuórum y establecer eltamaño de cuórum en dos usuarios. El número de usuarios debe ser lo suficientemente grande como paraproporcionar las aprobaciones necesarias.

El resultado muestra que el comando ha creado la clave 10.

Command: genSymKey -t 31 -s 32 -l aes256m2 -u 4 -m_value 2

Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Created. Key Handle: 10

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Este comando utiliza getKeyInfo en cloudhsm_mgmt_util para obtener información sobre los usuarios dela 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 queutilizan la clave.

aws-cloudhsm>getKeyInfo 10

Key Info on server 0(10.0.0.1):

Token/Flash Key,

Owned by user 3

also, shared to following 1 user(s):

4 2 Users need to approve to use/manage this keyKey Info on server 1(10.0.0.2):

Token/Flash Key,

Owned by user 3

also, shared to following 1 user(s):

4 2 Users need to approve to use/manage this key

ArgumentosDado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

getKeyInfo -k <key-handle> <output file>

<key-handle>

Especifica el identificador de una clave en el HSM. Escriba el identificador de una clave de supropiedad o que comparte. Este parámetro es obligatorio.

99

Page 105: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Requerido: sí<output file>

Escribe la salida en el archivo especificado, en lugar de stdout. Si el archivo existe, el comando losobrescribe sin ningún tipo de advertencia.

Requerido: No

Valor predeterminado: stdout

Temas relacionados

• getKeyInfo (p. 150) en key_mgmt_util• findKey (p. 124) en key_mgmt_util• findAllKeys (p. 89) en cloudhsm_mgmt_util• listUsers (p. 102)• shareKey (p. 107)

infoEl comando info de cloudhsm_mgmt_util obtiene información acerca de cada uno de los HSM del clúster,incluido el nombre de host, el puerto, la dirección IP y el nombre y tipo de usuario que ha iniciado sesión encloudhsm_mgmt_util en el HSM.

Para poder ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciarcloudhsm_mgmt_util (p. 77), habilitar el cifrado integral (p. 78) e iniciar sesión en (p. 78) elHSM. Asegúrese de que el tipo de usuario de la cuenta que utilice para iniciar sesión puede ejecutar loscomandos que desea utilizar.

Si añade o elimina HSM, actualice los archivos de configuración (p. 73) utilizados por el cliente de AWSCloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que realiceno 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 ordenespecificado en el diagrama de sintaxis.

info server <server ID>

Ejemplo

En este ejemplo se utiliza info para obtener información acerca de un HSM del clúster. El comando utiliza 0para consultar el primer HSM del clúster. La salida muestra la dirección IP, el puerto y el tipo y los nombresdel usuario actual.

aws-cloudhsm> info server 0

100

Page 106: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Id Name Hostname Port State Partition LoginState0 10.0.0.1 10.0.0.1 2225 Connected hsm-udw0tkfg1ab Logged in as 'testuser(CU)'

ArgumentosDado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

info server <server ID>

<id_servidor>

Especifica el ID de servidor del HSM. El sistema asigna a los HSM números ordinales que representanel orden en el que se añaden al clúster, comenzando por 0. Para encontrar el ID de servidor de unHSM, utilice getHSMInfo.

Requerido: sí

Temas relacionados

• getHSMInfo (p. 95)• loginHSM

listAttributesEl comando listAttributes en cloudhsm_mgmt_util enumera los atributos de una clave de AWS CloudHSMy las constantes que los representan. Usted utiliza estas constantes para identificar los atributos en loscomandos getAttribute (p. 92) y setAttribute (p. 104).

For help interpreting the key attributes, see the Referencia de los atributos de claves (p. 168).

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Tipo de usuarioLos tipos de usuarios siguientes pueden ejecutar este comando.

• Todos los usuarios. No es preciso haber iniciado sesión para ejecutar este comando.

Sintaxis

listAttributes [-h]

EjemploEste comando enumera los atributos clave que puede obtener y cambiar en key_mgmt_util y las constantesque los representan. For help interpreting the key attributes, see the Referencia de los atributos declaves (p. 168). Para representar todos los atributos, utilice 512.

Command: listAttributes

101

Page 107: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

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

Parámetros

-h

Displays help for the command.

Required: Yes

Temas relacionados

• getAttribute (p. 92)• setAttribute (p. 104)• Referencia de los atributos de claves (p. 168)

listUsersEl comando listUsers de cloudhsm_mgmt_util obtiene los usuarios de cada uno de los HSM, junto con sutipo de usuario y otros atributos. Este comando lo pueden ejecutar todo tipo de usuarios. Ni siquiera espreciso haber iniciado sesión en cloudhsm_mgmt_util para ejecutar este comando.

Para poder ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciarcloudhsm_mgmt_util (p. 77), habilitar el cifrado integral (p. 78) e iniciar sesión en (p. 78) elHSM. Asegúrese de que el tipo de usuario de la cuenta que utilice para iniciar sesión puede ejecutar loscomandos que desea utilizar.

Si añade o elimina HSM, actualice los archivos de configuración (p. 73) utilizados por el cliente de AWSCloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que realiceno se hagan efectivos en todos los HSM del clúster.

Tipo de usuarioLos tipos de usuarios siguientes pueden ejecutar este comando.

• Todos los usuarios. No es preciso haber iniciado sesión para ejecutar este comando.

102

Page 108: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

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, por ejemplo,deleteUser, changePswd y findAllKeys.

La salida muestra que uno de los usuarios, officer2, solo existe en el primer HSM. Para añadir dichousuario a otros HSM, utilice syncUser.

aws-cloudhsm> listUsersUsers on server 0(10.0.0.1):Number of users found:6

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin YES 0 NO 2 AU app_user NO 0 NO 3 CU crypto_user1 NO 0 NO 4 CU crypto_user2 NO 0 NO 5 CO officer1 YES 0 NO 6 CO officer2 NO 0 NOUsers on server 1(10.0.0.2):Number of users found:5

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin YES 0 NO 2 AU app_user NO 0 NO 3 CU crypto_user1 NO 0 NO 4 CU crypto_user2 NO 0 NO 5 CO officer1 YES 0 NO

La salida contiene los siguientes atributos de usuario:

• User ID (ID de usuario): identifica al usuario en los comandos key_mgmt_util ycloudhsm_mgmt_util (p. 72).

• 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. 58).• LoginFailureCnt:

103

Page 109: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

• 2FA: indica que el usuario ha activado la autenticación multifactor.

Temas relacionados

• listUsers (p. 161) en key_mgmt_util• createUser (p. 83)• deleteUser (p. 87)• syncUser• changePswd (p. 80)

setAttributeEl comando setAttribute de cloudhsm_mgmt_util cambia el valor de la etiqueta, cifra, descifra,encapsula y desencapsula atributos de una clave en los HSM. También puede utilizar el comandosetAttribute; (p. 162) 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.

Para poder ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciarcloudhsm_mgmt_util (p. 77), habilitar el cifrado integral (p. 78) e iniciar sesión en (p. 78) elHSM. Asegúrese de que el tipo de usuario de la cuenta que utilice para iniciar sesión puede ejecutar loscomandos que desea utilizar.

Si añade o elimina HSM, actualice los archivos de configuración (p. 73) utilizados por el cliente de AWSCloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que realiceno se hagan efectivos en todos los HSM del clúster.

Tipo de usuario

Los tipos de usuarios siguientes pueden ejecutar este comando.

• Usuarios de criptografía (CU)

Sintaxis

Dado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

Tipo de usuario: usuario de criptografía (CU)

setAttribute <key handle> <attribute id>

Ejemplo

En este ejemplo se muestra cómo deshabilitar la funcionalidad de descifrar de una clave simétrica. Puedeutilizar un comando como este para configurar una clave de encapsulación que debe poder encapsular ydesencapsular otras claves, pero no cifrar ni descifrar datos.

El primer paso consiste en crear la clave de encapsulación. Este comando utiliza genSymKey (p. 142)en key_mgmt_util para generar una clave simétrica AES de 256 bits. La salida muestra que la nueva clavetiene el identificador de clave 14.

$ genSymKey -t 31 -s 32 -l aes256

104

Page 110: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Created. Key Handle: 14

Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

A continuación, queremos confirmar el valor actual del atributo de descifrar. Para obtener el ID de atributodel atributo de descifrar, utilice listAttributes (p. 101). La salida muestra que la constante que representaal atributo OBJ_ATTR_DECRYPT es 261. For help interpreting the key attributes, see the Referencia de losatributos de claves (p. 168).

aws-cloudhsm> listAttributes

Following are 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_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

Para obtener el valor actual del atributo de descifrar para la clave 14, el siguiente comando utilizagetAttribute (p. 92) en cloudhsm_mgmt_util.

La salida muestra que el valor del atributo de descifrar es verdadera (1) en ambos HSM del clúster.

aws-cloudhsm> getAttribute 14 261 Attribute Value on server 0(10.0.0.1):OBJ_ATTR_DECRYPT0x00000001

Attribute Value on server 1(10.0.0.2):OBJ_ATTR_DECRYPT0x00000001

Este comando utiliza setAttribute para cambiar el valor del atributo de descifrar (atributo 261) de la clave14 en 0. Esto desactivará la funcionalidad de descifrar en la clave.

La salida muestra que el comando se ha ejecutado correctamente en ambos HSM del clúster.

aws-cloudhsm> setAttribute 14 261 0*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, please

105

Page 111: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

ensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)? ysetAttribute success on server 0(10.0.0.1)setAttribute success on server 1(10.0.0.2)

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 261Attribute Value on server 0(10.0.3.6):OBJ_ATTR_DECRYPT0x00000000

Attribute Value on server 1(10.0.1.7):OBJ_ATTR_DECRYPT0x00000000

Argumentos

setAttribute <key handle> <attribute id>

<key-handle>

Especifica el identificador de una clave de su propiedad. Puede especificar una única clave en cadacomando. Para obtener el identificador de una clave, use findKey (p. 124) en key_mgmt_util. Paraencontrar los usuarios de una clave, use getKeyInfo (p. 96).

Requerido: sí<attribute id>

Especifica la constante que representa el atributo que desea cambiar. Puede especificarun único atributo en cada comando. Para obtener los atributos y sus valores enteros, utilicelistAttributes (p. 160). For help interpreting the key attributes, see the Referencia de los atributos declaves (p. 168).

Valores válidos:• 3: OBJ_ATTR_LABEL.• 260: OBJ_ATTR_ENCRYPT.• 261: OBJ_ATTR_DECRYPT.• 262: OBJ_ATTR_WRAP.• 263: OBJ_ATTR_UNWRAP.

Requerido: sí

Temas relacionados

• setAttribute (p. 162) en key_mgmt_util• getAttribute (p. 92)• listAttributes (p. 101)• Referencia de los atributos de claves (p. 168)

106

Page 112: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

shareKeyEl comando shareKey en cloudhsm_mgmt_util comparte y cancela el uso compartido de claves de supropiedad con otros usuarios de criptografía. Solo el propietario de la clave puede compartir y dejar decompartir 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 nopueden eliminar, exportar, compartir o dejar de compartir la clave, o cambiar sus atributos. Cuando laautenticación de cuórum está habilitada en una clave, el cuórum debe aprobar cualquier operación quecomparta o deje de compartir la clave.

Para poder ejecutar cualquier comando de cloudhsm_mgmt_util, debe iniciarcloudhsm_mgmt_util (p. 77), habilitar el cifrado integral (p. 78) e iniciar sesión en (p. 78) elHSM. Asegúrese de que el tipo de usuario de la cuenta que utilice para iniciar sesión puede ejecutar loscomandos que desea utilizar.

Si añade o elimina HSM, actualice los archivos de configuración (p. 73) utilizados por el cliente de AWSCloudHSM y la herramienta de línea de comandos. De lo contrario, es posible que los cambios que realiceno se hagan efectivos en todos los HSM del clúster.

Tipo de usuarioLos tipos de usuarios siguientes pueden ejecutar este comando.

• Usuarios de criptografía (CU)

SintaxisDado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

Tipo de usuario: usuario de criptografía (CU)

shareKey <key handle> <user id> <(share/unshare key?) 1/0>

EjemploLos siguientes ejemplos muestran cómo utilizar shareKey para compartir y dejar de compartir claves queposee con otros usuarios de criptografía.

Example : compartir a clave

Este ejemplo utiliza shareKey para compartir una clave privada de ECC (p. 142) que el usuario actualposee con otro usuario de criptografía en los HSM. Las claves públicas están disponibles para todos losusuarios del HSM, por lo que no puede compartirlas o dejar de compartirlas.

El primer comando utiliza getKeyInfo (p. 96) para obtener la información del usuario para la clave262177, 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

Key Info on server 0(10.0.3.10):

Token/Flash Key,

Owned by user 3

107

Page 113: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Key Info on server 1(10.0.3.6):

Token/Flash Key,

Owned by user 3

Este ejemplo utiliza shareKey para compartir la clave 262177 con el usuario 4, otro usuario de criptografíaen los HSM. El último argumento utiliza un valor de 1 para indicar una operación compartida.

El resultado muestra que la operación ha tenido éxito en ambos HSM en el clúster.

aws-cloudhsm>shareKey 262177 4 1*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?yshareKey success on server 0(10.0.3.10)shareKey success on server 1(10.0.3.6)

Para verificar que la operación ha tenido éxito, el ejemplo repite el primer comando getKeyInfo.

El resultado muestra que la clave 262177 se comparte ahora con el usuario 4.

aws-cloudhsm>getKeyInfo 262177

Key Info on server 0(10.0.3.10):

Token/Flash Key,

Owned by user 3

also, shared to following 1 user(s):

4Key Info on server 1(10.0.3.6):

Token/Flash Key,

Owned by user 3

also, shared to following 1 user(s):

4

Example : dejar de compartir una clave

En este ejemplo se deja de compartir una clave simétrica, es decir, elimina un usuario de criptografía de lalista de usuarios compartidos para la clave.

Este comando utiliza shareKey para eliminar al usuario 4 de la lista de los usuarios compartidos para laclave 6. El último argumento utiliza un valor de 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 nopuede utilizar la clave 6 en operaciones criptográficas.

aws-cloudhsm>shareKey 6 4 0*************************CAUTION********************************

108

Page 114: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuariokey_mgmt_util

This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?yshareKey success on server 0(10.0.3.10)shareKey success on server 1(10.0.3.6)

ArgumentosDado que este comando no tiene parámetros designados, debe introducir los argumentos en el ordenespecificado en el diagrama de sintaxis.

shareKey <key handle> <user id> <(share/unshare key?) 1/0>

<key-handle>

Especifica el identificador de una clave de su propiedad. Puede especificar una única clave en cadacomando. Para obtener el identificador de una clave, use findKey (p. 124) en key_mgmt_util. Paraverificar que usted es propietario de una clave, utilice getKeyInfo (p. 96).

Requerido: sí<user id>

Especifica el ID del usuario de criptografía (CU) con quien está compartiendo o dejando de compartirla clave. Para encontrar el ID del usuario, utilice listUsers (p. 102).

Requerido: sí<share 1 o unshare 0>

Para compartir la clave con el usuario especificado, escriba 1. Para dejar de compartir la clave, esdecir, para eliminar al usuario especificado de la lista de los usuarios compartidos para la clave,escriba 0.

Requerido: sí

Temas relacionados

• getKeyInfo (p. 96)

key_mgmt_utilLa herramienta de línea de comandos key_mgmt_util ayuda a los usuarios de criptografía (CU) aadministrar claves en los HSM. Contiene varios comandos que generan, eliminan, importan y exportanclaves, 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. 110).Para obtener información detallada acerca de los comandos, consulte Referencia de los comandos dekey_mgmt_util (p. 112). For help interpreting the key attributes, see the Referencia de los atributos declaves (p. 168).

Para utilizar key_mgmt_util si usa Linux, conéctese a la instancia de cliente y, a continuación, consulteInstalar y configurar el cliente de AWS CloudHSM (Linux) (p. 34). Si usa Windows, consulte Instalar yconfigurar el cliente de AWS CloudHSM (Windows) (p. 36).

109

Page 115: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioIntroducción

Temas• Introducción a key_mgmt_util (p. 110)• Referencia de los comandos de key_mgmt_util (p. 112)

Introducción a key_mgmt_utilAWS CloudHSM incluye dos herramientas de línea de comandos con el software de cliente de AWSCloudHSM (p. 34). La herramienta cloudhsm_mgmt_util (p. 79) incluye comandos para la administraciónde usuarios de HSM. La herramienta key_mgmt_util (p. 112)incluye comandos para administrar lasclaves. Para comenzar a utilizar la herramienta de línea de comandos key_mgmt_util, consulte lossiguientes temas.

Temas• Configurar key_mgmt_util (p. 110)• Uso básico de key_mgmt_util (p. 112)

Si detecta un mensaje de error o resultados inesperados para un comando, consulte los temas deSolución de problemas de AWS CloudHSM (p. 253) para obtener ayuda. Para más detalles acerca de loscomandos key_mgmt_util, consulte Referencia de los comandos de key_mgmt_util (p. 112).

Configurar key_mgmt_utilSiga los pasos de configuración que se describen a continuación antes de utilizar key_mgmt_util.

Iniciar el cliente de AWS CloudHSMAntes de utilizar key_mgmt_util, debe iniciar el cliente de AWS CloudHSM. El cliente es un daemonestablece una comunicación cifrada integral con los HSM del clúster. La herramienta key_mgmt_util utilizala conexión del cliente para comunicarse con los HSM del clúster. Sin ella, key_mgmt_util no funciona.

Para iniciar el cliente de AWS CloudHSM

Use el siguiente comando para iniciar el cliente de AWS CloudHSM.

Amazon Linux

$ sudo start cloudhsm-client

Amazon Linux 2

$ sudo service cloudhsm-client start

CentOS 6

$ sudo start cloudhsm-client

CentOS 7

$ sudo service cloudhsm-client start

RHEL 6

$ sudo start cloudhsm-client

110

Page 116: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioIntroducción

RHEL 7

$ sudo service cloudhsm-client start

Ubuntu 16.04 LTS

$ sudo service cloudhsm-client start

Windows

C:\Program Files\Amazon\CloudHSM>start "cloudhsm_client" cloudhsm_client.exe C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_client.cfg

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

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

Ubuntu 16.04 LTS

$ /opt/cloudhsm/bin/key_mgmt_util

Windows

c:\Program Files\Amazon\CloudHSM>key_mgmt_util.exe

El símbolo cambia a Command: cuando se está ejecutando key_mgmt_util.

111

Page 117: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Si el comando produce un error, como, por ejemplo, devuelve un mensaje Daemon socket connectionerror, intente actualizar su archivo de configuración (p. 258).

Uso básico de key_mgmt_utilConsulte los siguientes temas para conocer el uso básico de la herramienta key_mgmt_util.

Temas• Iniciar sesión en los HSM (p. 112)• Cerrar la sesión de los HSM (p. 112)• Detener key_mgmt_util (p. 112)

Iniciar sesión en los HSM

Utilice el comando loginHSM para iniciar sesión en los HSM. El siguiente comando inicia sesión como unusuario de criptografía (CU) (p. 10) denominado example_user. El resultado indica un inicio de sesióncorrecto para los tres HSM del clúster.

Command: loginHSM -u CU -s example_user -p <password>Cfm3LoginHSM returned: 0x00 : HSM Return: SUCCESS

Cluster Error StatusNode id 0 and err state 0x00000000 : HSM Return: SUCCESSNode id 1 and err state 0x00000000 : HSM Return: SUCCESSNode id 2 and err state 0x00000000 : HSM Return: SUCCESS

A continuación se muestra la sintaxis del comando loginHSM.

Command: loginHSM -u <user type> -s <username> -p <password>

Cerrar la sesión de los HSM

Utilice el comando logoutHSM para cerrar la sesión de los HSM.

Command: logoutHSMCfm3LogoutHSM returned: 0x00 : HSM Return: SUCCESS

Cluster Error StatusNode id 0 and err state 0x00000000 : HSM Return: SUCCESSNode id 1 and err state 0x00000000 : HSM Return: SUCCESSNode id 2 and err state 0x00000000 : HSM Return: SUCCESS

Detener key_mgmt_util

Utilice el comando exit para detener key_mgmt_util.

Command: exit

Referencia de los comandos de key_mgmt_utilLa herramienta de línea de comandos key_mgmt_util le ayuda a administrar claves en los HSM de suclúster, incluidas la creación, la eliminación y la búsqueda de claves y sus atributos. Contiene varioscomandos, cada uno de los cuales se describe en detalle en este tema.

112

Page 118: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Para informarse sobre cómo comenzar rápidamente, consulte Introducción a key_mgmt_util (p. 110). Forhelp interpreting the key attributes, see the Referencia de los atributos de claves (p. 168). Para obtenerinformación sobre la herramienta de línea de comandos cloudhsm_mgmt_util que contiene los comandosnecesarios para administrar el HSM y los usuarios de su clúster, consulte cloudhsm_mgmt_util (p. 72).

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Para generar una lista de todos los comandos de key_mgmt_util, escriba:

Command: help

Para obtener ayuda sobre un comando de key_mgmt_util determinado, escriba:

Command: <command-name> -h

Para finalizar su sesión de key_mgmt_util, escriba:

Command: exit

En los temas siguientes se describen comandos de la herramienta key_mgmt_util.Note

Algunos comandos en key_mgmt_util y cloudhsm_mgmt_util tienen los mismos nombres.Sin embargo, normalmente los comandos tienen una sintaxis y una salida diferentes, y sufuncionalidad varía ligeramente.

Comando Descripción

aesWrapUnwrap (p. 114) Cifra y descifra el contenido de una clave de unarchivo de un disco.

deleteKey (p. 117) Elimina una clave de los HSM.

Error2String (p. 118) Obtiene el error que corresponde a un código deerror hexadecimal de key_mgmt_util.

exSymKey (p. 119) Exporta una copia de texto no cifrado de una clavesimétrica desde los HSM a un archivo de un disco.

findKey (p. 124) Busca claves en función de un valor de atributo declave.

findSingleKey (p. 127) Comprueba que todos los HSM del clúster tenganuna clave.

genDSAKeyPair (p. 128) Genera un par de claves de algoritmo de firmadigital (DSA) en los HSM.

genECCKeyPair (p. 133) Genera un par de claves de criptografía de curvaelíptica (ECC) en sus HSM.

genPBEKey (p. 137) (Este comando no es compatible con los HSMvalidados mediante FIPS).

genRSAKeyPair (p. 137) Genera un par de claves asimétricas RSA en susHSM.

113

Page 119: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Comando Descripción

genSymKey (p. 142) Genera una clave simétrica en sus HSM.

getAttribute (p. 147) Obtiene los valores de los atributos de una clavede AWS CloudHSM y los escribe en un archivo.

getKeyInfo (p. 150) Obtiene los ID de los usuarios de HSM que puedenutilizar la clave.

Si la clave se controla mediante cuórum, obtiene elnúmero de usuarios del cuórum.

imSymKey (p. 153) Importa una copia de texto no cifrado de una clavesimétrica desde un archivo a los HSM.

listAttributes (p. 160) Muestra una lista de los atributos de una clavede AWS CloudHSM y las constantes que losrepresentan.

listUsers (p. 161) Obtiene los usuarios de los HSM, su ID y tipo deusuario y otros atributos.

setAttribute (p. 162) Convierte una clave de sesión en una clavepersistente.

unWrapKey (p. 164) Importa una clave encapsulada (cifrada) desde unarchivo a los HSM.

wrapKey (p. 167) Exporta y cifra una copia de una clave desde elHSM a un archivo del disco.

aesWrapUnwrapEl 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 archivoque contenga menos de 4 KB (4096 bytes) de datos.

aesWrapUnwrap utiliza la encapsulación de claves AES. Emplea una clave AES en el HSM como clave deencapsulación o desencapsulación. A continuación escribe el resultado en otro archivo en el disco.

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Sintaxis

aesWrapUnwrap -h

aesWrapUnwrap -m <wrap-unwrap mode> -f <file-to-wrap-unwrap> -w <wrapping-key-handle> [-i <wrapping-IV>] [-out <output-file>]

Ejemplos

En estos ejemplos se muestra cómo utilizar aesWrapUnwrap para cifrar y descifrar una clave de cifrado enun archivo.

114

Page 120: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Example : encapsulación de una clave de cifrado

Este comando utiliza aesWrapUnwrap para encapsular una clave simétrica triple DES que se ha exportadodesde el HSM sin cifrar (p. 119) hasta el archivo 3DES.key. Puede utilizar un comando similar paraencapsular 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.

La salida muestra que el comando se ha ejecutado correctamente y que la operación ha utilizado el IVpredeterminado, que es el preferido.

Command: aesWrapUnwrap -f 3DES.key -w 6 -m 1 -out 3DES.key.wrapped

Warning: IV (-i) is missing. 0xA6A6A6A6A6A6A6A6 is considered as default IVresult data:49 49 E2 D0 11 C1 97 2217 43 BD E3 4E F4 12 758D C1 34 CF 26 10 3A 8D6D 0A 7B D5 D3 E8 4D C279 09 08 61 94 68 51 B7

result written to file 3DES.key.wrapped

Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

Example : desencapsulación de una clave de cifrado

En este ejemplo se muestra cómo utilizar aesWrapUnwrap para desencapsular (descifrar) una claveencapsulada (cifrada) en un archivo. Puede que le interese realizar una operación de este tipo antes deimportar una clave al HSM. Por ejemplo, si intenta utilizar el comando imSymKey (p. 153) para importaruna clave cifrada, este devuelve un error, ya que la clave cifrada no tiene el formato necesario para unaclave sin cifrar de ese tipo.

El comando desencapsula la clave del archivo 3DES.key.wrapped y escribe el texto sin cifrar en elarchivo 3DES.key.unwrapped. El comando utiliza el parámetro -m con un valor de 0 para indicar elmodo de desencapsulación, el parámetro -w para especificar una clave AES en el HSM (indicador declave 6) como clave de encapsulación y, por último, escribe la clave encapsulada obtenida en el archivo3DES.key.unwrapped.

Command: aesWrapUnwrap -m 0 -f 3DES.key.wrapped -w 6 -out 3DES.key.unwrapped

Warning: IV (-i) is missing. 0xA6A6A6A6A6A6A6A6 is considered as default IVresult data:14 90 D7 AD D6 E4 F5 FAA1 95 6F 24 89 79 F3 EE37 21 E6 54 1F 3B 8D 62

result written to file 3DES.key.unwrapped

Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS

Parámetros

-h

Displays help for the command.

115

Page 121: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Required: Yes-m

Especifica el modo. Para encapsular (cifrar) el contenido del archivo, escriba 1; para desencapsular(descifrar) el contenido del archivo, escriba 0.

Requerido: sí-f

Especifica el archivo que se va a encapsular. Especifique un archivo que contenga menos de 4 KB(4096 bytes) de datos. Esta operación está diseñada para encapsular y desencapsular claves decifrado.

Requerido: sí-w

Specifies the wrapping key. Type the key handle of an AES key on the HSM. This parameter isrequired. To find key handles, use the findKey (p. 124) command.

To create a wrapping key, use genSymKey (p. 142) to create an AES key (type 31). To verifythat a key can be used as a wrapping key, use getAttribute (p. 147) to get the value of theOBJ_ATTR_WRAP attribute, which is represented by constant 262.

Note

Key handle 4 represents an unsupported internal key. We recommend that you use an AESkey that you create and manage as the wrapping key.

Required: Yes-i

Especifica un valor inicial alternativo (IV) para el algoritmo. Utilice el valor predeterminado a menosque tenga una condición especial que requiera una alternativa.

Valor predeterminado: 0xA6A6A6A6A6A6A6A6. El valor predeterminado se define en la especificaciónde algoritmo de encapsulación de claves AES.

Requerido: No-out

Especifica un nombre alternativo para el archivo de salida que contiene la clave encapsulada odesencapsulada. El valor predeterminado es wrapped_key (para operaciones de encapsulación) yunwrapped_key (para operaciones de desencapsulación) en el directorio local.

Si el archivo ya existe, el comando aesWrapUnwrap lo sobrescribe sin ningún tipo de advertencia. Siel comando genera un error, aesWrapUnwrap crea un archivo de salida sin contenido.

Valor predeterminado: para la encapsulación: wrapped_key. Para la desencapsulación:unwrapped_key.

Requerido: No

Temas relacionados

• exSymKey (p. 119)• imSymKey (p. 153)• unWrapKey (p. 164)• wrapKey (p. 167)

116

Page 122: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

deleteKeyEl comando deleteKey de la herramienta key_mgmt_util elimina una clave del HSM. Solo puede eliminarlas claves de una en una. La eliminación de una clave de un par de claves no influye en la otra clave delpar.

Solo el propietario de la clave puede eliminar una clave. Los usuarios que comparten la clave puedenutilizarla en operaciones criptográficas, pero no eliminarla.

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Sintaxis

deleteKey -h

deleteKey -k

Ejemplos

Los ejemplos siguientes muestran cómo utilizar deleteKey para eliminar claves de sus HSM.

Example : eliminación de una clave

Este comando elimina la clave que tiene el identificador de clave 6. Cuando el comando se ejecutacorrectamente, deleteKey devuelve mensajes de operación realizada correctamente de cada HSM delclúster.

Command: deleteKey -k 6

Cfm3DeleteKey returned: 0x00 : HSM Return: SUCCESS

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS

Example : eliminación de una clave (error)

Cuando el comando genera un error porque ninguna clave tiene el identificador de clave especificado,deleteKey devuelve un mensaje de error de identificador de objeto no válido.

Command: deleteKey -k 252126

Cfm3FindKey returned: 0xa8 : HSM Error: Invalid object handle is passed to this operation

Cluster Error Status Node id 1 and err state 0x000000a8 : HSM Error: Invalid object handle is passed to this operation Node id 2 and err state 0x000000a8 : HSM Error: Invalid object handle is passed to this operation

Cuando el comando genera un error porque el usuario actual no es el propietario de la clave, el comandodevuelve un error de acceso denegado.

Command: deleteKey -k 262152

117

Page 123: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Cfm3DeleteKey returned: 0xc6 : HSM Error: Key Access is denied.

Parámetros

-h

Muestra la ayuda de la línea de comando para el comando.

Requerido: sí-k

Especifica el identificador de la clave que se va a eliminar. Para encontrar los identificadores de clavede las claves del HSM, utilice findKey (p. 124).

Requerido: sí

Temas relacionados

• findKey (p. 124)

Error2StringEl comando ayudante Error2String de la herramienta key_mgmt_util devuelve el error que corresponde aun código de error hexadecimal de key_mgmt_util. Puede utilizar este comando cuando esté solucionandoproblemas de los comandos y los scripts.

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (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 deerror de key_mgmt_util.

Example : obtención de una descripción del error

Este comando obtiene la descripción del error del código de error 0xdb. En la descripción se explica queun 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.

Command: Error2String -r 0xdb Error Code db maps to HSM Error: Invalid User Type.

Example : búsqueda del código de error

En este ejemplo se muestra dónde encontrar el código de error de un error de key_mgmt_util. El código deerror, 0xc6, se muestra después de la cadena: Cfm3command-name returned: .

118

Page 124: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

En este ejemplo getKeyInfo (p. 150) indica que el usuario actual (usuario 4) puede utilizar la clave enoperaciones de criptografía. Sin embargo, cuando el usuario intenta utilizar deleteKey (p. 117) paraeliminar la clave, el comando devuelve el código de error 0xc6.

Command: deleteKey -k 262162

Cfm3DeleteKey returned: 0xc6 : HSM Error: Key Access is denied

Cluster Error Status

Command: getKeyInfo -k 262162 Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

Owned by user 3

also, shared to following 1 user(s):

4

Si se le notifica el error 0xc6, puede utilizar un comando Error2String como este para buscar el error. Eneste caso el comando deleteKey ha generado un error de acceso denegado porque la clave se compartecon el usuario actual, pero es propiedad de otro usuario. Solo los propietarios de la clave tienen permisopara eliminarla.

Command: Error2String -r 0xa8 Error Code c6 maps to HSM Error: Key Access is denied

Parámetros

-h

Displays help for the command.

Required: Yes-r

Especifica un código de error hexadecimal. El indicador 0x hexadecimal es obligatorio.

Requerido: sí

exSymKeyEl comando exSymKey de la herramienta key_mgmt_util exporta una copia sin cifrar de una clave simétricadesde el HSM y la guarda en un archivo del disco. Para exportar una copia cifrada (encapsulada) de unaclave, utilice wrapKey (p. 167). Para importar una clave no cifrada como las que exSymKey exporta,utilice imSymKey (p. 153).

Durante el proceso de exportación exSymKey utiliza una clave AES que usted especifica (la clavede encapsulación) para encapsular (cifrar) y, a continuación desencapsular (descifrar) la clave quese 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 usuariosque comparten la clave pueden utilizarla en operaciones criptográficas, pero no pueden exportarla.

119

Page 125: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

La operación exSymKey copia el material de la clave en un archivo que usted especifica, pero no eliminala clave del HSM ni cambia sus atributos de clave (p. 168) ni le impide utilizar la clave en operacionescriptográficas. Puede exportar la misma clave varias veces.

exSymKey exporta únicamente claves simétricas. Para exportar claves públicas, utilice exPubKey. Paraexportar claves privadas, utilice exportPrivateKey.

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (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 utilizar exSymKey para exportar claves simétricas de supropiedad desde los HSM.

Example : exportación de una clave simétrica 3DES

Este comando exporta una clave simétrica Triple DES (3DES) (identificador de clave 7). Utiliza una claveAES ya existente (identificador de clave 6) del HSM como clave de encapsulación. A continuación, escribeel texto no cifrado de la clave 3DES en el archivo 3DES.key.

La salida muestra que la clave 7 (la clave 3DES) se ha encapsulado y desencapsulado correctamente yque, 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étricaencapsulada) en el archivo de salida, este contiene una clave no cifrada (desencapsulada).

Command: exSymKey -k 7 -w 6 -out 3DES.key

Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS

Wrapped Symmetric Key written to file "3DES.key"

Example : exportación con una clave de encapsulación solo para la sesión

En este ejemplo se muestra cómo utilizar una clave que solo existe en la sesión como clave deencapsulación. Dado que la clave para la exportación se encapsula, se desencapsula inmediatamente y seentrega sin cifrar, no es necesario conservar la clave de encapsulación.

Esta serie de comandos exporta una clave AES con el identificador de clave 8 del HSM. Utiliza una clavede sesión AES creada especialmente para este fin.

El primer comando utiliza genSymKey (p. 142) 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.

120

Page 126: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

La salida muestra que el HSM crea la clave 262168.

Command: genSymKey -t 31 -s 32 -l AES-wrapping-key -sess

Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Created. Key Handle: 262168

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS

A continuación, el ejemplo comprueba que la clave 8, es decir, la clave que se va a exportar, sea unaclave 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. 124), pero esteejemplo exporta los atributos de ambas claves a archivos y, a continuación, utiliza grep para encontrar losvalores de atributos pertinentes en el archivo.

Estos comandos utilizan getAttribute con un valor -a de 512 (todos) para obtener todos los atributosde las claves 8 y 262168. Para obtener información sobre los atributos de las claves, consulte la thesection called “Referencia de los atributos de claves” (p. 168).

getAttribute -o 8 -a 512 -out attributes/attr_8getAttribute -o 262168 -a 512 -out attributes/attr_262168

Estos comandos ejecutan grep para verificar los atributos de la clave que se va a exportar (clave 8) y laclave de encapsulación solo para la sesión (clave 262168).

// Verify that the key to be exported is a symmetric key. $ grep -A 1 "OBJ_ATTR_CLASS" attributes/attr_8 OBJ_ATTR_CLASS 0x04 // Verify that the key to be exported is extractable. $ grep -A 1 "OBJ_ATTR_KEY_TYPE" attributes/attr_8 OBJ_ATTR_EXTRACTABLE 0x00000001

// Verify that the wrapping key is an AES key $ grep -A 1 "OBJ_ATTR_KEY_TYPE" attributes/attr_262168 OBJ_ATTR_KEY_TYPE 0x1f

// Verify that the wrapping key is a session key $ grep -A 1 "OBJ_ATTR_TOKEN" attributes/attr_262168 OBJ_ATTR_TOKEN 0x00 // Verify that the wrapping key can be used for wrapping $ grep -A 1 "OBJ_ATTR_WRAP" attributes/attr_262168 OBJ_ATTR_WRAP 0x00000001

Por último, ejecutamos un comando exSymKey para exportar la clave 8 y utilizamos la clave de sesión(clave 262168) como clave de encapsulación.

Cuando finaliza la sesión, la clave 262168 ya no existe.

Command: exSymKey -k 8 -w 262168 -out aes256_H8.key

Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

121

Page 127: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS

Wrapped Symmetric Key written to file "aes256_H8.key"

Example : utilización de una clave de desencapsulación externa

En este ejemplo se muestra cómo utilizar una clave de desencapsulación externa para exportar una clavedesde el HSM.

Cuando exporta una clave desde el HSM, usted especifica una clave AES en el HSM para que sea laclave de encapsulación. De forma predeterminada, esa clave de encapsulación se usa para encapsular ydesencapsular la clave que se va a exportar. Sin embargo, puede utilizar el parámetro -wk para indicar aexSymKey que utilice una clave externa de un archivo del disco para desencapsularla. Si lo hace, la claveespecificada por el parámetro -w encapsula la clave de destino y la clave del archivo especificado por elparámetro -wk desencapsula la clave.

Dado que la clave de encapsulación tiene que ser una clave AES, que es simétrica, la clave deencapsulación del HSM y la clave de desencapsulación del disco han de tener el mismo material declave. Para ello, debe importar la clave de encapsulación al HSM o exportarla desde el HSM antes de laoperación de exportación.

En este ejemplo se crea una clave fuera del HSM y se importa al HSM. Se utiliza la copia internade la clave para encapsular una clave simétrica que se exporta y la copia de clave del archivo paradesencapsularla.

El primer comando utiliza OpenSSL para generar una clave AES de 256 bits. Guarda la clave en elarchivo aes256-forImport.key. El comando OpenSSL no devuelve una salida, pero puede utilizarvarios comandos para confirmar que todo se ha realizado correctamente. En este ejemplo se utiliza laherramienta wc (wordcount [recuento de palabras]) que confirma que el archivo contiene 32 bytes dedatos.

$ openssl rand -out keys/aes256-forImport.key 32

$ wc keys/aes256-forImport.key 0 2 32 keys/aes256-forImport.key

Este comando utiliza el comando imSymKey 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 identificadorde clave 262167 y en el archivo aes256-forImport.key.

Command: imSymKey -f keys/aes256-forImport.key -t 31 -l aes256-imported -w 6

Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Unwrapped. Key Handle: 262167

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Este comando utiliza la clave en una operación de exportación. El comando utiliza exSymKey paraexportar la clave 21, una clave AES de 192 bits. Para encapsular la clave utiliza la clave 262167, que es

122

Page 128: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

la copia que se importó en el HSM. Para desencapsular la clave, utiliza el mismo material de clave en elarchivo aes256-forImport.key. Cuando se completa el comando, la clave 21 se exporta al archivoaes192_h21.key.

Command: exSymKey -k 21 -w 262167 -out aes192_H21.key -wk aes256-forImport.key

Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

Wrapped Symmetric Key written to file "aes192_H21.key"

Parámetros

-h

Displays help for the command.

Required: Yes-k

Especifica el identificador de la clave que se va a exportar. Este parámetro es obligatorio. Escribael identificador de una clave simétrica de su propiedad. Este parámetro es obligatorio. Para buscaridentificadores de clave, use el comando findKey (p. 124).

Para verificar que se puede exportar una clave, ejecute el comando getAttribute (p. 147) paraobtener 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 unaclave, ejecute el comando getKeyInfo (p. 150).

Requerido: sí-w

Especifica el identificador de la clave de encapsulación. Este parámetro es obligatorio. Para buscaridentificadores de clave, use el comando findKey (p. 124).

Una clave de encapsulación es una clave del HSM que se utiliza para cifrar (encapsular) y despuésdescifrar (desencapsular) la clave que se va a exportar. Solo las claves AES se pueden utilizar comoclaves de encapsulación.

Puede utilizar cualquier clave AES (de cualquier tamaño) como clave de encapsulación. Dado quela clave de encapsulación encapsula y, a continuación, desencapsula inmediatamente la clavede destino, puede utilizar una clave AES solo de una sesión como clave de encapsulación. Paradeterminar si una clave se puede utilizar como clave de encapsulación, utilice getAttribute (p. 147)para obtener el valor del atributo OBJ_ATTR_WRAP, que se representa con la constante 262. Paracrear una clave de encapsulamiento, use genSymKey (p. 142) para crear una clave AES (escriba31).

Si utiliza el parámetro -wk para especificar una clave de desencapsulación externa, la clave deencapsulació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 claveAES que cree y administre como clave de encapsulamiento.

Requerido: 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 sobrescribesin ningún tipo de advertencia.

123

Page 129: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Requerido: sí-m

Especifica el mecanismo de encapsulación. El único valor válido es 4, que representa el mecanismoNIST_AES_WRAP.

Requerido: No

Predeterminado: 4-wk

Utilice la clave AES del archivo especificado para desencapsular la clave que se exporta. Escriba laruta y el nombre de un archivo que contenga una clave AES sin cifrar.

Cuando incluye este parámetro, exSymKey utiliza la clave del HSM que se especifica medianteel parámetro -w para encapsular la clave que se exporta y utiliza la clave del archivo -wk paradesencapsularla. Los valores de parámetro -w y -wk deben resolverse en la misma clave sin cifrar.

Requerido: No

Valor predeterminado: utilice la clave de encapsulación del HSM para realizar la desencapsulación.

Temas relacionados

• genSymKey (p. 142)• imSymKey (p. 153)• wrapKey (p. 167)

findKeyUtilice el comando findKey en key_mgmt_util para buscar claves mediante los valores de los atributosde clave. Cuando una clave coincide con todos los criterios que ha establecido, findKey devuelve elidentificador de clave. Sin parámetros, findKey devuelve los identificadores de claves de todas las clavesque puede utilizar en el HSM. Para encontrar los valores de atributo de una clave en particular, utilicegetAttribute (p. 147).

Al igual que todos los comandos key_mgmt_util, findKey es específico del usuario. Devuelve solo lasclaves que el usuario actual puede utilizar en las operaciones criptográficas. Esto incluye las claves que elusuario actual posee y claves que se han compartido con el usuario actual.

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Sintaxis

findKey -h

findKey [-c <key class>] [-t <key type>] [-l <key label>] [-id <key ID>] [-sess (0 | 1)] [-u <user-ids>] [-m <modulus>] [-kcv <key_check_value>]

124

Page 130: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

EjemplosEstos ejemplos muestran cómo utilizar findKey para encontrar e identificar claves en los HSM.

Example : encontrar todas las claves

Este comando encuentra todas las claves para el usuario actual en el HSM. El resultado incluye claves queel usuario posee y comparte, y todas las claves públicas en los HSM.

Para obtener los atributos de una clave con un identificador de clave particular, utilicegetAttribute (p. 147). Para determinar si el usuario actual posee o comparte una clave determinada,utilice getKeyInfo (p. 150) o findAllKeys (p. 89) en cloudhsm_mgmt_util.

Command: findKey

Total number of keys present 13

number of keys matched from start index 0::126, 7, 524296, 9, 262154, 262155, 262156, 262157, 262158, 262159, 262160, 262161, 262162

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS

Example : encontrar claves por tipo, usuario y sesión

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.)

Command: findKey -t 31 -sess 0 -u 3

Example : encontrar claves por clase y etiqueta

Este comando encuentra todas las claves públicas para el usuario actual con la etiqueta 2018-sept.

Command: findKey -c 2 -l 2018-sept

Example : encontrar claves RSA por módulo

Este comando encuentra claves RSA (tipo 0) para el usuario actual que se crearon utilizando el módulo enel archivo m4.txt.

Command: findKey -t 0 -m m4.txt

Parámetros

-h

Displays help for the command.

Required: Yes-t

Encuentra claves del tipo especificado. Escriba la constante que representa la clase de clave. Porejemplo, para encontrar las claves 3DES, escriba -t 21.

125

Page 131: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Valores válidos:• 0: RSA• 1: DSA• 3: EC• 16: GENERIC_SECRET• 18: RC4• 21: Triple DES (3DES)• 31: AES

Requerido: No-c

Encuentra claves en la clase especificada. Escriba la constante que representa la clase de clave. Porejemplo, para encontrar claves públicas, escriba -c 2.

Valores válidos para cada tipo de clave:• 2: pública. Esta clase contiene las claves públicas de pares de claves pública–privada.• 3: privada. Esta clase contiene las claves privadas de pares de claves pública–privada.• 4: secreta. Esta clase contiene todas las claves simétricas.

Requerido: No-l

Encuentra claves con la etiqueta especificada. Escriba la etiqueta exacta. No puede utilizar caracterescomodín ni expresiones regulares en el valor --label.

Requerido: No-id

Encuentra la clave con el ID especificado. Escriba la cadena exacta del ID. No puede utilizarcaracteres comodín ni expresiones regulares en el valor -id.

Requerido: No-sess

Encuentra claves por estado de la sesión. Para encontrar claves que solo sean válidas en la sesiónactual, escriba 1. Para encontrar claves persistentes, escriba 0.

Requerido: No-u

Encuentra claves que los usuarios especificados y el actual usuario comparten. Escriba una listaseparada por comas de los ID de usuario de HSM, como -u 3 o -u 4,7. Para encontrar los ID de losusuarios en un HSM, utilice listUsers (p. 161).

Cuando especifica un ID de usuario, findKey devuelve las claves para ese usuario. Cuando especificavarios ID de usuario, findKey devuelve las claves que todos los usuarios especificados pueden utilizar.

Como findKey solo devuelve claves que el usuario actual puede utilizar, los resultados de -u sonsiempre idénticos a las claves del usuario actual, o un subconjunto de estas. Para obtener todas lasclaves propiedad o compartidas con cualquier usuario, los responsables de criptografía (CO) puedenutilizar findAllKeys (p. 89) en cloudhsm_mgmt_util.

Requerido: No

126

Page 132: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

-m

Encuentra claves que se crearon utilizando el módulo RSA en el archivo especificado. Escriba la rutaal archivo que almacena el módulo.

Requerido: No-kcv

Encuentra claves con el valor de comprobación de clave que se ha especificado.

The key check value (KCV) is an 8-byte hash or checksum of a key. The HSM calculates a KCV whenit generates the key. You can also calculate a KCV outside of the HSM, such as after you export a key.You can then compare the KCV values to confirm the identity and integrity of the key. To get the KCVof a key, use getAttribute (p. 147).

AWS CloudHSM uses the following standard method to generate a key check value:• Symmetric keys: First 8 bytes of the result of encrypting 16 zero-filled bytes with the key.• Asymmetric key pairs: First 8 bytes of the modulus hash.

Requerido: No

SalidaEl resultado findKey muestra el número total de claves coincidentes y sus identificadores de clave.

Command: findKeyTotal number of keys present 10

number of keys matched from start index 0::96, 7, 8, 9, 10, 11, 262156, 262157, 262158, 262159

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS

Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS

Temas relacionados

• findSingleKey (p. 127)• getKeyInfo (p. 150)• getAttribute (p. 147)• findAllKeys (p. 89) en cloudhsm_mgmt_util• Referencia de los atributos de claves (p. 168)

findSingleKeyEl comando findSingleKey de la herramienta key_mgmt_util verifica que exista una clave en todos los HSMdel clúster.

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Sintaxis

findSingleKey -h

127

Page 133: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

findSingleKey -k <key-handle>

Ejemplo

Example

Este comando verifica que la clave 252136 exista en los tres HSM del clúster.

Command: findSingleKey -k 252136Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS

Cluster Error Status Node id 2 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Parámetros

-h

Displays help for the command.

Required: Yes-k

Especifica el identificador de una clave en el HSM. Este parámetro es obligatorio.

Para buscar identificadores de clave, use el comando findKey (p. 161).

Requerido: sí

Temas relacionados

• findKey (p. 161)• getKeyInfo (p. 161)• getAttribute (p. 124)

genDSAKeyPairEl comando genDSAKeyPair de la herramienta key_mgmt_util genera un par de claves de algoritmo defirma digital (DSA) en los HSM. Debe especificar la longitud del módulo; el comando genera el valor delmódulo. También puede asignar un ID, compartir la clave con otros usuarios del HSM, crear claves noextraí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 estosidentificadores de clave para identificar las claves ante otros comandos.

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Tip

To find the attributes of a key that you have created, such as the type, length, label, and ID, usegetAttribute (p. 147). To find the keys for a particular user, use getKeyInfo (p. 150). To findkeys based on their attribute values, use findKey (p. 124).

128

Page 134: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Sintaxis

genDSAKeyPair -h

genDSAKeyPair -m <modulus length> -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 utilizar genDSAKeyPair para crear un par de claves de DSA.

Example : creación de un par de claves de DSA

Este comando crea un par de claves de DSA con una etiqueta DSA. La salida muestra que el identificadorde clave de la clave pública es 19, mientras que el identificador de la clave privada es 21.

Command: genDSAKeyPair -m 2048 -l DSA

Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

Cfm3GenerateKeyPair: public key handle: 19 private key handle: 21

Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Example : creación de un par de claves de DSA solo para la sesión

Este comando crea un par de claves de DSA que es válido únicamente en la sesión actual. El comandoasigna un ID exclusivo de 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 unasola sesión. La salida muestra que el identificador de clave de la clave pública es 12, mientras que elidentificador de la clave privada es 14.

Command: genDSAKeyPair -m 2048 -l DSA-temp -id DSA_temp_pair -sess

Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

Cfm3GenerateKeyPair: public key handle: 12 private key handle: 14

Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Para confirmar que el par de claves exista únicamente en la sesión, utilice el parámetro -sess defindKey (p. 124) con el valor 1 (true).

Command: findKey -sess 1

Total number of keys present 2

number of keys matched from start index 0::112, 14

129

Page 135: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS

Example : creación de un par de claves de DSA no extraíbles y compartidas

Este comando crea un par de claves de DSA. La clave privada se comparte con otros tres usuarios y nose puede exportar desde el HSM. Cualquier usuario puede utilizar las claves públicas y estas siempre sepueden extraer.

Command: genDSAKeyPair -m 2048 -l DSA -id DSA_shared_pair -nex -u 3,5,6

Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

Cfm3GenerateKeyPair: public key handle: 11 private key handle: 19

Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Example : creación de un par de claves controladas mediante cuórum

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 uncuó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 segenera el par de claves.

La salida muestra que el comando genera una clave pública con el identificador de clave 12 y una claveprivada con el identificador de clave 17 y que la comprobación de declaración del firmware del clúster hapasado.

Command: genDSAKeyPair -m 2048 -l DSA-mV2 -m_value 2 -u 4,6 -attest

Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

Cfm3GenerateKeyPair: public key handle: 12 private key handle: 17

Attestation Check : [PASS]

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Este comando utiliza getKeyInfo (p. 150) en la clave privada (identificador de clave 17). La salidaconfirma 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órumes de dos.

Command: getKeyInfo -k 17

Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

Owned by user 3

also, shared to following 2 user(s):

130

Page 136: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

4 6 2 Users need to approve to use/manage this key

Parámetros

-h

Displays help for the command.

Required: Yes-m

Especifica la longitud del módulo en bits. El único valor válido es 2048.

Requerido: sí-l

Specifies a user-defined label for the key pair. Type a string. The same label applies to both keys in thepair

You can use any phrase that helps you to identify the key. Because the label does not have to beunique, you can use it to group and categorize keys.

Required: Yes-id

Specifies a user-defined identifier for the key pair. Type a string that is unique in the cluster. Thedefault is an empty string. The ID that you specify applies to both keys in the pair.

Default: No ID value.

Required: No-min_srv

Specifies the minimum number of HSMs on which the key is synchronized before the value of the -timeout parameter expires. If the key is not synchronized to the specified number of servers in thetime allotted, it is not created.

AWS CloudHSM automatically synchronizes every key to every HSM in the cluster. To speed upyour process, set the value of min_srv to less than the number of HSMs in the cluster and set a lowtimeout value. Note, however, that some requests might not generate a key.

Default: 1

Required: No-m_value

Specifies the number of users who must approve any cryptographic operation that uses the private keyin the pair. Type a value from 0 to 8.

This parameter establishes a quorum authentication requirement for the private key. The default value,0, disables the quorum authentication feature for the key. When quorum authentication is enabled, thespecified number of users must sign a token to approve cryptographic operations that use the privatekey, and operations that share or unshare the private key.

131

Page 137: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

To find the m_value of a key, use getKeyInfo (p. 150).

This parameter is valid only when the -u parameter in the command shares the key pair with enoughusers to satisfy the m_value requirement.

Default: 0

Required: No-nex

Makes the private key nonextractable. The private key that is generated cannot be exported from theHSM (p. 56). Public keys are always extractable.

Default: Both the public and private keys in the key pair are extractable.

Required: No-sess

Creates a key that exists only in the current session. The key cannot be recovered after the sessionends.

Use this parameter when you need a key only briefly, such as a wrapping key that encrypts, and thenquickly decrypts, another key. Do not use a session key to encrypt data that you might need to decryptafter the session ends.

To change a session key to a persistent (token) key, use setAttribute (p. 162).

Default: The key is persistent.

Required: No-timeout

Specifies how long (in seconds) the command waits for a key to be synchronized to the number ofHSMs specified by the min_srv parameter.

This parameter is valid only when the min_srv parameter is also used in the command.

Default: No timeout. The command waits indefinitely and returns only when the key is synchronized tothe minimum number of servers.

Required: No-u

Shares the private key in the pair with the specified users. This parameter gives other HSM cryptousers (CUs) permission to use the private key in cryptographic operations. Public keys can be used byany user without sharing.

Type a comma-separated list of HSM user IDs, such as -u 5,6. Do not include the HSM user ID of thecurrent user. To find HSM user IDs of CUs on the HSM, use listUsers (p. 161). To share and unshareexisting keys, use shareKey.

Default: Only the current user can use the private key.

Required: No-attest

Runs an integrity check that verifies that the firmware on which the cluster runs has not been tamperedwith.

132

Page 138: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Default: No attestation check.

Required: No

Temas relacionados

• genRSAKeyPair (p. 137)• genSymKey (p. 142)• genECCKeyPair (p. 133)

genECCKeyPairEl comando genECCKeyPair en la herramienta key_mgmt_util genera un par de claves de criptografía decurva elíptica (ECC) en los HSM. Debe especificar el tipo de curva elíptica y una etiqueta para las claves.También puede compartir la clave privada con otros usuarios de CU, crear claves no extraíbles, clavescontroladas mediante cuórum y claves que caduquen cuando finalice la sesión. Cuando el comando seejecuta correctamente, devuelve identificadores de clave que el HSM asigna a las claves ECC públicas yprivadas. Puede utilizar estos identificadores de clave para identificar las claves ante otros comandos.

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Tip

To find the attributes of a key that you have created, such as the type, length, label, and ID, usegetAttribute (p. 147). To find the keys for a particular user, use getKeyInfo (p. 150). To findkeys based on their attribute values, use findKey (p. 124).

Sintaxis

genECCKeyPair -h

genECCKeyPair -i <EC curve id> -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]

EjemplosEn estos ejemplos se muestra cómo utilizar genECCKeyPair para crear un par de claves ECC en susHSM.

Example : crear y examinar un par de claves ECC

Este comando crea un par de claves ECC con una curva elíptica NID_sect571r1 y una etiqueta ecc12. Elresultado muestra que el identificador de clave de la clave privada es 262177, mientras que el identificadorde clave de la clave pública es 262179. La etiqueta se aplica a las clave privada y pública.

Command: genECCKeyPair -i 12 -l ecc12

Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

133

Page 139: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Cfm3GenerateKeyPair: public key handle: 262179 private key handle: 262177

Cluster Error Status Node id 2 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Después de generar la clave, es posible que desee examinar sus atributos. El siguiente comando utilizagetAttribute (p. 147) para escribir todos los atributos (representados por la constante 512) de la nuevaclave privada de ECC para el archivo attr_262177.

Command: getAttribute -o 262177 -a 512 -out attr_262177got all attributes of size 529 attr cnt 19Attributes dumped into attr_262177

Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS

Este comando obtiene el contenido del archivo de atributos attr_262177. El resultado muestra quela clave es una clave privada de curva elíptica que puede usarse para firmar, pero no para el cifrado,descifrado, encapsulamiento, desencapsulamiento o verificación. La clave es persistente y exportable.

$ cat attr_262177

OBJ_ATTR_CLASS0x03OBJ_ATTR_KEY_TYPE0x03OBJ_ATTR_TOKEN0x01OBJ_ATTR_PRIVATE0x01OBJ_ATTR_ENCRYPT0x00OBJ_ATTR_DECRYPT0x00OBJ_ATTR_WRAP0x00OBJ_ATTR_UNWRAP0x00OBJ_ATTR_SIGN0x01OBJ_ATTR_VERIFY0x00OBJ_ATTR_LOCAL0x01OBJ_ATTR_SENSITIVE0x01OBJ_ATTR_EXTRACTABLE0x01OBJ_ATTR_LABELecc2OBJ_ATTR_ID

OBJ_ATTR_VALUE_LEN0x0000008aOBJ_ATTR_KCV0xbbb32aOBJ_ATTR_MODULUS044a0f9d01d10f7437d9fa20995f0cc742552e5ba16d3d7e9a65a33e20ad3e569e68eb62477a9960a87911e6121d112b698e469a0329a665eba74ee5ac55eae9f5OBJ_ATTR_MODULUS_BITS0x0000019f

134

Page 140: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Example Uso de una curva de EEC no válida

Este comando intenta crear un par de claves ECC utilizando una curva NID_X9_62_prime192v1. Debido aque 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 problemacon los HSM en el clúster.

Command: genECCKeyPair -i 1 -l ecc1

Cfm3GenerateKeyPair returned: 0xb3 : HSM Error: This operation violates the current configured/FIPS policies

Cluster Error Status Node id 0 and err state 0x30000085 : HSM CLUSTER ERROR: Server in cluster is unavailable

Parámetros

-h

Muestra ayuda para el comando.

Requerido: sí-i

Especifica el identificador de la curva elíptica. Escriba un identificador (1 a 15).

Valores válidos:• 1: NID_X9_62_prime192v1• 2: NID_X9_62_prime256v1• 3: NID_sect163k1• 4: NID_sect163r2• 5: NID_sect233k1• 6: NID_sect233r1• 7: NID_sect283k1• 8: NID_sect283r1• 9: NID_sect409k1• 10: NID_sect409r1• 11: NID_sect571k1• 12: NID_sect571r1• 13: NID_secp224r1• 14: NID_secp384r1• 15: NID_secp521r1

Requerido: sí-l

Specifies a user-defined label for the key pair. Type a string. The same label applies to both keys in thepair

You can use any phrase that helps you to identify the key. Because the label does not have to beunique, you can use it to group and categorize keys.

Required: Yes

135

Page 141: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

-id

Specifies a user-defined identifier for the key pair. Type a string that is unique in the cluster. Thedefault is an empty string. The ID that you specify applies to both keys in the pair.

Default: No ID value.

Required: No-min_srv

Specifies the minimum number of HSMs on which the key is synchronized before the value of the -timeout parameter expires. If the key is not synchronized to the specified number of servers in thetime allotted, it is not created.

AWS CloudHSM automatically synchronizes every key to every HSM in the cluster. To speed upyour process, set the value of min_srv to less than the number of HSMs in the cluster and set a lowtimeout value. Note, however, that some requests might not generate a key.

Default: 1

Required: No-m_value

Specifies the number of users who must approve any cryptographic operation that uses the private keyin the pair. Type a value from 0 to 8.

This parameter establishes a quorum authentication requirement for the private key. The default value,0, disables the quorum authentication feature for the key. When quorum authentication is enabled, thespecified number of users must sign a token to approve cryptographic operations that use the privatekey, and operations that share or unshare the private key.

To find the m_value of a key, use getKeyInfo (p. 150).

This parameter is valid only when the -u parameter in the command shares the key pair with enoughusers to satisfy the m_value requirement.

Default: 0

Required: No-nex

Makes the private key nonextractable. The private key that is generated cannot be exported from theHSM (p. 56). Public keys are always extractable.

Default: Both the public and private keys in the key pair are extractable.

Required: No-sess

Creates a key that exists only in the current session. The key cannot be recovered after the sessionends.

Use this parameter when you need a key only briefly, such as a wrapping key that encrypts, and thenquickly decrypts, another key. Do not use a session key to encrypt data that you might need to decryptafter the session ends.

To change a session key to a persistent (token) key, use setAttribute (p. 162).

Default: The key is persistent.

Required: No

136

Page 142: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

-timeout

Specifies how long (in seconds) the command waits for a key to be synchronized to the number ofHSMs specified by the min_srv parameter.

This parameter is valid only when the min_srv parameter is also used in the command.

Default: No timeout. The command waits indefinitely and returns only when the key is synchronized tothe minimum number of servers.

Required: No-u

Shares the private key in the pair with the specified users. This parameter gives other HSM cryptousers (CUs) permission to use the private key in cryptographic operations. Public keys can be used byany user without sharing.

Type a comma-separated list of HSM user IDs, such as -u 5,6. Do not include the HSM user ID of thecurrent user. To find HSM user IDs of CUs on the HSM, use listUsers (p. 161). To share and unshareexisting keys, use shareKey.

Default: Only the current user can use the private key.

Required: No-attest

Runs an integrity check that verifies that the firmware on which the cluster runs has not been tamperedwith.

Default: No attestation check.

Required: No

Temas relacionados

• genSymKey (p. 142)• genRSAKeyPair (p. 137)• genDSAKeyPair (p. 128)

genPBEKeyEl comando genPBE 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 queAWS CloudHSM proporciona.

Para crear claves simétricas, utilice genSymKey (p. 142). Para crear pares de claves asimétricas, utilicegenRSAKeyPair (p. 137), genDSAKeyPair (p. 128)o genECCKeyPair (p. 133).

genRSAKeyPairEl comando genRSAKeyPair en 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 generaun módulo de la longitud especificada y crea el par de claves. Puede asignar un ID, compartir la clavecon 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 laclave. Puede utilizar el identificador de clave para identificar la clave ante otros comandos.

137

Page 143: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Tip

To find the attributes of a key that you have created, such as the type, length, label, and ID, usegetAttribute (p. 147). To find the keys for a particular user, use getKeyInfo (p. 150). To findkeys based on their attribute values, use findKey (p. 124).

Sintaxis

genRSAKeyPair -h

genRSAKeyPair -m <modulus length> -e <public exponent> -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]

EjemplosEn estos ejemplos se muestra cómo utilizar genRSAKeyPair para crear pares de claves asimétricas en susHSM.

Example : crear y examinar un par de claves RSA

Este comando crea un par de claves RSA con un módulo de 2048 bits y un exponente de 65541. Elresultado muestra que el identificador de clave pública es 262159, mientras que el identificador de la claveprivada es 262160.

Command: genRSAKeyPair -m 2048 -e 65541 -l rsa_test

Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESSCfm3GenerateKeyPair: public key handle: 262159 private key handle: 262160Cluster Error StatusNode id 1 and err state 0x00000000 : HSM Return: SUCCESSNode id 0 and err state 0x00000000 : HSM Return: SUCCESS

El siguiente comando utiliza getAttribute (p. 124) para obtener los atributos de la clave pública queacabamos de crear. Escribe el resultado en el archivo attr_262159. Seguido de un comando cat queobtiene el contenido del archivo de atributos. For help interpreting the key attributes, see the Referencia delos atributos de claves (p. 168).

Los valores hexadecimales resultantes confirman que se trata de una clave pública (OBJ_ATTR_CLASS0x02) 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).

Command: getAttribute -o 262159 -a 512 -out attr_262159

got all attributes of size 731 attr cnt 20Attributes dumped into attr_262159 file

138

Page 144: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS

$ cat attr_262159OBJ_ATTR_CLASS0x02OBJ_ATTR_KEY_TYPE0x00OBJ_ATTR_TOKEN0x01OBJ_ATTR_PRIVATE0x00OBJ_ATTR_ENCRYPT0x01OBJ_ATTR_DECRYPT0x00OBJ_ATTR_WRAP0x00OBJ_ATTR_UNWRAP0x00OBJ_ATTR_SIGN0x00OBJ_ATTR_VERIFY0x01OBJ_ATTR_LOCAL0x01OBJ_ATTR_SENSITIVE0x00OBJ_ATTR_EXTRACTABLE0x01OBJ_ATTR_LABELrsa_testOBJ_ATTR_ID

OBJ_ATTR_VALUE_LEN0x00000200OBJ_ATTR_KCV0x0a4364OBJ_ATTR_MODULUS9162b8d5d01d7b5b1179686d15e74d1dd38eaa5b6e64673195aaf951df8828deeca002c215d4209ac0bf90a9587ddca7f6351d5d4df0f6201b65daccd9955e4f49a819c0d39cb6717623bfa33436facc835c15961a58a63ca25bf0d2d4888d77418c571c190f8cc5a82483050658c00df4658dff248202bc95e886b1b5c7a981f09b0eb4f606641efe09bf3881f63c90d4a4415219ba796df449862b9d9c2a78d1c24fff56cf9b25f2b7dee44e200dd9550bd097a7044b22ca004033236bc708a0bad4a111533ed46d049e5ec0b449b4a3877e566b0ce9d0a60fd1c15352b131ccc234f1719bed3918df579a66e7fff29dc80dc5dbbf6e3d7d092d67c6abca7dOBJ_ATTR_MODULUS_BITS0x00000800OBJ_ATTR_PUBLIC_EXPONENT0x010005

Example : generar un par de claves RSA compartidas

Este comando genera un par de claves RSA y comparte la clave privada con el usuario 4, otro CU en elHSM. El comando utiliza el parámetro m_value para solicitar al menos dos aprobaciones para poder usarla clave privada en el par en una operación criptográfica. Al utilizar el parámetro m_value, también tieneque utilizar -u en el comando y el m_value no puede superar el número total de usuarios (número devalores en -u + propietario).

Command: genRSAKeyPair -m 2048 -e 195193 -l rsa_mofn -id rsa_mv2 -u 4 -m_value 2

Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

Cfm3GenerateKeyPair: public key handle: 27 private key handle: 28

139

Page 145: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS

Parámetros

-h

Displays help for the command.

Required: Yes-m

Especifica la longitud del módulo en bits. El valor mínimo es 2048.

Requerido: sí-e

Especifica el exponente público. El valor debe ser un número impar superior o igual a 65537.

Requerido: sí-l

Specifies a user-defined label for the key pair. Type a string. The same label applies to both keys in thepair

You can use any phrase that helps you to identify the key. Because the label does not have to beunique, you can use it to group and categorize keys.

Required: Yes-id

Specifies a user-defined identifier for the key pair. Type a string that is unique in the cluster. Thedefault is an empty string. The ID that you specify applies to both keys in the pair.

Default: No ID value.

Required: No-min_srv

Specifies the minimum number of HSMs on which the key is synchronized before the value of the -timeout parameter expires. If the key is not synchronized to the specified number of servers in thetime allotted, it is not created.

AWS CloudHSM automatically synchronizes every key to every HSM in the cluster. To speed upyour process, set the value of min_srv to less than the number of HSMs in the cluster and set a lowtimeout value. Note, however, that some requests might not generate a key.

Default: 1

Required: No-m_value

Specifies the number of users who must approve any cryptographic operation that uses the private keyin the pair. Type a value from 0 to 8.

This parameter establishes a quorum authentication requirement for the private key. The default value,0, disables the quorum authentication feature for the key. When quorum authentication is enabled, thespecified number of users must sign a token to approve cryptographic operations that use the privatekey, and operations that share or unshare the private key.

140

Page 146: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

To find the m_value of a key, use getKeyInfo (p. 150).

This parameter is valid only when the -u parameter in the command shares the key pair with enoughusers to satisfy the m_value requirement.

Default: 0

Required: No-nex

Makes the private key nonextractable. The private key that is generated cannot be exported from theHSM (p. 56). Public keys are always extractable.

Default: Both the public and private keys in the key pair are extractable.

Required: No-sess

Creates a key that exists only in the current session. The key cannot be recovered after the sessionends.

Use this parameter when you need a key only briefly, such as a wrapping key that encrypts, and thenquickly decrypts, another key. Do not use a session key to encrypt data that you might need to decryptafter the session ends.

To change a session key to a persistent (token) key, use setAttribute (p. 162).

Default: The key is persistent.

Required: No-timeout

Specifies how long (in seconds) the command waits for a key to be synchronized to the number ofHSMs specified by the min_srv parameter.

This parameter is valid only when the min_srv parameter is also used in the command.

Default: No timeout. The command waits indefinitely and returns only when the key is synchronized tothe minimum number of servers.

Required: No-u

Shares the private key in the pair with the specified users. This parameter gives other HSM cryptousers (CUs) permission to use the private key in cryptographic operations. Public keys can be used byany user without sharing.

Type a comma-separated list of HSM user IDs, such as -u 5,6. Do not include the HSM user ID of thecurrent user. To find HSM user IDs of CUs on the HSM, use listUsers (p. 161). To share and unshareexisting keys, use shareKey.

Default: Only the current user can use the private key.

Required: No-attest

Runs an integrity check that verifies that the firmware on which the cluster runs has not been tamperedwith.

Default: No attestation check.

141

Page 147: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Required: No

Temas relacionados

• genSymKey (p. 142)• createKeyPair• genDSAKeyPair (p. 128)• genECCKeyPair (p. 133)

genSymKeyEl comando genSymKey en la herramienta key_mgmt_util genera una clave simétrica en sus HSM. Puedeespecificar el tipo y el tamaño de la clave, asignar un ID y una etiqueta, y compartir la clave con otrosusuarios de HSM. También puede crear claves que no se pueden extraer y claves que caducan al finalizarla sesión. Cuando el comando se ejecuta correctamente, devuelve un identificador de clave que el HSMasigna a la clave. Puede utilizar el identificador de clave para identificar la clave ante otros comandos.

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Tip

To find the attributes of a key that you have created, such as the type, length, label, and ID, usegetAttribute (p. 147). To find the keys for a particular user, use getKeyInfo (p. 150). To findkeys based on their attribute values, use findKey (p. 124).

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]

EjemplosEn estos ejemplos se muestra cómo utilizar genSymKey para crear claves simétricas en sus HSM.

Example : generar una clave AES

Este comando crea una clave AES de 256 bits con una etiqueta aes256. El resultado muestra que elidentificador de clave de la clave nueva es 6.

Command: genSymKey -t 31 -s 32 -l aes256

Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Created. Key Handle: 6

142

Page 148: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Example : crear una clave de sesión

Este comando crea una clave AES de 192 bits no extraíble que es válida únicamente en la sesiónactual. Puede que desee crear una clave como esta para encapsular (y, a continuación, desencapsularinmediatamente) una clave que se está exportando.

Command: genSymKey -t 31 -s 24 -l tmpAES -id wrap01 -nex -sess

Example : regresar rápidamente

Este comando crea una clave de 512 bytes genéricos con una etiqueta IT_test_key. El comando noespera a que la clave se sincronice en todos los HSM en el clúster. En su lugar, regresa tan pronto comose crea la clave en cualquier HSM (-min_srv 1) o en 1 segundo (-timeout 1), el periodo que seamás corto. Si la clave no se sincroniza con el número mínimo especificado de HSM antes de que venzael tiempo de espera, no se genera. Es posible que desee utilizar un comando como este en un script quecrea numerosas claves, como el bucle for del siguiente ejemplo.

Command: genSymKey -t 16 -s 512 -l IT_test_key -min_srv 1 -timeout 1

$ for i in {1..30}; do /opt/cloudhsm/bin/key_mgmt_util Cfm3Util singlecmd loginHSM -u CU -s example_user -p example_pwd genSymKey -l aes -t 31 -s 32 -min_srv 1 -timeout 1; done;

Example : crear una clave genérica autorizada mediante cuórum

Este comando crea una clave secreta genérica de 2048 bits con la etiqueta generic-mV2. El comandoutiliza el parámetro -u para compartir la clave con otro CU, el usuario 6. Utiliza el parámetro -m_valuepara solicitar un cuórum de al menos dos aprobaciones para cualquier operación criptográfica que utilice laclave. El comando también utiliza el parámetro -attest para verificar la integridad del firmware en el quese genera la clave.

El resultado muestra que el comando generó una clave con identificador de clave 9 y que se ha superadola comprobación de declaración del firmware del clúster.

Command: genSymKey -t 16 -s 2048 -l generic-mV2 -m_value 2 -u 6 -attest

Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Created. Key Handle: 9

Attestation Check : [PASS]

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Example : crear y examinar una clave

Este comando crea una clave Triple DES con una etiqueta 3DES_shared y un ID de IT-02. La clave lapueden 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.

El resultado muestra que la clave nueva tiene el identificador de clave 7.

143

Page 149: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Command: genSymKey -t 21 -s 24 -l 3DES_shared -id IT-02 -u 4,5

Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Created. Key Handle: 7

Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Para verificar que la clave 3DES nueva es propiedad del actual usuario y se comparte con los usuarios 4y 5, utilice getKeyInfo (p. 150). El comando utiliza el identificador que se asignó a la clave nueva (KeyHandle: 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

Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

Owned by user 3

also, shared to following 2 user(s):

4, 5

Para confirmar el resto de las propiedades de la clave, utilice getAttribute (p. 147). El primer comandoutiliza 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 archivoattr_7.

Este comando confirma que la clave 7 es una clave simétrica de 192 bits (OBJ_ATTR_VALUE_LEN0x00000018 o 24 bytes) 3DES (OBJ_ATTR_KEY_TYPE 0x15) (OBJ_ATTR_CLASS 0x04) con unaetiqueta 3DES_shared (OBJ_ATTR_LABEL 3DES_shared) y un ID IT_02 (OBJ_ATTR_ID IT-02). Laclave es persistente (OBJ_ATTR_TOKEN 0x01) y extraíble (OBJ_ATTR_EXTRACTABLE 0x01) y se puedeutilizar para el cifrado, el descifrado y el encapsulado.

For help interpreting the key attributes, see the Referencia de los atributos de claves (p. 168).

Command: getAttribute -o 7 -a 512 -attr_7

got all attributes of size 444 attr cnt 17Attributes dumped into attr_7 file

Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS

$ cat attr_7

OBJ_ATTR_CLASS0x04OBJ_ATTR_KEY_TYPE0x15OBJ_ATTR_TOKEN0x01OBJ_ATTR_PRIVATE0x01OBJ_ATTR_ENCRYPT0x01OBJ_ATTR_DECRYPT0x01OBJ_ATTR_WRAP

144

Page 150: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

0x00OBJ_ATTR_UNWRAP0x00OBJ_ATTR_SIGN0x00OBJ_ATTR_VERIFY0x00OBJ_ATTR_LOCAL0x01OBJ_ATTR_SENSITIVE0x01OBJ_ATTR_EXTRACTABLE0x01OBJ_ATTR_LABEL3DES_sharedOBJ_ATTR_IDIT-02OBJ_ATTR_VALUE_LEN0x00000018OBJ_ATTR_KCV0x59a46e

Parámetros

-h

Displays help for the command.

Required: Yes-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

Requerido: sí-s

Especifica el tamaño de la clave en bytes. Por ejemplo, para crear una clave de 192 bits, escriba 24.

Valores válidos para cada tipo de clave:• AES: 16 (128 bits), 24 (192 bits), 32 (256 bits)• 3DES: 24 (192 bits)• RC4: <256 (2048 bits)• Secreta genérica: <3584 (28672 bits)

Requerido: sí-l

Specifies a user-defined label for the key. Type a string.

You can use any phrase that helps you to identify the key. Because the label does not have to beunique, you can use it to group and categorize keys.

145

Page 151: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Required: Yes-attest

Runs an integrity check that verifies that the firmware on which the cluster runs has not been tamperedwith.

Default: No attestation check.

Required: No-id

Specifies a user-defined identifier for the key. Type a string that is unique in the cluster. The default isan empty string.

Default: No ID value.

Required: No-min_srv

Specifies the minimum number of HSMs on which the key is synchronized before the value of the -timeout parameter expires. If the key is not synchronized to the specified number of servers in thetime allotted, it is not created.

AWS CloudHSM automatically synchronizes every key to every HSM in the cluster. To speed upyour process, set the value of min_srv to less than the number of HSMs in the cluster and set a lowtimeout value. Note, however, that some requests might not generate a key.

Default: 1

Required: No-m_value

Specifies the number of users who must approve any cryptographic operation that uses the key. Typea value from 0 to 8.

This parameter establishes a quorum authentication requirement for the key. The default value, 0,disables the quorum authentication feature for the key. When quorum authentication is enabled, thespecified number of users must sign a token to approve cryptographic operations that use the key, andoperations that share or unshare the key.

To find the m_value of a key, use getKeyInfo (p. 150).

This parameter is valid only when the -u parameter in the command shares the key with enough usersto satisfy the m_value requirement.

Default: 0

Required: No-nex

Makes the key nonextractable. The key that is generated cannot be exported from the HSM (p. 56).

Default: The key is extractable.

Required: No-sess

Creates a key that exists only in the current session. The key cannot be recovered after the sessionends.

146

Page 152: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Use this parameter when you need a key only briefly, such as a wrapping key that encrypts, and thenquickly decrypts, another key. Do not use a session key to encrypt data that you might need to decryptafter the session ends.

To change a session key to a persistent (token) key, use setAttribute (p. 162).

Default: The key is persistent.

Required: No-timeout

Specifies how long (in seconds) the command waits for a key to be synchronized to the number ofHSMs specified by the min_srv parameter.

This parameter is valid only when the min_srv parameter is also used in the command.

Default: No timeout. The command waits indefinitely and returns only when the key is synchronized tothe minimum number of servers.

Required: No-u

Shares the key with the specified users. This parameter gives other HSM crypto users (CUs)permission to use this key in cryptographic operations.

Type a comma-separated list of HSM user IDs, such as -u 5,6. Do not include the HSM user ID of thecurrent user. To find HSM user IDs of CUs on the HSM, use listUsers (p. 161). To share and unshareexisting keys, use shareKey.

Default: Only the current user can use the key.

Required: No

Temas relacionados

• exSymKey (p. 119)• genRSAKeyPair (p. 137)• genDSAKeyPair (p. 128)• genECCKeyPair (p. 133)

getAttributeEl comando getAttribute en key_mgmt_util escribe uno o varios valores de atributo de una clave de AWSCloudHSM en un archivo. Si el atributo que especifica no existe para el tipo de clave, como el módulo deuna clave AES, getAttribute devuelve un error.

Los atributos de la clave son las propiedades de una clave. Contienen características, como el tipo declave, 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.

Puede utilizar getAttribute solo en claves de su propiedad y las claves que se comparten con usted. Puedeejecutar este comando o el comando getAttribute (p. 92) en cloudhsm_mgmt_util, que obtiene un valorde atributo de una clave de todos los HSM de un clúster y lo escribe en stdout o en un archivo.

Para obtener una lista de los atributos y las constantes que los representan, ejecute el comandolistAttributes (p. 160). Para cambiar los valores de los atributos de las claves existentes, utilice

147

Page 153: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

setAttribute (p. 162) en key_mgmt_util y setAttribute (p. 104) en cloudhsm_mgmt_util. For helpinterpreting the key attributes, see the Referencia de los atributos de claves (p. 168).

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Sintaxis

getAttribute -h

getAttribute -o <key handle> -a <attribute constant> -out <file>

Ejemplos

En estos ejemplos se muestra cómo utilizar getAttribute para obtener los atributos de claves de sus HSM.

Example : obtención del tipo de clave

En este ejemplo se obtiene el tipo de la clave, por ejemplo una AES, 3DES o una clave genérica, o unaclave RSA o par de claves de curva elíptica.

El primer comando ejecuta listAttributes (p. 160), que obtiene los atributos de una clave y las constantesque los representan. La salida muestra que la constante del tipo de clave es 256. For help interpreting thekey attributes, see the Referencia de los atributos de claves (p. 168).

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 clave524296 y lo escribe en el archivo attribute.txt.

Command: getAttribute -o 524296 -a 256 -out attribute.txtAttributes dumped into attribute.txt file

148

Page 154: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

El último comando obtiene el contenido del archivo de clave. La salida revela que el tipo de clave es 0x15o 21, lo que es una clave triple DES (3DES). Para informarse de las definiciones de los valores de clase ytipo, consulte la sección de referencia de los atributos de clave (p. 168).

$ cat attribute.txtOBJ_ATTR_KEY_TYPE0x00000015

Example : obtención de todos los atributos de una clave

Este comando obtiene todos los atributos de la clave que tiene el indicador 6 y los escribe en el archivoattr_6. Utiliza un valor de atributo de 512, que representa todos los atributos.

Command: getAttribute -o 6 -a 512 -out attr_6 got all attributes of size 444 attr cnt 17Attributes dumped into attribute.txt file

Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS>

Este comando muestra el contenido de un archivo de atributo de muestra con todos los valores de atributo.En los valores indica que la clave es una clave AES de 256 bits con un ID de test_01 y una etiquetade aes256. La clave es extraíble y persistente, es decir, no es una clave de una única sesión. For helpinterpreting the key attributes, see the Referencia de los atributos de claves (p. 168).

$ cat attribute.txt

OBJ_ATTR_CLASS0x04OBJ_ATTR_KEY_TYPE0x15OBJ_ATTR_TOKEN0x01OBJ_ATTR_PRIVATE0x01OBJ_ATTR_ENCRYPT0x01OBJ_ATTR_DECRYPT0x01OBJ_ATTR_WRAP0x01OBJ_ATTR_UNWRAP0x01OBJ_ATTR_SIGN0x00OBJ_ATTR_VERIFY0x00OBJ_ATTR_LOCAL0x01OBJ_ATTR_SENSITIVE0x01OBJ_ATTR_EXTRACTABLE0x01OBJ_ATTR_LABELaes256OBJ_ATTR_IDtest_01OBJ_ATTR_VALUE_LEN0x00000020OBJ_ATTR_KCV0x1a4b31

149

Page 155: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Parámetros

-h

Displays help for the command.

Required: Yes-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. 124).

Además, debe ser propietario de la clave especificada o esta debe compartirse con usted. Paraencontrar los usuarios de una clave, use getKeyInfo (p. 150).

Requerido: sí-a

Identifica el atributo. Escriba una constante que represente un atributo o 512, que representa todoslos atributos. Por ejemplo, para obtener el tipo de clave, escriba 256, que es la constante del atributoOBJ_ATTR_KEY_TYPE.

Para generar una lista de los atributos y sus constantes, utilice listAttributes (p. 160). For helpinterpreting the key attributes, see the Referencia de los atributos de claves (p. 168).

Requerido: sí-out

Escribe la salida en el archivo especificado. Escriba una ruta de archivo. No puede escribir la salida enstdout.

Si el archivo especificado existe, getAttribute sobrescribe el archivo sin ningún tipo de advertencia.

Requerido: sí

Temas relacionados

• getAttribute (p. 92) en cloudhsm_mgmt_util• listAttributes (p. 160)• setAttribute (p. 162)• findKey (p. 124)• Referencia de los atributos de claves (p. 168)

getKeyInfoEl comando getKeyInfo en la herramienta key_mgmt_util devuelve los ID de HSM de los usuarios quepueden utilizar la clave, incluidos el propietario y los usuarios de criptografía (CU) con quienes se compartela clave. Cuando la autenticación de cuórum está habilitada en una clave, getKeyInfo también devuelve elnúmero de usuarios que debe aprobar las operaciones criptográficas que utilizan la clave. Puede ejecutargetKeyInfo solo en claves de su propiedad y las claves que se comparten con usted.

Cuando ejecuta getKeyInfo en claves públicas, getKeyInfo solo 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 losusuarios en sus HSM, utilice listUsers (p. 161). Para encontrar las claves de un usuario concreto, usefindKey (p. 124) -u.

150

Page 156: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

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. 107) encloudhsm_mgmt_util.

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Sintaxis

getKeyInfo -h

getKeyInfo -k <key-handle>

Ejemplos

En estos ejemplos se muestra cómo utilizar getKeyInfo para obtener información sobre los usuarios de unaclave.

Example : obtener los usuarios para una clave simétrica

Este comando obtiene los usuarios que pueden utilizar la clave AES (simétrica) con identificador de clave9. El resultado muestra que el usuario 3 es propietario de la clave y la comparte con el usuario 4.

Command: getKeyInfo -k 9

Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

Owned by user 3

also, shared to following 1 user(s):

4

Example : obtener los usuarios para un par de claves asimétricas

Estos comandos utilizan getKeyInfo para obtener los usuarios que pueden utilizar las claves en un parde claves RSA (asimétricas). La clave pública tiene identificador de clave 21. La clave privada tieneidentificador de clave 20.

Cuando ejecuta getKeyInfo en la clave privada (20), devuelve el propietario de la clave (3) y los usuariosde criptografía (CU) 4 y 5, con quienes se comparte la clave.

Command: getKeyInfo -k 20

Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

Owned by user 3

also, shared to following 2 user(s):

4 5

Cuando ejecuta getKeyInfo en la clave pública (21), devuelve solo el propietario de la clave (3).

Command: getKeyInfo -k 21

Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

151

Page 157: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

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. 124).

El resultado muestra que el usuario 4 puede utilizar la clave pública (21) y la clave privada (20) en el parde claves. El usuario 4 también puede utilizar todas las demás claves públicas y cualquier clave privadacreadas o que se hayan compartido con ellos.

Command: findKey -u 4Total number of keys present 8

number of keys matched from start index 0::711, 12, 262159, 262161, 262162, 19, 20, 21

Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS

Example : obtener el 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 elcuó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 aprobarcualquier operación criptográfica que utilice la clave. Para habilitar la autenticación de cuórum y establecerel tamaño de cuórum, utilice el parámetro -m_value cuando cree la clave.

Este comando utiliza genRSAKeyPair (p. 137) para crear un par de claves RSA que se comparte con elusuario 4. Utiliza el parámetro m_value para habilitar la autenticación de cuórum en la clave privada en elpar y establecer el tamaño de cuórum en dos usuarios. El número de usuarios debe ser lo suficientementegrande como para proporcionar las aprobaciones necesarias.

El resultado muestra que el comando creó la clave pública 27 y la clave privada 28.

Command: genRSAKeyPair -m 2048 -e 195193 -l rsa_mofn -id rsa_mv2 -u 4 -m_value 2

Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

Cfm3GenerateKeyPair: public key handle: 27 private key handle: 28

Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS

Este comando utiliza getKeyInfo para obtener información sobre los usuarios de la clave privada. Elresultado muestra que la clave es propiedad del usuario 3 y se comparte con el usuario 4. Tambiénmuestra que un cuórum de dos usuarios debe aprobar todas las operaciones criptográficas que utilizan laclave.

Command: getKeyInfo -k 28

Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

Owned by user 3

also, shared to following 1 user(s):

152

Page 158: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

4 2 Users need to approve to use/manage this key

Parámetros

-h

Muestra la ayuda de la línea de comando para el comando.

Requerido: sí-k

Especifica el identificador de una clave en el HSM. Escriba el identificador de una clave de supropiedad o que comparte. Este parámetro es obligatorio.

Para buscar identificadores de clave, use el comando findKey (p. 161).

Requerido: sí

Temas relacionados

• getKeyInfo (p. 96) en cloudhsm_mgmt_util• listUsers (p. 161)• findKey (p. 124)• findAllKeys (p. 89) en cloudhsm_mgmt_util

imSymKeyEl comando imSymKey de la herramienta key_mgmt_util importa una copia sin cifrar de una clave simétricadesde un archivo hasta el HSM. Puede utilizarlo para importar claves que genera con cualquier métodofuera del HSM y las claves que se exportaron desde un HSM, como, por ejemplo, las claves que elcomando exSymKey (p. 119) escribe en un archivo.

Durante el proceso de importación imSymKey utiliza una clave AES que usted selecciona (la clave deencapsulación) para encapsular (cifrar) y, a continuación desencapsular (descifrar) la clave que se vaa importar. Sin embargo, imSymKey funciona solo en archivos que contienen claves no cifradas. Paraexportar e importar claves cifradas, utilice los comandos wrapKey (p. 167) y unWrapKey (p. 164).

Además, el comando imSymKey exporta únicamente claves simétricas. Para importar claves públicas,utilice importPubKey. Para importar claves privadas, utilice importPrivateKey o bien wrapKey.

Las claves importadas funcionan de forma muy parecida a las claves que se generan en el HSM. Sinembargo, el valor del atributo OBJ_ATTR_LOCAL (p. 168) es cero, lo que indica que no se generólocalmente. Puede utilizar el siguiente comando para compartir una clave simétrica al importarla. Puedeutilizar el comando shareKey de cloudhsm_mgmt_util (p. 72) para compartir la clave después deimportarla.

imSymKey -l aesShared -t 31 -f kms.key -w 3296 -u 5

Después de importar una clave, asegúrese de marcar o eliminar el archivo de clave. Este comando nole impide importar el mismo material de claves varias veces. El resultado, es decir, varias claves condiferentes identificadores de clave y el mismo material de claves, dificulta el seguimiento del uso delmaterial relacionado con las claves e impide que supere sus límites criptográficos.

153

Page 159: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Sintaxis

imSymKey -h

imSymKey -f <key-file> -w <wrapping-key-handle> -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.

Example : importación de una clave simétrica AES

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 laclave en el archivo aes256.key.

$ openssl rand -out aes256-forImport.key 32

El segundo comando utiliza imSymKey para importar la clave AES desde el archivo aes256.key hasta losHSM. Utiliza la clave 20, una clave AES del HSM, como clave de encapsulación y especifica una etiquetade tipo imported. A diferencia del ID, no es necesario que la etiqueta sea única en el clúster. El valor delpará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.

Command: imSymKey -f aes256.key -w 20 -t 31 -l imported

Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Unwrapped. Key Handle: 262180

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS

El siguiente comando utiliza getAttribute (p. 147) para obtener el atributo OBJ_ATTR_LOCAL (atributo355 (p. 168)) de la clave que acaba de importar y lo escribe en el archivo attr_262180.

154

Page 160: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Command: getAttribute -o 262180 -a 355 -out attributes/attr_262180Attributes dumped into attributes/attr_262180_imported file

Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS

Cuando examine el archivo de atributos, verá que el valor del atributo OBJ_ATTR_LOCAL es cero, lo queindica que el material de clave no se ha generado en el HSM.

$ cat attributes/attr_262180_localOBJ_ATTR_LOCAL0x00000000

Example : desplazamiento de una clave simétrica entre clústeres

En este ejemplo se muestra cómo utilizar exSymKey e imSymKey para mover una clave AES sin cifrarentre clústeres. Se puede utilizar un proceso como este para crear una encapsulación AES que exista enlos HSM de ambos clústeres. Cuando la clave de encapsulación compartida esté en vigor, podrá utilizarwrapKey (p. 167) y unWrapKey (p. 164) 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 HSMde ambos clústeres.

El primer comando utiliza exSymKey para exportar la clave 14, una clave AES de 32 bits desde el clúster1 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.

Command: exSymKey -k 14 -w 6 -out aes.key

Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS

Wrapped Symmetric Key written to file "aes.key"

A continuación, el usuario inicia sesión en key_mgmt_util en el clúster 2 y ejecuta un comando imSymKeypara importar la clave contenida en el archivo aes.key a los HSM del clúster 2. Este comando utiliza laclave 252152, una clave AES que está en los HSM del clúster 2, como clave de encapsulación.

Como las claves de encapsulación que tanto exSymKey como imSymKey utilizan encapsulan ydesencapsulan inmediatamente las claves de destino, no es necesario que las claves de encapsulación delos diversos clústeres sean iguales.

La salida muestra que la clave se ha importado correctamente al clúster 2 y que se le ha asignado elidentificador de clave 21.

Command: imSymKey -f aes.key -w 262152 -t 31 -l xcluster

Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Unwrapped. Key Handle: 21

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS

155

Page 161: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS

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, elmaterial de clave es el mismo.

El siguiente comando utiliza getAttribute (p. 147) 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 paraobtener el contenido del archivo attr_14_kcv.

Command: getAttribute -o 14 -a 371 -out attr_14_kcvAttributes dumped into attr_14_kcv file

$ cat attr_14_kcvOBJ_ATTR_KCV0xc33cbd

Este comando similar utiliza getAttribute (p. 147) 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 paraobtener el contenido del archivo attr_21_kcv.

Command: getAttribute -o 21 -a 371 -out attr_21_kcvAttributes dumped into attr_21_kcv file

$ cat attr_21_kcvOBJ_ATTR_KCV0xc33cbd

La salida muestra que los valores de KCV de las dos claves son los mismos, lo que demuestra que elmaterial de clave es el mismo.

Dado que los HSM de ambos clústeres tienen el mismo material de clave, ahora puede compartir lasclaves cifradas entre los clústeres sin que se exponga la clave sin cifrar. Por ejemplo, puede utilizar elcomando wrapKey con la clave de encapsulación 14 para exportar una clave cifrada desde el clúster 1y, a continuación, utilizar unWrapKey con la clave de encapsulación 21 para importar la clave cifrada alclúster 2.

Example : importación de una clave de sesión

Este comando utiliza los parámetros -sess de imSymKey para importar una clave triple DES de 192 bitsque 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 deencapsulación. También utiliza el parámetro -l para especificar una etiqueta que establece la categoríade 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.

La salida muestra que la clave se encapsuló y se desencapsuló correctamente, se importó al HSM y sele asignó el identificador de clave 37. Además, muestra que se pasó la comprobación de atestación, queindica que el firmware no ha sufrido ninguna manipulación.

Command: imSymKey -f 3des192.key -w 6 -t 21 -l temp -id test01 -sess -attest

Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

156

Page 162: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Unwrapped. Key Handle: 37

Attestation Check : [PASS]

Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

A continuación, puede ejecutar los comandos getAttribute (p. 147) o findKey (p. 124) para verificar losatributos de la clave recién importada. El siguiente comando utiliza findKey para verificar que la clave37 tenga el tipo, la etiqueta y el ID especificados por el comando y que sea una clave de sesión. Tal ycomo se muestra en la línea 5 de la salida, findKey informa que la única clave que coincide con todos losatributos es la clave 37.

Command: findKey -t 21 -l temp -id test01 -sess 1Total number of keys present 1

number of keys matched from start index 0::037

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS

Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS

Parámetros

-attest

Runs an integrity check that verifies that the firmware on which the cluster runs has not been tamperedwith.

Default: No attestation check.

Required: No-f

Especifica el archivo que contiene la clave que se va a importar.

El archivo debe contener una copia sin cifrar de una clave AES o triple DES de la longitudespecificada. 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

Requerido: sí-h

Displays help for the command.

Required: Yes-id

Specifies a user-defined identifier for the key. Type a string that is unique in the cluster. The default isan empty string.

157

Page 163: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Default: No ID value.

Required: No-l

Specifies a user-defined label for the key. Type a string.

You can use any phrase that helps you to identify the key. Because the label does not have to beunique, you can use it to group and categorize keys.

Required: Yes-min_srv

Specifies the minimum number of HSMs on which the key is synchronized before the value of the -timeout parameter expires. If the key is not synchronized to the specified number of servers in thetime allotted, it is not created.

AWS CloudHSM automatically synchronizes every key to every HSM in the cluster. To speed upyour process, set the value of min_srv to less than the number of HSMs in the cluster and set a lowtimeout value. Note, however, that some requests might not generate a key.

Default: 1

Required: No-sess

Creates a key that exists only in the current session. The key cannot be recovered after the sessionends.

Use this parameter when you need a key only briefly, such as a wrapping key that encrypts, and thenquickly decrypts, another key. Do not use a session key to encrypt data that you might need to decryptafter the session ends.

To change a session key to a persistent (token) key, use setAttribute (p. 162).

Default: The key is persistent.

Required: No-timeout

Specifies how long (in seconds) the command waits for a key to be synchronized to the number ofHSMs specified by the min_srv parameter.

This parameter is valid only when the min_srv parameter is also used in the command.

Default: No timeout. The command waits indefinitely and returns only when the key is synchronized tothe minimum number of servers.

Required: 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

158

Page 164: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Requerido: sí-u

Comparte la clave que va a importar con los usuarios especificados. Este parámetro concede permisoa 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 elID de usuario de HSM del usuario actual. Para encontrar el ID, puede utilizar el comando listUsers enla herramienta de la línea de comandos cloudhsm_mgmt_util o el comando listUsers de la herramientade la línea de comandos key_mgmt_util.

Requerido: No-w

Especifica el identificador de la clave de encapsulación. Este parámetro es obligatorio. Para buscaridentificadores de clave, use el comando findKey (p. 124).

Una clave de encapsulación es una clave del HSM que se utiliza para cifrar ("encapsular") y despuésdescifrar ("desencapsular") la clave durante el proceso de importación. Solo las claves AES se puedenutilizar como claves de encapsulación.

Puede utilizar cualquier clave AES (de cualquier tamaño) como clave de encapsulación. Dado quela clave de encapsulación encapsula y, a continuación, desencapsula inmediatamente la clavede destino, puede utilizar una clave AES solo de una sesión como clave de encapsulación. Paradeterminar si una clave se puede utilizar como clave de encapsulación, utilice getAttribute (p. 147)para obtener el valor del atributo OBJ_ATTR_WRAP (262). Para crear una clave de encapsulamiento,use genSymKey (p. 142) para crear una clave AES (escriba 31).

Si utiliza el parámetro -wk para especificar una clave de encapsulación externa, la clave deencapsulació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 quecree y administre como clave de encapsulamiento.

Requerido: sí-wk

Utilice la clave AES del archivo especificado para encapsular la clave que se importa. Escriba la ruta yel nombre de un archivo que contenga una clave AES sin cifrar.

Cuando incluye este parámetro, imSymKey utiliza la clave del archivo -wk para encapsular la claveque se importa y utiliza la clave del HSM que se especifica con 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.

Requerido: No

Temas relacionados

• genSymKey (p. 142)• exSymKey (p. 119)• wrapKey (p. 167)• unWrapKey (p. 164)

159

Page 165: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

• exportPrivateKey• exportPubKey

listAttributesEl comando listAttributes en key_mgmt_util enumera los atributos de una clave de AWS CloudHSM ylas constantes que los representan. Usted utiliza estas constantes para identificar los atributos en loscomandos getAttribute (p. 147) y setAttribute (p. 162). For help interpreting the key attributes, see theReferencia de los atributos de claves (p. 168).

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Sintaxis

Este comando no tiene parámetros.

listAttributes

Ejemplo

Este comando enumera los atributos clave que puede obtener y cambiar en key_mgmt_util y las constantesque los representan. For help interpreting the key attributes, see the Referencia de los atributos declaves (p. 168).

Para representar todos los atributos en el comando getAttribute (p. 147) en key_mgmt_util, utilice 512.

Command: listAttributes

Following are 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_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. 101) en cloudhsm_mgmt_util• getAttribute (p. 147)• setAttribute (p. 162)• Referencia de los atributos de claves (p. 168)

160

Page 166: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

listUsersEl comando listUsers en key_mgmt_util obtiene los usuarios de los HSM, junto con el tipo de usuario yotros atributos.

En key_mgmt_util, listUsers devuelve un resultado que representa todos los HSM en el clúster, aunqueno sean coherentes. Para obtener información acerca de los usuarios en cada HSM, utilice el comandolistUsers (p. 161) en cloudhsm_mgmt_util.

Los comandos del usuario en key_mgmt_util, listUsers y getKeyInfo, son comandos de solo lectura quelos usuarios de criptografía (CU) tienen permiso para ejecutar. Los demás comandos de administración deusuarios forman parte de cloudhsm_mgmt_util. Son ejecutados por responsables de criptografía (CO) quetienen permisos de administración de usuarios.

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Sintaxis

listUsers

listUsers -h

EjemploEste comando enumera los usuarios de HSM en el clúster y sus atributos. Puede utilizar el atributoUser ID para identificar a los usuarios en otros comandos, como por ejemplo findKey (p. 124),getAttribute (p. 147) y getKeyInfo (p. 150).

Command: listUsers

Number Of Users found 4

Index User ID User Type User Name MofnPubKey LoginFailureCnt 2FA 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

Cfm3ListUsers returned: 0x00 : HSM Return: SUCCESS

La salida contiene los siguientes atributos de usuario:

• User ID (ID de usuario): identifica al usuario en los comandos key_mgmt_util ycloudhsm_mgmt_util (p. 72).

• 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. 58).• LoginFailureCnt:

161

Page 167: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

• 2FA: indica que el usuario ha activado la autenticación multifactor.

Parámetros

-h

Displays help for the command.

Required: Yes

Temas relacionados

• listUsers (p. 161) en cloudhsm_mgmt_util• findKey (p. 124)• getAttribute (p. 147)• getKeyInfo (p. 150)

setAttributeEl comando setAttribute de la herramienta key_mgmt_util convierte una clave que es válida únicamenteen la sesión actual, en una clave persistente que existe hasta que la elimina. El comando realiza estaoperació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.

También puede utilizar el comando setAttribute de cloudhsm_mgmt_util para cambiar la etiqueta,encapsular, desencapsular, cifrar y descifrar atributos.

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Sintaxis

setAttribute -h

setAttribute -o <object handle> -a 1

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. 142) para crear una clave AES válidade 192 bits que es válida únicamente en la sesión actual. La salida muestra que el indicador de la clave dela nueva sesión es 262154.

Command: genSymKey -t 31 -s 24 -l tmpAES -sess Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Created. Key Handle: 262154

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS

162

Page 168: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Este comando utiliza findKey (p. 124) para encontrar las claves de sesión de la sesión actual. La salidaverifica que la clave 262154 es una clave de sesión.

Command: findKey -sess 1

Total number of keys present 1

number of keys matched from start index 0::0262154

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS

Este comando utiliza setAttribute para convertir la clave 262154 de una clave de sesión en una clavepersistente. Para ello, cambia el valor del atributo de token (OBJ_ATTR_TOKEN) de la clave, de 0(falso) a 1 (verdadero). For help interpreting the key attributes, see the Referencia de los atributos declaves (p. 168).

El comando utiliza el parámetro -o para especificar el indicador de clave (262154) y el parámetro -a paraespecificar la constante que representa el atributo de token (1). Cuando ejecuta el comando, este le solicitaun valor para el atributo de token. El único valor válido es 1 (verdadero), el valor de una clave persistente.

Command: setAttribute -o 262154 -a 1 This attribute is defined as a boolean value. Enter the boolean attribute value (0 or 1):1

Cfm3SetAttribute returned: 0x00 : HSM Return: SUCCESS

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Para confirmar que la clave 262154 es ahora persistente, este comando utiliza findKey para buscar clavesde sesión (-sess 1) y claves persistentes (-sess 0). Esta vez el comando no encuentra claves desesión, pero devuelve 262154 en la lista de claves persistentes.

Command: findKey -sess 1

Total number of keys present 0

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS

Command: findKey -sess 0

Total number of keys present 5

number of keys matched from start index 0::46, 7, 524296, 9, 262154

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

163

Page 169: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS

Parámetros

-h

Displays help for the command.

Required: Yes-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. 124).

Requerido: sí-a

Especifica la constante que representa el atributo que desea cambiar. El único valor válido es 1, querepresenta el atributo de token OBJ_ATTR_TOKEN.

Para obtener los atributos y sus valores enteros, utilice listAttributes (p. 160).

Requerido: sí

Temas relacionados

• setAttribute (p. 104) en cloudhsm_mgmt_util• getAttribute (p. 147)• listAttributes (p. 160)• Referencia de los atributos de claves (p. 168)

unWrapKeyEl comando unWrapKey de la herramienta key_mgmt_util importa una clave privada o simétricaencapsulada (cifrada) desde un archivo al HSM. Este comando está diseñado para importar claves cifradasdesde archivos que se crearon con el comando wrapKey (p. 167).

Durante el proceso de importación unWrapKey utiliza una clave AES en el HSM que especifiquepara desencapsular (descifrar) la clave del archivo. A continuación guarda la clave en el HSM con unidentificador de clave y los atributos que especifique. Para exportar e importar claves no cifradas, utilice loscomandos exSymKey (p. 119) e imSymKey (p. 153).

Las claves importadas funcionan de forma muy parecida a las claves que se generan en el HSM. Sinembargo, el valor del atributo OBJ_ATTR_LOCAL (p. 168) es cero, lo que indica que no se generólocalmente. El comando unWrapKey no tiene parámetros que asignen una etiqueta o compartan la clavecon otros usuarios, pero puede utilizar el comando shareKey en cloudhsm_mgmt_util (p. 72) paraañadir dichos atributos después de que se importe la clave.

Después de importar una clave, asegúrese de marcar o eliminar el archivo de clave. Este comando nole impide importar el mismo material de claves varias veces. El resultado, es decir, varias claves condiferentes identificadores de clave y el mismo material de claves, dificulta el seguimiento del uso delmaterial relacionado con las claves e impide que supere sus límites criptográficos.

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

164

Page 170: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Sintaxis

unWrapKey -h

unWrapKey -f <key-file-name> -w <wrapping-key-handle> 4 [-sess] [-min_srv <minimum-number-of-HSMs>] [-timeout <number-of-seconds> ] [-attest]

Ejemplo

Example

Este comando importa una copia encapsulada (cifrada) de una clave simétrica Triple DES (3DES) desdeel archivo 3DES.key a los HSM. Para desencapsular (descifrar) la clave, el comando utiliza el parámetro-w para especificar la clave 6, una clave AES en el HSM. La clave AES que se desencapsula durante laimportación debe ser la misma clave que estaba encapsulada durante la exportación o una copia idénticadesde un punto de vista criptográfico.

La salida muestra que la clave del archivo se ha desencapsulado e importado. La nueva clave tiene elidentificador de clave 29.

Si utiliza unWrapKey para mover una clave entre clústeres, primero debe crear una clave de encapsulaciónAES que exista en ambos clústeres. Puede generar una clave fuera de los HSM y, a continuación, utilizarimSymKey para importarla a los HSM de ambos clústeres. O bien genere una clave AES en los HSM deun clúster; utilice exSymKey (p. 119) para exportarla en texto no cifrado a un archivo. A continuación, useimSymKey para importar la clave no cifrada al otro clúster. Una vez que la clave de encapsulación estéestablecida en ambos clústeres, puede utilizar wrapKey y unWrapKey para mover las claves de cifradoentre clústeres sin poner nunca en peligro el texto no cifrado.

Command: unWrapKey -f 3DES.key -w 6

Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

Key Unwrapped. Key Handle: 29

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Parámetros

-h

Displays help for the command.

Required: Yes-f

Especifica la ruta y el nombre del archivo que contiene la clave encapsulada.

Requerido: sí-w

Specifies the wrapping key. Type the key handle of an AES key on the HSM. This parameter isrequired. To find key handles, use the findKey (p. 124) command.

165

Page 171: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

To create a wrapping key, use genSymKey (p. 142) to create an AES key (type 31). To verifythat a key can be used as a wrapping key, use getAttribute (p. 147) to get the value of theOBJ_ATTR_WRAP attribute, which is represented by constant 262.

Note

Key handle 4 represents an unsupported internal key. We recommend that you use an AESkey that you create and manage as the wrapping key.

Required: Yes-sess

Creates a key that exists only in the current session. The key cannot be recovered after the sessionends.

Use this parameter when you need a key only briefly, such as a wrapping key that encrypts, and thenquickly decrypts, another key. Do not use a session key to encrypt data that you might need to decryptafter the session ends.

To change a session key to a persistent (token) key, use setAttribute (p. 162).

Default: The key is persistent.

Required: No-min_srv

Specifies the minimum number of HSMs on which the key is synchronized before the value of the -timeout parameter expires. If the key is not synchronized to the specified number of servers in thetime allotted, it is not created.

AWS CloudHSM automatically synchronizes every key to every HSM in the cluster. To speed upyour process, set the value of min_srv to less than the number of HSMs in the cluster and set a lowtimeout value. Note, however, that some requests might not generate a key.

Default: 1

Required: No-timeout

Specifies how long (in seconds) the command waits for a key to be synchronized to the number ofHSMs specified by the min_srv parameter.

This parameter is valid only when the min_srv parameter is also used in the command.

Default: No timeout. The command waits indefinitely and returns only when the key is synchronized tothe minimum number of servers.

Required: No-attest

Runs an integrity check that verifies that the firmware on which the cluster runs has not been tamperedwith.

Default: No attestation check.

Required: No

Temas relacionados

• wrapKey (p. 167)

166

Page 172: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

• exSymKey (p. 119)• imSymKey (p. 153)

wrapKeyEl comando wrapKey de la herramienta key_mgmt_util exporta una copia cifrada de una clave simétrica oprivada desde el HSM a un archivo del disco. Cuando ejecuta wrapKey debe especificar la clave que seexportará, una clave AES en el HSM para cifrar (encapsular) la clave que se va a exportar y el archivo desalida.

El comando wrapKey escribe la clave cifrada en un archivo que usted especifica, pero no elimina laclave del HSM ni cambia sus atributos de clave (p. 168) ni le impide utilizar la clave en operacionescriptográficas. Puede exportar la misma clave varias veces.

Solo el propietario de una clave, es decir, el usuario CU que creó la clave, puede exportarla. Los usuariosque comparten la clave pueden utilizarla en operaciones criptográficas, pero no pueden exportarla.

Para importar (y desencapsular) la clave cifrada desde el archivo hasta un HSM, utiliceunWrapKey (p. 164). Para exportar una clave sin cifrar desde el HSM, utilice exSymKey (p. 119). Elcomando aesWrapUnwrap (p. 114) no puede descifrar (desencapsular) claves que wrapKey cifra.

Before you run any key_mgmt_util command, you must start key_mgmt_util (p. 111) and login (p. 112)to the HSM as a crypto user (CU).

Sintaxis

wrapKey -h

wrapKey -k <exported-key-handle> -w <wrapping-key-handle> -out <output-file>

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. Acontinuació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 enel archivo especificado. La clave cifrada tiene 307 bytes de largo.

Command: wrapKey -k 7 -w 14 -out 3DES-encrypted.key

Key Wrapped.

Wrapped Key written to file "3DES-encrypted.key length 307

Cfm2WrapKey returned: 0x00 : HSM Return: SUCCESS

Parámetros

-h

Displays help for the command.

167

Page 173: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Required: Yes-k

Especifica el identificador de la clave que se va a exportar. Escriba el identificador de una clavesimétrica o privada de su propiedad. Para buscar identificadores de clave, use el comandofindKey (p. 124).

Para verificar que se puede exportar una clave, ejecute el comando getAttribute (p. 147) paraobtener el valor del atributo OBJ_ATTR_EXTRACTABLE, que se representa con la constante 354. Forhelp interpreting the key attributes, see the Referencia de los atributos de claves (p. 168).

Además, puede exportar únicamente claves de su propiedad. Para encontrar el propietario de unaclave, ejecute el comando getKeyInfo (p. 150).

Requerido: sí-w

Specifies the wrapping key. Type the key handle of an AES key on the HSM. This parameter isrequired. To find key handles, use the findKey (p. 124) command.

To create a wrapping key, use genSymKey (p. 142) to create an AES key (type 31). To verifythat a key can be used as a wrapping key, use getAttribute (p. 147) to get the value of theOBJ_ATTR_WRAP attribute, which is represented by constant 262.

Note

Key handle 4 represents an unsupported internal key. We recommend that you use an AESkey that you create and manage as the wrapping key.

Required: Yes-out

Especifica la ruta y el 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 losobrescribe sin ningún tipo de advertencia.

Requerido: sí

Temas relacionados

• exSymKey (p. 119)• imSymKey (p. 153)• unWrapKey (p. 164)

Referencia de los atributos de clavesLos comandos key_mgmt_util utilizan constantes para representar los atributos de claves en un HSM. Estetema puede ayudarle a identificar los atributos, encontrar las constantes que los representan en comandosy comprender sus valores.

Usted configura los atributos de una clave cuando la crea. Para cambiar el atributo del token, que indicasi una clave es persistentes o solo existe en la sesión, utilice el comando setAttribute (p. 162) enkey_mgmt_util. Para cambiar los atributos de la etiqueta, de encapsulado, desencapsulado, cifrado ydescifrado, utilice el comando setAttribute en cloudhsm_mgmt_util.

168

Page 174: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Para obtener una lista de los atributos y sus constantes, utilice listAttributes (p. 160). Para obtener losvalores de atributo de una clave, utilice getAttribute (p. 147).

En la siguiente tabla se enumeran los atributos clave, sus constantes y sus valores válidos.

Atributo Constant Valores

OBJ_ATTR_CLASS 0 2: clave pública en un par declaves pública–privada.3: clave privada en un par declaves pública–privada.

4: clave secreta (simétrica).

OBJ_ATTR_TOKEN 1 0: falso. Clave de sesión.

1: verdadero. Clave persistente.

OBJ_ATTR_PRIVATE 2 0: falso.

1: verdadero. Clave privada enun par de claves pública–privada.

OBJ_ATTR_LABEL 3 Cadena definida por el usuario.No tiene que ser única en elclúster.

OBJ_ATTR_KEY_TYPE 256 0: RSA.

1: DSA.

3: EC.

16: secreto genérico.

18: RC4.

21: Triple DES (3DES).

31: AES.

OBJ_ATTR_ID 258 Cadena definida por el usuario.Debe ser única en el clúster. Elvalor predeterminado es unacadena vacía.

OBJ_ATTR_SENSITIVE 259 0: falso. Clave pública en un parde claves pública–privada.

1: verdadero.

OBJ_ATTR_ENCRYPT 260 0: falso.

1: verdadero. La clave se puedeutilizar para cifrar datos.

OBJ_ATTR_DECRYPT 261 0: falso.

1: verdadero. La clave se puedeutilizar para descifrar datos.

169

Page 175: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioReferencia

Atributo Constant Valores

OBJ_ATTR_WRAP 262 0: falso.

1: verdadero. La clave se puedeutilizar para cifrar claves.

OBJ_ATTR_UNWRAP 263 0: falso.

1: verdadero. La clave se puedeutilizar para descifrar claves.

OBJ_ATTR_SIGN 264 0: falso.

1: verdadero. La clave se puedeutilizar para firmar (clavesprivadas).

OBJ_ATTR_VERIFY 266 0: falso.

1: verdadero. La clave se puedeutilizar para verificación (clavespúblicas).

OBJ_ATTR_MODULUS 288 El módulo que se utilizó paragenerar un par de claves RSA.

Para otros tipos de clave, esteatributo no existe.

OBJ_ATTR_MODULUS_BITS 289 La longitud del módulo que seutilizó para generar un par declaves RSA.

Para otros tipos de clave, esteatributo no existe.

OBJ_ATTR_PUBLIC_EXPONENT 290 El exponente público que seutilizó para generar un par declaves RSA.

Para otros tipos de clave, esteatributo no existe.

OBJ_ATTR_VALUE_LEN 353 Longitud de la clave en bits.

OBJ_ATTR_EXTRACTABLE 354 0: falso.

1: verdadero. Es posible exportarla clave desde los HSM.

OBJ_ATTR_LOCAL 355 0. Falso. La clave se importó alos HSM.

1. Verdadero.

OBJ_ATTR_KCV 371 Valor de comprobación de clavede la clave. Para obtener másinformación, consulte Detallesadicionales (p. 171).

170

Page 176: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioHerramienta de configuración

Atributo Constant Valores

OBJ_ATTR_ALL 512 Representa todos los atributos.

Detalles adicionales

Valor de comprobación de clave (kcv)

The key check value (KCV) is an 8-byte hash or checksum of a key. The HSM calculates a KCV whenit generates the key. You can also calculate a KCV outside of the HSM, such as after you export a key.You can then compare the KCV values to confirm the identity and integrity of the key. To get the KCVof a key, use getAttribute (p. 147).

AWS CloudHSM uses the following standard method to generate a key check value:• Symmetric keys: First 8 bytes of the result of encrypting 16 zero-filled bytes with the key.• Asymmetric key pairs: First 8 bytes of the modulus hash.

Herramienta de configuraciónAWS CloudHSM sincroniza automáticamente los datos entre todos los HSM de un clúster. La herramientaConfigure actualiza los datos del HSM en los archivos de configuración que los mecanismos desincronización utilizan. Utilice Configure para actualizar los datos del HSM antes de utilizar lasherramientas de línea de comandos, especialmente cuando los HSM del clúster han cambiado.

Antes de utilizar la herramienta key_mgmt_util, ejecute configure -a. Antes de utilizar la herramientacloudhsm_mgmt_util, ejecute configure -a y, a continuación, ejecute configure -m. También puedeejecutar configure --ssl para actualizar las claves y los certificados SSL.

También puede utilizar la herramienta Configure para actualizar las claves y los certificados SSL.

Sintaxisconfigure -h | --help

configure -a <ENI IP address>

configure -m [-i <daemon_id>] configure --ssl --pkey <private key file> --cert <certificate file>

EjemplosEn estos ejemplos se muestra cómo utilizar la herramienta Configure.

Example : actualización de los datos del HSM para el cliente de AWS CloudHSM y key_mgmt_util

En este ejemplo se utiliza el comando configure -a para actualizar los datos de HSM para el clientede AWS CloudHSM y key_mgmt_util. Este comando también es el primer paso a la hora de actualizar elarchivo de configuración de cloudhsm_mgmt_util.

Antes de ejecutar configure -a, detenga el cliente de AWS CloudHSM. De esta forma evitará conflictosque pueden producirse mientras Configure edita el archivo de configuración del cliente. Si el cliente ya seha detenido, este comando no tiene efectos negativos, por lo que puede utilizarlo en un script.

171

Page 177: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioEjemplos

$ sudo stop cloudhsm-client cloudhsm-client stop/waiting

A continuación, obtenga la dirección IP de ENI de un HSM cualquiera de su clúster. Este comando utiliza elcomando describe-clusters de la AWS CLI, pero también puede utilizar la operación DescribeClusters o elcmdlet 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. Podemosutilizar cualquiera de las direcciones IP en el comando siguiente.

$ aws cloudhsmv2 describe-clusters

{ "Clusters": [ { ... } "Hsms": [ {... "EniIp": "10.0.0.9",... }, {... "EniIp": "10.0.1.6",...

Este paso utiliza configure -a para agregar la dirección IP de ENI 10.0.0.9 a los archivos deconfiguración.

La salida muestra que Configure ha añadido 10.0.0.9 a los archivos cloudhsm_client.cfg ycloudhsm_mgmt_util.cfg.

$ sudo /opt/cloudhsm/bin/configure -a 10.0.0.9

Updating server config in /opt/cloudhsm/etc/cloudhsm_client.cfgUpdating server config in /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg

A continuación, reinicie el cliente de AWS CloudHSM. Cuando el cliente se inicia, utiliza la dirección IPde ENI en su archivo de configuración para realizar consultas en el clúster. A continuación, escribe lasdirecciones IP de ENI de todos los HSM del clúster en el archivo cluster.info.

$ sudo start cloudhsm-client

cloudhsm-client start/running, process 2747

Cuando el comando se completa, los datos del HSM que el cliente de AWS CloudHSM y la herramientakey_mgmt_util utilizan son completos y precisos. Antes de utilizar cloudhsm_mgmt_util ejecute el comandoconfigure -m, tal y como se muestra en el ejemplo siguiente.

Example : actualización de los datos de HSM para cloudhsm_mgmt_util

En este ejemplo se utiliza el comando configure-m para copiar los datos del HSM actualizados desde elarchivo cluster.info hasta el archivo cloudhsm_mgmt_util.cfg que cloudhsm_mgmt_util utiliza.

Antes de ejecutar configure-m, detenga el cliente de AWS CloudHSM, ejecute configure -a y reinicieel cliente de AWS CloudHSM, tal y como se muestra en el ejemplo anterior (p. 171). Esto garantiza que

172

Page 178: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioParámetros

los datos que se copian en el archivo cloudhsm_mgmt_util.cfg desde el archivo cluster.info seancompletos y precisos.

$ sudo /opt/cloudhsm/bin/configure -mUpdating '/opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg' from cluster state

Parámetros-h | --help

Muestra la sintaxis del comando.

Requerido: sí-a <dirección IP de ENI>

Agrega la dirección IP de la interfaz de red elástica (ENI) del HSM especificado a los archivos deconfiguració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 de su clúster, ejecute la operaciónDescribeClusters, el comando de la AWS CLI describe-clusters o el cmdlet de PowerShell Get-HSM2Cluster.

Note

Antes de ejecutar configure -a detenga el cliente de AWS CloudHSM. A continuación, cuandoconfigure -a se complete, reinicie el cliente de AWS CloudHSM. Para obtener informacióndetallada, consulte los ejemplos (p. 171).

Este parámetro edita los archivos de configuración siguientes:• /opt/cloudhsm/etc/cloudhsm_client.cfg: lo utiliza el cliente de AWS CloudHSM y

key_mgmt_util (p. 109).• /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg: lo utiliza cloudhsm_mgmt_util (p. 72).

Cuando el cliente de AWS CloudHSM se inicia, utiliza la dirección IP de ENI que figura en su archivode 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.

Requerido: sí-m

Actualiza las direcciones IP de ENI de HSM que figuran en el archivo de configuración quecloudhsm_mgmt_util utiliza.

Cuando ejecuta configure -a y, a continuación, inicia el cliente de AWS CloudHSM, el demonio delcliente consulta el clúster y actualiza los archivos cluster.info con las direcciones IP de HSMcorrectas de todos los HSM del clúster. La ejecución de configure -m completa la actualizacióncopiando las direcciones IP de HSM desde cluster.info hasta el archivo de configuracióncloudhsm_mgmt_util.cfg que cloudhsm_mgmt_util utiliza.

Asegúrese de ejecutar configure -a y reiniciar el cliente de AWS CloudHSM antes deejecutar configure-m. De esta forma se asegura de que los datos que se copien en el archivocloudhsm_mgmt_util.cfg desde el archivo cluster.info sean completos y precisos.

Requerido: sí-i

Especifica un demonio de cliente alternativo. El valor predeterminado representa el cliente de AWSCloudHSM.

173

Page 179: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioTemas relacionados

Valor predeterminado: 1

Requerido: 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.

Requerido: No--pkey

Especifica la clave privada nueva. Introduzca la ruta y el nombre del archivo que contiene la claveprivada.

Obligatorio: sí, en caso de que se especifique --ssl. De lo contrario, no debe usarse.--cert

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 quese utiliza para inicializar el clúster. Para obtener más información, consulte Inicializar el clúster.

Obligatorio: sí, en caso de que se especifique --ssl. De lo contrario, no debe usarse.

Temas relacionados• Configurar key_mgmt_util (p. 110)• Prepararse para ejecutar cloudhsm_mgmt_util (p. 73)

174

Page 180: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioBiblioteca de PKCS #11

Uso de las bibliotecas de software deAWS CloudHSM

Las bibliotecas de software de AWS CloudHSM integran sus aplicaciones con los HSM de su clúster. Lasbibliotecas permiten que la aplicación realice operaciones criptográficas en los HSM.

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. 266).

Temas• Biblioteca de software de AWS CloudHSM para PKCS #11 (p. 175)• Motor dinámico de AWS CloudHSM para OpenSSL (p. 184)• Biblioteca de software de AWS CloudHSM para Java (p. 187)• Proveedores de KSP y CNG para Windows (p. 221)

Biblioteca de software de AWS CloudHSM paraPKCS #11

La biblioteca de software de AWS CloudHSM para PKCS #11 es una implementación estándar dePKCS #11 que se comunica con los HSM del clúster de AWS CloudHSM. Solo se admite en Linux y ensistemas operativos compatibles. Esta biblioteca es compatible con PKCS #11 versión 2.40, incluyendo lossiguientes tipos de claves, mecanismos y operaciones API.

Temas• Instalación de la biblioteca de software de AWS CloudHSM para PKCS #11 (p. 175)• Autenticación en PKCS #11 (p. 180)• Tipos de clave de PKCS #11 admitidos (p. 181)• Mecanismos de PKCS #11 admitidos (p. 181)• Operaciones API de PKCS #11 admitidas (p. 183)

Instalación de la biblioteca de software de AWSCloudHSM para PKCS #11Con las bibliotecas de software de AWS CloudHSM para PKCS #11, puede compilar aplicacionescompatibles con PKCS #11 que utilizan los HSM en su clúster de AWS CloudHSM. Puede utilizar labiblioteca PKCS #11 de AWS CloudHSM estándar o la biblioteca de PKCS #11 de AWS CloudHSM queutiliza una caché de Redis (p. 177). Ambas bibliotecas de PKCS #11 de AWS CloudHSM solo se admitenen sistemas operativos Linux.

Temas• Requisitos previos (p. 176)• Instalar la biblioteca de PKCS #11 (p. 176)• Instalar la biblioteca PKCS #11 con Redis (opcional) (p. 177)

175

Page 181: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInstalar la biblioteca de PKCS #11

Requisitos previosLas 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 deInstalar el cliente (Linux) (p. 34). Después de instalar y configurar el cliente, utilice el siguiente comandopara iniciarlo.

Amazon Linux

$ sudo start cloudhsm-client

Amazon Linux 2

$ sudo service cloudhsm-client start

CentOS 6

$ sudo start cloudhsm-client

CentOS 7

$ sudo service cloudhsm-client start

RHEL 6

$ sudo start cloudhsm-client

RHEL 7

$ sudo service cloudhsm-client start

Ubuntu 16.04 LTS

$ sudo service cloudhsm-client start

Instalar la biblioteca de PKCS #11El siguiente comando descarga e instala (o actualiza) la biblioteca de software de AWS CloudHSMpara PKCS #11. Este paso es necesario para la biblioteca PKCS #11 de AWS CloudHSM estándar y labiblioteca PKCS #11 de AWS CloudHSM para Redis (p. 177).

Amazon Linux

$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/AmazonLinux/cloudhsm-client-pkcs11-latest.amzn1.x86_64.rpm

$ sudo yum install -y ./cloudhsm-client-pkcs11-latest.amzn1.x86_64.rpm

Amazon Linux 2

$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/AmazonLinux2/cloudhsm-client-pkcs11-latest.amzn2.x86_64.rpm

176

Page 182: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInstalar la biblioteca de PKCS #11

$ sudo yum install -y ./cloudhsm-client-pkcs11-latest.amzn2.x86_64.rpm

CentOS6

$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-pkcs11-latest.el6.x86_64.rpm

$ sudo yum install -y ./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

$ sudo yum install -y ./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

$ sudo yum install -y ./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

$ sudo yum install -y ./cloudhsm-client-pkcs11-latest.el7.x86_64.rpm

Ubuntu 16.04

$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-client-pkcs11_latest_amd64.deb

$ sudo dpkg -i cloudhsm-client-pkcs11_latest_amd64.deb

Cuando la instalación se realiza correctamente, las bibliotecas PKCS #11 están en /opt/cloudhsm/lib.

Instalar la biblioteca PKCS #11 con Redis (opcional)AWS CloudHSM proporciona una biblioteca de software opcional para PKCS #11 que utiliza una caché deRedis. La caché almacena identificadores de clave y los atributos de forma local para que pueda obteneracceso a ellas sin llamar a sus HSM.

Al crear la caché, especifique el usuario de criptografía (CU) que su aplicación PKCS #11 utiliza laaplicación para la autenticación (p. 180). La caché tiene precargadas las claves que posee y comparte elCU. Se actualiza automáticamente cuando su aplicación usa funciones en la biblioteca de PKCS #11 pararealizar cambios en los HSM en nombre del CU, como crear o eliminar claves o cambiar atributos de lasclaves. La caché no conoce otras claves del HSM.

177

Page 183: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInstalar la biblioteca de PKCS #11

El almacenamiento en caché puede mejorar el desempeño de su aplicación PKCS #11, pero podría no serla 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, siutiliza las herramientas de línea de comandos (p. 72) o la biblioteca de software para Java (p. 187) conel fin de administrar las claves de su HSM, dichas operaciones no actualizan la caché. Puede reconstruirla caché para actualizarla al nuevo estado de los HSM, pero la caché no se sincroniza con los HSM deforma automática.

 • No utilice la biblioteca de PKCS #11 con Redis si tiene otras aplicaciones que utilizan Redis en el mismo

host. La biblioteca PKCS #11 configura Redis para reconocerlo como el único consumidor Redis en elhost.

Para instalar la biblioteca PKCS #11 con Redis, utilice el repositorio Extra Packages for Enterprise Linux(EPEL) para instalar el paquete Redis. A continuación, habilite y configure Redis para que funcione conAWS CloudHSM y PKCS #11.

Algunos pasos en este proceso solo se necesitan en determinados sistemas operativos.

Paso 1: Instalación de la biblioteca PKCS #11 de AWS CloudHSM

Para instalar la biblioteca PKCS #11 con Redis, primero debe instalar la biblioteca PKCS #11 de AWSCloudHSM estándar (p. 176). Esta biblioteca es obligatoria.

Obligatorio para Redis en todos los sistemas operativos compatibles.

Paso 2: Instalación del repositorio EPEL

Este paso instala el repositorio Extra Packages for Enterprise Linux (EPEL). Solo es necesario en sistemasoperativos que no incluyen EPEL.

Obligatorio para Redis solo en: Amazon Linux 2, CentOS 6, CentOS 7, RedHat Enterprise Linux (RHEL) 6,RedHat Enterprise Linux (RHEL) 7

Amazon Linux 2

1. Descargue el repositorio EPEL.

curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

2. Instale el repositorio EPEL.

sudo yum install epel-release-latest-7.noarch.rpm

CentOS6

1. Descargue el repositorio EPEL.

curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

2. Instale el repositorio EPEL.

sudo yum install epel-release-latest-6.noarch.rpm

178

Page 184: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInstalar la biblioteca de PKCS #11

CentOS 7

1. Descargue el repositorio EPEL.

curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

2. Instale el repositorio EPEL.

sudo yum install epel-release-latest-7.noarch.rpm

RHEL 6

1. Descargue el repositorio EPEL.

curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

2. Instale el repositorio EPEL.

sudo yum install epel-release-latest-6.noarch.rpm

RHEL 7

1. Descargue el repositorio EPEL.

curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

2. Instale el repositorio EPEL.

sudo yum install epel-release-latest-7.noarch.rpm

Paso 3: Preparación para Redis

Este paso incluye tareas específicas del sistema que deben llevarse a cabo antes de instalar y configurarla biblioteca PKCS #11 para Redis.

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 esteprocedimiento para comprobar que EPEL está habilitado en cualquier sistema operativo Linux.

1. Abra el archivo /etc/yum.repos.d/epel.repo en un editor de texto. Este paso requierepermisos administrativos (sudo).

2. En la configuración de [epel] en el archivo, establezca el valor de enabled en 1, como semuestra en el siguiente ejemplo. A continuación, guarde el archivo y ciérrelo.

[epel]name=Extra Packages for Enterprise Linux 6 - $basearch#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearchmirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearchfailovermethod=priorityenabled=1gpgcheck=1

179

Page 185: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAutenticación en PKCS #11

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

CentOS 7

Este comando deshabilita una política Security-Enhanced Linux (SELinux) que impide que Redis uselos recursos de AWS CloudHSM.

sudo semanage module -d redis

RHEL 6

Este comando elimina el requisito TTY en el archivo sudoers. El archivo sudoers contiene las reglaspara el comando sudo.

1. Use el editor visudo para modificar el archivo /etc/sudoers.2. Comente la instrucción Defaults requiretty. A continuación, guarde el archivo y salga de

visudo.

# Defaults requiretty

Paso 4: Instalación, configuración y creación de la caché de Redis

Utilice el siguiente procedimiento para instalar y configurar el paquete Redis para la biblioteca de AWSCloudHSM para PKCS #11 y crear la caché.

Obligatorio para Redis en todos los sistemas operativos compatibles.

1. Utilice el script setup_redis para instalar Redis y configurarlo para que funcione con la bibliotecaPKCS #11 de AWS CloudHSM para Redis.

$ sudo /opt/cloudhsm/bin/setup_redis

2. Inicie el servicio Redis.

$ sudo service redis start

3. Utilice el comando build_keystore para crear la caché de Redis. Escriba el nombre y lacontraseña del usuario de criptografía (CU) (p. 11) que su aplicación PKCS #11 utiliza para laautenticación (p. 180).

La caché tiene precargadas las claves que posee y comparte el CU especificado. Se actualizaautomáticamente cuando su aplicación realiza cambios en los HSM en nombre del CU, como crear oeliminar claves o cambiar atributos de clave. La caché no conoce otras claves de los HSM.

$ /opt/cloudhsm/bin/build_keystore -s <CU user name> -p < CU password>

Autenticación en PKCS #11Cuando se utiliza PKCS #11 con AWS CloudHSM, la aplicación se ejecuta como un determinado usuariode criptografía (CU) (p. 10) en los HSM. La aplicación solo puede ver y administrar las claves que poseey comparte el CU. Puede utilizar un CU existente en sus HSM o crear un nuevo CU (p. 50) para suaplicación.

180

Page 186: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioTipos de clave de PKCS #11 admitidos

Para especificar el CU para PKCS #11, utilice el parámetro de pin de la función C_Login de PKCS #11.Para AWS CloudHSM, el parámetro de 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 usuarioCryptoUser y la contraseña CUPassword123!.

CryptoUser:CUPassword123!

Tipos de clave de PKCS #11 admitidosLa biblioteca de software de AWS CloudHSM para PKCS #11 admite los siguientes tipos de clave.

• RSA: claves RSA de 2048 a 4096 bits, en incrementos de 256 bits.• ECDSA: generación de claves con las curvas P-224, P-256, P-384 y P-521. Para firmar o verificar, solo

se admiten las curvas P-256 y P-384.• AES: claves AES de 128, 192 y 256 bits.• Triple DES (3DES): claves de 192 bits.• GENERIC_SECRET: de 1 a 64 bytes.

Mecanismos de PKCS #11 admitidosLa biblioteca de software de AWS CloudHSM para PKCS #11 admite los siguientes mecanismos de PKCS#11.

Generar, crear o importar claves

• CKM_AES_KEY_GEN

• CKM_DES3_KEY_GEN

• CKM_EC_KEY_PAIR_GEN

• CKM_GENERIC_SECRET_KEY_GEN

• CKM_RSA_X9_31_KEY_PAIR_GEN

Note

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. Si necesita el mecanismoCKM_RSA_PKCS_KEY_PAIR_GEN, utilice CKM_RSA_X9_31_KEY_PAIR_GEN.

Firmar o verificar

• CKM_RSA_PKCS

• CKM_RSA_PKCS_PSS

• CKM_SHA256_RSA_PKCS

• CKM_SHA224_RSA_PKCS

• CKM_SHA384_RSA_PKCS

• CKM_SHA512_RSA_PKCS

• CKM_SHA1_RSA_PKCS_PSS

• CKM_SHA256_RSA_PKCS_PSS

181

Page 187: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMecanismos de PKCS #11 admitidos

• CKM_SHA224_RSA_PKCS_PSS

• CKM_SHA384_RSA_PKCS_PSS

• CKM_SHA512_RSA_PKCS_PSS

• CKM_MD5_HMAC

• CKM_SHA_1_HMAC

• CKM_SHA224_HMAC

• CKM_SHA256_HMAC

• CKM_SHA384_HMAC

• CKM_SHA512_HMAC

• CKM_ECDSA

• CKM_ECDSA_SHA1

• CKM_ECDSA_SHA224

• CKM_ECDSA_SHA256

• CKM_ECDSA_SHA384

• CKM_ECDSA_SHA512

Resumen

• CKM_SHA1

• CKM_SHA224

• CKM_SHA256

• CKM_SHA384

• CKM_SHA512

Cifrar o descifrar

• CKM_AES_CBC

• CKM_AES_CBC_PAD

• CKM_AES_GCM

Note

Al realizar el cifrado AES-GCM, el HSM no tiene en cuenta el vector de inicialización (IV) de lasolicitud y utiliza un IV que él mismo genera. El HSM escribe el IV generado en la referencia dela memoria a la que apunta el elemento pIV de la estructura de parámetros CK_GCM_PARAMSque suministra.

• CKM_DES3_CBC

• CKM_DES3_CBC_PAD

• CKM_RSA_OAEP_PAD

• CKM_RSA_PKCS

Generar una clave

• CKM_ECDH1_DERIVE

Note

Este mecanismo se implementa para admitir casos de descarga de SSL/TLS y se ejecutasolo parcialmente en el HSM. Antes de usar este mecanismo, consulte Issue: ECDH keyderivation is executed only partially within the HSM en Problemas conocidos para el SDK dePKCS#11 (p. 254).

182

Page 188: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioOperaciones API de PKCS #11 admitidas

Encapsular una clave

• CKM_AES_KEY_WRAP

Operaciones API de PKCS #11 admitidasLa biblioteca de software de AWS CloudHSM para PKCS #11 admite las siguientes operaciones API dePKCS #11.

• 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

183

Page 189: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMotor dinámico de OpenSSL

• C_SignUpdate

• C_UnWrapKey

• C_Verify

• C_VerifyFinal

• C_VerifyInit

• C_VerifyRecover

• C_VerifyRecoverInit

• C_VerifyUpdate

• C_WrapKey

Motor dinámico de AWS CloudHSM para OpenSSLEl motor dinámico de AWS CloudHSM para OpenSSL es un motor dinámico de OpenSSL que admite lainterfaz de línea de comandos de OpenSSL y las operaciones API de EVP. El motor dinámico permite quelas aplicaciones que se integran con OpenSSL, como los servidores web NGINX y Apache, descarguen suprocesamiento criptográfico a los HSM del clúster de AWS CloudHSM. El motor admite los siguientes tiposde claves y cifrados:

• Generación de claves RSA para claves de 2048, 3072 y 4096 bits• Firma o verificación de RSA• Cifrado o descifrado de RSA• Generación de números aleatorios criptográficamente segura y validada por FIPS

Para obtener más información, consulte el siguiente tema.

Temas• Instalar y utilizar el motor dinámico de AWS CloudHSM para OpenSSL (p. 184)

Instalar y utilizar el motor dinámico de AWSCloudHSM para OpenSSLPara poder utilizar el motor dinámico de AWS CloudHSM para OpenSSL, necesita el cliente de AWSCloudHSM.

El cliente es un demonio que establece una comunicación cifrada integral con los HSM del clúster, y elmotor de OpenSSL se comunica localmente con el cliente. Si no ha instalado y configurado el paquete decliente de AWS CloudHSM, hágalo ahora siguiendo los pasos de Instalar el cliente (Linux) (p. 34). Despuésde 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 operativoscompatibles.

Amazon Linux

$ sudo start cloudhsm-client

Amazon Linux 2

$ sudo service cloudhsm-client start

184

Page 190: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInstalación del motor dinámico de OpenSSL

CentOS 6

$ sudo start cloudhsm-client

CentOS 7

$ sudo service cloudhsm-client start

RHEL 6

$ sudo start cloudhsm-client

RHEL 7

$ sudo service cloudhsm-client start

Ubuntu 16.04 LTS

$ sudo service cloudhsm-client start

Temas• Instalar y configurar el motor dinámico de OpenSSL (p. 185)• Usar el motor dinámico de OpenSSL (p. 186)

Instalar y configurar el motor dinámico de OpenSSLSiga los pasos que se describen a continuación para instalar (o actualizar) y configurar el motor dinámicode AWS CloudHSM para OpenSSL. Solo se admite en Linux y en sistemas operativos compatibles.

Para instalar (o actualizar) y configurar el motor de OpenSSL

1. Utilice los comandos siguientes para descargar e instalar el motor de OpenSSL.

Amazon Linux

$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/AmazonLinux/cloudhsm-client-dyn-latest.amzn1.x86_64.rpm

$ sudo yum install -y ./cloudhsm-client-dyn-latest.amzn1.x86_64.rpm

Amazon Linux 2

$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/AmazonLinux2/cloudhsm-client-dyn-latest.amzn2.x86_64.rpm

$ sudo yum install -y ./cloudhsm-client-dyn-latest.amzn2.x86_64.rpm

CentOS6

$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-dyn-latest.el6.x86_64.rpm

185

Page 191: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInstalación del motor dinámico de OpenSSL

$ sudo yum install -y ./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

$ sudo yum install -y ./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

$ sudo yum install -y ./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

$ sudo yum install -y ./cloudhsm-client-dyn-latest.el7.x86_64.rpm

Ubuntu 16.04 y posteriores

$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-client-dyn_latest_amd64.deb

$ sudo dpkg -i cloudhsm-client-dyn_latest_amd64.deb

2. Después de realizar el paso anterior, puede encontrar el motor de OpenSSL en /opt/cloudhsm/lib/libcloudhsm_openssl.so.

3. Utilice el siguiente comando para definir una variable de entorno denominada n3fips_password conlas credenciales de un usuario de criptografía (CU).

$ export n3fips_password=<HSM user name>:<password>

Usar el motor dinámico de OpenSSLPara usar el motor dinámico de AWS CloudHSM para OpenSSL desde la línea de comandos de OpenSSL,utilice la opción -engine para especificar el motor dinámico de OpenSSL denominado cloudhsm. Porejemplo:

$ openssl s_server -cert server.crt -key server.key -engine cloudhsm

Para utilizar el motor dinámico de AWS CloudHSM para OpenSSL desde una aplicación integradade OpenSSL, asegúrese de que la aplicación utiliza el motor dinámico de OpenSSL denominadocloudhsm. La biblioteca compartida para el motor dinámico se encuentra en /opt/cloudhsm/lib/libcloudhsm_openssl.so.

186

Page 192: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioBiblioteca de Java

Biblioteca de software de AWS CloudHSM paraJava

La biblioteca de software de AWS CloudHSM para Java es una implementación de proveedor para elmarco de proveedores de Sun Java JCE (Java Cryptography Extension). Incluye implementaciones parainterfaces y clases de motor en el estándar JCA (Java Cryptography Architecture). Para obtener másinformación sobre cómo instalar y usar la biblioteca de Java, consulte los siguientes temas.

Temas• Instalar y utilizar la biblioteca de software de AWS CloudHSM para Java (p. 187)• Mecanismos admitidos (p. 191)• Requisitos previos del código de ejemplo (p. 194)• Muestras de código para la biblioteca de software de AWS CloudHSM para Java (p. 195)

Instalar y utilizar la biblioteca de software de AWSCloudHSM para JavaPara poder utilizar la biblioteca de software de AWS CloudHSM para Java, necesita el cliente de AWSCloudHSM.

El cliente es un daemon que establece una comunicación cifrada integral con los HSM del clúster, y labiblioteca de Java se comunica localmente con el cliente. Si no ha instalado y configurado el paquete decliente de AWS CloudHSM, hágalo ahora siguiendo los pasos de Instalar el cliente (Linux) (p. 34). Despuésde instalar y configurar el cliente, utilice el siguiente comando para iniciarlo.

La biblioteca de software de AWS CloudHSM para Java solo se admite en Linux y en sistemas operativoscompatibles.

Amazon Linux

$ sudo start cloudhsm-client

Amazon Linux 2

$ sudo service cloudhsm-client start

CentOS 6

$ sudo start cloudhsm-client

CentOS 7

$ sudo service cloudhsm-client start

RHEL 6

$ sudo start cloudhsm-client

187

Page 193: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInstalar la biblioteca de Java

RHEL 7

$ sudo service cloudhsm-client start

Ubuntu 16.04 LTS

$ sudo service cloudhsm-client start

Temas• Instalar la biblioteca de Java (p. 188)• Probar la biblioteca de Java (p. 189)• Proporcionar credenciales a la biblioteca de Java (p. 190)• Conceptos básicos de administración de claves en la biblioteca de Java (p. 191)

Instalar la biblioteca de JavaSiga los pasos que se describen a continuación para instalar o actualizar la biblioteca de software de AWSCloudHSM para Java.

Utilice los comandos siguientes para descargar e instalar la biblioteca de Java. Esta biblioteca solo seadmite en Linux y en sistemas operativos compatibles.

Amazon Linux

$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/AmazonLinux/cloudhsm-client-jce-latest.amzn1.x86_64.rpm

$ sudo yum install -y ./cloudhsm-client-jce-latest.amzn1.x86_64.rpm

Amazon Linux 2

$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/AmazonLinux2/cloudhsm-client-jce-latest.amzn2.x86_64.rpm

$ sudo yum install -y ./cloudhsm-client-jce-latest.amzn2.x86_64.rpm

CentOS6

$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-jce-latest.el6.x86_64.rpm

$ sudo yum install -y ./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

$ sudo yum install -y ./cloudhsm-client-jce-latest.el7.x86_64.rpm

188

Page 194: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInstalar la biblioteca de Java

RHEL 6

$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-jce-latest.el6.x86_64.rpm

$ sudo yum install -y ./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

$ sudo yum install -y ./cloudhsm-client-jce-latest.el7.x86_64.rpm

Ubuntu 16.04

$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-client-jce_latest_amd64.deb

$ sudo dpkg -i cloudhsm-client-jce_latest_amd64.deb

Después de realizar los pasos anteriores, encontrará los siguientes archivos de la biblioteca de Java:

• /opt/cloudhsm/java/cloudhsm-1.0.jar

• /opt/cloudhsm/java/cloudhsm-test-1.0.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

Probar la biblioteca de JavaPara comprobar que la biblioteca de software de AWS CloudHSM para Java funciona con los HSM de unclúster, siga los pasos que se describen a continuación.

Para probar la biblioteca de Java con un clúster

1. (Opcional) Si todavía no tiene instalado Java en su entorno, ejecute el comando siguiente parainstalarlo.

Linux (y bibliotecas compatibles)

$ sudo yum install -y java-1.8.0-openjdk

Ubuntu

$ sudo apt-get install openjdk-8-jre

189

Page 195: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInstalar la biblioteca de Java

2. Utilice los siguientes comandos para definir las variables de entorno necesarias. Sustituya <HSM username> y <password> por las credenciales de un usuario de criptografía (CU).

$ export LD_LIBRARY_PATH=/opt/cloudhsm/lib

$ export HSM_PARTITION=PARTITION_1

$ export HSM_USER=<HSM user name>

$ export HSM_PASSWORD=<password>

3. Utilice el siguiente comando para ejecutar la prueba de RSA.

$ java8 -cp "/usr/share/java/junit4.jar:/opt/cloudhsm/java/*" \ org.junit.runner.JUnitCore \ com.cavium.unittest.TestRSA

Para ejecutar otra prueba, sustituya TestRSA en el comando anterior por uno de los siguientesvalores:

• TestAESKeyGen

• TestAes

• TestBlockCipherBuffer

• TestKeyStore

• TestLoginManager

• TestMac

• TestMessageDigest

• TestMessageUtil

• TestPadding

• TestProvider

• TestRSA

• TestRSAKeyGen

• TestSUNJce

• TestUtils

Proporcionar credenciales a la biblioteca de JavaPara que una aplicación de Java pueda utilizar los HSM de un clúster, estos deben autenticarlacon anterioridad. Cada aplicación puede utilizar una sesión, que se establece proporcionando lascredenciales de una de las maneras siguientes. En los siguientes ejemplos, sustituya <HSM user name>y <password> por las credenciales de un usuario de criptografía (CU).

El primero de los ejemplos siguientes muestra cómo utilizar la clase LoginManager para administrarsesiones en el código. También puede hacer que la biblioteca administre implícitamente las sesionescuando se inicie la aplicación, como se muestra en los ejemplos restantes. Sin embargo, en estos últimoscasos podría resultar difícil entender las condiciones de error cuando las credenciales proporcionadas nosean válidas o haya problemas con los HSM. Si utiliza la clase LoginManager, tendrá más control sobreel modo en que la aplicación gestiona los errores.

• Agregue un archivo denominado HsmCredentials.properties a la ruta CLASSPATH de laaplicación. El contenido del archivo debe ser similar al siguiente:

190

Page 196: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMecanismos admitidos

HSM_PARTITION = PARTITION_1HSM_USER = <HSM user name>HSM_PASSWORD = <password>

• Proporcione las propiedades del sistema de Java cuando ejecute la aplicación. En los siguientesejemplos se muestran dos maneras diferentes de hacerlo:

$ java -DHSM_PARTITION=PARTITION_1 -DHSM_USER=<HSM user name> -DHSM_PASSWORD=<password>

System.setProperty("HSM_PARTITION","PARTITION_1");System.setProperty("HSM_USER","<HSM user name>");System.setProperty("HSM_PASSWORD","<password>");

• Defina las variables de entorno del sistema. Por ejemplo:

$ export HSM_PARTITION=PARTITION_1

$ export HSM_USER=<HSM user name>

$ export HSM_PASSWORD=<password>

Conceptos básicos de administración de claves en la bibliotecade JavaLos siguientes conceptos básicos de administración de claves pueden ayudarle a comenzar a utilizar labiblioteca de software de AWS CloudHSM para Java.

Para importar una clave implícitamente

Pase la clave a cualquier operación API que la acepte. Si la clave es del tipo adecuado para laoperación especificada, los HSM importarán y utilizarán automáticamente la clave especificada.

Para importar una clave explícitamente

Utilice la clase de utilidad denominada ImportKey para importar una clave y definir sus atributos.Para que una clave de sesión persista

Utilice el método Util.persistKey() para convertir una clave de sesión en una clave de token, esdecir, para hacer que la clave sea persistente en los HSM.

Para eliminar una clave

Utilice el método Util.deleteKey() para eliminar una clave.

Mecanismos admitidosPara obtener más información acerca de las interfaces y clases de motor del estándar JCA (JavaCryptography Architecture) admitidas por AWS CloudHSM, consulte los siguientes temas.

Temas• Claves compatibles (p. 192)• Cifrados compatibles (p. 192)

191

Page 197: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMecanismos admitidos

• Resúmenes compatibles (p. 193)• Algoritmos de código de autenticación de mensajes basado en hash (HMAC) compatibles (p. 194)• Mecanismos de firma y verificación compatibles (p. 194)

Claves compatiblesLa biblioteca de software de AWS CloudHSM para Java le permite generar los siguientes tipos de claves.

• RSA: claves RSA de 2048 a 4096 bits, en incrementos de 256 bits.• AES: claves AES de 128, 192 y 256 bits.• Pares de clave EC para curvas NIST P256 y P384.

Además de los parámetros estándar, admitimos los siguientes parámetros para cada clave que se genere.

• Label: etiqueta de clave que puede utilizar para buscar claves.• isExtractable: indica si la clave se puede exportar desde el HSM. (Las claves importadas no se pueden

extraer nunca).• isPersistent: indica si la clave permanece en el HSM cuando finaliza la sesión en curso.

Cifrados compatiblesLa biblioteca de software de AWS CloudHSM para Java es compatible con las siguientes combinacionesde algoritmos, modos y rellenados.

Algoritmo Modo Rellenado Notas

AES CBC AES/CBC/NoPadding

AES/CBC/PKCS5Padding

ImplementaCipher.ENCRYPT_MODE,Cipher.DECRYPT_MODE,Cipher.WRAP_MODE,Cipher.UNWRAP_MODE.

AES ECB NoPadding ImplementaCipher.WRAP_MODE yCipher.UNWRAP_MODE.Utiliza AES detransformación.

AES GCM AES/GCM/NoPadding ImplementaCipher.ENCRYPT_MODEyCipher.DECRYPT_MODE.

Al realizar el cifradoAES-GCM, el HSMno tiene en cuenta elvector de inicialización(IV) de la solicitud yutiliza un IV que élmismo genera. Una vezque se ha completadola operación,deberá llamar a

192

Page 198: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMecanismos admitidos

Algoritmo Modo Rellenado NotasCipher.getIV() paraobtener el IV.

DESede (Triple DES) CBC DESede/CBC/NoPadding

DESede/CBC/PKCS5Padding

ImplementaCipher.ENCRYPT_MODEyCipher.DECRYPT_MODE.

Las rutinas degeneración de clavesaceptan un tamañode 168 o 192 bits. Sinembargo, internamente,todas las clavesDESede son de 192bits.

RSA ECB RSA/ECB/NoPadding

RSA/ECB/PKCS1Padding

ImplementaCipher.ENCRYPT_MODEyCipher.DECRYPT_MODE.

RSA ECB RSA/ECB/OAEPPadding

RSA/ECB/OAEPWithSHA-1ANDMGF1Padding

RSA/ECB/PKCS1Padding

RSA/ECB/OAEPPadding

RSA/ECB/OAEPWithSHA-224ANDMGF1Padding

RSA/ECB/OAEPWithSHA-256ANDMGF1Padding

RSA/ECB/OAEPWithSHA-384ANDMGF1Padding

RSA/ECB/OAEPWithSHA-512ANDMGF1Padding

ImplementaCipher.ENCRYPT_MODEyCipher.DECRYPT_MODE.

OAEPPadding es OAEPcon el tipo de rellenadoSHA-1.

Resúmenes compatiblesLa biblioteca de software de AWS CloudHSM para Java es compatible con los siguientes resúmenes demensajes.

• SHA-1

• SHA-224

• SHA-256

• SHA-384

193

Page 199: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioRequisitos previos de la muestra

• SHA-512

Algoritmos de código de autenticación de mensajes basado enhash (HMAC) compatiblesLa biblioteca de software de AWS CloudHSM para Java es compatible con los siguientes algoritmos deHMAC.

• HmacSHA1

• HmacSHA224

• HmacSHA256

• HmacSHA384

• HmacSHA512

Mecanismos de firma y verificación compatiblesLa biblioteca de software de AWS CloudHSM para Java es compatible con los siguientes tipos de firmas yde verificación.

Tipos de firma RSA

• NONEwithRSA

• SHA1withRSA

• SHA224withRSA

• SHA256withRSA

• SHA384withRSA

• SHA512withRSA

• SHA1withRSA/PSS

• SHA224withRSA/PSS

• SHA256withRSA/PSS

• SHA384withRSA/PSS

• SHA512withRSA/PSS

Tipos de firma ECDSA

• NONEwithECDSA

• SHA1withECDSA

• SHA224withECDSA

• SHA256withECDSA

• SHA384withECDSA

• SHA512withECDSA

Requisitos previos del código de ejemploLas muestras de código de Java incluidas en esta documentación muestran cómo utilizar la biblioteca desoftware de AWS CloudHSM para Java (p. 187) para realizar tareas básicas en AWS CloudHSM. Antesde ejecutar las muestras, siga estos pasos para configurar su entorno:

194

Page 200: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

• Instale y configure la biblioteca de software de AWS CloudHSM para Java (p. 187) y el paquete decliente de AWS CloudHSM (p. 34).

• Configure un nombre de usuario y contraseña de HSM (p. 50) válidos. Los permisos delusuario criptográfico (CU) son suficientes para estas tareas. La aplicación utiliza estascredenciales para iniciar sesión en el HSM en cada ejemplo. Los ejemplos utilizan el métodologinWithExplicitCredentials() (p. 196) para iniciar sesión en un HSM, pero puede utilizar elmétodo que prefiera.

• Decida cómo especificar el proveedor Cavium (p. 195).

Muestras de código para la biblioteca de software deAWS CloudHSM para JavaLos siguientes ejemplos de código de Java muestran cómo utilizar la biblioteca de software de AWSCloudHSM para Java con el fin de realizar tareas básicas en AWS CloudHSM.

Temas• Especificar el proveedor Cavium (p. 195)• Inicio y finalización de sesión en un HSM (p. 196)• Generación de una clave simétrica AES (p. 198)• Generación de claves simétricas Triple DES (p. 200)• Cifrado y descifrado con AES GCM (p. 203)• Generación de un par de claves asimétricas RSA (p. 205)• Generar un par de claves asimétricas de curva elíptica (EC) (p. 209)• Cifrado y descifrado con un par de claves RSA (p. 212)• Firmar un mensaje (p. 214)• Creación de un hash (p. 216)• Crear un HMAC (p. 217)• Administrar las claves de un HSM (p. 218)

Especificar el proveedor Cavium

** Código exclusivamente de ejemplo: no se debe utilizar con fines de producción **

Esta página incluye código de ejemplo que no se ha sometido a pruebas completas. Está diseñado paraentornos de prueba. No ejecute este código en un entorno de producción.

Los ejemplos de Java incluidos en esta documentación utilizan el proveedor Cavium del paquete de clientede AWS CloudHSM. Para especificar el proveedor Cavium, utilice una de las siguientes técnicas:

• Cree una instancia del proveedor Cavium y pásesela a los métodos que toman un proveedor como, porejemplo, este método KeyGenerator.getInstance().

CaviumProvider cp = new CaviumProvider();keyGen = KeyGenerator.getInstance("AES",cp);

• Añada el proveedor Cavium al archivo $JAVA_HOME/jre/lib/security/java.security.A continuación, utilice la cadena Cavium para hacer referencia al proveedor. Si no especifica unproveedor, Java utiliza el primer proveedor del archivo, pero es mejor para especificarlo de formaexplícita.

195

Page 201: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

Important

El proveedor Cavium para JCA no puede instalarse como la prioridad más alta.

// Add the Cavium provider to the Java provider file but make // sure that it's not in the first slot within the file.Security.addProvider(new CaviumProvider());

// Or insert the provider into any specific position other than the first.Security.insertProviderAt(new CaviumProvider(), 10);

// Then you can use "Cavium" where necessary to specify the provider.keyGen = KeyGenerator.getInstance("AES","Cavium");

Inicio y finalización de sesión en un HSM

** Código exclusivamente de ejemplo: no se debe utilizar con fines de producción **

Esta página incluye código de ejemplo que no se ha sometido a pruebas completas. Está diseñado paraentornos de prueba. No ejecute este código en un entorno de producción.

En este ejemplo se muestran varias técnicas mediante las cuales la aplicación de Java puede iniciar sesiónen el HSM del clúster. Todos estos métodos utilizan la clase LoginManager para administrar sesionesen el código. Cada una de ellas proporciona las credenciales de una manera diferente. Para obtener másinformación acerca de cómo proporcionar credenciales a la biblioteca de Java, consulte Proporcionarcredenciales a la biblioteca de Java (p. 190).

El resto de muestras en la sección Muestras de código para la biblioteca de software de AWS CloudHSMpara Java (p. 195) utilizan el método loginWithEnvVariables() para iniciar sesión en un HSM. Seproduce un error en este método, a menos que configure previamente las variables de entorno del HSM.Puede cambiarlo y utilizar el método que prefiera.

Note

Para ejecutar este ejemplo, reemplace <hsm-user-name> y <password> por un nombre deusuario y una contraseña de AWS CloudHSM válidos.

package com.amazonaws.cloudhsm.examples; import com.cavium.cfm2.CFM2Exception;import com.cavium.cfm2.LoginManager; public class LoginLogoutExample { public static void main(String[] z) { System.out.println("*********** Logging in Using Hardcoded Credentials ***********"); loginWithExplicitCredentials(); System.out.println("*********** Logging in Using System.Properties ***********"); loginUsingJavaProperties(); System.out.println("*********** Logging in Using Environment Variables ***********"); loginWithEnvVariables(); System.out.println("Logging out of Session"); logout(); }

196

Page 202: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

/** * Method #1: Use hard-coded credentials * * Replace "<hsm-user-name>" and "<password>" with a valid user name and password. */ public static void loginWithExplicitCredentials() { LoginManager lm = LoginManager.getInstance(); lm.loadNative(); try { lm.login("PARTITION_1", "<hsm-user-name>", "<password>"); int appID = lm.getAppid(); int sessionID = lm.getSessionid(); } catch (CFM2Exception e) { e.printStackTrace(); } } /** * Method #2: Use Java system properties * * Replace "<hsm-user-name>" and "<password>" with a valid user name and password. */ public static void loginUsingJavaProperties() { System.setProperty("HSM_PARTITION","PARTITION_1"); System.setProperty("HSM_USER","<hsm-user-name>"); System.setProperty("HSM_PASSWORD","<password>"); LoginManager lm = LoginManager.getInstance(); lm.loadNative(); try { lm.login(); int appID = lm.getAppid(); int sessionID = lm.getSessionid(); } catch (CFM2Exception e) { e.printStackTrace(); } } /** * Method #3: Use environment variables * * Before invoking the JVM, replace "<hsm-user-name>" * and "<password>" with a valid user name and password. */ * export HSM_PARTITION=PARTITION_1 * export HSM_USER=<hsm-user-name> * export HSM_PASSWORD=<password> */ public static void loginWithEnvVariables() { LoginManager lm = LoginManager.getInstance(); lm.loadNative(); try { lm.login(); int appID = lm.getAppid(); int sessionID = lm.getSessionid(); } catch (CFM2Exception e) { e.printStackTrace(); } } public static void logout() { try { LoginManager.getInstance().logout(); } catch (CFM2Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }

197

Page 203: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

}}

Generación de una clave simétrica AES

** Código exclusivamente de ejemplo: no se debe utilizar con fines de producción **

Esta página incluye código de ejemplo que no se ha sometido a pruebas completas. Está diseñado paraentornos de prueba. No ejecute este código en un entorno de producción.

Este ejemplo muestra cómo generar una clave simétrica AES (Advanced Encryption Standard) de 256 bitsy cómo guardarla en un HSM. De forma predeterminada, las claves que genera el HSM no se guardan.Para guardar una clave, llame al método makeKeyPersistant debajo. Puede guardar el objeto de clavey utilizar el identificador de clave para otras operaciones.

Note

Esta ejemplo utiliza el método loginWithEnvVars() en la muestra Inicio y finalización desesión en un HSM (p. 196) para iniciar sesión en el HSM. Puede sustituirlo por el método deinicio de sesión que prefiera. Además, el ejemplo supone que el proveedor Cavium (p. 195)está incluido en el archivo de proveedor de Java. Si no es así, cree una instancia del proveedor ysustitúyala por la cadena Cavium.

package com.amazonaws.cloudhsm.examples.key.symmetric;

import java.security.Key;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;

import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;

import com.amazonaws.cloudhsm.examples.operations.LoginLogoutExample;import com.cavium.cfm2.CFM2Exception;import com.cavium.cfm2.Util;import com.cavium.key.CaviumAESKey;import com.cavium.key.parameter.CaviumAESKeyGenParameterSpec;import com.cavium.provider.CaviumProvider;

public class AESSymmetricKeyGeneration {

public static void main(String[] z) { LoginLogoutExample.loginWithEnvVars(); new AESSymmetricKeyGeneration().generateAESKey(256, true); new AESSymmetricKeyGeneration().generateAESKey(256, "AESKeyCustomLabel", false, true); LoginLogoutExample.logout(); }

// Generate a key given the bit size and a Boolean value that specifies whether the key is // to be added to the HSM (persistent) public Key generateAESKey(int keySize, boolean isPersistent) { KeyGenerator keyGen; try {

// Create an instance of the provider. keyGen = KeyGenerator.getInstance("AES","Cavium");

198

Page 204: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

// Generate the key. keyGen.init(keySize); SecretKey aesKey = keyGen.generateKey(); System.out.println("Key Generated!"); if(aesKey instanceof CaviumAESKey) { System.out.println("Key is of type CaviumAESKey"); CaviumAESKey caviumAESKey = (CaviumAESKey) aesKey; // Save the key handle. You'll need this to perform future encryption and decryption operations. System.out.println("Key Handle = " + caviumAESKey.getHandle()); // Get the key label generated by the SDK. System.out.println("Key Label = " + caviumAESKey.getLabel()); // Get the Extractable property of the key. System.out.println("Is Key Extractable? : " + caviumAESKey.isExtractable()); // Get the Persistent property of the key. System.out.println("Is Key Persistent? : " + caviumAESKey.isPersistent()); // By default, keys are not persistent. Make them Persistent here. if(isPersistent){ System.out.println("Setting Key as Persistent:"); makeKeyPersistant(caviumAESKey); System.out.println("Key is Persistent!"); } System.out.println("Is Key Persistent? : " + caviumAESKey.isPersistent());

// Verify the key type and size. System.out.println("Key Algo : " + caviumAESKey.getAlgorithm()); System.out.println("Key Size : " + caviumAESKey.getSize()); } return aesKey; } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return null; }

// This method allows you to specify the size in bits of the key, the private key label, whether the private key // can be extracted, and whether the key is persistent. public Key generateAESKey(int keySize,String keyLabel, boolean isExtractable, boolean isPersistent) { KeyGenerator keyGen; try { // Create an instance of the provider. keyGen = KeyGenerator.getInstance("AES","Cavium"); // Generate the key. CaviumAESKeyGenParameterSpec aesSpec = new CaviumAESKeyGenParameterSpec(keySize, keyLabel, isExtractable, isPersistent); keyGen.init(aesSpec); SecretKey aesKey = keyGen.generateKey(); System.out.println("Key Generated!"); if(aesKey instanceof CaviumAESKey) {

199

Page 205: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

System.out.println("Key is of type CaviumAESKey"); CaviumAESKey caviumAESKey = (CaviumAESKey) aesKey; // Save the key handle. You'll need this to perform future encryption and decryption operations. System.out.println("Key Handle = " + caviumAESKey.getHandle()); // Get the key label. System.out.println("Key Label = " + caviumAESKey.getLabel()); // Get the Extractable property of the key. System.out.println("Is Key Extractable? : " + caviumAESKey.isExtractable()); //Get the Persistent property of the key. System.out.println("Is Key Persistent? : " + caviumAESKey.isPersistent());

// Verify the key type and size. System.out.println("Key Algo : " + caviumAESKey.getAlgorithm()); System.out.println("Key Size : " + caviumAESKey.getSize()); } return aesKey; } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return null; }

// Save the key to the HSM. public static void makeKeyPersistant(Key key) { CaviumAESKey caviumAESKey = (CaviumAESKey) key; try { Util.persistKey(caviumAESKey); System.out.println("Added Key to HSM"); } catch (CFM2Exception e) { e.printStackTrace(); } }

Generación de claves simétricas Triple DES

** Código exclusivamente de ejemplo: no se debe utilizar con fines de producción **

Esta página incluye código de ejemplo que no se ha sometido a pruebas completas. Está diseñado paraentornos de prueba. No ejecute este código en un entorno de producción.

Este ejemplo muestra cómo generar una clave simétrica Triple DES (3DES) de 168 bits y cómo guardarlaen un HSM. De forma predeterminada, las claves que genera el HSM no se guardan. Para guardar unaclave, llame al método makeKeyPersistant debajo. Puede guardar el objeto de clave y utilizar elidentificador de clave para otras operaciones.

Note

Esta ejemplo utiliza el método loginWithEnvVars() en la muestra Inicio y finalización desesión en un HSM (p. 196) para iniciar sesión en el HSM. Puede sustituirlo por el método de

200

Page 206: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

inicio de sesión que prefiera. Además, el ejemplo supone que el proveedor Cavium (p. 195)está incluido en el archivo de proveedor de Java. Si no es así, cree una instancia del proveedor ysustitúyala por la cadena Cavium.

import java.security.Key;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;

import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;

import com.amazonaws.cloudhsm.examples.operations.LoginLogoutExample;import com.cavium.cfm2.CFM2Exception;import com.cavium.cfm2.Util;import com.cavium.key.CaviumDES3Key;import com.cavium.key.parameter.CaviumDESKeyGenParameterSpec;

public class DES3SymmetricKeyGeneration {

// The key size can be either 168 or 192 bits. public static void main(String[] z) { LoginLogoutExample.loginWithEnvVars(); new DES3SymmetricKeyGeneration().generate3DesKey(168, true); new DES3SymmetricKeyGeneration().generate3DesKey(168, "DESKey-1", false, true); LoginLogoutExample.logout(); }

public Key generate3DesKey(int keySize, boolean isPersistent) { KeyGenerator keyGen; try { // Create an instance of the provider. keyGen = KeyGenerator.getInstance("DESede","Cavium"); // Generate the key. keyGen.init(keySize); SecretKey des3Key = keyGen.generateKey(); System.out.println("Key Generated!"); if(des3Key instanceof CaviumDES3Key) { System.out.println("Key is of type CaviumDES3Key"); CaviumDES3Key ck = (CaviumDES3Key) des3Key; // Save the key handle. You'll need this to perform future encryption and decryption operations. System.out.println("Key Handle = " + ck.getHandle()); // Get the key label generated by the SDK. System.out.println("Key Label = " + ck.getLabel()); // Get the Extractable property of the key. System.out.println("Is Key Extractable? : " + ck.isExtractable()); // Get the Persistent property of the key. System.out.println("Is Key Persistent? : " + ck.isPersistent()); // By default, keys are not persistent. Make them Persistent here. if(isPersistent){ System.out.println("Setting Key as Persistent:"); makeKeyPersistant(ck); System.out.println("Key is Persistent!"); } System.out.println("Is Key Persistant? : " + ck.isPersistent());

201

Page 207: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

// Verify the key type and size. System.out.println("Key Algo : " + ck.getAlgorithm()); System.out.println("Key Size : " + ck.getSize()); } return des3Key; } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return null; }

// This method allows you to specify the size in bits of the key, the private key label, whether the private key // can be extracted, and whether the key is persistent. public Key generate3DesKey(int keySize, String keyLabel, boolean isExtractable, boolean isPersistent) { KeyGenerator keyGen; try {

// Create an instance of the provider. keyGen = KeyGenerator.getInstance("DESede","Cavium"); // Generate the key. CaviumDESKeyGenParameterSpec desKeyGenSpec = new CaviumDESKeyGenParameterSpec(keySize, keyLabel, isExtractable, isPersistent); keyGen.init(desKeyGenSpec); SecretKey des3Key = keyGen.generateKey(); System.out.println("Key Generated!"); if(des3Key instanceof CaviumDES3Key) { System.out.println("Key is of type CaviumDES3Key"); CaviumDES3Key ck = (CaviumDES3Key) des3Key; // Save the key handle. You'll need this to perform future encryption and decryption operations. System.out.println("Key Handle = " + ck.getHandle()); // Get the key label. System.out.println("Key Label = " + ck.getLabel()); // Get the Extractable property of the key. System.out.println("Is Key Extractable? : " + ck.isExtractable()); //Get the Persistent property of the key. System.out.println("Is Key Persistent? : " + ck.isPersistent()); // Verify the key type and size. System.out.println("Key Algo : " + ck.getAlgorithm()); System.out.println("Key Size : " + ck.getSize()); } return des3Key; } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return null; } // Save the key to the HSM.

202

Page 208: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

public static void makeKeyPersistant(Key key) { CaviumDES3Key caviumDES3Key = (CaviumDES3Key) key; try { Util.persistKey(caviumDES3Key); System.out.println("Added Key to HSM"); } catch (CFM2Exception e) { e.printStackTrace(); } }}

Cifrado y descifrado con AES GCM

** Código exclusivamente de ejemplo: no se debe utilizar con fines de producción **

Esta página incluye código de ejemplo que no se ha sometido a pruebas completas. Está diseñado paraentornos de prueba. No ejecute este código en un entorno de producción.

En el ejemplo se muestra cómo utilizar el algoritmo AES en modo Galois/contador (GCM) para cifrar ydescifrar un mensaje. El ejemplo utiliza un vector de inicialización (IV), datos autenticados adicionales(AAD) y no utiliza relleno. El método encrypt() devuelve un objeto que incluye el texto cifrado, el IV, lalongitud del texto cifrado y la longitud del IV.

Note

Esta ejemplo utiliza el método loginWithEnvVars() en la muestra Inicio y finalizaciónde sesión en un HSM (p. 196) para iniciar sesión en el HSM. Esta muestra utilizaAESSymmetricKeyGeneration que se analiza en el artículo relacionado con la Creación de unaclave AES (p. 198). La muestra supone que el proveedor Cavium (p. 195) está incluido en elarchivo de proveedor de Java. Si no es así, cree una instancia del proveedor y sustitúyala por lacadena Cavium.

package com.amazonaws.cloudhsm.examples.crypto.symmetric;

import java.security.InvalidAlgorithmParameterException;import java.security.InvalidKeyException;import java.security.Key;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;import java.util.Arrays;import java.util.Base64;

import javax.crypto.BadPaddingException;import javax.crypto.Cipher;import javax.crypto.IllegalBlockSizeException;import javax.crypto.NoSuchPaddingException;import javax.crypto.spec.GCMParameterSpec;

import com.amazonaws.cloudhsm.examples.key.symmetric.AESSymmetricKeyGeneration;import com.amazonaws.cloudhsm.examples.operations.LoginLogoutExample;import com.cavium.key.CaviumAESKey;

public class AESGCMEncryptDecryptExample {

String plainText = "This!"; // String to encrypt. String aad = "aad"; // Additional authenticated data String transformation = "AES/GCM/NoPadding"; // No padding int tagLengthInBytes = 16; // Tag length int ivSizeReturnedByHSM; // Size of IV returned by HSM

203

Page 209: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

public static void main(String[] z) {

AESGCMEncryptDecryptExample obj = new AESGCMEncryptDecryptExample(); // Log in to HSM with cryptographic user permissions. LoginLogoutExample.loginWithEnvVars();

// Generate a new AES Key to use for encryption. Key key =new AESSymmetricKeyGeneration().generateAESKey(256, true); byte[] iv = null;

// Encrypt the plaintext. System.out.println("Performing AES Encryption Operation"); byte[] result = obj.encrypt(obj.transformation, (CaviumAESKey) key, obj.plainText, obj.aad, obj.tagLengthInBytes); System.out.println("Plaintext Encrypted");

System.out.println("Base64 Encoded Encrypted Text with IV = " + Base64.getEncoder().encodeToString(result));

System.out.println("Perfroming Decrypt Operation"); // Extract the IV created by the HSM during encryption. iv = Arrays.copyOfRange(result, 0, obj.ivSizeReturnedByHSM);

// Get the ciphertext. byte[] cipherText = Arrays.copyOfRange(result, obj.ivSizeReturnedByHSM, result.length); System.out.println("Base64 Encoded Cipher Text = " + Base64.getEncoder().encodeToString(cipherText));

// Decrypt the ciphertext. byte[] decryptedText = obj.decrypt(obj.transformation, (CaviumAESKey) key, cipherText, iv, obj.aad, obj.tagLengthInBytes); System.out.println("Plain Text = "+new String(decryptedText)); LoginLogoutExample.logout(); }

// Encrypt the plaintext. public byte[] encrypt(String transformation, CaviumAESKey key, String plainText, String aad, int tagLength) { try { // Create an encryption cipher. Cipher encCipher = Cipher.getInstance(transformation, "Cavium");

// Configure the encryption cipher. encCipher.init(Cipher.ENCRYPT_MODE, key); encCipher.updateAAD(aad.getBytes()); encCipher.update(plainText.getBytes()); // Encrypt the plaintext data. byte[] ciphertext = encCipher.doFinal();

// You'll get a new IV from the HSM after encryption. Save it. You'll need it to recreate the // GCM parameter spec for decryption. The IV returned by the HSM has a fixed length 16 bytes. // Append the IV to the ciphertext for easier management. ivSizeReturnedByHSM = encCipher.getIV().length; byte[] finalResult = new byte[ivSizeReturnedByHSM + ciphertext.length]; System.arraycopy(encCipher.getIV(), 0, finalResult, 0, ivSizeReturnedByHSM); System.arraycopy(ciphertext, 0, finalResult, ivSizeReturnedByHSM, ciphertext.length); return finalResult;

} catch (NoSuchAlgorithmException | NoSuchProviderException | NoSuchPaddingException e) { e.printStackTrace();

204

Page 210: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

} catch (InvalidKeyException e) { e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); } catch (BadPaddingException e) { e.printStackTrace(); } return null; }

// Decrypt the ciphertext using the the specified algorithm, key, IV, and AAD. public byte[] decrypt(String transformation, CaviumAESKey key, byte[] cipherText , byte[] iv, String aad, int tagLength) { Cipher decCipher; try { // Create the decryption cipher. decCipher = Cipher.getInstance(transformation, "Cavium"); // Create a GCM parameter spec from the IV. GCMParameterSpec gcmSpec = new GCMParameterSpec(tagLengthInBytes * Byte.SIZE,iv); // Configure the decryption cipher. decCipher.init(Cipher.DECRYPT_MODE, key, gcmSpec); decCipher.updateAAD(aad.getBytes()); // Decrypt the ciphertext and return the plaintext. return decCipher.doFinal(cipherText);

} catch (NoSuchAlgorithmException | NoSuchProviderException | NoSuchPaddingException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } catch (InvalidAlgorithmParameterException e) { e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); } catch (BadPaddingException e) { e.printStackTrace(); } return null; }}

Generación de un par de claves asimétricas RSA

** Código exclusivamente de ejemplo: no se debe utilizar con fines de producción **

Esta página incluye código de ejemplo que no se ha sometido a pruebas completas. Está diseñado paraentornos de prueba. No ejecute este código en un entorno de producción.

Este ejemplo muestra cómo generar un par de claves asimétricas RSA y, a continuación, cómo guardar lasclaves en un HSM. De forma predeterminada, las claves que genera el HSM no se guardan. Para guardaruna clave, llame al método makeKeyPersistant debajo. Puede guardar el objeto de clave y utilizar elidentificador de clave para otras operaciones.

Note

Esta ejemplo utiliza el método loginWithEnvVars() en la muestra Inicio y finalización desesión en un HSM (p. 196) para iniciar sesión en el HSM. Puede sustituirlo por el método de

205

Page 211: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

inicio de sesión que prefiera. Además, el ejemplo supone que el proveedor Cavium (p. 195)está incluido en el archivo de proveedor de Java. Si no es así, cree una instancia del proveedor ysustitúyala por la cadena Cavium.

package com.amazonaws.cloudhsm.examples.key.asymmetric;

import java.math.BigInteger;import java.security.InvalidAlgorithmParameterException;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;import java.security.interfaces.RSAPrivateKey;import java.security.interfaces.RSAPublicKey;

import com.amazonaws.cloudhsm.examples.operations.LoginLogoutExample;import com.cavium.cfm2.CFM2Exception;import com.cavium.cfm2.Util;import com.cavium.key.CaviumKey;import com.cavium.key.CaviumRSAPrivateKey;import com.cavium.key.CaviumRSAPublicKey;import com.cavium.key.parameter.CaviumRSAKeyGenParameterSpec;

public class RSAAsymmetricKeyGeneration {

public static void main(String[] z) { LoginLogoutExample.loginWithEnvVars(); new RSAAsymmetricKeyGeneration().generateRSAKeyPair(2048, new BigInteger("65537"), true); new RSAAsymmetricKeyGeneration().generateRSAKeyPair(2048, new BigInteger("65537"), "publicKeyLabel-1" , "privateKeyLabel-1" , false, true); LoginLogoutExample.logout(); }

public KeyPair generateRSAKeyPair(int keySize, BigInteger exponent, boolean isPersistant) { KeyPairGenerator keyPairGen; try { // Create an instance of the provider. keyPairGen = KeyPairGenerator.getInstance("RSA", "Cavium"); // Generate the key pair. keyPairGen.initialize(new CaviumRSAKeyGenParameterSpec(keySize, exponent)); KeyPair kp = keyPairGen.generateKeyPair(); if (kp == null) { System.out.println("Failed to generate keypair"); }

// Get the key pair. RSAPrivateKey privKey = (RSAPrivateKey) kp.getPrivate(); RSAPublicKey pubKey = (RSAPublicKey) kp.getPublic(); System.out.println("Generated RSA Key Pair!"); if (privKey instanceof CaviumRSAPrivateKey) { CaviumRSAPrivateKey cavRSAPrivateKey = (CaviumRSAPrivateKey) privKey; // Save the private key handle. You'll need this to perform future encryption and decryption operations. System.out.println("Private Key Handle = " + cavRSAPrivateKey.getHandle()); // Get the private key label generated by the SDK. System.out.println("Private Key Label = " + cavRSAPrivateKey.getLabel()); // Get the Extractable property of the private key.

206

Page 212: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

System.out.println("Is Private Key Extractalbe = " + cavRSAPrivateKey.isExtractable()); // Get the Persistent property of the private key. System.out.println("Is Private Key Persistent = " + cavRSAPrivateKey.isPersistent()); // By default, keys are not persistent. Make them Persistent here. if(isPersistant) { System.out.println("Setting Private Key as Persistent:"); makeKeyPersistant(cavRSAPrivateKey); System.out.println("Added RSA Private Key to HSM"); } System.out.println("Is Private Key Persistent = " + cavRSAPrivateKey.isPersistent()); // Verify the key type and size. System.out.println("Key Algo : " + cavRSAPrivateKey.getAlgorithm()); System.out.println("Key Size : " + cavRSAPrivateKey.getSize()); } if(pubKey instanceof CaviumRSAPublicKey) { CaviumRSAPublicKey cavRSAPublicKey = (CaviumRSAPublicKey) pubKey;

// Save the public key handle. You'll need this to perform future encryption and decryption operations. System.out.println("Public Key Handle = " + cavRSAPublicKey.getHandle()); // Get the public key label generated by the SDK. System.out.println("Public Key Label = " + cavRSAPublicKey.getLabel()); // Get the Extractable property of the public key. System.out.println("Is Public Key Extractable = " +cavRSAPublicKey.isExtractable()); // Get the Persistent property of the public key. System.out.println("Is Public Key Persistent = " + cavRSAPublicKey.isPersistent()); // By default, keys are not persistent. Make them Persistent here. if(isPersistant) { System.out.println("Setting Public Key as Persistent:"); makeKeyPersistant(cavRSAPublicKey); System.out.println("Added RSA Public Key to HSM"); } System.out.println("Is Public Key Persistent = " + cavRSAPublicKey.isPersistent()); // Verify the key type and size. System.out.println("Public Key Algo : " + cavRSAPublicKey.getAlgorithm()); System.out.println("Public Key Size : " + cavRSAPublicKey.getSize()); } return kp; } catch (NoSuchAlgorithmException | NoSuchProviderException e) { e.printStackTrace(); } catch (InvalidAlgorithmParameterException e) { e.printStackTrace(); } return null; }

//If invoking this method, you can specify public key label, private key label, if private key can be extracted and if key pair is Persistent // This method allows you to specify the following parameters: // - The key size in bits. // - The exponent.

207

Page 213: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

// - The public and private key labels. // - A Boolean value that specifies whether the keys can be extracted. // - A Boolean value that specifies whether the keys should be saved to an HSM. // public KeyPair generateRSAKeyPair(int keySize, BigInteger exponent, String publicKeyLabel, String privateKeyLabel, boolean isExtractable, boolean isPersistent) { KeyPairGenerator keyPairGen; try { // Create an instance of the provider. keyPairGen = KeyPairGenerator.getInstance("RSA", "Cavium"); // Generate the key pair. CaviumRSAKeyGenParameterSpec rsaKeyGenSpec= new CaviumRSAKeyGenParameterSpec(keySize,exponent, publicKeyLabel, privateKeyLabel, isExtractable, isPersistent); keyPairGen.initialize(rsaKeyGenSpec); KeyPair kp = keyPairGen.generateKeyPair(); if (kp == null) { System.out.println("Failed to generate keypair"); }

// Get the key pair. RSAPrivateKey privKey = (RSAPrivateKey) kp.getPrivate(); RSAPublicKey pubKey = (RSAPublicKey) kp.getPublic(); System.out.println("Generated RSA Key Pair!"); if (privKey instanceof CaviumRSAPrivateKey) { CaviumRSAPrivateKey cavRSAPrivateKey = (CaviumRSAPrivateKey) privKey; // Save the private key handle. You'll need this to perform future encryption and decryption operations. System.out.println("Private Key Handle = " + cavRSAPrivateKey.getHandle()); // Get the private key label generated by the SDK. System.out.println("Private Key Label = " + cavRSAPrivateKey.getLabel()); // Get the Extractable property of the private key. System.out.println("Is Private Key Extractalbe = " + cavRSAPrivateKey.isExtractable()); // Get the Persistent property of the private key. System.out.println("Is Private Key Persistent = " + cavRSAPrivateKey.isPersistent());

// Verify the key type and size. System.out.println("Private Key Algo : " + cavRSAPrivateKey.getAlgorithm()); System.out.println("Private Key Size : " + cavRSAPrivateKey.getSize()); }

if(pubKey instanceof CaviumRSAPublicKey) { CaviumRSAPublicKey cavRSAPublicKey = (CaviumRSAPublicKey) pubKey; // Save the public key handle. You'll need this to perform future encryption and decryption operations. System.out.println("Public Key Handle = " + cavRSAPublicKey.getHandle());

// Get the public key label generated by the SDK. System.out.println("Public Key Label = " + cavRSAPublicKey.getLabel()); // Get the Extractable property of the public key. System.out.println("Is Public Key Extractalbe = " +cavRSAPublicKey.isExtractable()); // Get the Persistent property of the public key. System.out.println("Is Public Key Persistent = " + cavRSAPublicKey.isPersistent());

208

Page 214: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

// Verify the key type and size. System.out.println("Public Key Algo : " + cavRSAPublicKey.getAlgorithm()); System.out.println("Public Key Size : " + cavRSAPublicKey.getSize()); } return kp; } catch (NoSuchAlgorithmException | NoSuchProviderException e) { e.printStackTrace(); } catch (InvalidAlgorithmParameterException e) { e.printStackTrace(); } return null; }

// Save the key to the HSM. protected void makeKeyPersistant(CaviumKey key) { CaviumKey rsaKey = (CaviumKey) key; try { Util.persistKey(rsaKey); System.out.println("Added Key to HSM") } catch (CFM2Exception e) { e.printStackTrace(); } }}

Generar un par de claves asimétricas de curva elíptica (EC)

** Código exclusivamente de ejemplo: no se debe utilizar con fines de producción **

Esta página incluye código de ejemplo que no se ha sometido a pruebas completas. Está diseñado paraentornos de prueba. No ejecute este código en un entorno de producción.

Este ejemplo muestra cómo generar un par de claves asimétricas de curva elíptica (EC) y, a continuación,cómo guardar las claves en un HSM. De forma predeterminada, las claves que genera el HSM no seguardan. Para guardar una clave, llame al método makeKeyPersistant debajo. Puede guardar el objetode clave y utilizar el identificador de clave para otras operaciones.

Note

Esta ejemplo utiliza el método loginWithEnvVars() en la muestra Inicio y finalización desesión en un HSM (p. 196) para iniciar sesión en el HSM. Puede sustituirlo por el método deinicio de sesión que prefiera. Además, el ejemplo supone que el proveedor Cavium (p. 195)está incluido en el archivo de proveedor de Java. Si no es así, cree una instancia del proveedor ysustitúyala por la cadena Cavium.

package com.amazonaws.cloudhsm.examples.key.asymmetric;

import java.security.InvalidAlgorithmParameterException;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;import java.security.PrivateKey;import java.security.PublicKey;

import com.amazonaws.cloudhsm.examples.operations.LoginLogoutExample;import com.cavium.cfm2.CFM2Exception;

209

Page 215: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

import com.cavium.cfm2.Util;import com.cavium.key.CaviumECPrivateKey;import com.cavium.key.CaviumECPublicKey;import com.cavium.key.CaviumKey;import com.cavium.key.parameter.CaviumECGenParameterSpec;

public class ECAsymmetricKeyGeneration {

String[] supportedSpec = {"prime256v1", "secp256r1", "secp384r1"};

public static void main(String[] z) { LoginLogoutExample.loginWithEnvVars(); ECAsymmetricKeyGeneration obj = new ECAsymmetricKeyGeneration(); obj.generateECKeyPair("secp256r1", true); obj.generateECKeyPair("secp256r1", "MyECPublicKey" , "MyECPrivateKey" , false ,true); LoginLogoutExample.logout(); }

public KeyPair generateECKeyPair(String spec, boolean isPersistent) { KeyPairGenerator keyPairGen; try { // Create an instance of the provider. keyPairGen = KeyPairGenerator.getInstance("EC", "Cavium"); // Generate the key pair. CaviumECGenParameterSpec paramSpec = new CaviumECGenParameterSpec(spec); keyPairGen.initialize(paramSpec); KeyPair kp = keyPairGen.generateKeyPair(); if (kp == null) { System.out.println("Failed to generate keypair"); }

// Get the key pair. PrivateKey privKey = kp.getPrivate(); PublicKey pubKey = kp.getPublic(); System.out.println("Generated EC Key Pair!"); if (privKey instanceof CaviumECPrivateKey) { CaviumECPrivateKey cavEcPrivateKey = (CaviumECPrivateKey) privKey; // Save the private key handle. You'll need this to perform future encryption and decryption operations. System.out.println("Private Key Handle = " + cavEcPrivateKey.getHandle()); // Get the private key label generated by the SDK. System.out.println("Private Key Label = " + cavEcPrivateKey.getLabel()); // Get the Extractable property of the private key. System.out.println("Is Private Key Extractalbe = " + cavEcPrivateKey.isExtractable()); // Get the Persistent property of the private key. System.out.println("Is Private Key Persistent = " + cavEcPrivateKey.isPersistent()); // By default, keys are not persistent. Make them Persistent here. if(isPersistent) { System.out.println("Setting Private Key as Persistent:"); makeKeyPersistant(cavEcPrivateKey); System.out.println("Added EC Private Key to HSM"); } System.out.println("Is Private Key Persistent = " + cavEcPrivateKey.isPersistent()); }

210

Page 216: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

if(pubKey instanceof CaviumECPublicKey) { CaviumECPublicKey cavEcPublicKey = (CaviumECPublicKey) pubKey; // Save the public key handle. You'll need this to perform future encryption and decryption operations. System.out.println("Public Key Handle = " + cavEcPublicKey.getHandle()); // Get the public key label generated by the SDK. System.out.println("Public Key Label = " + cavEcPublicKey.getLabel()); // Get the Extractable property of the public key. System.out.println("Is Public Key Extractalbe = " +cavEcPublicKey.isExtractable()); // Get the Persistent property of the public key. System.out.println("Is Public Key Persistent = " + cavEcPublicKey.isPersistent()); // By default, keys are not persistent. Make them Persistent here. if(isPersistent) { System.out.println("Setting Public Key as Persistent:"); makeKeyPersistant(cavEcPublicKey); System.out.println("Added EC Public Key to HSM"); } System.out.println("Is Private Key Persistent = " + cavEcPublicKey.isPersistent()); } return kp; } catch (NoSuchAlgorithmException | NoSuchProviderException e) { e.printStackTrace(); } catch (InvalidAlgorithmParameterException e) { e.printStackTrace(); } return null; } //If invoking this method, you can specify public key label, private key label, if private key can be extracted and if key pair is Persistent // This method allows you to specify the following parameters: // - The EC parameter spec. // - The public and private key labels. // - A Boolean value that specifies whether the keys can be extracted. // - A Boolean value that specifies whether the keys should be saved to an HSM. // public KeyPair generateECKeyPair(String spec, String publicKeyLabel, String privateKeyLabel, boolean isExtractable, boolean isPersistent) { KeyPairGenerator keyPairGen; try { // Create an instance of the provider. keyPairGen = KeyPairGenerator.getInstance("EC", "Cavium"); // Generate the key pair. CaviumECGenParameterSpec paramSpec = new CaviumECGenParameterSpec(spec, publicKeyLabel, privateKeyLabel, isExtractable, isPersistent); keyPairGen.initialize(paramSpec); KeyPair kp = keyPairGen.generateKeyPair(); if (kp == null) { System.out.println("Failed to generate keypair"); }

// Get the key pair. PrivateKey privKey = kp.getPrivate(); PublicKey pubKey = kp.getPublic(); System.out.println("Generated EC Key Pair!"); if (privKey instanceof CaviumECPrivateKey) {

211

Page 217: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

CaviumECPrivateKey cavEcPrivateKey = (CaviumECPrivateKey) privKey; // Save the private key handle. You'll need this to perform future encryption and decryption operations. System.out.println("Private Key Handle = " + cavEcPrivateKey.getHandle()); // Get the private key label generated by the SDK. System.out.println("Private Key Label = " + cavEcPrivateKey.getLabel()); // Get the Extractable property of the private key. System.out.println("Is Private Key Extractalbe = " + cavEcPrivateKey.isExtractable()); // Get the Persistent property of the private key. System.out.println("Is Private Key Persistent = " + cavEcPrivateKey.isPersistent()); }

if(pubKey instanceof CaviumECPublicKey) { CaviumECPublicKey cavEcPublicKey = (CaviumECPublicKey) pubKey; // Save the public key handle. You'll need this to perform future encryption and decryption operations. System.out.println("Public Key Handle = " + cavEcPublicKey.getHandle()); // Get the public key label generated by the SDK. System.out.println("Public Key Label = " + cavEcPublicKey.getLabel());

// Get the Extractable property of the public key. System.out.println("Is Public Key Extractalbe = " +cavEcPublicKey.isExtractable()); // Get the Persistent property of the public key. System.out.println("Is Public Key Persistent = " + cavEcPublicKey.isPersistent()); } return kp; } catch (NoSuchAlgorithmException | NoSuchProviderException e) { e.printStackTrace(); } catch (InvalidAlgorithmParameterException e) { e.printStackTrace(); } return null; }

// Save the key to the HSM. protected void makeKeyPersistant(CaviumKey key) { CaviumKey rsaKey = (CaviumKey) key; try { Util.persistKey(rsaKey); } catch (CFM2Exception e) { e.printStackTrace(); } }}

Cifrado y descifrado con un par de claves RSA

** Código exclusivamente de ejemplo: no se debe utilizar con fines de producción **

Esta página incluye código de ejemplo que no se ha sometido a pruebas completas. Está diseñado paraentornos de prueba. No ejecute este código en un entorno de producción.

212

Page 218: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

En esta muestra se ve cómo cifrar y descifrar una cadena con un par de claves RSA de 2048 bits. Enla muestra, primero se cifra un mensaje con la clave pública y, a continuación, se descifra con la claveprivada. A continuación, se cifra con la clave privada y se descifra con la clave pública.

Para generar el par de claves, esta muestra llama al método generateRSAKeyPair() en la muestraCrear un par de claves RSA (p. 205). Utiliza el método loginWithEnvVars() en la muestra Inicio yfinalización de sesión en un HSM (p. 196) para iniciar sesión en el HSM, pero puede sustituirlo por elmétodo de inicio de sesión que prefiera. Además, esta muestra supone que el proveedor Cavium (p. 195)está incluido en el archivo de proveedor de Java. Si no es así, cree una instancia del proveedor ysustitúyala por la cadena Cavium.

package com.amazonaws.cloudhsm.examples;

import java.security.InvalidKeyException;import java.security.Key;import java.security.KeyPair;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;import java.security.interfaces.RSAPrivateKey;import java.security.interfaces.RSAPublicKey;

import javax.crypto.BadPaddingException;import javax.crypto.Cipher;import javax.crypto.IllegalBlockSizeException;import javax.crypto.NoSuchPaddingException;

import org.bouncycastle.util.encoders.Base64;

import com.cavium.key.CaviumRSAPrivateKey;import com.cavium.key.CaviumRSAPublicKey;

public class AsymmetricEncryptDecryptExample { String plainText = "This is a plaintext string"; // Specify the encryption algorithm. String transformation = "RSA/ECB/OAEPWithSHA-224ANDMGF1Padding"; public static void main(String[] args) { // Log into the HSM. LoginLogoutExample.loginWithEnvVars(); // Generate a 2048-bit RSA key pair and save it in the HSM. KeyPair kp = new AsymmetricKeyGeneration().generateRSAKeyPair(2048, true); // Create an example object. AsymmetricEncryptDecryptExample obj = new AsymmetricEncryptDecryptExample(); // Get the private key. CaviumRSAPrivateKey privKey = (CaviumRSAPrivateKey) (RSAPrivateKey) kp.getPrivate(); //Get the public key. CaviumRSAPublicKey pubKey = (CaviumRSAPublicKey) (RSAPublicKey) kp.getPublic(); System.out.println("Encrypt with public key; decrypt with private key"); // Encrypt with the public key. cipherText = obj.asymmetricKeyEncryption(obj.transformation, pubKey, obj.plainText); System.out.println("CipherText = " + Base64.toBase64String(cipherText)); // Decrypt with private key. plainText = obj.asymmetricKeyDecryption(obj.transformation, privKey, cipherText); System.out.println("PlainText = " + plainText);

213

Page 219: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

LoginLogoutExample.logout(); } // Encrypt with the specified algorithm and key. public byte[] asymmetricKeyEncryption(String transformation, Key key, String plainText) { try { Cipher cipher = Cipher.getInstance(transformation, "Cavium"); cipher.init(Cipher.ENCRYPT_MODE, key); cipher.update(plainText.getBytes()); // Encrypt the plaintext. byte[] cihperText = cipher.doFinal(plainText.getBytes()); return cihperText; } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (NoSuchPaddingException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); } catch (BadPaddingException e) { e.printStackTrace(); } return null; } // Decrypt with the specified algorithm and key public String asymmetricKeyDecryption(String transformation, Key key, byte[] cipherText) { try { Cipher cipher = Cipher.getInstance(transformation, "Cavium"); cipher.init(Cipher.DECRYPT_MODE, key); // Decrypt the ciphertext. byte[] plainText = cipher.doFinal(cipherText); return new String(plainText); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (NoSuchPaddingException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); } catch (BadPaddingException e) { e.printStackTrace(); } return null; }}

Firmar un mensaje

** Código exclusivamente de ejemplo: no se debe utilizar con fines de producción **

Esta página incluye código de ejemplo que no se ha sometido a pruebas completas. Está diseñado paraentornos de prueba. No ejecute este código en un entorno de producción.

214

Page 220: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

En esta muestra se ve cómo firmar un mensaje por medio de una clave en un HSM. La muestra generaun par de claves asimétricas de 4096 bits. Utiliza la clave privada para firmar el mensaje. Utiliza la clavepública para verificar la firma del mensaje.

Para generar el par de claves, esta muestra llama al método generateRSAKeyPair() en la muestraCrear un par de claves RSA (p. 205). Utiliza el método loginWithExplicitCredentials() en lamuestra Inicio de sesión en un HSM (p. 196) para iniciar sesión en el HSM, pero puede sustituirlo por elmétodo de inicio de sesión que prefiera. Además, la muestra supone que el proveedor Cavium (p. 195)está incluido en el archivo de proveedor de Java. Si no es así, cree una instancia del proveedor ysustitúyala por la cadena Cavium.

package com.amazonaws.cloudhsm.examples;

import java.security.InvalidKeyException;import java.security.Key;import java.security.KeyPair;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;import java.security.Signature;import java.security.SignatureException;import java.util.Base64;

import com.cavium.key.CaviumRSAPrivateKey;import com.cavium.key.CaviumRSAPublicKey;

public class SignatureExample { String sampleMessage = "This is a sample message."; String signingAlgorithmn = "SHA512withRSA/PSS"; public static void main(String[] args) { LoginLogoutExample.loginUsingJavaProperties(); SignatureExample obj = new SignatureExample(); // Generate a 4096-bit pair and save it in the HSM. KeyPair kp = new AsymmetricKeyGeneration().generateRSAKeyPair(4096, true); System.out.println("Generated key pair"); // Sign the message with the private key and the specified signing algorithm. byte[] signature = obj.signMessage(obj.sampleMessage, obj.signingAlgorithm, (CaviumRSAPrivateKey)kp.getPrivate()); System.out.println("Signature : " + Base64.getEncoder().encodeToString(signature)); // Verify the signature. boolean isVerificationSuccessful = obj.verifySign(obj.sampleMessage, obj.signingAlgo, (CaviumRSAPublicKey)kp.getPublic(), signature); System.out.println("Verification result : " + isVerificationSuccessful); LoginLogoutExample.logout(); } // Use the private key to sign the message. public byte[] signMessage(String message, String signingAlgorithm, CaviumRSAPrivateKey privateKey) { try { Signature sig = Signature.getInstance(signingAlgorithm, "Cavium"); sig.initSign(privateKey); sig.update(message.getBytes()); byte[] signature = null; signature = sig.sign(); return signature;

} catch (NoSuchAlgorithmException | NoSuchProviderException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace();

215

Page 221: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

} catch (SignatureException e) { e.printStackTrace(); } return null; }

// Use the public key to verify the message signature. public boolean verifySign(String message, String signingAlgorithm, CaviumRSAPublicKey publicKey, byte[] signature) { try { Signature sig = Signature.getInstance(signingAlgorithm, "Cavium"); sig.initVerify(publicKey); sig.update(message.getBytes()); boolean isVerificationSuccessful = sig.verify(signature); return isVerificationSuccessful; } catch (NoSuchAlgorithmException | NoSuchProviderException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } catch (SignatureException e) { e.printStackTrace(); } return false; }}

Creación de un hash

** Código exclusivamente de ejemplo: no se debe utilizar con fines de producción **

Esta página incluye código de ejemplo que no se ha sometido a pruebas completas. Está diseñado paraentornos de prueba. No ejecute este código en un entorno de producción.

En esta muestra se ve cómo generar un hash de un mensaje utilizando un HSM y el algoritmo de hashSHA-512.

Este ejemplo utiliza el método loginWithEnvVars() en la muestra Inicio y finalización de sesión en unHSM (p. 196) para iniciar sesión en el HSM, pero puede sustituirlo por el método de inicio de sesión queprefiera. Además, la muestra supone que el proveedor Cavium (p. 195) está incluido en el archivo deproveedor de Java. Si no es así, cree una instancia del proveedor y sustitúyala por la cadena Cavium.

package com.amazonaws.cloudhsm.examples;

import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;import javax.xml.bind.DatatypeConverter;

public class HashExample { String plainText = "This is a sample plaintext message."; String hashAlgorithm = "SHA-512"; public static void main(String[] args) { LoginLogoutExample.loginWithEnvVars(); HashExample obj = new HashExample(); // Generate the hash. byte[] hash = obj.getHash(obj.plainText, obj.hashAlgorithm);

System.out.println("Hash : " + DatatypeConverter.printHexBinary(hash));

216

Page 222: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

LoginLogoutExample.logout(); }

public byte[] getHash(String message, String hashAlgorithm) { try { // Specify the Cavium provider. MessageDigest md = MessageDigest.getInstance(hashAlgorithm, "Cavium"); md.update(message.getBytes()); byte[] hash = md.digest(); return hash; } catch (NoSuchAlgorithmException | NoSuchProviderException e) { e.printStackTrace(); } return null; }}

Crear un HMAC

** Código exclusivamente de ejemplo: no se debe utilizar con fines de producción **

Esta página incluye código de ejemplo que no se ha sometido a pruebas completas. Está diseñado paraentornos de prueba. No ejecute este código en un entorno de producción.

En esta muestra se ve cómo generar un código de autenticación de mensajes basados en hash (HMAC)en el HSM y cómo utilizarlo para resumir el mensaje. A diferencia de un hash típico, un HMAC utiliza unafunción hash y una clave criptográfica.

Para generar una clave simétrica, esta muestra llama al método generateAESKey() en la muestra Crearuna clave AES (p. 198). Utiliza el método loginWithEnvVars() en el ejemplo Inicio de sesión en unHSM (p. 196) para iniciar sesión en el HSM, pero puede sustituirlo por el método de inicio de sesión queprefiera. Además, esta muestra supone que el proveedor Cavium (p. 195) está incluido en el archivo deproveedor de Java. Si no es así, cree una instancia del proveedor y sustitúyala por la cadena Cavium.

package com.amazonaws.cloudhsm.examples;

import java.security.InvalidKeyException;import java.security.Key;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;

import javax.crypto.Mac;import javax.xml.bind.DatatypeConverter;

import com.cavium.key.CaviumAESKey;

public class HMACExample {

String message = "This is a plaintext message."; String macAlgorithm= "HmacSHA512";

public static void main(String[] args) { LoginLogoutExample.loginWithEnvVars(); // Generate a 256-bit AES key for the HMAC. Key aesKey = new SymmetricKeyGeneration().generateAESKey(256, true); HMACExample obj = new HMACExample(); // Generate the HMAC using the plaintext, algorithm, and key. byte[] mac= obj.getHmac(obj.message, obj.macAlgorithm, (CaviumAESKey)aesKey);

217

Page 223: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

System.out.println("HMAC : " + DatatypeConverter.printHexBinary(mac)); LoginLogoutExample.logout(); } // The HMAC function takes a hash algorithm and a cryptographic key. public byte[] getHmac(String message, String macAlgorithm, CaviumAESKey key) { try { Mac mac = Mac.getInstance( macAlgorithm,"Cavium"); mac.init(key); mac.update(message.getBytes()); byte[] hmacValue = mac.doFinal(); return hmacValue;

} catch (NoSuchAlgorithmException | NoSuchProviderException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } return null;

}}

Administrar las claves de un HSM

** Código exclusivamente de ejemplo: no se debe utilizar con fines de producción **

Esta página incluye código de ejemplo que no se ha sometido a pruebas completas. Está diseñado paraentornos de prueba. No ejecute este código en un entorno de producción.

En esta muestra se ve cómo administrar las claves en un HSM. Demuestra las siguientes operaciones:

• Obtener una referencia a una clave del HSM.• Exportar una clave desde el HSM. Esta operación devuelve la clave de modo que puede importarla en

otro HSM y utilizarla para otras operaciones. No elimina la clave del HSM.• Eliminar una clave del HSM.• Importar una clave en el HSM. Este ejemplo devuelve un identificador de clave que puede utilizar para

identificar la clave en otras operaciones.

Note

Para utilizar una clave en una operación de cifrado, especifique el identificador de clave. No esnecesario que obtenga ni que exporte la clave.

Esta muestra utiliza el método loginWithEnvVars() en la muestra Inicio y finalización de sesión en unHSM (p. 196) para iniciar sesión en el HSM, pero puede sustituirlo por el método de inicio de sesión queprefiera. Además, el ejemplo supone que el proveedor Cavium (p. 195) está incluido en el archivo deproveedor de Java. Si no es así, cree una instancia del proveedor y sustitúyala por la cadena Cavium.

También puede utilizar la herramienta de línea de comandos key_mgmt_util para administrar claves enAWS CloudHSM (p. 53).

package com.amazonaws.cloudhsm.examples;

import java.security.InvalidKeyException;import java.security.Key;import java.security.KeyFactory;

218

Page 224: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;import java.security.PrivateKey;import java.security.PublicKey;import java.security.spec.InvalidKeySpecException;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;import java.util.Base64;import java.util.Vector;

import javax.crypto.BadPaddingException;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;import javax.crypto.KeyGenerator;

import org.bouncycastle.util.Arrays;

import com.cavium.cfm2.CFM2Exception;import com.cavium.cfm2.ImportKey;import com.cavium.cfm2.Util;import com.cavium.key.CaviumAESKey;import com.cavium.key.CaviumKey;import com.cavium.key.CaviumKeyAttributes;import com.cavium.key.CaviumRSAPrivateKey;import com.cavium.key.CaviumRSAPublicKey;import com.cavium.key.parameter.CaviumKeyGenAlgorithmParameterSpec;

public class KeyManagement {

public static void main(String[] args) { LoginLogoutExample.loginWithEnvVars(); // Get a reference to a key in the HSM. // Replace the placeholder with an actual key handle value. long keyHandle =262194; CaviumKey ck = getKey(keyHandle); // Delete the specified key from the HSM. // Replace the placeholder with an actual key handle value. deleteKey(51); Key key = exportKey(keyHandle); // Import a key. // Generate a 256-bit AES symmetric key. KeyGenerator kg = KeyGenerator.getInstance("AES"); kg.init(256); Key keyToBeImported = kg.generateKey(); // Import the key as extractable and persistent. // You can use the key handle to identify the key in other operations. long importedKeyHandle = importKey(keyToBeImported, "Test", true, true); System.out.println("Imported Key Handle : " + importedKeyHandle);

LoginLogoutExample.logout(); } // Get an existing key from the HSM. // The type of the object that is returned depends on the key type. public static CaviumKey getKey(long handle) { try { byte[] keyAttribute = Util.getKeyAttributes(handle); CaviumKeyAttributes cka = new CaviumKeyAttributes(keyAttribute); if(cka.getKeyType() == CaviumKeyAttributes.KEY_TYPE_AES) { CaviumAESKey aesKey = new CaviumAESKey(handle, cka); return aesKey; }

219

Page 225: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestras de Java

else if(cka.getKeyType() == CaviumKeyAttributes.KEY_TYPE_RSA && cka.getKeyClass() == CaviumKeyAttributes.CLASS_PRIVATE_KEY) { CaviumRSAPrivateKey privKey = new CaviumRSAPrivateKey(handle, cka); return privKey; } else if(cka.getKeyType() == CaviumKeyAttributes.KEY_TYPE_RSA && cka.getKeyClass() == CaviumKeyAttributes.CLASS_PUBLIC_KEY) { CaviumRSAPublicKey pubKey = new CaviumRSAPublicKey(handle, cka); return pubKey; } } catch (CFM2Exception e) { e.printStackTrace(); } return null; } // Delete an existing persisted key. public static void deleteKey(long handle) { CaviumKey ck = getKey(handle); try { Util.deleteKey(ck); System.out.println("Key Deleted!"); } catch (CFM2Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } // Export an existing persisted key. // The type of the object that is returned depends on the key type. public static Key exportKey(long handle) { try { byte[] encoded = Util.exportKey( handle); byte[] keyAttribute = Util.getKeyAttributes(handle); CaviumKeyAttributes cka = new CaviumKeyAttributes(keyAttribute); if(cka.getKeyType() == CaviumKeyAttributes.KEY_TYPE_AES) { Key aesKey = new SecretKeySpec(encoded, 0, encoded.length, "AES"); return aesKey; } else if(cka.getKeyType() == CaviumKeyAttributes.KEY_TYPE_RSA && cka.getKeyClass() == CaviumKeyAttributes.CLASS_PRIVATE_KEY) { PrivateKey privateKey = KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(encoded)); return privateKey; } else if(cka.getKeyType() == CaviumKeyAttributes.KEY_TYPE_RSA && cka.getKeyClass() == CaviumKeyAttributes.CLASS_PUBLIC_KEY) { PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(encoded)); return publicKey; } System.out.println(new String(encoded)); } catch (BadPaddingException | CFM2Exception e) { e.printStackTrace(); } catch (InvalidKeySpecException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return null; }

// Import a key. public static void importKey(Key key, String keyLabel, boolean isExtractable, boolean isPersistent) {

220

Page 226: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioProveedores de KSP y CNG

// Create a new key parameter spec to identify the key. Specify a label // and Boolean values for extractable and persistent. CaviumKeyGenAlgorithmParameterSpec spec = new CaviumKeyGenAlgorithmParameterSpec(keyLabel, isExtractable, isPersistent); try { ImportKey.importKey(key, spec); } catch (InvalidKeyException e) { e.printStackTrace(); } } }

Proveedores de KSP y CNG para WindowsAPI de criptografía: nueva generación (CNG) es una API criptográfica específica del sistema operativoMicrosoft Windows. CNG permite a los desarrolladores utilizar técnicas criptográficas para proteger lasaplicaciones basadas en Windows. En líneas generales, CNG proporciona las siguientes funcionalidades:

• Primitivas criptográficas: le permiten realizar operaciones criptográficas fundamentales.• Importación y exportación de claves: le permite importar y exportar claves simétricas y asimétricas.• API de protección de datos (CNG DPAPI): le permite cifrar y descifrar datos fácilmente.• Almacenamiento y recuperación de claves: le permite almacenar y aislar de forma segura la clave

privada de un par de claves asimétricas.

Los proveedores de almacenamiento de claves (KSP) permiten el almacenamiento y la recuperación declaves. Por ejemplo, si agrega el rol Servicios de certificados de Microsoft Active Directory (AD CS) a suservidor de Windows y elige crear una nueva clave privada de su entidad de certificación (CA), puedeelegir el KSP que administrará el almacenamiento de claves. El cliente CloudHSM de Windows incluyeKSP creados específicamente por Cavium para AWS CloudHSM. Al configurar el rol AD CS, puede elegirun KSP de Cavium. Para obtener más información, consulte Crear entidad de certificación de WindowsServer (p. 244). El cliente CloudHSM de Windows también instala un proveedor CNG de Cavium.

Temas• Instalar los proveedores de KSP y CNG para Windows (p. 221)• Requisitos previos de AWS CloudHSM para Windows (p. 222)• Muestra de código para proveedor CNG de Cavium (p. 222)

Instalar los proveedores de KSP y CNG para WindowsLos proveedores de KSP y CNG de Cavium se instalan al instalares el cliente de AWS CloudHSM deWindows.

• Para obtener instrucciones sobre la instalación del cliente, consulte Instalación del cliente de(Windows) (p. 36).

• Para poder utilizar el cliente de CloudHSM de Windows, debe cumplir el Requisitos previos (p. 222).• Puede elegir el KSP de Cavium al agregar el rol AD CS rol a Windows Server. Consulte Crear entidad de

certificación de Windows Server (p. 244).

Puede utilizar cualquiera de los siguientes comandos para determinar qué proveedores están instalados ensu sistema. Los comandos enumeran los proveedores de KSP y CNG registrados. No es necesario que elcliente de AWS CloudHSM esté en ejecución.

221

Page 227: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioRequisitos previos

C:\Program Files\Amazon\CloudHSM>ksp_config.exe -enum

C:\Program Files\Amazon\CloudHSM>cng_config.exe -enum

Verifique que los proveedores de KSP y CNG de Cavium estén instalados en su instancia EC2 deWindows Server. Si falta el proveedor de CNG, ejecute el siguiente comando.

C:\Program Files\Amazon\CloudHSM>cng_config.exe -register

Si falta el proveedor de KSP de Cavium, ejecute el siguiente comando.

C:\Program Files\Amazon\CloudHSM>ksp_config.exe -register

Requisitos previos de AWS CloudHSM para WindowsAntes de iniciar el cliente de AWS CloudHSM de Windows y utilizar los proveedores de KSP y CNG,debe configurar las variables de entorno del sistema requeridas. Estas variables identifican un HSM yun usuario de criptografía (p. 11) (CU) para su aplicación de Windows. Puede usar el comando set paraestablecer temporalmente variables de entorno del sistema, o bien establecer variables de entorno delsistema permanentes mediante programación o en la pestaña Opciones avanzadas del Panel de controlPropiedades del sistema de Windows.

Configure las siguientes variables de entorno del sistema:

n3fips_partition=HSM-ID

Identifica un HSM en su clúster. Dado que se sincronizan, puede especificar cualquier HSM enel clúster. Para crear un HSM, use CreateHsm. Para encontrar el ID de HSM de un HSM, useDescribeClusters o elija un clúster en la consola de AWS CloudHSM.

Por ejemplo:

set n3fips_partition=hsm-lgavqitns2a

n3fips_password=CU-username:CU-password

Identifica un usuario de criptografía (p. 11) (CU) en el HSM y proporciona toda la información deinicio de sesión requerida. Su aplicación se autentica y ejecuta como este CU. La aplicación tiene lospermisos de este CU y puede ver y administrar solo las claves que el CU posee y comparte. Este CUdebe estar disponible en el HSM especificado por la variable de entorno n3fips_partition. Paracrear un nuevo CU, use createUser (p. 83). Para encontrar los CU existentes, use listUsers (p. 102).

Por ejemplo:

set n3fips_password=test_user:password123

Véase también:

Muestra de código para proveedor CNG de Cavium (p. 222)

Muestra de código para proveedor CNG de Cavium

** Código exclusivamente de ejemplo: no se debe utilizar con fines de producción **

222

Page 228: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestra de código

Esta página incluye código de ejemplo que no se ha sometido a pruebas completas. Está diseñado paraentornos 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 registradosen su sistema para encontrar el proveedor CNG de Cavium. En la muestra también se presenta cómocrear un par de claves asimétricas y cómo utilizar el par de claves para firmar datos.

Important

Antes de ejecutar este ejemplo, debe definir las variables de entorno n3fips_partitiony n3fips_password. Para obtener más información, consulte Requisitos previos de AWSCloudHSM para Windows (p. 222).

// CloudHsmCngExampleConsole.cpp : Console application that demonstrates CNG capabilities.// This example contains the following functions.//// VerifyProvider() - Enumerate the registered providers and retrieve Cavium KSP and CNG providers.// GenerateKeyPair() - Create an RSA key pair.// SignData() - Sign and verify data.//

#include "stdafx.h"#include <Windows.h>

#ifndef NT_SUCCESS#define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)#endif

#define CAVIUM_CNG_PROVIDER L"Cavium CNG Provider"#define CAVIUM_KEYSTORE_PROVIDER L"Cavium Key Storage Provider"

// 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;

// Retrieve information about the registered providers. // cbBuffer - the size, in bytes, of the buffer pointed to by pBuffer. // pBuffer - pointer to a buffer that contains a CRYPT_PROVIDERS structure. status = BCryptEnumRegisteredProviders(&cbBuffer, &pBuffer);

// If registered providers exist, enumerate them and determine whether the // Cavium CNG provider and Cavium KSP provider have been registered. if (NT_SUCCESS(status)) { if (pBuffer != NULL) { for (ULONG i = 0; i < pBuffer->cProviders; i++) { // Determine whether the Cavium CNG provider exists. if (wcscmp(CAVIUM_CNG_PROVIDER, pBuffer->rgpszProviders[i]) == 0) { printf("Found %S\n", CAVIUM_CNG_PROVIDER); foundCng = true;

223

Page 229: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestra de código

}

// Determine whether the Cavium KSP provider exists. else if (wcscmp(CAVIUM_KEYSTORE_PROVIDER, pBuffer->rgpszProviders[i]) == 0) { printf("Found %S\n", CAVIUM_KEYSTORE_PROVIDER); foundKeystore = true; } } } } else { printf("BCryptEnumRegisteredProviders failed with error code 0x%08x\n", status); }

// Free memory allocated for the CRYPT_PROVIDERS structure. if (NULL != pBuffer) { BCryptFreeBuffer(pBuffer); }

return foundCng == foundKeystore == true;}

// 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;

// Generate the key pair. status = BCryptGenerateKeyPair(hAlgorithm, hKey, 2048, 0); if (!NT_SUCCESS(status)) { printf("BCryptGenerateKeyPair failed with code 0x%08x\n", status); return 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;

224

Page 230: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestra de código

// Hardcode the data to be signed (for demonstration purposes only). PBYTE message = (PBYTE)"d83e7716bed8a20343d8dc6845e574477e4a9be63a80a0122f1fdcaa7a3c18c3"; ULONG messageLen = strlen((char*)message);

// Retrieve the size of the buffer needed for the signature. status = BCryptSignHash(hKey, NULL, message, messageLen, NULL, 0, &sigLen, 0); if (!NT_SUCCESS(status)) { printf("BCryptSignHash failed with code 0x%08x\n", status); return status; }

// Allocate a buffer for the signature. sig = (PBYTE)HeapAlloc(GetProcessHeap(), 0, sigLen); if (sig == NULL) { return -1; }

// Use the SHA256 algorithm to create padding information. pInfo.pszAlgId = BCRYPT_SHA256_ALGORITHM;

// 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; }

// Verify the signature. status = BCryptVerifySignature(hKey, &pInfo, message, messageLen, sig, sigLen, 0); if (!NT_SUCCESS(status)) { printf("BCryptVerifySignature failed with code 0x%08x\n", status); return status; }

// Free the memory allocated for the signature. if (sig != NULL) { HeapFree(GetProcessHeap(), 0, sig); sig = NULL; }

return 0;}

// Main function.//int main(){ NTSTATUS status; BCRYPT_ALG_HANDLE hRsaAlg; BCRYPT_KEY_HANDLE hKey = NULL;

// Enumerate the registered providers. printf("Searching for Cavium providers...\n"); if (VerifyProvider() == false) { printf("Could not find the CNG and Keystore providers\n"); return 1; }

225

Page 231: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMuestra de código

// 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; }

// Generate an asymmetric key pair using the RSA algorithm. printf("Generating RSA Keypair\n"); GenerateKeyPair(hRsaAlg, &hKey); if (hKey == NULL) { printf("Invalid key handle returned\n"); return 0; } printf("Done!\n");

// Sign and verify [hardcoded] data using the RSA key pair. printf("Sign/Verify data with key\n"); SignData(hKey); printf("Done!\n");

// Remove the key handle from memory. status = BCryptDestroyKey(hKey); if (!NT_SUCCESS(status)) { printf("BCryptDestroyKey failed with code 0x%08x\n", status); return status; }

// Close the RSA algorithm provider. status = BCryptCloseAlgorithmProvider(hRsaAlg, NULL); if (!NT_SUCCESS(status)) { printf("BCryptCloseAlgorithmProvider RSA failed with code 0x%08x\n", status); return status; }

return 0;}

226

Page 232: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioDescarga de SSL/TLS

Integración de las aplicaciones deterceros con AWS CloudHSM

En algunos casos de uso (p. 1) de AWS CloudHSM es preciso integrar aplicaciones de software deterceros con los HSM de su clúster de AWS CloudHSM. La integración de software de terceros con AWSCloudHSM le permite conseguir una serie de objetivos relacionados con la seguridad. En los temassiguientes se describe cómo conseguir algunos de dichos objetivos.

Temas• Mejore la seguridad de su servidor web con la descarga de SSL/TLS en AWS CloudHSM (p. 227)• Configure Windows Server como entidad de certificación (CA) con AWS CloudHSM (p. 243)• Cifrado de datos transparente (TDE) de Oracle Database con AWS CloudHSM (p. 246)

Mejore la seguridad de su servidor web con ladescarga de SSL/TLS en AWS CloudHSM

Los servidores web y sus clientes (navegadores web) pueden usar la capa de conexión segura (SSL) oTransport Layer Security (TLS). Estos protocolos confirman la identidad del servidor web y establecen unaconexión segura para enviar y recibir páginas web u otros datos a través de Internet. Esto se denominacomúnmente HTTPS. El servidor web utiliza un par de claves pública-privada y un certificado de clavepública SSL/TLS para establecer una sesión HTTPS con cada cliente. Este proceso conlleva un granvolumen de cómputo para el servidor web, pero puede descargar parte de este cómputo a un HSM desu clúster de AWS CloudHSM. Esto a veces recibe el nombre de aceleración SSL. La descarga reducela carga informática del servidor web y proporciona seguridad adicional al almacenar la clave privada delservidor en un HSM.

Las aplicaciones de servidor web NGINX y Apache HTTP Server se integran nativamente con OpenSSLpara admitir HTTPS. El motor dinámico de AWS CloudHSM para OpenSSL (p. 184) proporciona unainterfaz que permite al servidor web utilizar los HSM de su clúster para descargas criptográficas yalmacenamiento de claves. El motor de OpenSSL es el puente que conecta el servidor web con su clústerde AWS CloudHSM.

En este tutorial elige si desea utilizar el servidor web NGINX o Apache. Instala el servidor web en unainstancia de Linux en Amazon EC2. Además, tiene la opción de utilizar Amazon EC2 para crear unsegundo servidor web y Elastic Load Balancing para crear un balanceador de carga. El uso de unbalanceador de carga puede mejorar el desempeño al distribuir la carga entre varios servidores. Tambiénpuede proporcionar redundancia y una mayor disponibilidad si uno o más servidores funcionan mal.

Para obtener más información, consulte los siguientes temas:

Temas• Cómo funciona la descarga de SSL/TLS con AWS CloudHSM (p. 228)• Paso 1 de la descarga de SSL/TLS para servidor web: Configurar los requisitos previos (p. 228)• Paso 2 de la descarga de SSL/TLS para servidor web: Importar o generar una clave privada y un

certificado SSL/TLS (p. 229)• Paso 3 de la descarga de SSL/TLS para servidor web: Configurar el servidor web (p. 233)• Paso 4 de la descarga de SSL/TLS para servidor web: Añadir un balanceador de carga con Elastic

Load Balancing (p. 238)

227

Page 233: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioInformación general

Cómo funciona la descarga de SSL/TLS con AWSCloudHSMPara establecer una conexión HTTPS, el servidor web realiza un proceso de protocolo de enlace con losclientes. Como parte de este proceso, el servidor descarga parte del procesamiento criptográfico en losHSM, tal y como se muestra en la siguiente figura. Cada paso del proceso se explica debajo de la figura.

Note

En la imagen y el proceso siguientes se presupone que se utiliza RSA para la verificación delservidor y el intercambio de claves. El proceso es algo diferente cuando se utiliza Diffie – Hellmanen lugar de RSA.

1. El cliente envía un mensaje de saludo al servidor.2. El servidor responde con un mensaje de saludo y envía el certificado del servidor.3. El cliente realiza las siguientes acciones:

a. Verifica que el certificado del servidor SSL/TLS esté firmado por uno de los certificados raíz en losque confía el cliente.

b. Extrae la clave pública del certificado del servidor.c. Genera un número secreto principal preliminar y lo cifra con la clave pública del servidor.d. Envía el número secreto principal preliminar cifrado al servidor.

4. Para descifrar el número secreto principal preliminar del cliente, el servidor lo envía al HSM. El HSMutiliza la clave privada del HSM para descifrar el número secreto principal preliminar y, a continuación,lo envía al servidor. Independientemente, el cliente y el servidor utilizan cada uno el número secretoprincipal preliminar e información de los mensajes de saludo para calcular un secreto maestro.

5. El proceso de protocolo de enlace finaliza. Durante el resto de la sesión, todos los mensajes enviadosentre el cliente y el servidor se cifran con derivados del secreto maestro.

Paso 1 de la descarga de SSL/TLS para servidor web:Configurar los requisitos previosPara configurar la descarga de SSL/TLS para servidor web con AWS CloudHSM, necesita lo siguiente:

228

Page 234: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioObtener una clave privada

• Un clúster de AWS CloudHSM activo que tenga como mínimo un HSM.• Una instancia Amazon EC2 que ejecute el sistema operativo Linux y tenga el siguiente software

instalado:• El cliente de AWS CloudHSM y herramientas de línea de comandos.• La aplicación del servidor web NGINX o Apache.• El motor dinámico de AWS CloudHSM para OpenSSL.

• Un usuario criptográfico (p. 11) (CU) que sea el propietario y administre la clave privada en el HSM.

Para configurar los requisitos previos para la descarga de SSL/TLS en AWS CloudHSM

1. Realice los pasos que se indican en Introducción (p. 15). Dispondrá de un clúster activo con un HSMy una instancia de cliente de Amazon EC2. La instancia EC2 se configurará con las herramientas delínea de comandos. Utilice esta instancia de cliente como su servidor web.

2. Conéctese a la instancia de cliente y haga lo siguiente:

a. Elija si desea instalar la aplicación del servidor web NGINX o Apache. A continuación, realice unode los pasos siguientes:• Para instalar NGINX, ejecute el siguiente comando.

sudo yum install -y nginx

• Para instalar Apache, ejecute el siguiente comando.

sudo yum install -y httpd24 mod24_ssl

b. Instalar y configurar el motor de OpenSSL (p. 185).3. (Opcional) Añada más HSM a su clúster. Para obtener más información, consulte Agregar un

HSM (p. 41).4. Para crear un usuario criptográfico (p. 11) (CU) en su HSM, haga lo siguiente:

a. Inicie el cliente de AWS CloudHSM (p. 75).b. Actualice el archivo de configuración cloudhsm_mgmt_util (p. 76).c. Utilice cloudhsm_mgmt_util para crear un CU. Para obtener más información, consulte

Administración de usuarios de HSM (p. 50). Realice un seguimiento del nombre de usuario y lacontraseña del CU. Los necesitará más adelante cuando genere o importe la clave privada deHTTPS para su servidor web.

Después de completar estos pasos, vaya a Obtener una clave privada (p. 229).

Paso 2 de la descarga de SSL/TLS para servidor web:Importar o generar una clave privada y un certificadoSSL/TLSPara habilitar HTTPS, la aplicación del servidor web (NGINX o Apache) necesita una clave privada y uncertificado SSL/TLS correspondiente. Para utilizar la descarga de SSL/TLS para servidor web con AWSCloudHSM, debe almacenar la clave privada en un HSM de su clúster de AWS CloudHSM. Puede realizaresta operación de una de las siguientes formas:

• Si todavía no dispone de una clave privada y un certificado correspondiente, puede generar una claveprivada en un HSM (p. 230). A continuación, utilice la clave privada para crear una solicitud de firma decertificado (CSR). Use la CSR para crear el certificado SSL/TLS.

229

Page 235: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioObtener una clave privada

 • Si ya dispone de una clave privada y de su certificado correspondiente, puede importar la clave privada a

un HSM (p. 231).

Sea cual sea el método que elija, se exporta una clave privada PEM falsa desde el HSM y se guarda enun archivo. Este archivo no contiene la verdadera clave privada. Contiene una referencia a la clave privadaque está almacenada en el HSM. Su servidor web utiliza el archivo de la clave privada PEM falsa y elmotor dinámico de AWS CloudHSM para OpenSSL para descargar el procesamiento de SSL/TLS a unHSM.

Generación de una clave privada y un certificadoSi no dispone de una clave privada y de su certificado SSL/TLS correspondiente para utilizarlos conHTTPS, puede generar una clave privada en un HSM. A continuación, utilice la clave privada para crearuna solicitud de firma de certificado (CSR). Firme la CSR para crear el certificado.

Para generar una clave privada en un HSM

1. Conéctese a su instancia de cliente.2. Ejecute el siguiente comando para definir una variable de entorno denominada n3fips_password

que contiene el nombre de usuario y la contraseña del usuario criptográfico (CU). Reemplace<nombre de usuario CU> por el nombre de usuario del usuario criptográfico. Reemplace<contraseña> por la contraseña del CU.

export n3fips_password=<CU user name>:<password>

3. Ejecute el siguiente comando para utilizar el motor dinámico de AWS CloudHSM para OpenSSL paragenerar una clave privada en un HSM. Este comando también exporta la clave privada PEM falsa y laguarda en un archivo. Reemplace <PEM_falsa_servidor_web.key> por el nombre del archivo quedesea usar para la clave privada PEM falsa exportada.

openssl genrsa -engine cloudhsm -out <web_server_fake_PEM.key> 2048

Para crear una CSR

Ejecute el siguiente comando para utilizar el motor dinámico de AWS CloudHSM para OpenSSL para crearuna solicitud de firma de certificado (CSR). Reemplace <web_server_fake_PEM.key> por el nombredel archivo que contiene la clave privada PEM falsa. Reemplace <servidor_web.csr> por el nombre delarchivo que contiene su CSR.

El comando req es interactivo. Responderá a cada campo. La información del campo se copia en sucertificado SSL/TLS.

openssl req -engine cloudhsm -new -key <web_server_fake_PEM.key> -out <web_server.csr>

En un entorno de producción, normalmente se usa una entidad de certificación (CA) para crear uncertificado de una CSR. No es necesaria una CA para un entorno de prueba. Si aun así utiliza una CA,envíele el archivo CSR (<servidor_web.csr >) y utilice la CA para crear un certificado SSL/TLSfirmado. 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 OpenSSLpara crear un certificado autofirmado. Los navegadores no confían en certificados autofirmados y no debenutilizarse en entornos de producción. Se pueden usar en entornos de prueba.

230

Page 236: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioObtener una clave privada

Important

Los certificados autofirmados deben utilizarse únicamente en entornos de prueba. En entornos deproducción, utilice un método más seguro como, por ejemplo, una autoridad de certificación paracrear un certificado.

Para crear un certificado autofirmado

Ejecute el comando siguiente para utilizar el motor dinámico de AWS CloudHSM para OpenSSL parafirmar su CSR con su clave privada en un HSM. Esto creará un certificado autofirmado. Reemplace lossiguientes valores en el comando por sus propios valores.

• <servidor_web.csr>: nombre del archivo que contiene la CSR.• <PEM_falsa_servidor_web.key>: nombre del archivo que contiene la clave privada PEM falsa.• <servidor_web.crt>: nombre del archivo que contendrá su servidor web.

openssl x509 -engine cloudhsm -req -days 365 -in <web_server.csr> -signkey <web_server_fake_PEM.key> -out <web_server.crt>

Después de completar estos pasos, puede configurar su servidor web (p. 233).

Importación de una clave privada ya existenteEs posible que ya disponga de una clave privada y un certificado SSL/TLS correspondiente que utiliza paraHTTPS en su servidor web. En caso afirmativo, puede importar la clave a un HSM haciendo lo siguiente:

Para importar una clave privada existente a un HSM

1. Conéctese a su instancia de cliente de Amazon EC2. Si es necesario, copie su clave privada y elcertificado en la instancia.

2. Ejecute el siguiente comando para iniciar el cliente de AWS CloudHSM.

Amazon Linux

$ sudo start cloudhsm-client

Amazon Linux 2

$ sudo service cloudhsm-client start

CentOS 6

$ sudo start cloudhsm-client

CentOS 7

$ sudo service cloudhsm-client start

RHEL 6

$ sudo start cloudhsm-client

231

Page 237: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioObtener una clave privada

RHEL 7

$ sudo service cloudhsm-client start

Ubuntu 16.04 LTS

$ sudo service cloudhsm-client start

3. Ejecute el siguiente comando para iniciar la herramienta de línea de comandos key_mgmt_util.

/opt/cloudhsm/bin/key_mgmt_util

4. Ejecute el siguiente comando para iniciar sesión en el HSM. Reemplace <nombre de usuario> y<contraseña> por el nombre de usuario y la contraseña del usuario criptográfico (CU).

loginHSM -u CU -s <user name> -p <password>

5. Ejecute los siguientes comandos para importar la clave privada a un HSM.

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í.

genSymKey -t 31 -s 16 -sess -l wrapping_key_for_import

Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESSSymmetric Key Created. Key Handle: 6Cluster Error StatusNode id 0 and err state 0x00000000 : HSM Return: SUCCESS

b. Ejecute el siguiente comando para importar la clave privada actual a un HSM. El comando y elresultado se muestran aquí. Reemplace los valores siguientes por sus propios valores:

• <servidor_web_existente.key>: nombre del archivo que contiene la clave privada.• <clave_importada_servidor_web>: etiqueta para su clave privada importada.• <identificador_clave_encapsulación>: identificador de clave de encapsulación

generado en el comando anterior. En el ejemplo anterior el identificador de clave deencapsulación es 6.

importPrivateKey -f <web_server_existing.key> -l <web_server_imported_key> -w <wrapping_key_handle>

BER encoded key length is 1219Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESSCfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESSCfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESSPrivate Key Unwrapped. Key Handle: 8Cluster Error StatusNode id 0 and err state 0x00000000 : HSM Return: SUCCESS

6. Ejecute el comando siguiente para exportar la clave privada en formato PEM falso y guardarla en unarchivo. Reemplace los valores siguientes por sus propios valores.

• <identificador_clave_privada>: identificador de la clave privada importada. Esteidentificador se generó con el segundo comando del paso anterior. En el ejemplo anterior, elidentificador de la clave privada es 8.

232

Page 238: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioConfigurar el servidor web

• <PEM_falsa_servidor_web.key>: nombre del archivo que contiene la clave privada PEM falsaexportada.

getCaviumPrivKey -k <private_key_handle> -out <web_server_fake_PEM.key>

7. Ejecute el comando siguiente para detener key_mgmt_util.

exit

Después de completar estos pasos, vaya a Configurar el servidor web (p. 233).

Paso 3 de la descarga de SSL/TLS para servidor web:Configurar el servidor webPara finalizar la configuración de su servidor web para la descarga de SSL/TLS con AWS CloudHSM,consulte los siguientes temas:

Temas• Actualizar la configuración del servidor web (p. 233)• Añadir el servidor web a un grupo de seguridad (p. 236)• Verifique que HTTPS usa la clave privada en su clúster de AWS CloudHSM (p. 237)

Actualizar la configuración del servidor webPara actualizar la configuración del servidor web, complete los pasos que se indican en uno de lossiguientes procedimientos. Elija el procedimiento que corresponde al software del servidor web.

• Actualizar la configuración para NGINX (p. 233)• Actualizar la configuración para Apache HTTP Server (p. 235)

Actualizar la configuración del servidor web para NGINX

1. Conéctese a su instancia de cliente.2. Ejecute el siguiente comando para crear los directorios necesarios para el certificado del servidor web

y la clave privada PEM falsa.

sudo mkdir -p /etc/pki/nginx/private

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.

sudo cp <web_server.crt> /etc/pki/nginx/server.crt

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 privadaPEM falsa.

sudo cp <web_server_fake_PEM.key> /etc/pki/nginx/private/server.key

233

Page 239: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioConfigurar el servidor web

5. Ejecute el siguiente comando para cambiar la propiedad de estos archivos para que el usuariodenominado nginx pueda leerlos.

sudo chown nginx /etc/pki/nginx/server.crt /etc/pki/nginx/private/server.key

6. Ejecute el siguiente comando para hacer una copia de backup del archivo denominado /etc/nginx/nginx.conf.

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup

7. Utilice un editor de texto para editar el archivo denominado /etc/nginx/nginx.conf. En la partesuperior del archivo, añada la siguiente línea:

ssl_engine cloudhsm;

A continuación, anule el comentario de la sección TLS del archivo de manera que tenga el siguienteaspecto:

# Settings for a TLS enabled server.

server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html;

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;

# Load configuration files for the default server block. include /etc/nginx/default.d/*.conf;

location / { }

error_page 404 /404.html; location = /40x.html { }

error_page 500 502 503 504 /50x.html; location = /50x.html { } }

Guarde el archivo. Esto requiere permisos de raíz de Linux.8. Ejecute el siguiente comando para hacer una copia de backup del archivo denominado /etc/

sysconfig/nginx.

sudo cp /etc/sysconfig/nginx /etc/sysconfig/nginx.backup

234

Page 240: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioConfigurar el servidor web

9. Utilice un editor de texto para editar el archivo denominado /etc/sysconfig/nginx. Añadala siguiente línea, especificando el nombre de usuario y la contraseña del usuario criptográfico(CU). Reemplace <nombre de usuario CU> por el nombre de usuario del usuario criptográfico.Reemplace <contraseña> por la contraseña del CU.

export n3fips_password=<CU user name>:<password>

Guarde el archivo. Esto requiere permisos de raíz de Linux.10. Ejecute el siguiente comando para iniciar el servidor web NGINX.

sudo service nginx start

11. Ejecute el siguiente comando si desea configurar su servidor para iniciar la aplicación NGINX cuandose inicia el servidor.

$ sudo chkconfig nginx on

Actualizar la configuración del servidor web para Apache

1. Conéctese a su instancia de cliente de Amazon EC2.2. Ejecute el siguiente comando para hacer una copia de backup del certificado predeterminado.

sudo cp /etc/pki/tls/certs/localhost.crt /etc/pki/tls/certs/localhost.crt.backup

3. Ejecute el siguiente comando para hacer una copia de backup de la clave privada predeterminada.

sudo cp /etc/pki/tls/private/localhost.key /etc/pki/tls/private/localhost.key.backup

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.

sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

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 privadaPEM falsa.

sudo cp <web_server_fake_PEM.key> /etc/pki/tls/private/localhost.key

6. Ejecute el siguiente comando para cambiar la propiedad de estos archivos para que el usuariodenominado apache pueda leerlos.

sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

7. Ejecute el siguiente comando para hacer una copia de backup del archivo denominado /etc/httpd/conf.d/ssl.conf.

sudo cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.backup

8. Utilice un editor de texto para editar el archivo denominado /etc/httpd/conf.d/ssl.conf.Sustituya la línea que comienza con SSLCryptoDevice de manera que tenga el siguiente aspecto:

SSLCryptoDevice cloudhsm

235

Page 241: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioConfigurar el servidor web

Guarde el archivo. Esto requiere permisos de raíz de Linux.9. Ejecute el siguiente comando para hacer una copia de backup del archivo denominado /etc/

sysconfig/httpd.

sudo cp /etc/sysconfig/httpd /etc/sysconfig/httpd.backup

10. Utilice un editor de texto para editar el archivo denominado /etc/sysconfig/httpd. Añadala siguiente línea, especificando el nombre de usuario y la contraseña del usuario criptográfico(CU). Reemplace <nombre de usuario CU> por el nombre de usuario del usuario criptográfico.Reemplace <contraseña> por la contraseña del CU.

export n3fips_password=<CU user name>:<password>

Guarde el archivo. Esto requiere permisos de raíz de Linux.11. Ejecute el siguiente comando para iniciar Apache HTTP Server.

sudo service httpd start

12. Ejecute el siguiente comando para configurar su servidor para iniciar Apache cuando se inicia elservidor.

sudo chkconfig httpd on

Añadir el servidor web a un grupo de seguridadPara conectarse a su servidor web desde un cliente (como, por ejemplo, un navegador web), cree un grupode seguridad que permita conexiones HTTPS entrantes. En concreto, debería permitir conexiones TCPentrantes en el puerto 443. Asigne este grupo de seguridad a su servidor web.

Para crear un grupo de seguridad para HTTPS y asignarlo a su servidor web

1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.2. Elija Security Groups en el panel de navegación.3. Elija Create Security Group.4. En Create Security Group (Crear grupo de seguridad), haga lo siguiente:

a. Para Security group name (Nombre del grupo de seguridad), escriba un nombre para el grupo deseguridad que está creando.

b. De manera opcional, escriba una descripción del grupo de seguridad que está creando.c. Para VPC, elija la VPC que contiene la instancia Amazon EC2.d. Seleccione Add Rule.e. En Type (Tipo), seleccione HTTPS.

5. Seleccione Create.6. En el panel de navegación, seleccione Instances.7. Seleccione la casilla de verificación junto a la instancia del servidor web. A continuación, elija 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, elija Assign Security Groups (Asignar grupos de seguridad).

236

Page 242: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioConfigurar el servidor web

Verifique que HTTPS usa la clave privada en su clúster de AWSCloudHSMDespués de añadir el servidor web a un grupo de seguridad, puede verificar que la descarga de SSL/TLScon AWS CloudHSM está funcionando. Puede hacerlo mediante un navegador web o con una herramientacomo OpenSSL s_client.

Para verificar la descarga de SSL/TLS con un navegador web

1. Utilice un navegador web para conectarse a su servidor web mediante el nombre de DNS público o ladirección IP del servidor. Asegúrese de que la dirección URL en la barra de direcciones comienza conhttps://. Por ejemplo, https://ec2-52-14-212-67.us-east-2.compute.amazonaws.com/.

Note

Puede utilizar un servicio DNS como, por ejemplo, Route 53 para dirigir el nombre de dominiode su sitio web a su servidor web. Para obtener más información, consulte Direccionamientodel tráfico a una instancia Amazon EC2 en la Guía para desarrolladores de Amazon Route 53o 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 en el sitio web de Soporte de Mozilla.• Para Google Chrome, vea Conocer los problemas de seguridad en el sitio web para desarrolladores

de Google.

Otros navegadores web pueden tener características similares que puede utilizar para ver elcertificado del servidor web.

3. Asegúrese de que el certificado SSL/TLS es el que ha configurado para que utilice el servidor web.Para obtener más información, consulte Actualizar la configuración del servidor web (p. 233).Asegúrese de que la clave privada se almacena en su clúster de AWS CloudHSM.

Para verificar la descarga de SSL/TLS con OpenSSL s_client

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.

$ openssl s_client -connect <server name>:443

2. Asegúrese de que el certificado SSL/TLS es el que ha configurado para que utilice el servidor web.Para obtener más información, consulte Actualizar la configuración del servidor web (p. 233).Asegúrese de que la clave privada se almacena en su clúster de AWS CloudHSM.

Ahora tiene un sitio web que se protege con HTTPS. La clave privada del servidor web está almacenadaen un HSM en su clúster de AWS CloudHSM. Sin embargo, dispone de solo un servidor web. Paraconfigurar un segundo servidor web y un balanceador de carga para incrementar la disponibilidad, vaya aAñadir un balanceador de carga (p. 238).

237

Page 243: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAñadir un balanceador de carga

Paso 4 de la descarga de SSL/TLS para servidor web:Añadir un balanceador de carga con Elastic LoadBalancingDespués de configurar la descarga de SSL/TLS con un servidor web, tiene la opción de crear másservidores web y un balanceador de carga de Elastic Load Balancing que dirige el tráfico de HTTPS alos servidores web. Un balanceador de carga puede reducir la carga de sus servidores web individualesequilibrando el tráfico entre dos o más servidores web. También puede aumentar la disponibilidad desu sitio web, ya que el balanceador de carga monitorea el estado de los servidores web y solo dirigetráfico a servidores en buen estado. Si se produce un error en un servidor web, el balanceador de cargadeja automáticamente de dirigir tráfico hacia el servidor. Para añadir un balanceador de carga para susservidores web, consulte los siguientes temas.

Temas• Crear una subred para el segundo servidor web (p. 238)• Crear el segundo servidor web (p. 239)• Crear el balanceador de carga (p. 241)

Crear una subred para el segundo servidor webAntes de crear otro servidor web, tendrá que crear una nueva subred en la misma VPC que contenga elservidor web existente y el clúster de AWS CloudHSM.

Para crear una nueva subred

1. Abra la sección Subnets (Subredes) en la consola de Amazon VPC en https://console.aws.amazon.com/vpc/home#subnets:.

2. Elija Create Subnet.3. En el cuadro de diálogo Create Subnet, haga lo siguiente:

a. En Name tag (Etiqueta de nombre), escriba un nombre para la subred.b. Para VPC, elija la VPC de AWS CloudHSM que contiene su servidor web existente y el clúster de

AWS CloudHSM.c. Para Availability Zone (Zona de disponibilidad), elija una zona de disponibilidad diferente a la que

contiene su servidor web existente.d. En IPv4 CIDR block (Bloque de CIDR IPv4), escriba el bloque de CIDR que se usará para la

subred. Por ejemplo, escriba 10.0.10.0/24.e. Elija Yes, Create.

4. Seleccione la casilla de verificación situada junto a la subred pública que contiene su servidor webexistente. Se trata de una subred diferente de la subred pública creada en el paso anterior.

5. En el panel de contenido, elija la pestaña Route Table (Tabla de ruteo). A continuación, elija el enlacede la tabla de ruteo.

238

Page 244: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAñadir un balanceador de carga

6. Seleccione la casilla de verificación que hay junto a la tabla de ruteo.7. Elija la pestaña Subnet Associations (Asociaciones de subredes). A continuación, elija Edit (Editar).8. Seleccione la casilla de verificación situada junto a la subred pública que ha creado anteriormente en

este procedimiento. A continuación, elija Save.

Crear el segundo servidor webComplete los siguientes pasos para crear un segundo servidor web con la misma configuración que suservidor web existente.

Para crear un segundo servidor web

1. Abra la sección Instances (Instancias) en la consola Amazon EC2 en https://console.aws.amazon.com/ec2/v2/home#Instances:.

2. Seleccione la casilla de verificación junto a la instancia de servidor web existente.3. Elija Actions (Acciones), Image (Imagen) y, a continuación, Create Image (Crear imagen).4. En el cuadro de diálogo Create Image (Crear imagen), haga lo siguiente:

a. En Image name (Nombre de la imagen), escriba un nombre para la imagen.b. En Image description (Descripción de la imagen), escriba una descripción para la imagen.c. Elija Create Image. Esta acción reinicia su servidor web existente.d. Elija el enlace View pending image ami-<AMI ID> (Ver imagen pendiente ami-ID de AMI>).

En la columna Status (Estado), observe el estado de la imagen. Cuando el estado de la imagensea disponible (esto podría tardar varios minutos), vaya al siguiente paso.

5. En el panel de navegación, seleccione Instances.6. Seleccione la casilla de verificación junto al servidor web existente.7. Elija Actions (Acciones) y después Launch More Like This (Lanzar más así).8. Elija Edit AMI (Editar AMI).

239

Page 245: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAñadir un balanceador de carga

9. En el panel de navegación izquierdo, elija My AMIs (Mis AMI). A continuación, borre el texto en elcampo de búsqueda.

10. Junto a la imagen del servidor web, elija Select (Seleccionar).11. Elija Yes, I want to continue with this AMI (<nombre imagen> - ami-<ID de AMI>) (Sí, deseo

continuar con esta AMI (<nombre de imagen> - ami-<ID de AMI>)).12. Seleccione Siguiente.13. Seleccione un tipo de instancia y, a continuación, elija Next: Configure Instance Details.14. En Step 3: Configure Instance Details, haga lo siguiente:

a. Para Network (Red), elija la VPC que contiene su servidor web existente.b. Para Subnet (Subred), elija la subred pública que creó para el segundo servidor web.c. En Auto-assign Public IP, elija Enable.d. Cambie los detalles restantes de la instancia como desee. A continuación, elija Next: Add

Storage.15. Cambie la configuración de almacenamiento como desee. A continuación, elija Next: Add Tags.16. Añada o edite las etiquetas que desee. A continuación, elija Next: Configure Security Group.17. En Step 6: Configure Security Group, haga lo siguiente:

a. En Assign a security group, elija Select an existing security group.b. Seleccione la casilla situada junto al grupo de seguridad denominado cloudhsm-<ID de

clúster>-sg. AWS CloudHSM ha creado este grupo de seguridad en su nombre al crear elclúster (p. 20). Debe elegir este grupo de seguridad para permitir que la instancia del servidor webse conecte a los HSM del clúster.

c. Seleccione la casilla de verificación situada junto al grupo de seguridad que permite tráficoHTTPS entrante. Ha creado previamente este grupo de seguridad (p. 236).

d. (Opcional) Seleccione la casilla de verificación situada junto a un grupo de seguridad que permiteel tráfico SSH entrante desde la red. Es decir, el grupo de seguridad debe permitir el tráfico TCPentrante en el puerto 22. De lo contrario, no podrá establecer conexión con su instancia de clientecon SSH. Si no dispone de un grupo de seguridad de este tipo, debe crearlo y, a continuación,asignarlo a la instancia de cliente. Para obtener más información acerca de la creación de ungrupo de seguridad, consulte Creación de un grupo de seguridad en la Guía de introducción aAmazon VPC.

Elija Review and Launch.18. Revise los detalles de la instancia y, a continuación, elija Launch.19. Elija si desea lanzar la instancia con un par de claves existente, crear un nuevo par de claves o lanzar

la instancia sin un par de claves.

• Para utilizar un par de claves existente, haga lo siguiente:1. Elija Choose an existing key pair.2. En Select a key pair, elija el par de claves que desea usar.3. Seleccione la casilla de verificación situada junto a I acknowledge that I have access to the

selected private key file (<private key file name>.pem), and that without this file, I

240

Page 246: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAñadir un balanceador de carga

won't be able to log into my instance. (Confirmo que tengo acceso al archivo de clave privadaseleccionado (nombre del archivo de clave privada>.pem) y que sin este archivo no podré iniciarsesión en mi instancia.).

• Para crear un nuevo par de claves, haga lo siguiente:1. Elija Create a new key pair.2. En Key pair name (Nombre del par de claves), escriba un nombre para el par de claves.3. Elija Download Key Pair y guarde el archivo de clave privada en una ubicación segura y

accesible.

Warning

No puede volver a descargar el archivo de clave privada después de este punto. Si nodescarga ahora el archivo de clave privada, no podrá obtener acceso a la instancia decliente.

• Para lanzar la instancia sin un par de claves, haga lo siguiente:1. Elija Proceed without a key pair (Continuar sin un par de claves).2. Seleccione la casilla de verificación junto a I acknowledge that I will not be able to connect to

this instance unless I already know the password built into this AMI. (Confirmo que no podréconectarme a esta instancia salvo que ya sepa la contraseña integrada en esta AMI).

Elija Launch Instances.

Crear el balanceador de cargaComplete los siguientes pasos para crear un balanceador de carga de Elastic Load Balancing que dirige eltráfico HTTPS a los servidores web.

Para crear un balanceador de carga

1. Abra la sección Load Balancers (Balanceadores de carga) en la consola 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, elija 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, elija la VPC que contiene

sus servidores web.d. En la sección Availability Zones (Zonas de disponibilidad), elija las subredes que contienen sus

servidores web.e. Elija Next: Configure Routing.

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.

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 instanciasde servidor web. A continuación, elija Add to registered (Añadir a registrados).

241

Page 247: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAñadir un balanceador de carga

b. Elija Next: Review.7. Revise los detalles del balanceador de carga y, a continuación, elija Create (Crear).8. Cuando se haya creado correctamente el balanceador de carga, elija Close (Cerrar).

Una vez que haya finalizado los pasos anteriores, la consola Amazon EC2 muestra su balanceador decarga de Elastic Load Balancing. Cuando el estado del balanceador de carga sea activo, puede verificarque el balanceador de carga está en ejecución. Es decir, puede verificar que está enviando tráfico HTTPSa sus servidores web con descarga de SSL/TLS con AWS CloudHSM. Puede hacerlo mediante unnavegador 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 Amazon EC2, encuentre el nombre de DNS para el balanceador de carga que acaba decrear. 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 balanceadorde carga con el nombre de DNS del balanceador de carga. Asegúrese de que la dirección URL en labarra de direcciones comienza con https://.

Note

Puede utilizar un servicio DNS como, por ejemplo, Amazon Route 53 para dirigir el nombrede dominio de su sitio web (por ejemplo, https://www.ejemplo.com/) para el balanceador decarga. Para obtener más información, consulte Direccionamiento del tráfico a un balanceadorde carga de ELB en la Guía para desarrolladores de Amazon Route 53 o la documentaciónpara 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 en el sitio web de Soporte de Mozilla.• Para Google Chrome, vea Conocer los problemas de seguridad en el sitio web para desarrolladores

de Google.

Otros navegadores web pueden tener características similares que puede utilizar para ver elcertificado del servidor web.

4. Asegúrese de que el certificado es el que ha configurado para que lo utilice el servidor web.Asegúrese de que la clave privada se almacena en su clúster de AWS CloudHSM.

Para verificar que el balanceador de carga se está ejecutando con OpenSSL s_client

1. Utilice el siguiente comando OpenSSL para conectarse a su balanceador de carga a través deHTTPS. Sustituya <DNS name> (Nombre de DNS>) por el nombre de DNS de su balanceador decarga.

openssl s_client -connect <DNS name>:443

2. Asegúrese de que el certificado es el que configuró para que usara el servidor web (p. 233), cuyaclave privada se almacena en los HSM en el clúster de AWS CloudHSM.

Ahora tiene un sitio web que se protege con HTTPS, con la clave privada del servidor web almacenada enun HSM en su clúster de AWS CloudHSM. Su página web tiene dos servidores web y un balanceador decarga para ayudar a mejorar la eficiencia y la disponibilidad.

242

Page 248: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioEntidad de certificación de Windows Server

Configure Windows Server como entidad decertificación (CA) con AWS CloudHSM

En una infraestructura de clave pública (PKI), una entidad de certificación (CA) es una entidad deconfianza que emite certificados digitales. Estos certificados digitales vinculan una clave pública a unaidentidad (una persona u organización) mediante criptografía de clave pública y firmas digitales. Paraoperar una CA, debe mantener la confianza protegiendo la clave privada que firma los certificados emitidospor la CA. Puede almacenar esta clave privada en el HSM del clúster de AWS CloudHSM y usarlo pararealizar las operaciones de firma criptográfica.

En este tutorial va a usar Windows Server y AWS CloudHSM para configurar una entidad de certificación.Usted instala el software de cliente de AWS CloudHSM para Windows en su servidor de Windows y, acontinuación agrega el rol Servicios de certificados de Active Directory (AD CS) a Windows Server. Alconfigurar este rol, usted utiliza un proveedor de almacenamiento de claves (KSP) de AWS CloudHSMpara crear y almacenar la clave privada de la entidad de certificación en su clúster de AWS CloudHSM. ElKSP es el puente que conecta su servidor de Windows a su 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.

Para obtener más información, consulte los siguientes temas:

Temas• Paso 1 de la entidad de certificación de Windows Server: Configurar los requisitos previos (p. 243)• Paso 2 de la entidad de certificación de Windows Server: Crear una entidad de certificación de

Windows Server con AWS CloudHSM (p. 244)• Paso 3 de la entidad de certificación de Windows Server: Firmar una solicitud de firma de certificado

(CSR) con su entidad de certificación de Windows Server con AWS CloudHSM (p. 246)

Paso 1 de la entidad de certificación de WindowsServer: Configurar los requisitos previosPara configurar Windows Server como entidad de certificación (CA) con AWS CloudHSM, se requiere losiguiente:

• Un clúster de AWS CloudHSM activo que tenga como mínimo un HSM.• Una instancia Amazon EC2 que ejecuta un sistema operativo Windows Server con el software de cliente

de AWS CloudHSM para Windows instalado. Este tutorial usa Microsoft Windows Server 2016.• Un usuario criptográfico (CU) que sea el propietario y administre la clave privada de la entidad de

certificación en el HSM.

Para configurar los requisitos previos para una entidad de certificación de Windows Server conAWS CloudHSM

1. Realice los pasos que se indican en Introducción (p. 15). Al lanzar el cliente de Amazon EC2, elija unaAMI de Windows Server. Este tutorial usa Microsoft Windows Server 2016. Cuando haya completadoestos pasos, dispondrá de un clúster activo con al menos un HSM. También tendrá una instancia decliente de Amazon EC2 que ejecuta Windows Server con el software de cliente de AWS CloudHSMpara Windows instalado.

2. (Opcional) Añada más HSM a su clúster. Para obtener más información, consulte Agregar unHSM (p. 41).

3. Conéctese a su instancia de cliente. Para obtener más información, consulte Conéctese a la instanciaen la Guía del usuario de Amazon EC2 para instancias de Windows.

243

Page 249: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCrear entidad de certificación de Windows Server

4. Para crear un usuario criptográfico (CU) en su HSM, haga lo siguiente:

a. Inicie el cliente de AWS CloudHSM (p. 75).b. Actualice el archivo de configuración cloudhsm_mgmt_util (p. 76).c. Iniciar cloudhsm_mgmt_util (p. 77).d. Habilite el cifrado integral (p. 78).e. Inicie sesión en los HSM (p. 78) con el nombre de usuario y la contraseña de un responsable de

criptografía (CO).f. Cree un usuario de criptografía (CU) (p. 50). Realice un seguimiento del nombre de usuario y la

contraseña del CU. Los necesitará para completar el paso siguiente.5. Establezca las variables de entorno del sistema de Windows (p. 222), mediante el nombre de usuario

y la contraseña del CU que creó en el paso anterior.

Para crear una entidad de certificación de Windows Server con AWS CloudHSM, vaya a Crear entidad decertificación de Windows Server (p. 244).

Paso 2 de la entidad de certificación de WindowsServer: Crear una entidad de certificación de WindowsServer con AWS CloudHSMPara crear una entidad de certificación de Windows Server, usted agrega el rol Servicios de certificadosde Active Directory (AD CS) a Windows Server. Al agregar este rol, usted utiliza un proveedor dealmacenamiento de claves (KSP) de AWS CloudHSM para crear y almacenar la clave privada de la entidadde certificación en su clúster de AWS CloudHSM.

Note

Al crear tu entidad de certificación de Windows Server, puedes optar por crear una entidad decertificación o una entidad de certificación subordinada. Normalmente, usted toma esta decisiónen función del diseño de su infraestructura de clave pública y las políticas de seguridad desu organización. En este tutorial se explica cómo crear una entidad de certificación raíz parasimplificar.

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, consulteConéctese a 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. Consulte la información de Antes de empezar 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:

a. Seleccione Servicios de certificados de Active Directory.b. En Agregar características necesarias para Servicios de certificados de Active Directory, elija

Agregar características.c. Elija Next para finalizar la selección de roles de servidor.

8. En Características, acepte los valores predeterminados y, a continuación, elija Siguiente.9. En AD CS, haga lo siguiente:

244

Page 250: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCrear entidad de certificación de Windows Server

a. Seleccione Siguiente.b. Seleccione Entidad de certificación y, a continuación, elija Siguiente.

10. En Confirmación, lea la información de confirmación y, a continuación, elija Instalar. No cierre laventana.

11. Elija el enlace Configurar Servicios de certificados de Active Directory en el servidor de destinoresaltado.

12. En Credenciales, compruebe o cambie las credenciales mostradas. A continuación, elija Next.13. En Servicios de rol, seleccione Entidad de certificación. A continuación, elija Next.14. En Tipo de instalación, seleccione CA independiente. A continuación, elija Next.15. En Tipo de CA, seleccione CA raíz. A continuación, elija Next.

Note

Puede optar por crear una entidad de certificación raíz o una entidad de certificaciónsubordinada en función del diseño de su infraestructura de clave pública y las políticasde seguridad de su organización. En este tutorial se explica cómo crear una entidad decertificació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:

a. En Seleccionar un proveedor de servicios criptográficos, seleccione una de las opciones delproveedor de almacenamiento de claves de Cavium en el menú. Estos son los proveedoresde almacenamiento de claves de AWS CloudHSM. Por ejemplo, puede elegir el proveedor dealmacenamiento de claves de RSA#Cavium.

b. En Longitud de la clave, elija una de las opciones de la longitud de la clave.c. En Seleccione el algoritmo de hash para firmar los certificados emitidos por esta CA, elija una de

las opciones del algoritmo de hash.

Seleccione Siguiente.18. En Nombre de CA, haga lo siguiente:

a. (Opcional) Edite el nombre común.b. (Opcional) Escriba un sufijo de nombre distinguido.

Seleccione Siguiente.19. En Periodo de validez, especifique un periodo en años, meses, semanas o días. A continuación, elija

Next.20. En Base de datos de certificados, puede aceptar los valores predeterminados o, de forma opcional,

cambiar la ubicación y el registro de la base de datos. A continuación, elija Next.21. En Confirmación, consulte la información acerca de su entidad de certificación; a continuación, elija

Configurar.22. Elija Cerrar y, a continuación, seleccione Cerrar de nuevo.

Ahora tiene una entidad de certificación de Windows con AWS CloudHSM. Para aprender a firmar unasolicitud de firma de certificado (CSR) con su entidad de certificación, vaya a Firmar una CSR (p. 246).

245

Page 251: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioFirmar una CSR

Paso 3 de la entidad de certificación de WindowsServer: Firmar una solicitud de firma de certificado(CSR) con su entidad de certificación de WindowsServer con AWS CloudHSMPuede usar su entidad de certificación de Windows Server con AWS CloudHSM para firmar una solicitudde firma de certificado (CSR). Para completar estos pasos, necesita una CSR válida. Puede crear unaCSR de varias formas, incluidas las siguientes:

• 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 firmarlacon su entidad de certificación de Windows Server.

Para firmar una CSR 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, consulteConéctese a 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 su archivo CSR y, luego, seleccione 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:

a. En la ventana Entidad de certificación, haga doble clic en el certificado.b. Elija la pestaña Detalles y, a continuación, elija Copiar en archivo.c. Siga las instrucciones en el Asistente para exportar certificados.

Ahora tiene una entidad de certificación de Windows Server con AWS CloudHSM y un certificado válidofirmado por la entidad de certificación de Windows Server.

Cifrado de datos transparente (TDE) de OracleDatabase con AWS CloudHSM

Some versions of Oracle's database software offer a feature called Transparent Data Encryption (TDE).With TDE, the database software encrypts data before storing it on disk. The data in the database's tablecolumns or tablespaces is encrypted with a table key or tablespace key. These keys are encrypted with

246

Page 252: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioCifrado de Oracle Database

the TDE master encryption key. You can store the TDE master encryption key in the HSMs in your AWSCloudHSM cluster, which provides additional security.

En esta solución, Oracle Database está instalado en una instancia Amazon EC2. Oracle Database seintegra con la biblioteca de software de AWS CloudHSM para PKCS # 11 (p. 175) para almacenar la clavemaestra de TDE en los HSM de su clúster.

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 instanciaAmazon EC2.Para obtener información acerca de cómo integrar una instancia de Oracle en Amazon RDS conAWS CloudHSM Classic, consulte Uso de AWS CloudHSM Classic para almacenar claves deTDE de Oracle en Amazon RDS en la Guía del usuario de Amazon RDS.

Siga los pasos que se describen a continuación para realizar la integración del TDE de Oracle en AWSCloudHSM.

Para configurar la integración del TDE de Oracle en AWS CloudHSM

1. Siga los pasos que se detallan en Configuración de requisitos previos (p. 248) para preparar elentorno.

2. Siga los pasos indicados en Configuración de la base de datos (p. 248) para configurar OracleDatabase para que se integre en su clúster de AWS CloudHSM.

247

Page 253: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioConfiguración de requisitos previos

Cifrado TDE de Oracle con AWS CloudHSM:configuración de los requisitos previosPara llevar a cabo la integración del cifrado TDE de Oracle en AWS CloudHSM, necesita lo siguiente:

• Un clúster de AWS CloudHSM activo que tenga como mínimo un HSM.• Una instancia Amazon EC2 que ejecute el sistema operativo Amazon Linux y tenga el siguiente software

instalado:• El cliente de AWS CloudHSM y herramientas de línea de comandos.• La biblioteca de software de AWS CloudHSM para PKCS #11.• Oracle Database. AWS CloudHSM es compatible con la integración del cifrado TDE de Oracle con

Oracle Database versiones 11 y 12.• Un usuario criptográfico (CU) que sea el propietario de la clave de cifrado maestra del cifrado TDE y la

administre en los HSM de su clúster.

Complete los siguientes pasos para configurar todos los requisitos previos.

Para configurar los requisitos previos necesarios para integrar el cifrado TDE de Oracle en AWSCloudHSM

1. Realice los pasos que se indican en Introducción (p. 15). A continuación, tendrá un clúster activo conun HSM. También tendrá una instancia Amazon EC2 que se ejecuta en el sistema operativo AmazonLinux. También se instalarán y configurarán las herramientas de línea de comandos y el cliente deAWS CloudHSM.

2. (Opcional) Añada más HSM a su clúster. Para obtener más información, consulte Agregar unHSM (p. 41).

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. 175).b. Instale Oracle Database. Para obtener más información, consulte la documentación de Oracle

Database. AWS CloudHSM es compatible con la integración del cifrado TDE de Oracle conOracle Database versiones 11 y 12.

c. Inicie el cliente de AWS CloudHSM (p. 75).d. Actualice el archivo de configuración de la herramienta de línea de comandos

cloudhsm_mgmt_util (p. 76).e. Utilice la herramienta de línea de comandos cloudhsm_mgmt_util para crear un usuario

criptográfico (CU) en su clúster. Para obtener más información, consulte Administración deusuarios de HSM (p. 50).

Una vez que haya completado estos pasos, podrá Configuración de la base de datos (p. 248).

Oracle TDE con AWS CloudHSM: configuración dela base de datos y generación de la clave de cifradomaestraPara integrar Oracle TDE con su clúster de AWS CloudHSM consulte los siguientes temas:

1. Actualizar la configuración de Oracle Database (p. 249) para utilizar los HSM en su clúster como elmó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.

248

Page 254: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioConfiguración de la base de datos

2. Generar la clave de cifrado maestra de TDE de Oracle (p. 250) en los HSM en su clúster.

Temas• Actualizar la configuración de Oracle Database (p. 249)• Generar la clave de cifrado maestra de TDE de Oracle (p. 250)

Actualizar la configuración de Oracle DatabasePara actualizar la configuración de Oracle Database para utilizar un HSM en su clúster como el módulode seguridad externo, complete los siguientes pasos. Para obtener información acerca de módulos deseguridad externos, consulte Introduction to Transparent Data Encryption en la Oracle Database AdvancedSecurity Guide.

Para actualizar la configuración de Oracle

1. Conéctese a su instancia de cliente de Amazon EC2. Se trata de la instancia donde instaló OracleDatabase.

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. Siuna línea existente en el archivo comienza con encryption_wallet_location, sustituya la líneaexistente 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 biblioteca para la biblioteca de software de AWS CloudHSM para PKCS # 11.

sudo mkdir -p /opt/oracle/extapi/64/hsm

5. Utilice uno de los siguientes comandos para copiar el archivo de la biblioteca de software de AWSCloudHSM para PKCS # 11 en el directorio que creó en el paso anterior.• Si instaló la biblioteca de PKCS # 11 sin Redis, ejecute el siguiente comando.

sudo cp /opt/cloudhsm/lib/libcloudhsm_pkcs11_standard.so /opt/oracle/extapi/64/hsm/

• Si instaló la biblioteca de PKCS # 11 con Redis, ejecute el siguiente comando.

sudo cp /opt/cloudhsm/lib/libcloudhsm_pkcs11_redis.so /opt/oracle/extapi/64/hsm/

Note

El directorio /opt/oracle/extapi/64/hsm solo debe contener un archivo de biblioteca.Solo copie el archivo de biblioteca que corresponde a la forma en que instaló la biblioteca dePKCS # 11 (p. 176). Si existen más archivos en el directorio, elimínelos.

6. Ejecute el siguiente comando para cambiar la propiedad del directorio /opt/oracle y todo lo quehay dentro de él.

sudo chown -R oracle:dba /opt/oracle

7. Inicie Oracle Database.

249

Page 255: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioConfiguración de la base de datos

Generar la clave de cifrado maestra de TDE de OraclePara generar la clave maestra de TDE de Oracle en los HSM en su clúster, complete los pasos que seindican en el siguiente procedimiento.

Para generar la clave maestra

1. Utilice el comando sqlplus para abrir Oracle SQL*Plus. Cuando se le solicite, escriba la contraseña delsistema que configuró cuando instaló Oracle Database.

2. Ejecute la instrucción SQL que crea la clave de cifrado maestra tal y como se muestra en lossiguientes ejemplos. Utilice la declaración que se corresponde con la versión de Oracle Database.Reemplace el <nombre de usuario CU> por el nombre de usuario del usuario criptográfico (CU).Reemplace <contraseña> por la contraseña del CU.

Important

Ejecute el siguiente comando solo una vez. Cada vez que se ejecuta el comando, se creauna 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>";

• Para Oracle Database versión 12, ejecute la siguiente instrucción SQL.

SQL> administer key management set key identified by "<CU user name>:<password>";

Si la respuesta es System altered o keystore altered, entonces ha generado correctamente yestablecido la clave maestra para Oracle TDE.

3. (Opcional) Ejecute el siguiente comando para comprobar el estado del wallet de Oracle.

SQL> select * from v$encryption_wallet;

Si el wallet no está abierto, utilice uno de los siguientes comandos para abrirlo. Reemplace <nombrede usuario CU> por el nombre del usuario criptográfico (CU). Reemplace <contraseña> por lacontraseñ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>";

Para cerrar manualmente el wallet, ejecute el siguiente comando.

SQL> alter system set encryption wallet close identified by "<CU user name>:<password>";

• Para Oracle 12, ejecute el siguiente comando para abrir el wallet.

SQL> administer key management set keystore open identified by "<CU user name>:<password>";

Para cerrar manualmente el wallet, ejecute el siguiente comando.

SQL> administer key management set keystore close identified by "<CU user name>:<password>";

250

Page 256: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioUso de CloudWatch

Recuperación de métricasPuede utilizar Amazon CloudWatch y AWS CloudTrail para recuperar las métricas y los logs parainstancias de AWS CloudHSM. Para obtener más información, consulte los siguientes temas:

Temas• Obtención de métricas de CloudWatch (p. 251)• Obtención de logs de la API con AWS CloudTrail (p. 251)

Obtención de métricas de CloudWatchAWS CloudHSM publica métricas sobre sus instancias de HSM en su panel de CloudWatch. Las métricasse pueden agrupar por región, por ID de clúster y por ID de HSM. Sin embargo, tenga en cuenta que elID de HSM cambiará si AWS CloudHSM reemplaza un HSM con error. Por lo tanto, recomendamos queestablezca la alarma y mida en el nivel de ID de clúster o regional en lugar de en el ID de HSM. Estándisponibles las siguientes métricas:

• HsmUnhealthy: la instancia de HSM no funciona correctamente. AWS CloudHSM reemplazaautomáticamente las instancias en mal estado. Sin embargo, puede ampliar de forma proactiva eltamaño del clúster para evitar el reemplazo del HSM.

• HsmTemperature: temperatura del empalme del procesador de hardware. El sistema se apaga si latemperatura alcanza 110 grados centígrados.

• HsmKeysSessionOccupied: cantidad de claves de sesión que está utilizando la instancia de HSM.• HsmKeysTokenOccupied: cantidad de claves de token que están utilizando la instancia de HSM y el

clúster.• HsmSslCtxsOccupied: cantidad de canales cifrados de extremo a extremo establecidos actualmente

para la instancia de HSM. Se permiten hasta 2048 canales.• HsmSessionCount: cantidad de conexiones abiertas a la instancia de HSM. Se permiten hasta 2048.

De forma predeterminada, el demonio de cliente está configurado para abrir dos sesiones con cadainstancia de HSM en un canal cifrado de extremo a extremo.

• HsmUsersAvailable: cantidad de usuarios adicionales que se pueden crear. Esto equivale a la cantidadmáxima de usuarios, HsmUsersMax, menos los usuarios creados hasta el momento.

• HsmUsersMax: máximo número de usuarios que se pueden crear en la instancia de HSM. El valor actuales 1024.

• InterfaceEth2OctetsInput: suma acumulativa de tráfico al HSM hasta la fecha. Le recomendamos quetambién examine las métricas de la instancia Amazon EC2.

• InterfaceEth2OctetsOutput: consulte la métrica anterior, InterfaceEth2OctetsInput.

Obtención de logs de la API con AWS CloudTrailAWS CloudTrail registra llamadas a la API en archivos de log y envía dichos archivos en formato JSON(JavaScript Object Notation) al bucket de Amazon S3 que especifique. CloudTrail registra cada llamadaque los usuarios de su cuenta realizan a la API de AWS CloudHSM, tanto si la llamada se realiza desde laconsola, la AWS CLI o el código.

251

Page 257: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioUso de CloudTrail

Note

Las llamadas realizadas directamente a una instancia de HSM bajo el canal cifrado de extremoa extremo no son visibles para el servicio de AWS CloudHSM y no quedan registradas enCloudTrail.

Con los archivos de log de CloudTrail, puede identificar la solicitud que se realizó a AWS CloudHSM, ladirección IP de origen desde la que se realizó la solicitud, quién realizó la solicitud, cuándo se realizó,etcétera. Los archivos de log de CloudTrail contienen todas las llamadas realizadas a la API de AWS desu cuenta de AWS, no solo las llamadas a la API de AWS CloudHSM. Para obtener información generalsobre CloudTrail, consulte Primeros pasos con CloudTrail en la AWS CloudTrail User Guide. Para obtenermás información sobre las entradas de log de CloudTrail, consulte la Referencia de eventos de registrode CloudTrail. En el ejemplo siguiente se muestra una entrada de log de CloudTrail para una llamadaCreateHsm a la API de AWS CloudHSM.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "principal_ID:ExampleSession", "arn": "arn:aws:sts::111122223333:assumed-role/AdminRole/ExampleSession", "accountId": "111122223333", "accessKeyId": "access-key-id", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2017-07-11T03:48:44Z" }, "sessionIssuer": { "type": "Role", "principalId": "principal_ID", "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"}

252

Page 258: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioProblemas conocidos

Solución de problemas de AWSCloudHSM

Si tiene problemas con AWS CloudHSM, los siguientes temas pueden ayudarle a resolverlos.

Temas• Problemas conocidos (p. 253)• Conexión perdida con el clúster (p. 258)• Mantener sincronizados los usuarios de los HSM del clúster (p. 260)• Verificación del desempeño en el HSM (p. 260)• Solución de errores de creación de clústeres (p. 263)

Problemas conocidosActualmente, se conocen los siguientes problemas para AWS CloudHSM.

Temas• Problemas conocidos para todas las instancias de HSM (p. 253)• Problemas conocidos para el SDK de PKCS#11 (p. 254)• Problemas conocidos para el SDK de JCE (p. 256)• Problemas conocidos para el SDK de OpenSSL (p. 257)

Problemas conocidos para todas las instancias deHSMLos siguientes problemas afectan a todos los usuarios de AWS CloudHSM independientemente de siutilizan la herramienta de la línea de comandos key_mgmt_util, el SDK de PKCS#11, el SDK de JCE o elSDK de OpenSSL.

Problema: el encapsulamiento de clave AES utiliza el relleno PKCS#5 en vez de proporcionar unaimplementación compatible con los estándares de encapsulamiento de clave con cero relleno. Además, nose admite el encapsulamiento de clave sin relleno.

• Impacto: no hay ningún impacto si encapsula y desencapsula en AWS CloudHSM. Las clavesencapsuladas con AWS CloudHSM no pueden desencapsularse en otros HSM o software que esperaconformidad con la especificación de ausencia de relleno. Esto se debe a que 8 bytes de datos derelleno podrían utilizarse como sufijo de los datos de clave después de un desencapsulamientoconforme a los estándares. Las claves desencapsuladas externamente no se pueden desencapsularcorrectamente en una instancia de AWS CloudHSM.

• Solución: para desencapsular externamente una clave que se ha encapsulado con el encapsulamientode clave AES en una instancia de AWS CloudHSM, quite el relleno adicional antes de intentar utilizar laclave. Puede hacerlo si recorta los bytes adicionales en un editor de archivos o copia solo los bytes declave en un nuevo búfer en el código.

• Estado de resolución: estamos corrigiendo el cliente y los SDK para proporcionar encapsulamiento declave AES conforme con SP800-38F. Las actualizaciones se anunciarán en el foro de AWS CloudHSM

253

Page 259: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioProblemas conocidos para el SDK de PKCS#11

y en la página de historial de versiones. La actualización incluirá mecanismos para ayudarle a volvera realizar el encapsulamiento de las claves encapsuladas existentes de un modo conforme a losestándares.

Problema: no se pueden especificar las claves importadas como no exportables.

• Impacto: al importar una clave a través de PKCS#11 o JCE, no puede especificar que se conviertaen no exportable. En el contexto de PKCS#11, se pasa por alto la marca CKA_NON_EXPORTABLE.Además, AWS CloudHSM no admite el cambio del atributo exportable para una clave existente.Dado que puede ni definir una clave que no exportable durante la importación ni cambiar su atributoexportable a posteriori, los usuarios en la actualidad no pueden establecer las claves importadas comono exportables.

• Solución: puede aplicar parcialmente un comportamiento similar mediante la creación de un usuariocriptográfico (CU) especial para este clave. A continuación, use la opción de compartir para permitirque otros usuarios o aplicaciones utilicen la clave. Las limitaciones aplicadas a las claves compartidasimpiden que otros usuarios exporten la clave. El usuario criptográfico (CU) que importe la clave es supropietario. Solo este CU puede exportar la clave. También puede compartir la clave importada conotras cuentas CU. Estas cuentas CU pueden utilizar la clave, pero no pueden exportarla, eliminarla nicompartirla con otros CU.

• Estado de resolución: estamos implementando correcciones para hacer que una clave importada sea noexportable cuando así se especifique. No será necesaria ninguna acción por su parte para beneficiarsede la corrección.

Problema: el demonio de cliente requiere al menos una dirección IP válida en su archivo de configuraciónpara 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 nuevadirecció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 argumentoIpAddress en la función CreateHsm para establecer la interfaz de red elástica (ENI) en su valororiginal. Tenga en cuenta que la ENI es específica de la zona de disponibilidad (AZ). La alternativaconsiste 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 comandoclient -a <IP address>. Para obtener más información, consulte Editar la configuración delcliente.

Problema: hay un límite superior de 16 KB de datos que pueden ser firmados y resumidos por AWSCloudHSM.

• Impacto: en general, no puede utilizar el SDK de AWS CloudHSM para firmar o resumir datos mayoresde 16 KB. No importa si envía los datos en una sola pieza o en muchas piezas. El impacto específicodepende del SDK que utilice. Consulte las secciones de SDK individuales a continuación para obtenermás información.

• Solución: si el búfer de datos es mayor de 16 KB, resuma sus datos dentro de la aplicación y use AWSCloudHSM solo para firmar.

• Estado de resolución: estamos corrigiendo el cliente y los SDK para que produzcan un error de formaexplícita si el búfer de datos es mayor de 16 KB. Las actualizaciones se anunciarán en el foro de AWSCloudHSM y en la página de historial de versiones.

Problemas conocidos para el SDK de PKCS#11Problema: los mensajes de error de conformidad con PKCS #11 no están disponibles directamente para lainstancia de HSM.

254

Page 260: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioProblemas conocidos para el SDK de PKCS#11

• Impacto: La biblioteca de PKCS #11 realiza dos recorridos de ida y vuelta a HSM por llamada: el primeroverifica si está permitida la operación solicitada. El segundo ejecuta la operación si está permitida. Estose traduce en un desempeño más lento.

• Solución: proporcionamos una biblioteca de PKCS #11 alternativa con una caché Redis local, por loque los permisos para la operación solicitada se pueden comprobar localmente. Para obtener másinformación, incluida aquella acerca de las limitaciones de esta solución, consulte Instalar la bibliotecaPKCS #11 con Redis (opcional) (p. 177).

• Estado de resolución: estamos implementando correcciones para proporcionar directamente mensajesde error conformes con PKCS #11, con lo que se elimina la necesidad de la solución de Redis. Labiblioteca de PKCS #11 actualizada se anunciará en la página de historial de versiones.

Problema:CKA_DERIVE no se admite el atributo y no está gestionado.

• Impacto: CKA_DERIVEla especificación de un atributo para una clave, tanto si el atributo está establecidoen true como en false, provocará un error en la operación de clave y un error de plantilla no válida.

• Solución: CKA_DERIVEno especifique el atributo en el código.• Estado de resolución: CKA_DERIVEestamos implementando correcciones para aceptar si se establece

en FALSE. CKA_DERIVENo se admitirá establecido en true hasta que empecemos a agregar lacompatibilidad de función de derivación de clave a AWS CloudHSM. La biblioteca de PKCS #11actualizada se anunciará en la página de historial de versiones.

Problema:CKA_SENSITIVE no se admite el atributo y no está gestionado.

• Impacto: CKA_SENSITIVEla especificación de un atributo para una clave, tanto si el atributo estáestablecido en true como en false, provocará un error en la operación de clave y un error de plantilla noválida.

• Solución: CKA_SENSITIVEno especifique el atributo en el código.• Estado de resolución: CKA_SENSITIVEestamos implementando correcciones para aceptar y respetar

correctamente el atributo La biblioteca de PKCS #11 actualizada se anunciará en la página de historialde versiones.

Problema: la función hash multiparte y la firma no son compatibles.

• Impacto: C_DigestUpdate y C_DigestFinal no se implementan. C_SignFinal tampoco seimplementa y producirá un error con CKR_ARGUMENTS_BAD para un búfer no NULL.

• Solución: aplique la función hash a sus datos dentro de la aplicación y use AWS CloudHSM solo parafirmar el hash.

• Estado de resolución: estamos corrigiendo el cliente y los SDK para implementar correctamente lafunción hash multiparte. Las actualizaciones se anunciarán en el foro de AWS CloudHSM y en la páginade historial de versiones.

Problema: C_GenerateKeyPair no gestiona CKA_MODULUS_BITS ni CKA_PUBLIC_EXPONENT en laplantilla privada de una forma que cumpla con los estándares.

• Impacto: C_GenerateKeyPair debe devolver CKA_TEMPLATE_INCONSISTENT cuando la plantillaprivada contiene CKA_MODULUS_BITS o CKA_PUBLIC_EXPONENT. En cambio, genera una claveprivada en la que todos los campos se establecen en FALSE. La clave no se puede usar.

• Solución: recomendamos que su aplicación compruebe los valores del campo de uso además del códigode error.

• Estado de resolución: estamos implementado soluciones para devolver el mensaje de error correctocuando se usa una plantilla de clave privada incorrecta. La biblioteca de PKCS #11 actualizada seanunciará en la página de historial de versiones.

255

Page 261: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioProblemas conocidos para el SDK de JCE

Problema: no puede aplicar la función hash a más de 16 KB de datos. Para búferes de mayor tamaño,solo se aplica la función de hash y se devuelven los primeros 16 KB. Se hará caso omiso a los datos porencima de ese límite.

• Impacto: C_DIGEST devuelve un resultado incorrecto si el tamaño de los datos es mayor de 16 KB.• Solución: debe aplicar la función de hash a sus datos dentro de la aplicación y usar AWS CloudHSM

solo para firmar el hash.• 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 para admitir la función de hash enbúferes más grandes sin recurrir a la función de hash multiparte. Las actualizaciones se anunciarán en elforo de AWS CloudHSM y en la página de historial de versiones.

Problema: los búferes para las API de operaciones de C_Encrypt y C_Decrypt no pueden exceder16 KB si se usa el mecanismo CKM_AES_GCM. Además, AWS CloudHSM no admite el cifrado AES-GCMmultiparte.

• 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. AWSCloudHSM no realiza el cifrado AES-GCM multiparte por usted. Tenga en cuenta que FIPS requiere quese genere en el HSM el vector de inicialización (IV) para AES-GCM. Por lo tanto, el IV será diferentepara 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ícitasi el búfer de datos es demasiado grande. Se devuelve CKR_MECHANISM_INVALID para las API deoperaciones C_EncryptUpdate y C_DecryptUpdate. Estamos evaluando alternativas para admitirbúferes más grandes sin recurrir al cifrado multiparte. Las actualizaciones se anunciarán en el foro deAWS CloudHSM y en la página de historial de versiones.

Issue: ECDH key derivation is executed partially within the HSM. Su clave privada EC permanece dentrodel HSM en todo momento, pero el proceso de generación de la clave se realiza en varios pasos. Comoresultado, los resultados intermedios de cada paso están disponibles en el cliente.

• Impacto: la clave generada mediante el mecanismo CKM_ECDH1_DERIVE está disponible primero enel cliente y, a continuación, se importa en el HSM. Un identificador de clave se devuelve después a suaplicación.

• Solución: si implementa una descarga de SLL/TLS en AWS CloudHSM, es posible que esta limitación norepresente un problema. Si su aplicación requiere que su clave permanezca dentro de un límite FIPS entodo momento, considere el uso de un protocolo alternativo que no se base en la generación de la claveECDH.

• Estado de resolución: desarrollamos la opción para llevar a cabo la generación de la clave ECDH ensu totalidad dentro del HSM. La implementación actualizada se anunciará en la página de historial deversiones una vez que esté disponible.

Problemas conocidos para el SDK de JCEProblema: las funciones de encapsulamiento y desencapsulamiento de clave no están implementadas.

• Impacto: no puede encapsular y desencapsular claves mediante programa con JCE.• Solución: puede crear un script con key_mgmt_util para encapsular y desencapsular claves.• Estado de resolución: estamos planificando agregar compatibilidad con el encapsulamiento y

desencapsulamiento de clave mediante JCE. La actualización se anunciará en la página de historial deversiones una vez que esté disponible.

256

Page 262: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioProblemas conocidos para el SDK de OpenSSL

Problema: el almacén de claves de JCE es de solo lectura.

• Impacto: en la actualidad no puede almacenar un tipo de objeto que no sea compatible con HSM en elalmacén de claves de JCE. En concreto, no puede almacenar certificados en el almacén de claves. Estoimpide la interoperabilidad con herramientas como jarsigner, que espera encontrar el certificado en elalmacén de claves.

• Solución: puede rehacer el código para cargar los certificados desde archivos locales o desde unaubicació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 elalmacén de claves. La característica se anunciará en la página de historial de versiones una vez queesté disponible.

Problema: los búferes para el cifrado AES-GCM no pueden exceder 16 KB. Además, no se admite elcifrado AES-GCM multiparte.

• Impacto: no puede usar AES-GCM para cifrar datos mayores de 16 KB.• 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 sudescifrado. 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 elbúfer de datos es demasiado grande. Estamos evaluando alternativas que admitan búferes más grandessin recurrir al cifrado multiparte. Las actualizaciones se anunciarán en el foro de AWS CloudHSM y en lapágina de historial de versiones.

Problemas conocidos para el SDK de OpenSSLProblema: solo se admite la descarga de RSA en HSM de forma predeterminada.

• Impacto: para maximizar el desempeño, el SDK no está configurada para descargar funcionesadicionales, 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 operacionesadicionales.

• Estado de resolución: estamos agregando compatibilidad al SDK para configurar las opciones dedescarga a través de un archivo de configuración. La actualización se anunciará en la página de historialde versiones una vez que 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ónentre cero. Esto se debe a que el motor dinámico de OpenSSL llama a la operación localmente medianteel 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 paraPKCS #11 (p. 175) o Biblioteca de software de AWS CloudHSM para Java (p. 187).

• Estado de resolución: estamos añadiendo el servicio de soporte para el SDK para descargarcorrectamente esta operación. La actualización se anunciará en la página de historial de versiones unavez que esté disponible.

Problema: Solo se lleva a cabo en el HSM la generación de la clave privada para las claves RSA yECC. Para cualquier otro tipo de clave, no se utiliza el motor de OpenSSL de AWS CloudHSM parael procesamiento de llamadas, En su lugar se usa el motor de OpenSSL local. Esto genera una clavelocalmente mediante software.

257

Page 263: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioConexión perdida

• Impacto: debido a que la conmutación por error es silenciosa, no hay ninguna indicación que no harecibido una clave generada de forma segura en el HSM. Verá un rastro de salida que contiene lacadena "...........++++++" si la clave se ha generado localmente por OpenSSL mediantesoftware. Este rastro no aparece cuando la operación se lleva a cabo en el HSM. Dado que la clave nose 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 los demástipos de claves, utilice PKCS #11 o JCE en las aplicaciones, o bien utilice key_mgmt_util en la AWSCLI.

Conexión perdida con el clústerAl configurar el cliente de AWS CloudHSM (p. 36), ha facilitado la dirección IP del primer HSM del clúster.Esta dirección IP se guarda en el archivo de configuración del cliente de AWS CloudHSM. Cuando elcliente se inicia, intenta conectarse con esta dirección IP. Si no puede, por ejemplo, porque el HSM tieneun error o porque se ha eliminado, es posible que se muestren errores como los siguientes:

LIQUIDSECURITY: Daemon socket connection error

LIQUIDSECURITY: Invalid Operation

Para resolver estos errores, actualice el archivo de configuración con la dirección IP de un HSM activo yaccesible del clúster.

Para actualizar el archivo de configuración del de cliente de AWS CloudHSM

1. Utilice una de las siguientes formas para buscar la dirección IP de un HSM activo de su clúster.

• Consultar la pestaña HSMs de la página de detalles del clúster en la consola de AWS CloudHSM.• Usar la AWS Command Line Interface (AWS CLI) para emitir el comando describe-clusters.

Necesita esta dirección IP en un paso posterior.2. Utilice el siguiente comando para detener el cliente.

Amazon Linux

$ sudo stop cloudhsm-client

Amazon Linux 2

$ sudo service cloudhsm-client stop

CentOS 6

$ sudo stop cloudhsm-client

CentOS 7

$ sudo service cloudhsm-client stop

258

Page 264: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioConexión perdida

RHEL 6

$ sudo stop cloudhsm-client

RHEL 7

$ sudo service cloudhsm-client stop

Ubuntu 16.04 LTS

$ sudo service cloudhsm-client stop

Windows

You can use Ctrl+C to stop the client.3. Utilice el siguiente comando para actualizar el archivo de configuración del cliente, proporcionando la

dirección IP que obtuvo un paso anterior.

$ sudo /opt/cloudhsm/bin/configure -a <IP address>

4. Use el siguiente comando para iniciar el cliente.

Amazon Linux

$ sudo start cloudhsm-client

Amazon Linux 2

$ sudo service cloudhsm-client start

CentOS 6

$ sudo start cloudhsm-client

CentOS 7

$ sudo service cloudhsm-client start

RHEL 6

$ sudo start cloudhsm-client

RHEL 7

$ sudo service cloudhsm-client start

Ubuntu 16.04 LTS

$ sudo service cloudhsm-client start

259

Page 265: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioMantener actualizados los usuarios de HSM

Windows

C:\Program Files\Amazon\CloudHSM>start "cloudhsm_client" cloudhsm_client.exe C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_client.cfg

Mantener sincronizados los usuarios de los HSMdel clúster

Para administrar los usuarios de los HSM (p. 50), utilice la herramienta de línea de comandos de AWSCloudHSM denominada cloudhsm_mgmt_util. Solo se comunica con los HSM que están en el archivo deconfiguración de la herramienta. No tiene en cuenta otros HSM del clúster que no estén en el archivo deconfiguración.

AWS CloudHSM sincroniza las claves de los HSM en los demás HSM del clúster, pero no sincroniza losusuarios o las políticas del HSM. Al utilizar cloudhsm_mgmt_util para administrar usuarios de HSM (p. 50),estos cambios de usuarios podrían afectar únicamente a algunos de los HSM del clúster, es decir, los queestán en el archivo de configuración de cloudhsm_mgmt_util. Esto puede provocar problemas cuando AWSCloudHSM sincroniza las claves en varios HSM del clúster, ya que es posible que los usuarios que poseenlas 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 administrarlos usuarios. Para obtener más información, consulte Paso 4: Actualizar el archivo de configuración decloudhsm_mgmt_util (p. 76).

Verificación del desempeño en el HSMPara verificar el desempeño de los HSM de su clúster de AWS CloudHSM, puede utilizar la herramientapkpspeed (Linux) o pkpspeed_blocking (Windows) que se incluye con el software cliente de AWSCloudHSM. Para obtener más información acerca de la instalación del cliente en una instancia de LinuxEC2, consulte Instalar y configurar el cliente de AWS CloudHSM (Linux) (p. 34). Para obtener másinformación acerca de la instalación del cliente en una instancia de Windows, consulte Instalar y configurarel cliente de AWS CloudHSM (Windows) (p. 36).

Después de instalar y configurar el cliente de AWS CloudHSM, ejecute el siguiente comando para iniciarlo.

Amazon Linux

$ sudo start cloudhsm-client

Amazon Linux 2

$ sudo service cloudhsm-client start

CentOS 6

$ sudo start cloudhsm-client

CentOS 7

$ sudo service cloudhsm-client start

260

Page 266: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioVerificación del desempeño

RHEL 6

$ sudo start cloudhsm-client

RHEL 7

$ sudo service cloudhsm-client start

Ubuntu 16.04 LTS

$ sudo service cloudhsm-client start

Windows

C:\Program Files\Amazon\CloudHSM>start "cloudhsm_client" cloudhsm_client.exe C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_client.cfg

Si ya ha instalado el software de cliente, es posible que deba descargar e instalar la última versión paraobtener pkpspeed. Puede encontrar la herramienta pkpspeed /opt/cloudhsm/bin/pkpspeed en Linuxo en C:\Program Files\Amazon\CloudHSM\ en Windows.

Para utilizar pkpspeed, ejecute el comando pkpspeed o pkpspeed_blocking.exe con el nombre de usuarioy la contraseña de un usuario de criptografía (CU) en el HSM. A continuación, defina las opciones que seutilizarán mientras tiene en cuenta las siguientes recomendaciones.

Recomendaciones

• Para probar el desempeño de las operaciones de firma y comprobación de RSA y verificarlas operaciones, elija el cifrado RSA_CRT en Linux o la opción B en Windows. No elija RSA(opción A en Windows). La cifrados son equivalentes, pero RSA_CRT está optimizado para eldesempeño.

• Comience por un número reducido de subprocesos. Para probar el desempeño de AES suelebastar con un subproceso para mostrar el máximo desempeño. Para probar el desempeño deRSA (RSA_CRT), normalmente es suficiente con tres o cuatro subprocesos.

En los ejemplos siguientes se muestran las opciones que puede elegir con pkpspeed (Linux) opkpspeed_blocking (Windows) para probar el desempeño de HSM para las operaciones de RSA y AES.

Example – Uso de pkpspeed para probar el desempeño de RSA

Puede ejecutar este ejemplo en Windows, Linux y sistemas operativos compatibles.

Linux

Utilice estas instrucciones para Linux y sistemas operativos compatibles.

/opt/cloudhsm/bin/pkpspeed -s CU user name -p password

SDK Version: 2.03

Available Ciphers: AES_128 AES_256 3DES RSA (non-CRT. modulus size can be 2048/3072) RSA_CRT (same as RSA)

261

Page 267: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioVerificación del desempeño

For RSA, Exponent will be 65537

Current FIPS mode is: 00002Enter the number of thread [1-10]: 3Enter the cipher: RSA_CRTEnter modulus length: 2048Enter time duration in Secs: 60Starting non-blocking speed test using data length of 245 bytes...[Test duration is 60 seconds]

Do you want to use static key[y/n] (Make sure that KEK is available)?n

Windows

c:\Program Files\Amazon\CloudHSM>pkpspeed_blocking.exe -s CU user name -p password

Please select the test you want to run

RSA non-CRT------------------->ARSA CRT----------------------->BBasic 3DES CBC---------------->CBasic AES--------------------->DFIPS Random------------------->HRandom------------------------>IAES GCM ---------------------->K

eXit------------------------>XB

Running 4 threads for 25 sec

Enter mod size(2048/3072):2048Do you want to use Token key[y/n]nDo you want to use static key[y/n] (Make sure that KEK is available)? nOPERATIONS/second 821/1OPERATIONS/second 833/1OPERATIONS/second 845/1OPERATIONS/second 835/1OPERATIONS/second 837/1OPERATIONS/second 836/1OPERATIONS/second 837/1OPERATIONS/second 849/1OPERATIONS/second 841/1OPERATIONS/second 856/1OPERATIONS/second 841/1OPERATIONS/second 847/1OPERATIONS/second 838/1OPERATIONS/second 843/1OPERATIONS/second 852/1OPERATIONS/second 837/

Example – Uso de pkpspeed para probar el desempeño de AES

Linux

Utilice estas instrucciones para Linux y sistemas operativos compatibles.

/opt/cloudhsm/bin/pkpspeed -s <CU user name> -p <password>

SDK Version: 2.03

Available Ciphers:

262

Page 268: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioSolución de errores de creación de clústeres

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

Current FIPS mode is: 00000002Enter the number of thread [1-10]: 1Enter the cipher: AES_256Enter the data size [1-16200]: 8192Enter time duration in Secs: 60Starting non-blocking speed test using data length of 8192 bytes...

Windows

c:\Program Files\Amazon\CloudHSM>pkpspeed_blocking.exe -s CU user name -p passwordlogin as USERInitializing Cfm2 library SDK Version: 2.03

Current FIPS mode is: 00000002Please enter the number of threads [MAX=400] : 1Please enter the time in seconds to run the test [MAX=600]: 20

Please select the test you want to run

RSA non-CRT------------------->ARSA CRT----------------------->BBasic 3DES CBC---------------->CBasic AES--------------------->DFIPS Random------------------->HRandom------------------------>IAES GCM ---------------------->K

eXit------------------------>XD

Running 1 threads for 20 sec

Enter the key size(128/192/256):256Enter the size of the packet in bytes[1-16200]:8192OPERATIONS/second 9/1OPERATIONS/second 10/1OPERATIONS/second 11/1OPERATIONS/second 10/1OPERATIONS/second 10/1OPERATIONS/second 10/...

Solución de errores de creación de clústeresCuando crea un clúster y su rol aún no existe, AWS CloudHSM crea el rol vinculado al servicioAWSServiceRoleForCloudHSM. Si AWS CloudHSM no puede crear el rol vinculado al servicio, su intentode crear un clúster puede dar un error.

En este tema se explica cómo resolver los problemas más habituales para que pueda crear un clústercorrectamente. Tiene que crear este rol una única vez. Una vez que el rol vinculado al servicio se creeen su cuenta, podrá utilizar cualquiera de los métodos admitidos para crear y administrar clústeresadicionales.

263

Page 269: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioAgregar el permiso que falta

En las secciones siguientes se ofrecen sugerencias para solucionar errores de creación de clústeresrelacionados con el rol vinculado al servicio. Si prueba estas sugerencias, pero sigue sin poder crear unclúster, póngase en contacto con AWS Support. Para obtener más información acerca del rol vinculado alservicio AWSServiceRoleForCloudHSM, consulte Descripción de los roles vinculados a servicios (p. 18).

Temas• Agregar el permiso que falta (p. 264)• Crear el rol vinculado a un servicio manualmente (p. 264)• Uso de un usuario no federado (p. 264)

Agregar el permiso que faltaPara crear un rol vinculado a un servicio, el usuario ha de tener el permisoiam:CreateServiceLinkedRole. Si el usuario de IAM que crea el clúster no tiene este permiso, elproceso de creación del clúster generará un error cuando intente crear el rol vinculado al servicio en sucuenta de AWS.

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 AdministratorAccesso añada el permiso iam:CreateServiceLinkedRole a la política de IAM del usuario. Para leer lasinstrucciones, consulte Agregar permisos a un usuario nuevo o existente.

A continuación, intente volver a crear el clúster (p. 20).

Crear el rol vinculado a un servicio manualmentePuede utilizar la consola, la CLI o la API de IAM para crear el rol vinculado al servicioAWSServiceRoleForCloudHSM. Para obtener más información, consulte Crear un rol vinculado a unservicio en la Guía del usuario de IAM.

Uso de un usuario no federadoLos usuarios federados, cuyas credenciales proceden de fuera de AWS, pueden realizar la mayoría de lastareas de un usuario no federado. No obstante, AWS no permite a los usuarios realizar llamadas a la APIpara crear un rol vinculado al servicio desde un punto de enlace federado.

Para solucionar este problema, cree un usuario no federado (p. 15) con el permisoiam:CreateServiceLinkedRole o conceda a un usuario no federado ya existente el permisoiam:CreateServiceLinkedRole. A continuación, haga que ese usuario cree un clúster (p. 20) desde laAWS 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 federadocreó. La eliminación del clúster no afecta al rol. A partir de ese momento, todo usuario que tenga lospermisos necesarios, incluidos los usuarios federados, podrá crear clústeres de AWS CloudHSM en sucuenta.

Para verificar que se haya creado el rol, abra la consola de IAM en https://console.aws.amazon.com/iam/ yelija Roles. También puede ejecutar el comando de IAM get-role en la AWS CLI.

$ aws iam get-role --role-name AWSServiceRoleForCloudHSM

264

Page 270: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioUso de un usuario no federado

{ "Role": { "Description": "Role for CloudHSM service operations", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "cloudhsm.amazonaws.com" } } ] }, "RoleId": "AROAJ4I6WN5QVGG5G7CBY", "CreateDate": "2017-12-19T20:53:12Z", "RoleName": "AWSServiceRoleForCloudHSM", "Path": "/aws-service-role/cloudhsm.amazonaws.com/", "Arn": "arn:aws:iam::111122223333:role/aws-service-role/cloudhsm.amazonaws.com/AWSServiceRoleForCloudHSM" }}

265

Page 271: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioHistorial de versiones

Información de cliente y de softwarede AWS CloudHSM

Para administrar y utilizar los HSM en su clúster, utilice el cliente de AWS CloudHSM (p. 9) y las bibliotecasde software relacionadas. Si instaló el cliente de AWS CloudHSM para Linux (p. 34) o Windows (p. 36)y cualquier biblioteca de software (p. 175) requerida, tiene todo el software necesario para utilizar AWSCloudHSM.

En esta sección se proporciona información sobre las plataformas compatibles y un historial de versionescompleto.

Temas• Historial de versiones de software y del cliente de AWS CloudHSM (p. 266)• Plataformas admitidas (p. 273)

Historial de versiones de software y del cliente deAWS CloudHSM

En esta sección se describen las actualizaciones de cada versión del cliente de AWS CloudHSM (p. 9)y las bibliotecas de software relacionadas. Le recomendamos que utilice las versiones más recientessiempre que sea posible.

En esta sección se incluyen enlaces para descargar las versiones más recientes del software. Siinstaló el cliente de AWS CloudHSM para Linux (p. 34) o Windows (p. 36) e instaló las bibliotecas desoftware (p. 175) que necesita, ya tiene todo el software que necesita para utilizar AWS CloudHSM.

Temas• Versión actual: 1.1.0 (p. 266)• Versión: 1.0.18 (p. 269)• Versión 1.0.14 (p. 270)• Versión 1.0.11 (p. 271)• Versión 1.0.10 (p. 271)• Versión 1.0.8 (p. 272)• Versión 1.0.7 (p. 272)• Versión 1.0.0 (p. 273)

Versión actual: 1.1.0Para descargar el software, elija la pestaña correspondiente al sistema operativo preferido y, acontinuación, elija el enlace a cada paquete de software.

Amazon Linux

Descargue la versión 1.1.0 del software para Amazon Linux:

• Cliente de AWS CloudHSM• Biblioteca de PKCS #11

266

Page 272: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioVersión actual: 1.1.0

• Motor dinámico de OpenSSL• Biblioteca de Java

Amazon Linux 2

Descargue la versión 1.1.0 del software para Amazon Linux 2:

• Cliente de AWS CloudHSM• Biblioteca de PKCS #11• Motor dinámico de OpenSSL• Biblioteca de Java

CentOS6

Descargue la versión 1.1.0 del software para CentOS 6:

• Cliente de AWS CloudHSM• Biblioteca de PKCS #11• Motor dinámico de OpenSSL• Biblioteca de Java

CentOS 7

Descargue la versión 1.1.0 del software para CentOS 7:

• Cliente de AWS CloudHSM• Biblioteca de PKCS #11• Motor dinámico de OpenSSL• Biblioteca de Java

RHEL 6

Descargue la versión 1.1.0 del software para RedHat Enterprise Linux 6:

• Cliente de AWS CloudHSM• Biblioteca de PKCS #11• Motor dinámico de OpenSSL (admite RHEL 6.5 y versiones posteriores)• Biblioteca de Java

RHEL 7

Descargue la versión 1.1.0 del software para RedHat Enterprise Linux 7:

• Cliente de AWS CloudHSM• Biblioteca de PKCS #11• Motor dinámico de OpenSSL• Biblioteca de Java

Ubuntu 16.04 LTS

Descargue la versión 1.1.0 del software para Ubuntu 16.04 LTS:

267

Page 273: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioVersión actual: 1.1.0

• Cliente de AWS CloudHSM• Biblioteca de PKCS #11• Motor dinámico de OpenSSL• Biblioteca de Java

Windows Server

AWS CloudHSM admite las versiones de 64 bits de Windows Server 2012, Windows Server 2012R2 y Windows Server 2016. El software de cliente de AWS CloudHSM 1.1.0 para Windows Serverincluye los proveedores de CNG y KSP obligatorios. Para obtener más información, consulte Instalar yconfigurar el cliente de AWS CloudHSM (Windows) (p. 36).

Descargue la versión 1.1.0 del software para Windows Server:

• Cliente de AWS CloudHSM para Windows Server

Cambios significativos en esta versión incluyen lo siguiente:

Software de cliente de AWS CloudHSM

• Se agregaron nuevas plataformas de Linux.• Amazon Linux 2• Ubuntu 16.04 LTS• RedHat Enterprise Linux 6 (RHEL 6)• RedHat Enterprise Linux 7 (RHEL 7)• CentOS6• CentOS 7

Proveedores de CNG/KSP para Windows Server

El software de cliente de AWS CloudHSM para Windows Server incluye los proveedores de CNG y KSPobligatorios.

• Versión actualizada por coherencia.

Biblioteca de PKCS #11

• Se agregó compatibilidad con las plataformas Linux.

Motor dinámico de OpenSSL

• Se agregó compatibilidad con las plataformas Linux.

Biblioteca de Java

• Si descargó este paquete antes del 23 de mayo a las 5 p. m. PDT, deberá volver a compilar suaplicación para que funcione con esta versión de JCE, ya que el método loadNative() habíacambiado temporalmente de no estático a estático. También puede descargar el paquete otra vez einstalar JCE. Ahora hemos restaurado el método loadNative() a estático.

• Se eliminó el cambio importante en la versión 1.0.18. El método públicoLoginManager.getInstance() acepta los argumentos username y password.

• Se agregó compatibilidad con las plataformas Linux.

268

Page 274: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioVersión: 1.0.18

Versión: 1.0.18La versión 1.0.18 incluye los siguientes paquetes de software para cada plataforma.

Amazon Linux

Para descargar el software de la versión 1.0.18 para Amazon Linux y las distribuciones compatibles,elija el enlace de cada paquete.

• Cliente de AWS CloudHSM• Biblioteca de PKCS #11• Motor dinámico de OpenSSL• Biblioteca de Java: la versión 1.0.18 está obsoleta debido a problemas con la compatibilidad con

versiones anteriores. Utilice la versión actual o la versión 1.0.14.

Ubuntu

Para descargar el software de la versión 1.0.18 para Ubuntu y las distribuciones compatibles, elija elenlace de cada paquete.

• Cliente de AWS CloudHSM• Biblioteca de PKCS #11• Motor dinámico de OpenSSL• Biblioteca de Java: la versión 1.0.18 está obsoleta debido a problemas con la compatibilidad con

versiones anteriores. Utilice la versión actual o la versión 1.0.14.

Windows Server

AWS CloudHSM admite Windows Server 2012, Windows Server 2012 R2 y Windows Server 2016. Elsoftware de cliente de AWS CloudHSM 1.0.18 para Windows Server incluye los proveedores de CNGy KSP obligatorios. Para obtener más información, consulte Instalar y configurar el cliente de AWSCloudHSM (Windows) (p. 36).

Para descargar el software de la versión 1.0.18 para Windows, elija el enlace Cliente de AWSCloudHSM para Windows Server.

Cambios significativos en esta versión incluyen lo siguiente:

Software de cliente de AWS CloudHSM

Se agregó un cliente de AWS CloudHSM para Windows Server. Actualmente se admiten los siguientessistemas operativos de Windows Server:

• Microsoft Windows Server 2012 (64 bits)• Microsoft Windows Server 2012 R2 (64 bits)• Microsoft Windows Server 2016 (64 bits)

Proveedores de CNG/KSP para Windows Server

• Se implementó PKCS7Padding para C_DecryptUpdate y C_EncryptUpdate.• CKA_ID ya no es necesario para la generación de clave privada RSA.• Se mejoró el desempeño del subprocesamiento.• Varios errores corregidos.

269

Page 275: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioVersión 1.0.14

Biblioteca de PKCS #11

• Se ha agregado compatibilidad con PKCS7Padding.• Se han reforzado los controles en las plantillas clave.• Varios errores corregidos.

Motor dinámico de OpenSSL

• Se agregó compatibilidad con getCaviumPrivKey para las claves basadas en ECC.• Se ha mejorado la estabilidad cuando se pierde la conectividad con el demonio de cliente.• Varios errores corregidos.

Biblioteca de Java

• [Cambio importante] El método público LoginManager.getInstance() no acepta los argumentosusername y password directamente.

• Se ha agregado compatibilidad con PKCS7Padding.• Se han añadido métodos de encapsulación y desencapsulación.• Se ha mejorado la estabilidad cuando se pierde la conectividad con el demonio de cliente.• Varios errores corregidos.

Versión 1.0.14La versión 1.0.14 incluye los siguientes paquetes de software para cada plataforma.

Amazon Linux

Para descargar el software de la versión 1.0.14 para Amazon Linux y las distribuciones compatibles,elija el enlace de cada paquete.

• Cliente de AWS CloudHSM• Biblioteca de PKCS #11• Motor dinámico de OpenSSL• Biblioteca de Java

Ubuntu

Para descargar el software de la versión 1.0.14 para Ubuntu y las distribuciones compatibles, elija elenlace de cada paquete.

• Cliente de AWS CloudHSM• Biblioteca de PKCS #11• Motor dinámico de OpenSSL• Biblioteca de Java

Cambios significativos en esta versión incluyen lo siguiente:

Software de cliente de AWS CloudHSM

• Se mejoró el comportamiento de la conmutación por error.• Muestra metadatos de la versión.

270

Page 276: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioVersión 1.0.11

• Varios errores corregidos.

Biblioteca de PKCS #11

• Se implementó PKCS7Padding para C_DecryptUpdate y C_EncryptUpdate.• CKA_ID ya no es necesario para la generación de clave privada RSA.• Se mejoró el desempeño del subprocesamiento.• Varios errores corregidos.

Motor dinámico de OpenSSL

• Se ha añadido compatibilidad para CSR para claves ECC.• Se mejoró la estabilidad y la gestión de errores.

Biblioteca de Java

Sin cambios. Número de versión actualizado por coherencia.

Versión 1.0.11Cambios significativos en esta versión incluyen lo siguiente:

Software de cliente de AWS CloudHSM

• Se mejoró el balanceo de carga.• Se mejoró el desempeño.• Se mejoró la gestión de las conexiones del servidor perdidas.

Biblioteca de PKCS #11

• Se ha añadido compatibilidad con el mecanismo de firma/verificación CKM_RSA_PKCS_PSS.

Motor dinámico de OpenSSL

• Número de versión actualizado por coherencia.

Biblioteca de Java

• Se mejoró el desempeño de varios algoritmos.• Se ha añadido la característica de importación de claves Triple DES (3DES).• Correcciones de varios errores.

Versión 1.0.10Cambios significativos en esta versión incluyen lo siguiente:

Software de cliente de AWS CloudHSM

• Se actualizó la herramienta de la línea de comandos key_mgmt_util para habilitar la importación declaves encapsuladas de AES.

• Se mejoró el desempeño.

271

Page 277: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioVersión 1.0.8

• Varios errores corregidos.

Biblioteca de PKCS #11

• Número de versión actualizado por coherencia.

Motor dinámico de OpenSSL

• Número de versión actualizado por coherencia.

Biblioteca de Java

• Se ha añadido compatibilidad para algoritmos adicionales.• Se mejoró el desempeño.

Versión 1.0.8Cambios significativos en esta versión incluyen lo siguiente:

Software de cliente de AWS CloudHSM

• Se mejoró la experiencia de configuración.• Se ha añadido la regeneración al servicio de cliente upstart.• Varios errores corregidos.

Biblioteca de PKCS #11

• Se han corregido errores para abordar rutas relativas en la configuración de Redis.

Motor dinámico de OpenSSL

• Se mejoró el desempeño.

Biblioteca de Java

• Número de versión actualizado por coherencia.

Versión 1.0.7Cambios significativos en esta versión incluyen lo siguiente:

Software de cliente de AWS CloudHSM

• Se agregó la herramienta de pruebas de desempeño pkpspeed (p. 260).• Se han corregido errores para mejorar la estabilidad y el desempeño.

Biblioteca de PKCS #11

• Se ha añadido una versión acelerada de la biblioteca que utiliza una caché local de Redis para mejorarel desempeño.

272

Page 278: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioVersión 1.0.0

• Se han corregido errores relacionados con la gestión de atributos.• Se ha añadido la capacidad de generar claves ECDSA.

Motor dinámico de OpenSSL

• Número de versión actualizado por coherencia.

Biblioteca de Java

• Se ha añadido compatibilidad para algoritmos adicionales.• Se han firmado los archivos JAR para la compatibilidad con el proveedor de Sun JCE.

Versión 1.0.0Esta es la versión inicial.

Plataformas admitidasEl cliente de AWS CloudHSM (p. 9) y las bibliotecas de software (p. 175) relacionadas admiten lasversiones de 64 bits de los siguientes sistemas operativos.

Note

Las versiones anteriores del software no son compatibles con todos los sistemas operativosenumerados. Para obtener información detallada acerca de cada versión del cliente de AWSCloudHSM y el software relacionado, consulte Historial de versiones de software y del cliente deAWS CloudHSM (p. 266).

Library Sistema operativo

Cliente de AWS CloudHSM Amazon Linux

Amazon Linux 2

Red Hat Enterprise Linux (RHEL) 6

Red Hat Enterprise Linux (RHEL) 7

CentOS6

CentOS 7

Ubuntu 16.04 LTS

Microsoft Windows Server 2012

Microsoft Windows Server 2012 R2

Microsoft Windows Server 2016

Proveedores de CNG/KSP Microsoft Windows Server 2012

Microsoft Windows Server 2012 R2

Microsoft Windows Server 2016

273

Page 279: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuarioPlataformas admitidas

Library Sistema operativo

PKCS #11 Amazon Linux

Amazon Linux 2

Red Hat Enterprise Linux (RHEL) 6

Red Hat Enterprise Linux (RHEL) 7

CentOS6

CentOS 7

Ubuntu 16.04 LTS

Motor dinámico de OpenSSL

(Compatible con OpenSSL 1.0.2f+)

Amazon Linux

Amazon Linux 2

Red Hat Enterprise Linux (RHEL) 6.5+

Red Hat Enterprise Linux (RHEL) 7

CentOS6

CentOS 7

Ubuntu 16.04 LTS

Proveedor de JCE

(Admitido en OpenJDK 1.8)

Amazon Linux

Amazon Linux 2

Red Hat Enterprise Linux (RHEL) 6

Red Hat Enterprise Linux (RHEL) 7

CentOS6

CentOS 7

Ubuntu 16.04 LTS

274

Page 280: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuario

Historial de revisiónEn la siguiente tabla se describe el historial de versiones de la documentación de AWS CloudHSM.

Última actualización de la documentación: 10 de mayo de 2018

Cambio Descripción Fecha de la versión

Nuevo contenido Se agregó la compatibilidadde cliente y biblioteca de AWSCloudHSM para Amazon Linux2, Red Hat Enterprise Linux(RHEL) 6, Red Hat EnterpriseLinux (RHEL) 7, CentOS 6,CentOS 7 y Ubuntu 16.04 LTS.Para obtener más información,consulte Instalar y configurarel cliente de AWS CloudHSM(Linux) (p. 34).

10 de mayo de 2018

Nuevo contenido Se agregó un cliente de AWSCloudHSM para Windows.Para obtener más información,consulte los siguientes temas:

• Instalar y configurar elcliente de AWS CloudHSM(Windows) (p. 36)

• Proveedores de KSP y CNGpara Windows (p. 221)

• Configure WindowsServer como entidad decertificación (CA) con AWSCloudHSM (p. 243)

30 de abril de 2018

Nuevo contenido Se agregó la autenticación decuórum (control de acceso Mde N) para los responsables decriptografía (CO). Para obtenermás información, consulteAplicación de la autenticación decuórum (control de acceso M deN) (p. 58).

9 de noviembre de 2017

Update Se agregó documentaciónacerca del uso de la herramientade línea de comandoskey_mgmt_util. Para obtenermás información, consulteReferencia de los comandos dekey_mgmt_util (p. 112).

9 de noviembre de 2017

275

Page 281: AWS CloudHSM - Guía del usuario · 2018-06-01 · Herramientas de línea de comandos de AWS CloudHSM ... Some versions of Oracle's database software offer a feature called Transparent

AWS CloudHSM Guía del usuario

Cambio Descripción Fecha de la versión

Nuevo contenido Se agregó el cifrado de datostransparente de Oracle. Paraobtener más información,consulte Cifrado de OracleDatabase (p. 246).

25 de octubre de 2017

Nuevo contenido Se agregó la descarga de SSL.Para obtener más información,consulte Descarga de SSL/TLS (p. 227).

12 de octubre de 2017

Nuevo contenido Se agregaron ejemplos decódigo (p. 194) que muestrancómo utilizar la biblioteca desoftware de AWS CloudHSMpara Java (p. 187).

29 de agosto de 2017

Nueva guía Esta versión introduce AWSCloudHSM

14 de agosto de 2017

276