Utilisation de l'authentification par quorum pour les responsables de chiffrement - AWS CloudHSM

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de l'authentification par quorum pour les responsables de chiffrement

Un responsable de chiffrement (CO) sur le HSM peut configurer l'authentification par quorum pour les opérations suivantes sur le HSM :

  • Création d'utilisateurs HSM

  • Suppression d'utilisateurs HSM

  • Modification du mot de passe d'un autre utilisateur HSM

Une fois que le HSM est configuré pour l'authentification par quorum, les responsables de chiffrement ne peuvent pas effectuer d'opérations de gestion des utilisateurs par eux-mêmes. L'exemple suivant montre la sortie lorsqu'un responsable de chiffrement tente de créer un nouvel utilisateur sur le HSM. La commande échoue avec une erreur RET_MXN_AUTH_FAILED, ce qui indique que l'authentification par quorum a échoué.

aws-cloudhsm>createUser CU user1 password *************************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 Creating User user1(CU) on 2 nodes createUser failed: RET_MXN_AUTH_FAILED creating user on server 0(10.0.2.14) failed Retry/Ignore/Abort?(R/I/A):A

Pour effectuer une opération de gestion d'utilisateur HSM, un responsable de chiffrement doit exécuter les tâches suivantes :

Si vous n'avez pas encore configuré le module HSM pour l'authentification par quorum pour les responsables de chiffrement, faites-le maintenant. Pour plus d’informations, consultez Première configuration.

Obtention d'un jeton de quorum

Tout d'abord, le CO doit utiliser l'outil de ligne de commande cloudhsm_mgmt_util pour demander un jeton de quorum.

Pour obtenir un jeton de quorum
  1. Utilisez la commande suivante pour démarrer l'outil de ligne de commande cloudhsm_mgmt_util.

    $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
  2. Utilisez la commande loginHSM pour vous connecter aux HSM en tant que CO. Pour plus d’informations, consultez Gestion des utilisateurs HSM avec l'Utilitaire de gestion CloudHSM (CMU).

  3. Utilisez la commande getToken pour obtenir un jeton de quorum. Pour plus d'informations, consultez l'exemple suivant ou utilisez la commande help getToken.

Exemple - Obtenir un jeton de quorum.

Cet exemple obtient un jeton de quorum pour le responsable de chiffrement avec le nom d'utilisateur officer1 et enregistre le jeton dans un fichier nommé officer1.token. Pour utiliser l'exemple de commande, remplacez ces valeurs par les vôtres :

  • officer1 – Le nom du CO qui obtient le jeton. Il doit s'agir du même responsable de chiffrement que celui qui est connecté au HSM et qui exécute cette commande.

  • officer1.token – Le nom du fichier à utiliser pour stocker le jeton de quorum.

Dans la commande suivante, 3 identifie le service pour lequel vous pouvez utiliser le jeton que vous obtenez. Dans ce cas, le jeton concerne les opérations de gestion des utilisateurs HSM (service 3). Pour plus d’informations, consultez Définition de la valeur minimale de quorum sur le HSM.

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

Obtention des signatures des CO en charge de l'approbation

Un responsable de chiffrement qui possède un jeton de quorum doit obtenir le jeton approuvé par d'autres responsables de chiffrement. Pour donner leur approbation, les autres responsables de chiffrement utilisent leur clé de signature pour signer le jeton de façon cryptographique. Ils le font en dehors du module HSM.

Il existe de nombreuses façons différentes de signer le jeton. L'exemple suivant montre comment procéder avec OpenSSL. Pour utiliser un autre outil de signature, assurez-vous que l'outil utilise la clé privée du responsable de chiffrement (clé de signature) pour signer un hachage SHA-256 du jeton.

Exemple - Obtention des signatures des responsables de chiffrement en charge de l'approbation

Dans cet exemple, le CO qui possède le jeton (officer1) a besoin d'au moins deux approbations. L'exemple suivant montrent comment deux CO peuvent utiliser OpenSSL pour signer le jeton de manière cryptographique.

Dans la première commande, officer1 signe son propre jeton. Pour utiliser les commandes de l'exemple suivant, remplacez ces valeurs par les vôtres :

  • officer1.key et officer2.key – Le nom du fichier qui contient la clé de signature du CO.

  • officer1.token.sig1 et officer1.token.sig2 – Le nom du fichier à utiliser pour stocker la signature. Assurez-vous de sauvegarder chaque signature dans un fichier différent.

  • officer1.token – Le nom du fichier qui contient le jeton que le responsable de chiffrement signe.

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

Dans la commande suivante, officer2 signe le même jeton.

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

Approbation du jeton signé sur le HSM

Une fois qu'un responsable de chiffrement obtient le nombre minimal d'approbations (signatures) d'autres CO, alors il doit approuver le jeton signé sur le HSM.

Pour approuver le jeton signé sur le HSM
  1. Créez un fichier d'approbation de jeton. Pour plus d'informations, consultez l'exemple suivant.

  2. Utilisez la commande suivante pour démarrer l'outil de ligne de commande cloudhsm_mgmt_util.

    $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
  3. Utilisez la commande loginHSM pour vous connecter aux HSM en tant que CO. Pour plus d’informations, consultez Gestion des utilisateurs HSM avec l'Utilitaire de gestion CloudHSM (CMU).

  4. Utilisez la commande approveToken pour approuver le jeton signé, en transmettant le fichier d'approbation du jeton. Pour plus d'informations, consultez l'exemple suivant.

Exemple - Création d'un fichier d'approbation de jeton et approbation du jeton signé sur le HSM

Le fichier d'approbation de jeton est un fichier texte dans un format particulier que le HSM nécessite. Le fichier contient des informations sur le jeton, ses approbateurs et leurs signatures. L'exemple suivant montre un exemple de fichier d'approbation de jeton.

# 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 approvals Number 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 CU Approver Name = officer1; Approval File = officer1.token.sig1; # Approver 2 # Type the approver's type, name, and the path to the file that # contains the approver's signature. Approver Type = 2; # 2 for CO, 1 for CU Approver Name = officer2; Approval File = officer1.token.sig2;

Après avoir créé le fichier, le jeton d'approbation CO utilise l'outil de ligne de commande cloudhsm_mgmt_util pour vous connecter au HSM. Le CO utilise ensuite la commande approveToken pour approuver le jeton, comme indiqué dans l'exemple suivant. Remplacez approval.txt par le nom du fichier d'approbation du jeton.

aws-cloudhsm>approveToken approval.txt approveToken success on server 0(10.0.2.14) approveToken success on server 1(10.0.1.4)

Lorsque cette commande réussit, le module HSM a approuvé le jeton de quorum. Pour vérifier le statut d'un jeton, utilisez la commande listTokens, comme indiqué dans l'exemple suivant. La sortie de la commande affiche que le jeton a le nombre requis d'approbations.

La durée de validité du jeton indique la durée pendant laquelle le jeton est assuré de demeurer sur le module HSM. Même après que la durée de validité du jeton s'est écoulée (zéro seconde), vous pouvez continuer d'utiliser le jeton.

aws-cloudhsm>listTokens ===================== Server 0(10.0.2.14) ===================== -------- Token - 0 ---------- Token: Id:1 Service:3 Node:1 Key Handle:0 User:officer1 Token Validity: 506 sec Required num of approvers : 2 Current num of approvals : 2 Approver-0: officer1 Approver-1: officer2 Num of tokens = 1 ===================== Server 1(10.0.1.4) ===================== -------- Token - 0 ---------- Token: Id:1 Service:3 Node:0 Key Handle:0 User:officer1 Token Validity: 506 sec Required num of approvers : 2 Current num of approvals : 2 Approver-0: officer1 Approver-1: officer2 Num of tokens = 1 listTokens success

Utilisation du jeton pour les opérations de gestion des utilisateurs

Une fois qu'un CO possède un jeton avec le nombre requis d'approbations, comme illustré dans la section précédente, le CO peut effectuer l'une des opérations de gestion d'utilisateur HSM suivantes :

  • Créer un utilisateur HSM avec la commande createUser

  • Supprimer un utilisateur HSM avec la commande deleteUser

  • Modifier le mot de passe d'un autre utilisateur HSM avec la commande changePswd

Pour plus d'informations sur l'utilisation de ces commandes, consultez Gestion des utilisateurs HSM.

Le CO peut utiliser le jeton pour une seule opération. Lorsque cette opération réussit, le jeton n'est plus valide. Pour effectuer une autre opération de gestion de l'utilisateur HSM, le CO doit obtenir un nouveau jeton de quorum, obtenir de nouvelles signatures des approbateurs et approuver le nouveau jeton sur le HSM.

Note

Le jeton MofN n'est valide que tant que votre session de connexion en cours est ouverte. Si vous vous déconnectez de cloudhsm_mgmt_util ou si la connexion réseau est déconnectée, le jeton n'est plus valide. De même, un jeton autorisé ne peut être utilisé que dans cloudhsm_mgmt_util, il ne peut pas être utilisé pour s'authentifier dans une autre application.

Dans l'exemple de commande suivant, le CO crée un utilisateur sur le HSM.

aws-cloudhsm>createUser CU user1 password *************************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 Creating User user1(CU) on 2 nodes

Une fois que la commande précédente a réussi, une commande listUsers affiche le nouvel utilisateur.

aws-cloudhsm>listUsers Users 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 NO Users 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 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 le CO essaie d'effectuer une autre opération de gestion de l'utilisateur HSM, l'opération échoue avec une erreur d'authentification par quorum, comme illustré dans l'exemple suivant.

aws-cloudhsm>deleteUser CU user1 Deleting user user1(CU) on 2 nodes deleteUser failed: RET_MXN_AUTH_FAILED deleteUser failed on server 0(10.0.2.14) Retry/rollBack/Ignore?(R/B/I):I deleteUser failed: RET_MXN_AUTH_FAILED deleteUser failed on server 1(10.0.1.4) Retry/rollBack/Ignore?(R/B/I):I

La commande listTokens montre que le CO n'a pas de jetons approuvés, comme illustré dans l'exemple suivant. Pour effectuer une autre opération de gestion de l'utilisateur HSM, le CO doit obtenir un nouveau jeton de quorum, obtenir de nouvelles signatures des approbateurs et approuver le nouveau jeton sur le 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