Déballez n'importe quelle 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.

Déballez n'importe quelle AWS CloudHSM clé en utilisant KMU

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 Il est conçu pour importer des clés chiffrées qui ont été encapsulées par la wrapKeycommande dans key_mgmt_util, mais il peut également être utilisé pour désencapsuler des clés encapsulées avec d'autres outils. Toutefois, dans ces situations, nous vous recommandons d'utiliser le PKCS#11 ou les bibliothèques JCElogicielles pour déballer la clé.

Les clés importées fonctionnent comme les clés générées par AWS CloudHSM. Cependant, la valeur de leur LOCALattribut OBJ _ ATTR _ est nulle, ce qui indique qu'ils n'ont pas été générés 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 en tant qu'utilisateur cryptographique (CU). HSM

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 leHSMs. 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é DES symétrique à 3 dans unHSM. La clé est déballée avec une AES clé avec étiquette6, qui est cryptographiquement identique à celle qui a été utilisée pour envelopper 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é DES symétrique à 3 dans unHSM. La clé est déballée avec une AES clé avec étiquette6, qui est cryptographiquement identique à celle qui a été utilisée pour envelopper la clé 3DES. Comme cette DES clé 3 n'était pas encapsulée dans key_mgmt_util, le noheader paramètre est spécifié, ainsi que les paramètres d'accompagnement requis : une étiquette de clé (unwrapped3DES), une classe de clé () et un type de clé (4). 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 manche d'une AES clé ou d'une RSA touche sur leHSM. Ce paramètre est obligatoire. Pour trouver les poignées de touches, utilisez la findKeycommande.

Pour créer une clé d'encapsulation, utilisez genSymKeypour générer une AES clé (type 31) ou genRSAKeyPair pour générer une paire de RSA clés (type 0). Si vous utilisez une paire de RSA clés, veillez à enrouler la clé avec l'une des clés et à la déballer avec l'autre. Pour vérifier qu'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 une 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 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

-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. Le cloud HSM 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 RSA clé et la longueur du hachage spécifié comme suit : Taille maximale de la clé = modulusLengthIn octets- (2* hashLengthIn octets) -2.

Lorsque vous utilisez le mécanisme PKCS d'encapsulage RSA _, la taille maximale de clé que vous pouvez encapsuler est déterminée par le module de la RSA clé comme suit : Taille maximale de la clé = (modulusLengthInoctets -11).

-t
Algorithme de hachage Valeur
SHA1 2
SHA256 3
SHA384 4
SHA512 5
SHA224 (valable pour les mécanismes RSA_AES et RSA_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 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.

Rubriques en relation