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 unWrapKey commande de l'outil AWS CloudHSM key_mgmt_util pour importer une clé privée ou symétrique encapsulée (cryptée) d'un fichier dans le HSM. Elle a été conçue pour importer des clés chiffrées qui ont été encapsulées par la commande wrapKey dans key_mgmt_util, mais elle peut également être utilisée pour désencapsuler des clés qui ont été encapsulées au moyen d’autres outils. Toutefois, dans ces cas, nous vous recommandons d'utiliser les bibliothèques de logiciels PKCS # 11 ou JCE pour désencapsuler la clé.
Les clés importées fonctionnent comme les clés générées par AWS CloudHSM. Cependant, la valeur de leur attribut OBJ_ATTR_LOCAL est zéro, ce qui indique qu’elle n’a pas été générée localement.
Après avoir importé une clé, veillez à marquer ou à 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
unWrapKey -h unWrapKey -f
<key-file-name>
-w<wrapping-key-handle>
[-sess] [-min_srv<minimum-number-of-HSMs>
] [-timeout<number-of-seconds>
] [-aad<additional authenticated data filename>
] [-tag_size<tag size>
] [-iv_file<IV file>
] [-attest] [-m<wrapping-mechanism>
] [-t<hash-type>
] [-nex] [-u<user id list>
] [-m_value<number of users needed for approval>
] [-noheader] [-l<key-label>
] [-id<key-id>
] [-kt<key-type>
] [-kc<key-class
] [-i<unwrapping-IV>
]
exemple
Ces exemples montrent comment unWrapKey importer une clé encapsulée depuis un fichier dans le HSMs. Dans le premier exemple, nous désencapsulons une clé qui a été encapsulée avec la commande wrapKey key_mgmt_util et qui, par conséquent, comporte un en-tête. Dans le deuxième exemple, nous désencapsulons une clé qui a été encapsulée en dehors de key_mgmt_util et qui, par conséquent, ne présente pas d’en-tête.
Exemple : Désencapsuler une clé (avec en-tête)
Cette commande importe une copie encapsulée d’une clé symétrique 3DES dans un HSM. La clé est désencapsulée avec une clé AES dotée de l’étiquette 6
, qui est identique, du point de vue du chiffrement à celle utilisée pour encapsuler la clé 3DES. La sortie montre que la clé dans le fichier a été désencapsulée et importée, et que le handle de la clé importée est 29
.
Command:
unWrapKey -f 3DES.key -w 6 -m 4
Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Key Unwrapped. Key Handle: 29 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Exemple : Désencapsuler une clé (sans en-tête))
Cette commande importe une copie encapsulée d’une clé symétrique 3DES dans un HSM. La clé est désencapsulée avec une clé AES dotée de l’étiquette 6
, qui est identique, du point de vue du chiffrement à celle utilisée pour encapsuler la clé 3DES. Étant donné que cette clé 3DES n’a pas été encapsulée avec key_mgmt_util, le paramètre noheader
est spécifié, ainsi que ses paramètres associés obligatoires : une étiquette de clé (unwrapped3DES
), la classe de clé (4
) et le type de clé (21
). La sortie montre que la clé dans le fichier a été désencapsulée et importée, et que le handle de la clé importée est 8
.
Command:
unWrapKey -f 3DES.key -w 6 -noheader -l unwrapped3DES -kc 4 -kt 21 -m 4
Cfm3CreateUnwrapTemplate2 returned: 0x00 : HSM Return: SUCCESS Cfm2UnWrapWithTemplate3 returned: 0x00 : HSM Return: SUCCESS Key Unwrapped. Key Handle: 8 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Paramètres
- -h
-
Affiche l'aide concernant la commande.
Obligatoire : oui
- -f
-
Chemin et nom du fichier qui contient la clé encapsulée.
Obligatoire : oui
- -s, sem
-
Spécifie la clé d'encapsulage. Entrez le handle d'une clé AES ou RSA sur le HSM. Ce paramètre est obligatoire. Pour trouver des handles de clé, utilisez la commande findKey.
Pour créer une clé d'encapsulation, genSymKeyutilisez-la pour générer une clé AES (type 31) ou gen RSAKey Pair pour générer une paire de clés RSA (type 0). Si vous utilisez une paire de clés RSA, veillez à encapsuler la clé avec l'une des clés et à la désencapsuler avec l'autre. 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
, représentée par la constante262
.Obligatoire : oui
- -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
- -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, 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
- -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
- -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
- -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
- -m
-
Valeur représentant le mécanisme d'encapsulage. CloudHSM prend en charge les mécanismes suivants :
Mécanisme Valeur AES_KEY_WRAP_PAD_PKCS5
4 NIST_AES_WRAP_NO_PAD
5 NIST_AES_WRAP_PAD
6 RSA_AES
7 RSA_OAEP
(pour connaître la taille maximale des données, consultez la note plus loin dans cette section)8 AES_GCM
10 CLOUDHSM_AES_GCM
11 RSA_PKCS
(pour connaître la taille maximale des données, consultez la note plus loin dans cette section) Voir la note 1 ci-dessous pour un changement à venir.12 Obligatoire : oui
Note
Lorsque vous utilisez le mécanisme
RSA_OAEP
d'encapsulage, la taille de clé maximale que vous pouvez encapsuler est déterminée par le module de la clé RSA et la longueur du hachage spécifié comme suit : Taille de clé maximale = modulusLengthIn octets- (2* hashLengthIn octets) -2.Lorsque vous utilisez le mécanisme d'encapsulage RSA_PKCS, la taille maximale de clé que vous pouvez encapsuler est déterminée par le module de la clé RSA comme suit : Taille maximale de la clé = (octets -11). modulusLengthIn
- -t
-
Algorithme de hachage Valeur SHA1
2 SHA256
3 SHA384
4 SHA512
5 SHA224
(valable pour les mécanismesRSA_AES
etRSA_OAEP
)6 Obligatoire : non
- -noheader
-
Si vous désencapsulez une clé qui a été encapsulée en dehors de key_mgmt_util, vous devez spécifier ce paramètre et tous les autres paramètres associés.
Obligatoire : non
Note
Si vous spécifiez ce paramètre, vous devez également spécifier les
-noheader
paramètres suivants :-
-l
Spécifie l'étiquette à ajouter à la clé désencapsulée.
Obligatoire : oui
-
-kc
Spécifie la classe de la clé à désencapsuler. Les valeurs acceptables sont les suivantes :
3 = clé privée d'une paire de clés publique-privée
4 = clé secrète (symétrique)
Obligatoire : oui
-
-kt
Spécifie le type de clé à désencapsuler. Les valeurs acceptables sont les suivantes :
0 =
RSA
1 =
DSA
3 =
ECC
16 =
GENERIC_SECRET
21 =
DES3
31 =
AES
Obligatoire : oui
Vous pouvez également éventuellement préciser les paramètres
-noheader
suivants :-
-id
L'ID à ajouter à la clé désencapsulée.
Obligatoire : non
-
-i
Le vecteur d’initialisation de désencapsulage (IV) à utiliserdéballer vecteur d'initialisation (IV) à utiliser.
Obligatoire : non
-
[1] Conformément aux directives du NIST, cela n'est pas autorisé pour les clusters en mode FIPS après 2023. Pour les clusters en mode non FIPS, cela est toujours autorisé après 2023. Consultez Conformité à la norme FIPS 140 : mécanisme 2024 rendu obsolète pour plus de détails.