Exportez une copie en texte brut d'une AWS CloudHSM clé 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.

Exportez une copie en texte brut d'une AWS CloudHSM clé en utilisant KMU

Utilisez la exSymKey commande de l'outil AWS CloudHSM key_mgmt_util pour exporter une copie en texte brut d'une clé symétrique depuis le module de sécurité matérielle (HSM) et l'enregistrer dans un fichier sur le disque. Pour exporter une copie cryptée (encapsulée) d'une clé, utilisez wrapKey. Pour importer une clé en texte brut, comme celles qui sont exSymKey exportées, utilisez imSymKey.

Au cours du processus d'exportation, exSymKey utilise une AES clé que vous spécifiez (la clé d'encapsulation) pour encapsuler (chiffrer) puis déballer (déchiffrer) la clé à exporter. Toutefois, le résultat de l'opération d'exportation est une clé en texte brut (décapsulée) sur disque.

Seul le propriétaire d'une clé, c'est-à-dire l'utilisateur de chiffrement ayant créé la clé, peut l'exporter. Les utilisateurs qui partagent la clé peut l'utiliser dans des opérations de chiffrement, mais ne peuvent pas l'exporter.

L'exSymKeyopération copie le contenu clé dans un fichier que vous spécifiez, mais elle ne supprime pas la clé duHSM, ne modifie pas ses attributs de clé et ne vous empêche pas d'utiliser la clé dans des opérations cryptographiques. Vous pouvez exporter la même clé plusieurs fois.

exSymKey exporte uniquement des clés symétriques. Pour exporter des clés publiques, utilisez exportPubKey. Pour exporter des clés privées, utilisez exportPrivateKey.

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

exSymKey -h exSymKey -k <key-to-export> -w <wrapping-key> -out <key-file> [-m 4] [-wk <unwrapping-key-file> ]

Exemples

Ces exemples montrent comment exSymKey exporter les clés symétriques que vous possédez depuis votreHSMs.

Exemple : Exporter une clé DES symétrique à 3

Cette commande exporte une clé symétrique triple DES (3DES) (poignée de touches7). Il utilise une AES clé existante (poignée de clé6) HSM comme clé d'encapsulation. Ensuite, il écrit le texte en clair de la DES touche 3 dans le 3DES.key fichier.

La sortie indique que la clé 7 (la DES clé 3) a été correctement encapsulée et décompressée, puis écrite dans le 3DES.key fichier.

Avertissement

Bien que la sortie indique qu'une « clé symétrique encapsulée » a été écrite dans le fichier de sortie, ce dernier contient une clé en texte brut (désencapsulée).

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"
Exemple : Exportation avec une clé d'encapsulage de session unique

Cet exemple montre comment utiliser une clé qui existe uniquement dans la session en tant que clé d'encapsulage. La clé à exporter étant encapsulée, immédiatement désencapsulée, et fournie sous forme de texte brut, il n'est pas nécessaire de conserver la clé d'encapsulage.

Cette série de commandes exporte une AES touche avec un manche 8 depuis leHSM. Il utilise une clé de AES session créée spécialement à cet effet.

La première commande permet genSymKeyde créer une clé de 256 bitsAES. Elle utilise le paramètre -sess pour créer une clé qui existe uniquement dans la session en cours.

La sortie indique que la touche HSM Create262168.

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

Ensuite, l'exemple vérifie que la clé à exporter (clé 8) est une clé symétrique extractible. Il vérifie également que la clé d'encapsulation, clé262168, est une AES clé qui n'existe que dans la session. Vous pouvez utiliser la findKeycommande, mais cet exemple exporte les attributs des deux clés vers des fichiers, puis les utilise grep pour rechercher les valeurs d'attribut pertinentes dans le fichier.

Ces commandes utilisent getAttribute avec une valeur -a de 512 (tous) pour obtenir tous les attributs pour les clés 8 et 262168. Pour plus d'informations sur les attributs de clé, consultez AWS CloudHSM référence d'attribut clé pour KMU.

getAttribute -o 8 -a 512 -out attributes/attr_8 getAttribute -o 262168 -a 512 -out attributes/attr_262168

Ces commandes utilisent grep pour vérifier les attributs de la clé à exporter (clé 8) et la clé chiffrement de session unique (clé 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

Enfin, nous utilisons une commande exSymKey pour exporter la clé 8 à l'aide de la clé de session (clé 262168) en tant que clé d'encapsulage.

Lorsque la session prend fin, la clé 262168 n'existe plus.

Command: exSymKey -k 8 -w 262168 -out aes256_H8.key Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS Wrapped Symmetric Key written to file "aes256_H8.key"
Exemple : Utiliser une clé de désencapsulage externe

Cet exemple montre comment utiliser une clé de déballage externe pour exporter une clé depuis leHSM.

Lorsque vous exportez une clé depuis leHSM, vous spécifiez une AES clé sur le HSM comme clé d'encapsulation. Par défaut, cette clé d'encapsulage est utilisée pour encapsuler et désencapsuler la clé à exporter. Toutefois, vous pouvez utiliser le paramètre -wk pour indiquer à exSymKey d'utiliser une clé externe dans un fichier sur disque pour le désencapsulage. Dans ce cas, la clé spécifiée par le paramètre -w encapsule la clé cible, et la clé contenue dans le fichier et spécifiée par le paramètre -wk désencapsule la clé.

Étant donné que la clé d'emballage doit être une AES clé, ce qui est symétrique, la clé d'emballage contenue dans le disque HSM et la clé de déballage sur le disque doivent comporter le même matériau de clé. Pour ce faire, vous devez importer la clé d'encapsulation vers HSM ou exporter la clé d'encapsulation depuis l'opération d'exportation HSM antérieure à l'exportation.

Cet exemple crée une clé en dehors du HSM et l'importe dans leHSM. Il utilise la copie interne de la clé pour encapsuler une clé symétrique en train d'être exportée, et la copie de la clé dans le fichier pour la désencapsuler.

La première commande utilise Open SSL pour générer une clé de 256 bitsAES. Elle enregistrer la clé dans le fichier aes256-forImport.key. La SSL commande Open ne renvoie aucune sortie, mais vous pouvez utiliser plusieurs commandes pour confirmer son succès. Cet exemple utilise l'outil wc (wordcount), qui confirme que le fichier contient 32 octets de données.

$ openssl rand -out keys/aes256-forImport.key 32 $ wc keys/aes256-forImport.key 0 2 32 keys/aes256-forImport.key

Cette commande utilise la imSymKeycommande pour importer la AES clé du aes256-forImport.key fichier vers leHSM. Lorsque la commande est terminée, la clé existe dans le HSM descripteur de touche 262167 et dans le aes256-forImport.key fichier.

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

Cette commande utilise la clé dans une opération d'exportation. La commande utilise exSymKey pour exporter la clé21, une clé de 192 bitsAES. Pour encapsuler la clé, elle utilise la clé262167, qui est la copie importée dans leHSM. Pour désencapsuler la clé, elle utilise les mêmes éléments de clé dans le fichier aes256-forImport.key. Lorsque la commande aboutit, la clé 21 est exportée vers le fichier aes192_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"

Paramètres

-h

Affiche l'aide concernant la commande.

Obligatoire : oui

-k

Spécifie le handle de clé de la clé à exporter. Ce paramètre est obligatoire. Entrez le handle de clé d'une clé symétrique qui vous appartient. Ce paramètre est obligatoire. Pour trouver les poignées de touches, utilisez la findKeycommande.

Pour vérifier qu'une clé peut être exportée, utilisez la getAttributecommande pour obtenir la valeur de l'OBJ_ATTR_EXTRACTABLEattribut, qui est représentée par une constante354. De même, vous pouvez exporter uniquement les clés qui vous appartiennent. Pour trouver le propriétaire d'une clé, utilisez la getKeyInfocommande.

Obligatoire : oui

-s, sem

Spécifie le handle de clé de la clé d'encapsulage. Ce paramètre est obligatoire. Pour trouver les poignées de touches, utilisez la findKeycommande.

Une clé d'encapsulation est une clé contenue dans le fichier HSM qui est utilisée pour chiffrer (encapsuler) puis déchiffrer (déballer) la clé à exporter. Seules AES les clés peuvent être utilisées comme clés d'emballage.

Vous pouvez utiliser n'importe quelle AES clé (de n'importe quelle taille) comme clé d'emballage. Étant donné que la clé d'encapsulation enveloppe, puis déballe immédiatement, la clé cible, vous pouvez l'utiliser comme clé de session uniquement comme clé d'AESencapsulation. Pour déterminer si une clé peut être utilisée comme clé d'encapsulation, utilisez getAttributepour obtenir la valeur de l'OBJ_ATTR_WRAPattribut, qui est représentée par la constante262. Pour créer une clé d'encapsulation, utilisez genSymKeypour créer une AES clé (type 31).

Si vous utilisez le paramètre -wk pour spécifier une clé de désencapsulage externe, la clé d'encapsulage -w est utilisée pour encapsuler, mais pas pour désencapsuler, la clé lors de l'exportation.

Note

Le de clé 4 représente une clé interne non prise en charge. Nous vous recommandons d'utiliser une AES clé que vous créez et gérez comme clé d'encapsulation.

Obligatoire : oui

-out

Spécifie le chemin et le nom du fichier de sortie. Lorsque la commande aboutit, ce fichier contient la clé exportée en texte brut. Si le fichier existe déjà, la commande le remplace sans avertissement.

Obligatoire : oui

-m

Spécifie le mécanisme d'encapsulage. La seule valeur valide est 4, qui représente le mécanisme NIST_AES_WRAP.

Obligatoire : non

Par défaut: 4

-wk

Utilisez la AES clé du fichier spécifié pour désencapsuler la clé en cours d'exportation. Entrez le chemin et le nom d'un fichier contenant une AES clé en texte brut.

Lorsque vous incluez ce paramètre. exSymKeyutilise la clé spécifiée par HSM le -w paramètre pour encapsuler la clé en cours d'exportation et utilise la clé du -wk fichier pour la désencapsuler. La valeur des paramètres -w et -wk doivent correspondre à la même clé en texte brut.

Obligatoire : non

Par défaut : utilisez la touche d'emballage du HSM pour le déballer.

Rubriques en relation