Personnalisé IVs avec une longueur non conforme pour l'emballage AES des clés AWS CloudHSM - 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.

Personnalisé IVs avec une longueur non conforme pour l'emballage AES des clés AWS CloudHSM

Cette rubrique de résolution des problèmes vous aide à déterminer si votre application génère des clés encapsulées irrécupérables. Si ce problème vous concerne, consultez cette rubrique pour le résoudre.

Déterminez si votre code génère des clés encapsulées irrécupérables

Vous êtes concerné uniquement si vous remplissez toutes les conditions ci-dessous :

Condition Comment le savoir ?

Votre application utilise la bibliothèque PKCS #11

La bibliothèque PKCS #11 est installée sous forme de libpkcs11.so fichier dans votre /opt/cloudhsm/lib dossier. Les applications écrites en langage C utilisent généralement directement la bibliothèque PKCS #11, tandis que les applications écrites en Java peuvent utiliser la bibliothèque indirectement via une couche d'abstraction Java. Si vous utilisez Windows, vous êtes NOT concerné, car la bibliothèque PKCS #11 n'est actuellement pas disponible pour Windows.

Votre application utilise spécifiquement la version 3.0.0 de la bibliothèque PKCS #11

Si vous avez reçu un e-mail de l' AWS CloudHSM équipe, vous utilisez probablement la version 3.0.0 de la bibliothèque PKCS #11.

Pour vérifier la version du logiciel sur vos instances d'application, utilisez cette commande :

rpm -qa | grep ^cloudhsm

Vous enveloppez les clés en utilisant l'emballage AES des clés

AESl'emballage des clés signifie que vous utilisez une AES clé pour envelopper une autre clé. Le nom du mécanisme correspondant est CKM_AES_KEY_WRAP. Il est utilisé avec la fonction C_WrapKey. Les autres mécanismes d'encapsulation AES basés qui utilisent des vecteurs d'initialisation (IVs), tels que CKM_AES_GCM et CKM_CLOUDHSM_AES_GCM, ne sont pas concernés par ce problème. En savoir plus sur les fonctions et les mécanismes.

Vous spécifiez un IV personnalisé lorsque vous appelez AES key wrapping, et la longueur de cet IV est inférieure à 8

AESle key wrap est généralement initialisé à l'aide d'une CK_MECHANISM structure comme suit :

CK_MECHANISM mech = {CKM_AES_KEY_WRAP, IV_POINTER, IV_LENGTH};

Ce problème s'applique à vous uniquement si :

  • IV_ POINTER n'est pas NULL

  • IV_ LENGTH est inférieur à 8 octets

Si vous ne remplissez pas toutes les conditions ci-dessus, vous pouvez arrêter de lire maintenant. Vos clés encapsulées peuvent être désencapsulées correctement, et ce problème ne vous concerne pas. Sinon, consultez Mesures à prendre si votre code génère des clés encapsulées irrécupérables.

Mesures à prendre si votre code génère des clés encapsulées irrécupérables

Vous devez suivre les trois étapes suivantes :

  1. Mettez immédiatement à jour votre bibliothèque PKCS #11 vers une version plus récente

  2. Mettez à jour votre logiciel pour utiliser un IV conforme aux normes

    Nous vous recommandons vivement de suivre notre exemple de code et de simplement spécifier un NULL IV, ce qui permet HSM d'utiliser le IV par défaut conforme aux normes. Vous pouvez également spécifier explicitement l'IV comme 0xA6A6A6A6A6A6A6A6 avec une longueur d'IV correspondante de 8. Nous ne recommandons pas d'utiliser un autre IV pour l'encapsulage des AES clés et nous désactiverons explicitement la personnalisation IVs pour l'encapsulage des AES clés dans une future version de la bibliothèque PKCS #11.

    Un exemple de code permettant de spécifier correctement l'IV apparaît dans aes_wrapping.c on. GitHub

  3. Identifiez et récupérez les clés encapsulées existantes

    Vous devez identifier toutes les clés que vous avez encapsulées à l'aide de la version 3.0.0 de la bibliothèque PKCS #11, puis contacter le support pour obtenir de l'aide (https://aws.amazon.com/support) pour récupérer ces clés.

Important

Ce problème ne concerne que les clés encapsulées avec la version 3.0.0 de la bibliothèque PKCS #11. Vous pouvez encapsuler les clés à l'aide de versions antérieures (packages 2.0.4 et numéros inférieurs) ou de versions ultérieures (packages 3.0.1 et numéros supérieurs) de la bibliothèque #11. PKCS