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.
Importez une clé symétrique en texte brut en utilisant AWS CloudHSM KMU
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érielle (). HSM Vous pouvez l'utiliser pour importer des clés générées par n'importe quelle méthode autre que HSM les clés exportées depuis unHSM, telles que les clés que la exSymKeycommande écrit dans un fichier.
Au cours du processus d'importation, imSymKey utilise une AES clé que vous sélectionnez (la clé d'encapsulation) pour encapsuler (chiffrer) puis déballer (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 les unWrapKeycommandes wrapKeyet.
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 PEM clé protégée par mot de passe à l'aide d'une clé symétrique ou privée.
Les clés importées fonctionnent de la même manière que les clés générées dans leHSM. Cependant, la valeur de l'LOCALattribut OBJ _ ATTR _ est zéro, ce qui indique qu'il n'a pas été généré localement. 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.
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 votreHSMs.
Exemple : Importer une AES clé symétrique
Cet exemple permet imSymKey d'importer une clé AES symétrique dans leHSMs.
La première commande utilise Open SSL pour générer une clé AES symétrique aléatoire de 256 bits. 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 AES clé du aes256.key
fichier dans leHSMs. Il utilise la touche 20, une AES touche dans leHSM, comme clé d'emballage et spécifie une étiquette deimported
. Contrairement à l'ID, l'étiquette n'a pas besoin d'être unique dans le cluster. La valeur du paramètre -t
(type) est31
, qui représenteAES.
La sortie indique que la clé du fichier a été encapsulée et décompressée, puis importée dans leHSM, où le descripteur 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 permet getAttributed'obtenir l'attribut OBJ _ ATTR _ (LOCALattribut 355) de la clé nouvellement importée et de l'écrire dans le attr_262180
fichier.
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'attributs, vous pouvez constater que la valeur de l'OBJ_ATTR_LOCAL
attribut est zéro, ce qui indique que le matériel clé n'a pas été généré dans leHSM.
$
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 exSymKeyet imSymKey déplacer une AES clé en texte brut entre des clusters. Vous pouvez utiliser un processus comme celui-ci pour créer un AES encapsulage qui existe sur les HSMs deux clusters. Une fois que la clé d'encapsulation partagée est en place, vous pouvez utiliser wrapKeyet unWrapKeydéplacer des 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 permet d'exSymKeyexporter la clé 14, une AES clé 32 bits, du cluster 1 vers le aes.key
fichier. Il utilise la touche 6, une AES touche 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 AES touche du HSMs cluster 2, comme clé d'encapsulation.
Étant donné que les clés d'encapsulation qui exSymKeypeuvent être imSymKey utilisées encapsulent et désencapsulent immédiatement les clés cibles, les clés d'encapsulation des différents clusters ne doivent pas nécessairement être les mêmes.
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 le même matériau clé, obtenez la valeur de contrôle de clé (KCV) de chaque clé. Si les KCV valeurs sont identiques, le matériau clé est le même.
La commande suivante est utilisée getAttributedans le cluster 1 pour écrire la valeur de l'KCVattribut (attribut 371) de la clé 14 dans le attr_14_kcv
fichier. 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 est utilisée getAttributedans le cluster 2 pour écrire la valeur de l'KCVattribut (attribut 371) de la clé 21 dans le attr_21_kcv
fichier. 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 indique que les KCV valeurs des deux clés sont identiques, ce qui prouve que le matériau clé est le même.
É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 -sess
paramètres de imSymKey pour importer une DES clé triple 192 bits valide uniquement dans 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 indique que la clé a été correctement enroulée et déballée, importée dans le HSM et affectée au manche 37. 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
Vous pouvez ensuite utiliser les findKeycommandes getAttributeou pour vérifier les attributs de la clé récemment 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 AES ou d'une triple DES clé de la longueur spécifiée. RC4et DES les clés ne sont pas valides en FIPS mode -mode. 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 toutes les clés 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 AES clé, 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 de HSM cryptomonnaies (CUs) à utiliser cette clé dans des opérations cryptographiques.
Entrez un identifiant ou une liste d'HSMutilisateurs séparés par des virgulesIDs, par exemple -u.
5,6
N'incluez pas le HSM nom d'utilisateur de l'utilisateur actuel. Pour trouver un identifiant, vous pouvez utiliser la commande de l'outil de ligne de listUserscommande cloudhs_mgmt_util ou celle de l'outil de ligne de commande key_mgmt_util. listUsersObligatoire : non
- -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é pendant le processus d'importation. 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. Comme 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_WRAP
attribut (262). 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é 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 AES clé que vous créez et gérez comme clé d'encapsulation.
Obligatoire : oui
- -wk
-
Utilisez la AES clé du fichier spécifié pour encapsuler la clé en cours d'importation. Entrez le chemin et le nom d'un fichier contenant une AES clé en texte brut.
Lorsque vous incluez ce paramètre. imSymKeyutilise la clé du
-wk
fichier pour encapsuler la clé importée et utilise la clé spécifiée par HSM le-w
paramètre 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 touche d'emballage du HSM pour le déballer.
Obligatoire : non