Générez une clé AWS CloudHSM symétrique en utilisant KMU - 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.

Générez une clé AWS CloudHSM symétrique en utilisant KMU

Utilisez la genSymKey commande de l'outil AWS CloudHSM key_mgmt_util pour générer une clé symétrique dans vos modules de sécurité matériels (). HSM Vous pouvez spécifier le type et la taille de la clé, attribuer un identifiant et une étiquette, et partager la clé avec d'autres HSM utilisateurs. Vous pouvez également créer des clés non extractibles et des clés qui expirent lorsque la session se termine. Lorsque la commande aboutit, elle renvoie un descripteur de touche qu'elle HSM affecte à la touche. Vous pouvez utiliser le handle de clé pour identifier la clé auprès d'autres commandes.

Avant d'exécuter une commande key_mgmt_util, vous devez démarrer key_mgmt_util et vous connecter en tant qu'utilisateur cryptographique (CU). HSM

Syntaxe

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]

Exemples

Ces exemples montrent comment genSymKey créer des clés symétriques dans votreHSMs.

Astuce

Pour utiliser les clés que vous créez avec ces exemples pour les HMAC opérations, vous devez définir OBJ_ATTR_SIGN et OBJ_ATTR_VERIFY to TRUE après avoir généré la clé. Pour définir ces valeurs, utilisez-les setAttribute dans Cloud HSM Management Utility (CMU). Pour plus d'informations, consultez setAttribute.

Exemple : Génère une AES clé

Cette commande crée une AES clé de 256 bits avec une aes256 étiquette. La sortie indique que le handle de clé de la nouvelle clé est 6.

Command: genSymKey -t 31 -s 32 -l aes256 Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Created. Key Handle: 6 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Exemple : Créer une clé de session

Cette commande crée une AES clé non extractible de 192 bits qui n'est valide que dans la session en cours. Vous pouvez créer une clé de ce type pour encapsuler (puis immédiatement désencapsuler) une clé en cours d'exportation.

Command: genSymKey -t 31 -s 24 -l tmpAES -id wrap01 -nex -sess
Exemple : Renvoyer rapidement

Cette commande crée une clé générique de 512 octets avec une étiquette de IT_test_key. La commande n'attend pas que la clé soit synchronisée avec tous les membres HSMs du cluster. Au lieu de cela, il revient dès que la clé est créée sur n'importe lequel HSM (-min_srv 1) ou en 1 seconde (-timeout 1), selon la plus courte des deux. Si la clé n'est pas synchronisée avec le nombre minimum spécifié HSMs avant l'expiration du délai d'expiration, elle n'est pas générée. Vous pouvez utiliser une commande comme celle-ci dans un script qui crée de nombreuses clés, tel que la boucle for dans l'exemple suivant.

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 singlecmd loginHSM -u CU -s example_user -p example_pwd genSymKey -l aes -t 31 -s 32 -min_srv 1 -timeout 1; done;
Exemple : Créer une clé générique autorisée par quorum

Cette commande crée une clé secrète générique de 2 048 bits avec l'étiquette generic-mV2. La commande utilise le paramètre -u pour partager la clé avec un autre utilisateur de chiffrement, l'utilisateur 6. Elle utilise le paramètre -m_value pour exiger un quorum d'au moins deux approbations pour les opérations cryptographiques qui utilisent la clé. La commande utilise également le paramètre -attest pour vérifier l'intégrité du microprogramme sur lequel la clé est générée.

La sortie montre que la commande a généré une clé avec un handle de clé 9 et que le contrôle d'attestation sur le microprogramme du cluster a abouti.

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
Exemple : Créer et examiner une clé

Cette commande crée une triple DES touche avec une 3DES_shared étiquette et un identifiant deIT-02. La clé peut être utilisée par l'utilisateur actuel et les utilisateurs 4 et 5. La commande échoue si l'ID n'est pas unique dans le cluster ou si l'utilisateur actuel est l'utilisateur 4 ou 5.

La sortie indique que la nouvelle clé a le handle de clé 7.

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

Pour vérifier que la nouvelle DES clé 3 appartient à l'utilisateur actuel et qu'elle est partagée avec les utilisateurs 4 et 5, utilisezgetKeyInfo. La commande utilise le handle qui a été attribué à la nouvelle clé (Key Handle: 7).

La sortie confirme que la clé est détenue par l'utilisateur 3 et partagée avec les utilisateurs 4 et 5.

Command: getKeyInfo -k 7 Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS Owned by user 3 also, shared to following 2 user(s): 4, 5

Pour vérifier les autres propriétés de la clé, utilisez getAttribute. La première commande utilise getAttribute pour obtenir tous les attributs (-a 512) du handle de clé 7 (-o 7). Elle les écrit dans le fichier attr_7. La seconde commande utilise cat pour obtenir le contenu du fichier attr_7.

Cette commande confirme que la clé 7 est une clé symétrique 3 () de 192 bits DES (OBJ_ATTR_VALUE_LEN 0x00000018ou 24 octetsOBJ_ATTR_KEY_TYPE 0x15) avec une étiquette de (OBJ_ATTR_CLASS 0x04) et un ID de 3DES_shared (OBJ_ATTR_LABEL 3DES_shared). IT_02 OBJ_ATTR_ID IT-02 La clé est persistante (OBJ_ATTR_TOKEN 0x01) et extractible (OBJ_ATTR_EXTRACTABLE 0x01), et elle peut être utilisée pour le chiffrement, le déchiffrement et l'encapsulage.

Astuce

Pour rechercher les attributs d'une clé que vous avez créée, tels que le type, la longueur, le libellé et l'ID, utilisez getAttribute. Pour trouver les clés d'un utilisateur en particulier, utilisez getKeyInfo. Pour rechercher des clés en fonction de leurs valeurs d'attribut, utilisez findKey.

Pour obtenir de l'aide sur l'interprétation des attributs de clé, consultez le AWS CloudHSM référence d'attribut clé pour KMU.

Command: getAttribute -o 7 -a 512 -out attr_7 got all attributes of size 444 attr cnt 17 Attributes dumped into attr_7 file Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS $ cat attr_7 OBJ_ATTR_CLASS 0x04 OBJ_ATTR_KEY_TYPE 0x15 OBJ_ATTR_TOKEN 0x01 OBJ_ATTR_PRIVATE 0x01 OBJ_ATTR_ENCRYPT 0x01 OBJ_ATTR_DECRYPT 0x01 OBJ_ATTR_WRAP 0x00 OBJ_ATTR_UNWRAP 0x00 OBJ_ATTR_SIGN 0x00 OBJ_ATTR_VERIFY 0x00 OBJ_ATTR_LOCAL 0x01 OBJ_ATTR_SENSITIVE 0x01 OBJ_ATTR_EXTRACTABLE 0x01 OBJ_ATTR_LABEL 3DES_shared OBJ_ATTR_ID IT-02 OBJ_ATTR_VALUE_LEN 0x00000018 OBJ_ATTR_KCV 0x59a46e
Astuce

Pour utiliser les clés que vous créez avec ces exemples pour les HMAC opérations, vous devez définir OBJ_ATTR_SIGN et OBJ_ATTR_VERIFY to TRUE après avoir généré la clé. Pour définir ces valeurs, utilisez setAttribute inCMU. Pour plus d'informations, consultez setAttribute.

Paramètres

-h

Affiche l'aide concernant la commande.

Obligatoire : oui

-t

Spécifie le type de la clé symétrique. Entrez la constante qui représente le type de clé. Par exemple, pour créer une AES clé, tapez-t 31.

Valeurs valides :

  • 16 ans : GENERIC_ SECRET. Une clé secrète générique est un tableau d'octets qui n'est conforme à aucune norme particulière, telle que les exigences relatives à une AES clé.

  • 18 ans : RC4. RC4les clés ne sont pas valides en mode FIPS -mode HSMs

  • 21 : Triple DES (3DES). Conformément aux NIST directives, cela n'est pas autorisé pour les clusters en FIPS mode après 2023. Pour les clusters en FIPS mode non, cela est toujours autorisé après 2023. Consultez FIPS140 Conformité : dépréciation du mécanisme 2024 pour plus de détails.

  • 31 : AES

Obligatoire : oui

-s

Spécifie la taille de la clé en octets. Par exemple, pour créer une clé de 192 bits, tapez 24.

Valeurs valides pour chaque type de clé :

  • AES: 16 (128 bits), 24 (192 bits), 32 (256 bits)

  • 3 DES : 24 (192 bits)

  • Secret générique : <3584 (28672 bits)

Obligatoire : oui

-l

Spécifie l'étiquette définie par l'utilisateur pour la clé. Saisissez une chaîne.

Vous pouvez utiliser n'importe quelle phrase qui vous aide à identifier la clé. Comme il n'est pas nécessaire que l'étiquette soit unique, vous pouvez l'utiliser pour regrouper et classer des clés.

Obligatoire : oui

-attest

Exécute un contrôle d'intégrité qui vérifie que le microprogramme sur lequel le cluster est exécuté n'a pas été altéré.

Par défaut : aucune vérification d'attestation.

Obligatoire : non

-id

Spécifie un identifiant défini par l'utilisateur pour la clé. Saisissez une chaîne unique dans le cluster. La valeur par défaut est une chaîne vide.

Valeur par défaut : pas de valeur d'ID.

Obligatoire : non

-min_srv

Spécifie le nombre minimum HSMs sur lequel la clé est synchronisée avant l'expiration de la valeur du -timeout paramètre. Si la clé n'est pas synchronisée sur le nombre spécifié de serveurs dans le temps imparti, elle n'est pas créée.

AWS CloudHSM synchronise automatiquement chaque clé avec toutes les clés HSM du cluster. Pour accélérer votre processus, définissez une valeur inférieure min_srv au nombre de HSMs dans le cluster et définissez une valeur de délai d'expiration faible. Toutefois, notez que certaines demandes peuvent ne pas générer une clé.

Valeur par défaut : 1

Obligatoire : non

-m_value

Spécifie le nombre d'utilisateurs qui doivent approuver les opérations cryptographiques qui utilisent la clé. Entrez une valeur comprise entre 0 et 8.

Ce paramètre définit une exigence d'authentification par quorum pour la clé. La valeur par défaut, 0, désactive la fonctionnalité d'authentification par quorum pour la clé. Lorsque l'authentification par quorum est activée, le nombre d'utilisateurs spécifié doivent signer un jeton pour approuver les opérations de chiffrement qui utilisent la clé, et les opérations qui partagent la clé ou annulent son partage.

Pour trouver le m_value code d'une clé, utilisez getKeyInfo.

Ce paramètre est valide uniquement quand le paramètre -u de la commande partage la clé avec suffisamment d'utilisateurs pour satisfaire l'exigence m_value.

Par défaut : 0

Obligatoire : non

-nex

Rend la clé non extractible. La clé générée ne peut pas être exportée depuis le HSM.

Par défaut : la clé est extractible.

Obligatoire : non

-sess

Crée une clé qui existe uniquement dans la session en cours. La clé ne peut pas être récupérée une fois la session terminée.

Utilisez ce paramètre lorsque vous n'avez besoin que brièvement d'une clé, par exemple une clé d'encapsulage qui chiffre, puis déchiffre rapidement, une autre clé. N'utilisez pas de clé de session pour chiffrer les données que vous pourriez avoir besoin de déchiffrer après la fin de la session.

Pour remplacer une clé de session par une clé persistante (jeton), utilisez setAttribute.

Par défaut : la clé est persistante.

Obligatoire : non

-timeout

Spécifie la durée (en secondes) pendant laquelle la commande attend qu'une touche soit synchronisée avec le nombre de touches HSMs spécifié par le min_srv paramètre.

Ce paramètre n'est valide que lorsque le paramètre min_srv est également utilisé dans la commande.

Par défaut : aucun délai d’expiration. La commande attend indéfiniment et ne renvoie des résultats que lorsque la clé est synchronisée avec le nombre minimum de serveurs.

Obligatoire : non

-u

Pour partager la clé avec les utilisateurs spécifiés. Ce paramètre autorise les autres utilisateurs de HSM cryptomonnaies (CUs) à utiliser cette clé dans des opérations cryptographiques.

Entrez une liste d'HSMutilisateurs séparée par des virgulesIDs, telle que -. u 5,6 N'incluez pas le HSM nom d'utilisateur de l'utilisateur actuel. Pour rechercher HSM un utilisateur IDs CUs sur leHSM, utilisez listUsers. Pour partager ou annuler le partage de clés existantes, utilisez-les shareKeydans le cloudhs_mgmt_util.

Par défaut : seul l'utilisateur actuel peut utiliser la clé.

Obligatoire : non

Rubriques en relation