Comment puis-je partager des clés avec d'autres utilisateurs de façon à n’autoriser que certaines fonctions cryptographiques dans CloudHSM ?
Comment puis-je autoriser un utilisateur à encapsuler une clé et autoriser un autre utilisateur uniquement à la désencapsuler ?
Brève description
Vous pouvez partager l'accès des utilisateurs aux clés stockées dans les modules de sécurité matérielle (hardware security module, HSM) dans votre cluster AWS CloudHSM. Dans ce cas, les utilisateurs disposent de toutes les autorisations telles qu'encapsuler, désencapsuler, chiffrer et déchiffrer.
Résolution
Exportez une clé, puis réimportez-la deux fois. Les attributs de la clé importée changent avec les autorisations d'encapsuler ou de désencapsuler. Ensuite, la clé est partagée avec différents utilisateurs pour exécuter les fonctions d'encapsulage et de désencapsulage.
Répertorier tous les utilisateurs de votre cluster à l'aide de l'outil de ligne de commande cloudhsm_mgmt_util
Avant de commencer à utiliser l'outil cloudhsm_mgmt_util consultez Mise en route avec cCloudHSM Management Utility (CMU).
Exécutez la commande listUsers comme dans l'exemple suivant :
Number of users found:8 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 CO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 NO 0 NO 4 CO crypto_user1 NO 0 NO 5 CO crypto_user2 NO 0 NO 6 CU crypto_user3 NO 0 NO 7 CU crypto_user4 NO 0 NO 8 CU crypto_user5 NO 0 NO
Comme crypto_user1 et crypto_user2 sont des responsables de la cryptographie, ils ne peuvent pas posséder des clés. Cet exemple utilise les utilisateurs de chiffrement crypto_user3, crypto_user4 et crypto_user5.
Utilisez la commande genSymKey avec l'outil de ligne de commande key_mgmt_util pour créer une clé symétrique AES dans votre module HSM
Connectez-vous à votre module HSM en utilisant crypto_user3, puis utilisez l'outil key_mgmt_util pour créer une clé symétrique pour chiffrer et déchiffrer. Utilisez la commande genSymKey pour créer une clé de bits AES 256 labellisée rootKey, comme dans l'exemple suivant :
Command: genSymKey -t 31 -s 32 -l rootKey Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Created. Key Handle: 786512 Cluster Error Status Node id 3 and err state 0x00000000 : HSM Return: SUCCESS Node id 4 and err state 0x00000000 : HSM Return: SUCCESS
Cet exemple utilise le descripteur de clé 786512.
Créer une clé de session à l'aide de la commande genSymKey pour encapsuler la clé sur le disque et la désencapsuler dans votre HSM module
Créez une clé de session en utilisant le paramètre -sess. Veillez à maintenir la fenêtre de session ouverte et vérifiez que la connexion est établie et que crypto_user3 reste connecté. Utilisez la commande genSymKey avec l'étiquette sessionKey pour identifier cette clé ultérieurement.
Command: genSymKey -t 31 -s 32 -sess -l sessionKey Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Created. Key Handle: 786511 Cluster Error Status Node id 3 and err state 0x00000000 : HSM Return: SUCCESS Node id 4 and err state 0x00000000 : HSM Return: SUCCESS
Dans cet exemple, la clé de session 786511 exécute les opérations wrapKey et unWrapKey.
Remarque : la clé de session est supprimée une fois la session fermée.
Utiliser la commande wrapKey pour écrire la clé sur le disque et la conserver secrète
Exportez la clé symétrique 786512 vers un fichier sur votre disque local. La clé symétrique 786512 chiffre avec la clé de session 786511. Ce chiffrement garantit que vous ne stockez jamais la clé symétrique 786512 en texte brut en dehors de votre module HSM. Une fois que vous avez encapsulé la clé rootKey sur votre disque local, utilisez la commande unWrapKey pour importer la rootKey 786512 dans le module HSM. Créez une copie de rootKey dans le module HSM en utilisant un descripteur de clé différent. Ensuite, modifiez les attributs de la copie rootKey pour restreindre l'utilisation de la clé.
Dans cet exemple, la clé sessionKey 786511 encapsule la clé rootKey 786512 et l'enregistre sur le disque local dans le fichier root.key :
Command: wrapKey -k 786512 -w 786511 -out root.key Key Wrapped. Wrapped Key written to file "root.key length 312 Cfm2WrapKey returned: 0x00 : HSM Return: SUCCESS
Remarque : vous pouvez afficher la clé encapsulée dans votre répertoire local à l'aide de la commande ls.
Utiliser la commande unWrapKey pour réimporter la clé vers votre module HSM avec un nouveau descripteur
Réimportez la clé root.key dans le module HSM en utilisant la commande unWrapKey. Cet exemple crée les descripteurs de clé 786523 et 786524.
Important : effectuez deux fois cette étape.
Command: unWrapKey -f root.key -w 786511 Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Key Unwrapped. Key Handle: 786523 Cluster Error Status Node id 3 and err state 0x00000000 : HSM Return: SUCCESS Node id 4 and err state 0x00000000 : HSM Return: SUCCESS Command: unWrapKey -f root.key -w 786511 Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Key Unwrapped. Key Handle: 786524 Cluster Error Status Node id 3 and err state 0x00000000 : HSM Return: SUCCESS Node id 4 and err state 0x00000000 : HSM Return: SUCCESS
Vérifier les descripteurs de clé et affecter des attributs
Utilisez la commande cloudhsm_mgmt_util pour vérifier tous les descripteurs de clé détenus par crypto_user3. Dans cet exemple, prêtez attention à la clé rootKey 786512 et aux descripteurs de clé importés 786523 et 786524. Vous saisissez l'ID utilisateur 6 et 0 pour crypto_user3 pour indiquer que vous ne voulez pas hacher toutes les clés calculées. En procédant ainsi, vous pouvez voir les descripteurs de clé que vous utilisez dans le module HSM. Les descripteurs de clé affichés par la commande findAllKeys sont identiques sur le plan cryptographique, et ont les mêmes attributs que la rootKey 786512.
Remarque : le descripteur de clé de session 786511 n'est pas affiché, car il ne reste que le temps de la session.
aws-cloudhsm>findAllKeys 6 0 Keys on server 0(172.31.3.131): Number of keys found 3 number of keys matched from start index 0::3 786512,786523,786524 findAllKeys success on server 0(172.31.3.131) Keys on server 1(172.31.4.209): Number of keys found 3 number of keys matched from start index 0::3 786512,786523,786524 findAllKeys success on server 1(172.31.4.209)
Cet exemple attribue un descripteur de clé pour encapsuler la clé 786524, et l'autre descripteur de clé pour désencapsuler la clé 786523.
Utiliser la commande cloudhsm_mgmt_util avec la commande setAttribute pour configurer les attributs d'encapsulage et de désencapsulage de clé
La commande setAttribute nécessite le descripteur de clé et l'ID d'attribut. L'ID d'attribut fait référence à un nombre entier qui correspond à un attribut de clé. Répertoriez ces attributs en utilisant la commande listAttibutes. Utilisez la commande aws-cloudhsm>setAttribute avec la clé 786523 pour affecter à l'attribut OBJ_ATTR_WRAP les valeurs 262 et 0.
aws-cloudhsm>setAttribute 786523 262 0 *************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. Cav server does NOT synchronize these changes with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y setAttribute success on server 0(172.31.3.131) setAttribute success on server 1(172.31.4.209)
Ensuite, utilisez la commande setAttribute avec la clé 786524 pour affecter à l'attribut OBJ_ATTR_UNWRAP les valeurs 263 et 0. L'attribut OBJ_ATTR_WRAP est 262.
aws-cloudhsm>setAttribute 786524 263 0 *************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. Cav server does NOT synchronize these changes with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y setAttribute success on server 0(172.31.3.131) setAttribute success on server 1(172.31.4.209)
Maintenant, vous disposez de la clé rootKey 786512 qui peut à la fois encapsuler et désencapsuler, de la clé 786524 qui ne peut qu’encapsuler et de la clé 786523 qui ne peut que désencapsuler.
Dans cet exemple, crypto_user3 possède les clés 786512, 786523, 786524, et les clés ne sont pas partagées.
Tester l'encapsulage de la clé pour vérifier que tous les attributs sont définis correctement
Exécutez la commande wrapKey avec l'outil de ligne de commande key_mgmt_util.
Encapsulez la clé rootKey 786512 sur votre disque local avec le descripteur 786523 que vous avez attribué pour le désencapsulage.
Ensuite, encapsulez la clé rootKey 786512 sur votre disque local avec le descripteur 786524 que vous avez attribué pour l'encapsulage.
Command: wrapKey -k 786512 -w 786523 -out wrapped.key Cfm2WrapKey returned: 0xb3 HSM Error: This operation violates the current configured/FIPS policies Command: wrapKey -k 786512 -w 786524 -out wrapped.key Key Wrapped. Wrapped Key written to file "wrapped.key.test length 309 Cfm2WrapKey returned: 0x00 : HSM Return: SUCCESS
Dans cet exemple, la commande échoue pour l'encapsulage de la clé 786523, comme indiqué dans l'erreur HSM. L'erreur HSM est générée parce que l'attribut d'encapsulage OBJ_ATTR_WRAP a la valeur 0.
Exécuter la commande getAttribute pour vérifier que la valeur d'attribut de clé est false
La commande getAttribute utilise les outils key_mgmt_util et cloudhsm_mgmt_util. Même si la syntaxe est différente pour les deux outils de ligne de commande, chaque outil affiche le résultat des attributs. Cet exemple utilise l'outil cloudhsm_mgmt_util, car il ne nécessite pas d'attributs pour enregistrer dans un fichier.
aws-cloudhsm>getAttribute 786523 262 Attribute Value on server 0(172.31.3.131): OBJ_ATTR_WRAP 0x00000000 Attribute Value on server 1(172.31.4.209): OBJ_ATTR_WRAP 0x00000000
Partager des clés avec d'autres utilisateurs
Partagez les clés avec crypto_user4 (ID utilisateur 7) et crypto_user5 (ID utilisateur 8) en utilisant la commande cloudhsm_mgm_util. Partagez la clé de désencapsulage 786523 avec crypto_user4, et la clé d'encapsulage 786524 avec crypto_user5. Ainsi, les utilisateurs crypto_user4 et crypto_user5 peuvent utiliser la clé pour les fonctions cryptographiques, mais ils ne peuvent pas supprimer, exporter, partager, annuler le partage ou modifier les attributs de clé. Cela fait en sorte que les utilisateurs crypto_user4 et crypto_user5 ne puissent utiliser la clé que pour les opérations spécifiées par crypto_user3 lors de l'attribution des attributs de clé.
aws-cloudhsm>shareKey 786523 7 1 *************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. Cav server does NOT synchronize these changes with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y shareKey success on server 0(172.31.3.131) shareKey success on server 1(172.31.4.209) aws-cloudhsm>shareKey 786524 8 1 *************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. Cav server does NOT synchronize these changes with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y shareKey success on server 0(172.31.3.131) shareKey success on server 1(172.31.4.209)
Tester la fonctionnalité d'encapsulage par rapport à la fonctionnalité de désencapsulage en utilisant la commande wrapKey entre le disque et votre module HSM
Vérifiez que crypto_user4 (ID utilisateur 7) peut désencapsuler la clé encapsulée avec crypto_user3.
Les clés crypto_user3 et crypto_user_4 sont identiques sur le plan cryptographique et utilisées pour exécuter les fonctions d'encapsulage et de désencapsulage séparément.
Command: unWrapKey -f wrapped.key -w 786523 Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Key Unwrapped. Key Handle: 1048669 Cluster Error Status Node id 3 and err state 0x00000000 : HSM Return: SUCCESS Node id 4 and err state 0x00000000 : HSM Return: SUCCESS
Informations connexes

Contenus pertinents
- demandé il y a 6 jourslg...
- demandé il y a 2 moislg...
- demandé il y a 2 moislg...
- demandé il y a un moislg...
- demandé il y a 2 moislg...
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a 10 mois
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 5 mois