Establecer la autenticación de cuórum para responsables de criptografía de AWS CloudHSM
En los siguientes temas, se describen los pasos que debe seguir para configurar el módulo de seguridad de hardware (HSM) de forma que los responsables de criptografía (CO) de AWS CloudHSM puedan usar la autenticación de cuórum. Debe seguir estos pasos solo una vez cuando configure por primera vez la autenticación de cuórum para CO. Después de completar estos pasos, consulte Administración de usuarios con autenticación de cuórum habilitada para la utilidad de administración de AWS CloudHSM.
Temas
Requisitos previos
Para comprender este ejemplo, debe estar familiarizado con la cloudhsm_mgmt_util herramienta de línea de comandos (CMU). En este ejemplo, el clúster de AWS CloudHSM tiene dos HSM, cada uno de ellos con el mismo CO, tal y como se muestra en el siguiente resultado del comando listUsers. Para obtener más información sobre la creación de usuarios, consulte Usuarios de HSM.
aws-cloudhsm>
listUsers
Users on server 0(10.0.2.14):
Number of users found:7
User Id User Type User Name MofnPubKey LoginFailureCnt 2FA
1 PRECO 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
Users on server 1(10.0.1.4):
Number of users found:7
User Id User Type User Name MofnPubKey LoginFailureCnt 2FA
1 PRECO 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
Paso 1. Creación y registro de una clave de firma
Para utilizar la autenticación de quórum, cada OC debe realizar todos los pasos siguientes:
Temas
Creación de un par de claves RSA
Hay muchas formas de crear y proteger un par de claves. El siguiente ejemplo muestra cómo hacerlo con OpenSSL
ejemplo : creación de una clave privada con OpenSSL
El siguiente ejemplo ilustra cómo utilizar OpenSSL para crear una clave RSA de 2048 bits que está protegida por una frase de contraseña. Para utilizar este ejemplo, sustituya officer1.key
por el nombre del archivo donde desea almacenar la clave.
$
openssl genrsa -out
officer1.key
-aes256 2048Generating RSA private key, 2048 bit long modulus .....................................+++ .+++ e is 65537 (0x10001) Enter pass phrase for officer1.key: Verifying - Enter pass phrase for officer1.key:
A continuación, genere la clave pública usando la clave privada que acaba de crear.
ejemplo : creación de una clave pública con OpenSSL
El siguiente ejemplo muestra cómo usar OpenSSL para crear una clave pública a partir de la clave privada que acaba de crear.
$
openssl rsa -in officer1.key -outform PEM -pubout -out officer1.pub
Enter pass phrase for officer1.key: writing RSA key
Creación y firma de un token de registro
Cree un token y fírmelo con la clave privada que acaba de generar en el paso anterior.
ejemplo : cree un token.
El token de registro es solo un archivo con cualquier dato aleatorio que no supere el tamaño máximo de 245 bytes. Firme el token con la clave privada para demostrar que tiene acceso a la clave privada. El siguiente comando usa eco para redirigir una cadena a un archivo.
$
echo
"token to be signed"
>officer1.token
Firme el token y guárdelo en un archivo de firma. Necesitará el token firmado, el token sin firmar y la clave pública para registrar al CO como usuario de MoFN en el HSM.
ejemplo : firme el token.
Utilice OpenSSL y la clave privada para firmar el token de registro y crear el archivo de firma.
$
openssl dgst -sha256 \ -sign
officer1.key
\ -outofficer1.token.sig
officer1.token
Cómo registrar una clave pública con el HSM
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
-
Utilice el siguiente comando para iniciar la herramienta de línea de comandos cloudhsm_mgmt_util.
$
/opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
-
Utilice el comando loginHSM para iniciar sesión en los HSM como CO. Para obtener más información, consulte Administrar usuarios del HSM con la utilidad de administración de CloudHSM (CMU).
-
Utilice el comando registerQuorumPubKey para registrar la clave pública. Para obtener más información, consulte el siguiente ejemplo o utilice el comando help registerQuorumPubKey.
ejemplo : registro de una clave pública con el HSM
En el siguiente ejemplo, se explica cómo se utiliza el comando registerQuorumPubKey en la herramienta de línea de comandos cloudhsm_mgmt_util para registrar una clave pública del CO con el HSM. Para utilizar este comando, el CO tiene que haber iniciado sesión en el HSM. Reemplace estos valores por sus propios valores:
aws-cloudhsm>
registerQuorumPubKey CO <
officer1
> <officer1.token
> <officer1.token.sig
> <officer1.pub
>*************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. AWS does NOT synchronize these changes automatically with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y registerQuorumPubKey success on server 0(10.0.2.14)
- <officer1.token>
-
La ruta a un archivo que contiene un token de registro sin firmar. Puede contener cualquier dato aleatorio con un tamaño máximo de archivo de 245 bytes.
Obligatorio: sí
- <officer1.token.sig>
-
La ruta a un archivo que contiene el hash firmado por el mecanismo SHA256_PKCS del token de registro.
Obligatorio: sí
- <officer1.pub>
-
La ruta al archivo que contiene la clave pública de un par de claves asimétricas RSA-2048. Utilice la clave privada para firmar el token de registro.
Obligatorio: sí
Una vez que todos los CO registran las claves públicas, el resultado del comando listUsers lo muestra en la columna MofnPubKey
, tal y como puede verse en el siguiente ejemplo.
aws-cloudhsm>
listUsers
Users on server 0(10.0.2.14): Number of users found:7 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PRECO 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 Users on server 1(10.0.1.4): Number of users found:7 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PRECO 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
Paso 2. Cómo establecer el valor mínimo de cuórum en el HSM
Para 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ínimo de aprobaciones del CO necesarias para realizar las operaciones de administración de usuarios de HSM. Cualquier CO en el HSM puede establecer el valor mínimo de cuórum, incluidos los CO que no han registrado una clave para firmar. Puede cambiar el valor mínimo del cuórum en cualquier momento; para obtener más información, consulte Cambio del valor mínimo.
Para establecer el valor mínimo de cuórum en el HSM
-
Utilice el siguiente comando para iniciar la herramienta de línea de comandos cloudhsm_mgmt_util.
$
/opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
-
Utilice el comando loginHSM para iniciar sesión en los HSM como CO. Para obtener más información, consulte Administrar usuarios del HSM con la utilidad de administración de CloudHSM (CMU).
-
Utilice el comando setMValue para establecer el valor mínimo de cuórum. Para obtener más información, consulte el siguiente ejemplo o utilice el comando help setMValue.
ejemplo : establecimiento del valor mínimo de cuórum del HSM
Este ejemplo utiliza un valor mínimo de cuórum de dos. Puede elegir cualquier valor entre dos (2) y ocho (8), hasta el número total de CO del HSM. En este ejemplo, el HSM tiene seis 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órum preferido.
aws-cloudhsm>
setMValue 3
2
*************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. AWS does NOT synchronize these changes automatically with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?
y
Setting 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órum está estableciendo.
En la siguiente tabla se enumeran los identificadores del servicio de HSM junto con sus nombres, descripciones y los comandos que se incluyen en el servicio.
Identificador del servicio | Nombre del servicio | Descripción del servicio | Comandos de HSM |
---|---|---|---|
3 | USER_MGMT |
Gestión de usuarios HSM |
|
4 | MISC_CO |
Servicio de CO misceláneo |
|
Para obtener el valor mínimo de cuórum de un servicio, utilice el comando getMValue, tal y como se muestra en el siguiente ejemplo.
aws-cloudhsm>
getMValue 3
MValue of service 3[USER_MGMT] on server 0 : [2] MValue of service 3[USER_MGMT] on server 1 : [2]
El resultado del comando getMValue anterior muestra que el valor mínimo de cuórum para las operaciones de administración de usuarios de HSM (servicio 3) ahora es dos.
Después de completar estos pasos, consulte Administración de usuarios con autenticación de cuórum habilitada para la utilidad de administración de AWS CloudHSM.