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.
Utilisez la imSymKey commande de l'outil AWS CloudHSM key_mgmt_util pour importer une copie en texte brut d'une clé symétrique depuis un fichier dans le module de sécurité matériel (HSM). Vous pouvez l'utiliser pour importer des clés générées par n'importe quelle méthode en dehors du HSM et des clés exportées depuis un HSM, telles que les clés que la exSymKeycommande écrit dans un fichier.
Pendant le processus d'importation, imSymKey utilise une clé AES que vous sélectionnez (la clé d'encapsulage) pour encapsuler (chiffrer), puis désencapsuler (déchiffrer) la clé à importer. Cependant, imSymKey fonctionne uniquement sur les fichiers qui contiennent des clés en texte brut. Pour exporter et importer des clés chiffrées, utilisez le WrapKey et unWrapKeyles commandes.
De plus, la commande imSymKey importe uniquement les clés symétriques. Pour importer les clés publiques, utilisez importPubKey. Pour importer des clés privées, utilisez importPrivateKeyou WrapKey.
Note
Vous ne pouvez pas importer une clé PEM protégée par mot de passe à l'aide d'une clé symétrique ou privée.
Le fonctionnement des clés importées est très similaire à celui des clés générées dans le HSM. Toutefois, la valeur de l'attribut OBJ_ATTR_LOCAL est zéro, ce qui indique qu'il n'a pas été généré en local. Vous pouvez utiliser la commande suivante pour partager une clé symétrique que vous importez. Vous pouvez utiliser la commande shareKey
dans cloudhsm_mgmt_util pour partager la clé après qu'elle a été importée.
imSymKey -l aesShared -t 31 -f kms.key -w 3296 -u 5
Après avoir importé une clé, n'oubliez pas de marquer ou de supprimer le fichier de clé. Cette commande ne vous empêche pas d'importer plusieurs fois les mêmes éléments de clés. Le résultat, plusieurs clés avec des handles de clé distincts et les mêmes éléments de clé, complique le suivi de l'utilisation des éléments de clé et évite un dépassement des limites de chiffrement.
Avant d'exécuter une commande key_mgmt_util, vous devez démarrer key_mgmt_util et vous connecter au HSM en tant qu'utilisateur de chiffrement (CU).
Syntaxe
imSymKey -h imSymKey -f <key-file> -w <wrapping-key-handle> -t <key-type> -l <label> [-id <key-ID>] [-sess] [-wk <wrapping-key-file> ] [-attest] [-min_srv <minimum-number-of-servers>] [-timeout <number-of-seconds> ] [-u <user-ids>]
Exemples
Ces exemples montrent comment importer imSymKey des clés symétriques dans votre HSMs.
Exemple : Importation d'une clé symétrique AES
Cet exemple permet d'imSymKeyimporter une clé symétrique AES dans le HSMs.
La première commande utilise OpenSSL pour générer une clé symétrique AES 256 bits aléatoire. Elle enregistre la clé dans le fichier aes256.key
.
$
openssl rand -out aes256-forImport.key 32
La deuxième commande permet imSymKey d'importer la clé AES du aes256.key
fichier dans le HSMs. Elle utilise la clé 20, clé AES du HSM, comme clé d'encapsulage et spécifie l'étiquette imported
. Contrairement à l'ID, l'étiquette n'a pas besoin d'être unique dans le cluster. La valeur du paramètre -t
(type) est 31
, qui correspond à AES.
La sortie indique que la clé du fichier a été encapsulée et désencapsulée, puis importée dans le HSM, où le handle de clé 262180 lui a été attribué.
Command:
imSymKey -f aes256.key -w 20 -t 31 -l imported
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Unwrapped. Key Handle: 262180 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
La commande suivante utilise getAttribute pour obtenir l'attribut OBJ_ATTR_LOCAL (attribut 355) de la clé nouvellement importée et l'écrit dans le fichier attr_262180
.
Command:
getAttribute -o 262180 -a 355 -out attributes/attr_262180
Attributes dumped into attributes/attr_262180_imported file Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS
Lorsque vous examinez le fichier d'attribut, vous pouvez voir que l'attribut OBJ_ATTR_LOCAL
a pour valeur zéro, ce qui indique que les clés n'ont pas été générées dans le HSM.
$
cat attributes/attr_262180_local
OBJ_ATTR_LOCAL 0x00000000
Exemple : Déplacement d'une clé symétrique entre les clusters
Cet exemple montre comment utiliser exSymKey et imSymKey pour déplacer une clé AES en texte brut entre les clusters. Vous pouvez utiliser un processus comme celui-ci pour créer un encapsulage AES existant sur les HSMs deux clusters. Une fois que la clé d'encapsulation partagée est en place, vous pouvez utiliser WrapKey unWrapKeypour déplacer les clés chiffrées entre les clusters.
L'utilisateur du CU qui effectue cette opération doit être autorisé à se connecter HSMs aux deux clusters.
La première commande utilise exSymKey pour exporter la clé 14, clé AES 32 bits, depuis le cluster 1 vers le fichier aes.key
. Il utilise la touche 6, une clé AES du HSMs cluster 1, comme clé d'encapsulation.
Command:
exSymKey -k 14 -w 6 -out aes.key
Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS Wrapped Symmetric Key written to file "aes.key"
L'utilisateur se connecte ensuite à key_mgmt_util du cluster 2 et exécute une imSymKey commande pour importer la clé du aes.key
fichier dans le cluster 2. HSMs Cette commande utilise la clé 252152, une touche AES du HSMs cluster 2, comme clé d'encapsulation.
Comme les clés d'encapsulage utilisées par exSymKey et imSymKey encapsulent et désencapsulent immédiatement les clés cibles, les clés d'encapsulage des différents clusters n'ont pas besoin d'être identiques.
La sortie montre que la clé a été importée avec succès dans le cluster 2 et que le handle de clé 21 lui a été attribué.
Command:
imSymKey -f aes.key -w 262152 -t 31 -l xcluster
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Unwrapped. Key Handle: 21 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
Pour prouver que la clé 14 du cluster 1 et la clé 21 du cluster 2 ont les mêmes éléments de clé, recherchez la valeur de contrôle de clé (KCV) de chaque clé. Si les valeurs KCV sont identiques, les éléments de clé sont les mêmes.
La commande suivante utilise getAttribute du cluster 1 pour écrire la valeur de l'attribut KCV (attribut 371) de la clé 14 dans le fichier attr_14_kcv
. Elle utilise ensuite une commande cat pour obtenir le contenu du fichier attr_14_kcv
.
Command:
getAttribute -o 14 -a 371 -out attr_14_kcv
Attributes dumped into attr_14_kcv file
$
cat attr_14_kcv
OBJ_ATTR_KCV 0xc33cbd
Cette commande similaire utilise getAttribute du cluster 2 pour écrire la valeur de l'attribut KCV (attribut 371) de la clé 21 dans le fichier attr_21_kcv
. Elle utilise ensuite une commande cat pour obtenir le contenu du fichier attr_21_kcv
.
Command:
getAttribute -o 21 -a 371 -out attr_21_kcv
Attributes dumped into attr_21_kcv file
$
cat attr_21_kcv
OBJ_ATTR_KCV 0xc33cbd
La sortie montre que les valeurs KCV des deux clés sont identiques, ce qui prouve que les éléments de clé sont les mêmes.
Étant donné que le même contenu clé existe dans les HSMs deux clusters, vous pouvez désormais partager des clés chiffrées entre les clusters sans jamais exposer la clé en texte clair. Par exemple, vous pouvez utiliser la commande wrapKey
avec la clé d'encapsulage 14 pour exporter une clé chiffrée depuis le cluster 1, puis utiliser unWrapKey
avec la clé d'encapsulage 21 pour importer la clé chiffrée dans le cluster 2.
Exemple : Importation d'une clé de session
Cette commande utilise les paramètres -sess
de imSymKey pour importer une clé DES triple 192 bits, valable uniquement pendant la session en cours.
La commande utilise le paramètre -f
pour spécifier le fichier contenant la clé à importer, le paramètre -t
pour spécifier le type de clé et le paramètre -w
pour spécifier la clé d'encapsulage. Elle utilise le paramètre -l
pour spécifier une étiquette qui catégorise la clé et le paramètre -id
pour créer un identifiant descriptif, mais unique, de la clé. Elle utilise également le paramètre -attest
pour vérifier le microprogramme qui importe la clé.
La sortie montre que la clé a été encapsulée et désencapsulée avec succès, puis importée dans le HSM ; enfin, le handle de clé 37 lui a été attribué. De plus, le contrôle d'attestation a été passé avec succès, ce qui indique que le microprogramme n'a pas été falsifié.
Command:
imSymKey -f 3des192.key -w 6 -t 21 -l temp -id test01 -sess -attest
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Unwrapped. Key Handle: 37 Attestation Check : [PASS] Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Ensuite, vous pouvez utiliser les commandes getAttribute ou findKey pour vérifier les attributs de la clé nouvellement importée. La commande suivante utilise findKey pour vérifier que la clé 37 a le type, l'étiquette et l'ID spécifiés par la commande, et qu'il s'agit d'une clé de session. Comme affiché sur la ligne 5 de la sortie, findKey rapporte que la seule clé qui correspond à tous les attributs est la clé 37.
Command:
findKey -t 21 -l temp -id test01 -sess 1
Total number of keys present 1 number of keys matched from start index 0::0 37 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
Paramètres
- -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
- -f
-
Spécifie le fichier qui contient la clé à importer.
Le fichier doit contenir une copie en texte brut d'une clé AES ou Triple DES de la longueur spécifiée. RC4 et les touches DES ne sont pas valides en mode FIPS HSMs.
-
AES : 16, 24 ou 32 octets
-
Triple DES (3DES) : 24 octets
Obligatoire : oui
-
- -h
-
Affiche l'aide concernant la commande.
Obligatoire : oui
- -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
- -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
- -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 chaque HSM du cluster. Pour accélérer votre processus, réglez la valeur de sur 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
- -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
- -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 clé AES, entrez
-t 31
.Valeurs valides :
-
21 : Triple DES (3DES)
. -
31 : AES
Obligatoire : oui
-
- -u
-
Partage la clé que vous importez avec les utilisateurs spécifiés. Ce paramètre autorise les autres utilisateurs du chiffrement HSM (CUs) à utiliser cette clé dans des opérations cryptographiques.
Entrez un identifiant ou une liste d'utilisateurs HSM séparés par des virgules IDs, telle que -u.
5,6
N'incluez pas l'ID utilisateur HSM de l'utilisateur actuel. Pour trouver un ID, vous pouvez utiliser la commande listUsers dans l'outil de ligne de commande cloudhsm_mgmt_util ou la commande listUsers dans l'outil de ligne de commande key_mgmt_util.Obligatoire : non
- -s, sem
-
Spécifie le handle de clé de la clé d'encapsulage. Ce paramètre est obligatoire. Pour trouver des handles de clé, utilisez la commande findKey.
Une clé d'encapsulage est une clé du HSM utilisée pour chiffrer (« encapsuler »), puis déchiffrer (« désencapsuler ») la clé pendant le processus d'importation. Seules les clés AES peut être utilisées en tant que clés d'encapsulage.
Vous pouvez utiliser n'importe quelle clé AES (quelle que soit sa taille) comme clé d'encapsulage. Puisque les clés d'encapsulage encapsulent, puis désencapsulent immédiatement la clé cible, vous pouvez utiliser des clés AES de session unique en tant que clé d'encapsulage. Pour déterminer si une clé peut être utilisée comme clé d'encapsulage, utilisez getAttribute pour obtenir la valeur de l'attribut
OBJ_ATTR_WRAP
(262). Pour créer une clé d'encapsulage, utilisez genSymKey pour créer une clé AES (type 31).Si vous utilisez le paramètre
-wk
pour spécifier une clé d'encapsulage externe, la clé d'encapsulage-w
est utilisée pour désencapsuler, mais pas pour encapsuler, la clé importée.Note
Clé 4 est une clé interne non prise en charge. Nous vous recommandons d'utiliser une clé AES que vous créez et gérez comme clé d'encapsulage.
Obligatoire : oui
- -wk
-
Utilisez la clé AES du fichier spécifié pour encapsuler la clé en cours d'importation. Entrez le chemin et le nom d'un fichier qui contient une clé AES en texte brut.
Lorsque vous incluez ce paramètre, imSymKey utilise la clé du fichier
-wk
pour encapsuler la clé en cours d'importation, ainsi que la clé du HSM spécifié par le paramètre-w
pour la désencapsuler. La valeur des paramètres-w
et-wk
doivent correspondre à la même clé en texte brut.Par défaut : utilisez la clé d'encapsulage sur le HSM pour procéder au désencapsulage.
Obligatoire : non