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.
Problèmes connus liés à la bibliothèque PKCS #11 pour AWS CloudHSM
Les problèmes suivants ont un impact sur la bibliothèque PKCS #11 pour AWS CloudHSM.
Rubriques
- Problème : l'encapsulation des AES clés dans la version 3.0.0 de la bibliothèque PKCS #11 n'est pas validée IVs avant utilisation
- Problème : PKCS #11 SDK 2.0.4 et les versions antérieures utilisaient toujours l'IV par défaut 0xA6A6A6A6A6A6A6A6 pour l'enroulement et le AES déballage des clés
- Problème : l'attribut CKA_DERIVE n'est pas pris en charge et n'est pas géré.
- Problème : l'attribut CKA_SENSITIVE n'est pas pris en charge et n'est pas géré.
- Problème : Le hachage et la signature en plusieurs parties ne sont pas pris en charge.
- Problème : C_GenerateKeyPair ne gère pas CKA_MODULUS_BITS ou CKA_PUBLIC_EXPONENT dans le modèle privé d'une manière conforme aux normes.
- Problème : les tampons pour les C_Decrypt API opérations C_Encrypt et ne peuvent pas dépasser 16 Ko lors de l'utilisation du mécanisme CKM_AES_GCM
- Problème : La dérivation de la clé Diffie-Hellman (ECDH) à courbe elliptique est partiellement exécutée dans HSM
- Problème : La vérification des signatures secp256k1 échoue sur des EL6 plateformes telles que Cent et 6 OS6 RHEL
- Problème : une séquence incorrecte d'appels de fonction donne des résultats indéfinis au lieu d'échouer
- Problème : la session en lecture seule n'est pas prise en charge dans la version SDK 5
- Problème : le fichier cryptoki.h d'en-tête est réservé à Windows
Problème : l'encapsulation des AES clés dans la version 3.0.0 de la bibliothèque PKCS #11 n'est pas validée IVs avant utilisation
Si vous spécifiez un vecteur d’initialisation d'une longueur inférieure à 8 octets, celui-ci est complété par des octets imprévisibles avant utilisation.
Note
Cela a un impact sur C_WrapKey
uniquement avec un mécanisme CKM_AES_KEY_WRAP
.
Conséquence : si vous fournissez un IV de moins de 8 octets dans la version 3.0.0 de la bibliothèque PKCS #11, il se peut que vous ne puissiez pas déballer la clé.
Solutions de contournement :
Nous vous recommandons vivement de passer à la version 3.0.1 ou supérieure de la bibliothèque PKCS #11, qui applique correctement la longueur de l'IV lors de la saisie des AES touches. Modifiez votre code d'emballage pour transmettre un NULL IV, ou spécifiez le IV par défaut de
0xA6A6A6A6A6A6A6A6
. Pour plus d'informations, voir Personnalisation IVs avec une longueur non conforme pour l'emballage des AES clés.Si vous avez encapsulé des clés avec la version 3.0.0 de la bibliothèque PKCS #11 en utilisant un IV inférieur à 8 octets, contactez-nous pour obtenir de l'aide
.
État de la résolution : ce problème a été résolu dans la version 3.0.1 de la bibliothèque PKCS #11. Pour encapsuler les clés à l'aide AES de l'encapsulation des touches, spécifiez un IV d'une longueur de 2 NULL ou 8 octets.
Problème : PKCS #11 SDK 2.0.4 et les versions antérieures utilisaient toujours l'IV par défaut 0xA6A6A6A6A6A6A6A6
pour l'enroulement et le AES déballage des clés
Les informations fournies par l'utilisateur IVs ont été ignorées en silence.
Note
Cela a un impact sur C_WrapKey
uniquement avec un mécanisme CKM_AES_KEY_WRAP
.
Impact :
Si vous avez utilisé PKCS #11 SDK 2.0.4 ou une version antérieure et un IV fourni par l'utilisateur, vos clés sont encapsulées avec le IV par défaut de.
0xA6A6A6A6A6A6A6A6
Si vous avez utilisé PKCS #11 SDK 3.0.0 ou une version ultérieure et un IV fourni par l'utilisateur, vos clés sont enveloppées dans le IV fourni par l'utilisateur.
Solutions de contournement :
Pour déballer les clés encapsulées avec PKCS #11 SDK 2.0.4 ou une version antérieure, utilisez l'IV par défaut de.
0xA6A6A6A6A6A6A6A6
Pour déballer les clés encapsulées avec PKCS #11 SDK 3.0.0 ou version ultérieure, utilisez le code IV fourni par l'utilisateur.
État de résolution : nous vous recommandons vivement de modifier votre code d'emballage et de déballage pour transmettre un NULL IV, ou de spécifier le IV par défaut de
0xA6A6A6A6A6A6A6A6
.
Problème : l'attribut CKA_DERIVE
n'est pas pris en charge et n'est pas géré.
-
Statut de résolution : nous avons implémenté des correctifs pour accepter
CKA_DERIVE
s'il a la valeurFALSE
.CKA_DERIVE
défini surTRUE
ne sera pas pris en charge tant que nous n'aurons pas ajouté la prise en charge de la fonction de dérivation de clés à AWS CloudHSM. Vous devez mettre à jour votre ou vos clients vers la version 1.1.1 ou supérieure pour bénéficier du correctif. SDK
Problème : l'attribut CKA_SENSITIVE
n'est pas pris en charge et n'est pas géré.
-
État de résolution : nous avons implémenté les correctifs pour accepter et honorer correctement l'attribut
CKA_SENSITIVE
. Vous devez mettre à jour votre ou vos clients vers la version 1.1.1 ou supérieure pour bénéficier du correctif. SDK
Problème : Le hachage et la signature en plusieurs parties ne sont pas pris en charge.
-
Impact :
C_DigestUpdate
etC_DigestFinal
ne sont pas implémentés.C_SignFinal
n'est pas implémenté non plus et échoue avec l'erreurCKR_ARGUMENTS_BAD
pour un tampon non-NULL
. -
Solution : hachez vos données dans votre application et utilisez-les AWS CloudHSM uniquement pour signer le hachage.
-
État de la résolution : nous sommes en train de corriger le client et d'SDKsimplémenter correctement le hachage en plusieurs parties. Les mises à jour seront annoncées sur le forum AWS CloudHSM et sur la page de l'historique des versions.
Problème : C_GenerateKeyPair
ne gère pas CKA_MODULUS_BITS
ou CKA_PUBLIC_EXPONENT
dans le modèle privé d'une manière conforme aux normes.
-
Impact :
C_GenerateKeyPair
doit renvoyerCKA_TEMPLATE_INCONSISTENT
lorsque le modèle privé contientCKA_MODULUS_BITS
ouCKA_PUBLIC_EXPONENT
. Au lieu de cela, il génère une clé privée dont tous les champs d'utilisation sont définis surFALSE
. La clé ne peut pas être utilisée. -
Solution : Nous recommandons que votre application vérifie les valeurs des champs d'utilisation en plus du code d'erreur.
-
État de résolution : Nous sommes en train de mettre en place des correctifs pour renvoyer le message d'erreur adéquat lorsqu'un modèle de clé privée incorrect est utilisé. La bibliothèque PKCS #11 mise à jour sera annoncée sur la page de l'historique des versions.
Problème : les tampons pour les C_Decrypt
API opérations C_Encrypt
et ne peuvent pas dépasser 16 Ko lors de l'utilisation du mécanisme CKM_AES_GCM
AWS CloudHSM ne prend pas en charge le GCM chiffrement en plusieurs partiesAES.
-
Impact : Vous ne pouvez pas utiliser le mécanisme
CKM_AES_GCM
pour chiffrer des données de plus de 16 Ko. -
Solution : vous pouvez utiliser un autre mécanisme tel que
CKM_AES_CBC
CKM_AES_CBC_PAD
, ou vous pouvez diviser vos données en plusieurs parties et chiffrer chaque élément individuellement.AES_GCM
Si vous en utilisezAES_GCM
, vous devez gérer la division de vos données et le chiffrement ultérieur. AWS CloudHSM n'effectue pas de GCM chiffrement en plusieurs parties AES à votre place. Notez que cela FIPS nécessite que le vecteur d'initialisation (IV)AES-GCM
soit généré sur leHSM. Par conséquent, le IV pour chaque élément de vos AES données GCM cryptées sera différent. -
État de la résolution : nous corrigeons explicitement le SDK problème pour qu'il échoue si la mémoire tampon de données est trop grande. Nous revenons
CKR_MECHANISM_INVALID
pour lesC_DecryptUpdate
API opérationsC_EncryptUpdate
et. Nous évaluons les alternatives possibles pour prendre en charge des mémoires tampons de plus grande taille sans devoir s'appuyer sur le chiffrement en plusieurs parties. Les mises à jour seront annoncées sur le AWS CloudHSM forum et sur la page d'historique des versions.
Problème : La dérivation de la clé Diffie-Hellman (ECDH) à courbe elliptique est partiellement exécutée dans HSM
Votre clé privée EC est conservée à tout HSM moment, mais le processus de dérivation de la clé s'effectue en plusieurs étapes. Par conséquent, les résultats intermédiaires de chaque étape sont disponibles sur le client.
-
Conséquence : dans le client SDK 3, la clé dérivée à l'aide du
CKM_ECDH1_DERIVE
mécanisme est d'abord disponible sur le client, puis importée dans leHSM. Un handle de clé est ensuite retourné à votre application. -
Solution : si vous implémentezSSL/TLSOffload in AWS CloudHSM, cette limitation ne posera peut-être aucun problème. Si votre application exige que votre clé reste dans une FIPS limite à tout moment, envisagez d'utiliser un protocole alternatif qui ne repose pas sur la dérivation de ECDH clés.
-
État de résolution : Nous développons l'option permettant d'effectuer la dérivation des ECDH clés entièrement dans leHSM. L'implémentation mise à jour sera annoncée sur la page de l'historique des versions.
Problème : La vérification des signatures secp256k1 échoue sur des EL6 plateformes telles que Cent et 6 OS6 RHEL
Cela est dû au fait que la bibliothèque Cloud HSM PKCS #11 évite un appel réseau lors de l'initialisation de l'opération de vérification en utilisant Open SSL pour vérifier les données de la courbe EC. Comme SECP256k1 n'est pas pris en charge par le SSL package Open par défaut sur les EL6 plateformes, l'initialisation échoue.
-
Conséquence : la vérification de signature SECP256k1 échouera sur les plateformes. EL6 L’appel de vérification échoue avec une erreur
CKR_HOST_MEMORY
. -
Solution : nous vous recommandons d'utiliser Amazon Linux 1 ou n'importe quelle EL7 plateforme si votre application PKCS #11 doit vérifier les signatures secp256k1. Vous pouvez également passer à une version du SSL package Open qui prend en charge la courbe secp256k1.
-
État de la résolution : nous mettons en œuvre des correctifs pour revenir à la solution HSM si la validation de la courbe locale n'est pas disponible. La bibliothèque PKCS #11 mise à jour sera annoncée sur la page de l'historique des versions.
Problème : une séquence incorrecte d'appels de fonction donne des résultats indéfinis au lieu d'échouer
-
Conséquence : si vous appelez une séquence de fonctions incorrecte, le résultat final est incorrect même si chaque appel de fonction renvoie un résultat positif. Par exemple, les données déchiffrées peuvent ne pas correspondre au texte brut d'origine ou les signatures peuvent ne pas être vérifiées. Ce problème concerne à la fois les opérations en une seule partie et en plusieurs parties.
Exemples de séquences de fonctions incorrectes :
C_EncryptInit
/C_EncryptUpdate
suivi deC_Encrypt
C_DecryptInit
/C_DecryptUpdate
suivi deC_Decrypt
C_SignInit
/C_SignUpdate
suivi deC_Sign
C_VerifyInit
/C_VerifyUpdate
suivi deC_Verify
C_FindObjectsInit
suivi deC_FindObjectsInit
Solution : Votre application doit, conformément à la spécification PKCS #11, utiliser la bonne séquence d'appels de fonction pour les opérations en une ou plusieurs parties. Dans ce cas, votre application ne doit pas s'appuyer sur la bibliothèque Cloud HSM PKCS #11 pour renvoyer une erreur.
Problème : la session en lecture seule n'est pas prise en charge dans la version SDK 5
-
Problème : SDK 5 ne prend pas en charge l'ouverture de sessions en lecture seule avec.
C_OpenSession
-
Conséquence : si vous tentez d'appeler
C_OpenSession
sans fournirCKF_RW_SESSION
, l'appel échouera avec le message d'erreurCKR_FUNCTION_FAILED
. -
Solution : Lorsque vous ouvrez une session, vous devez transmettre les indicateurs
CKF_SERIAL_SESSION | CKF_RW_SESSION
à l'appel de fonctionC_OpenSession
.
Problème : le fichier cryptoki.h
d'en-tête est réservé à Windows
-
Problème : avec les versions 5.0.0 à 5.4.0 de AWS CloudHSM Client SDK 5 sous Linux, le fichier d'en-tête n'
/opt/cloudhsm/include/pkcs11/cryptoki.h
est compatible qu'avec les systèmes d'exploitation Windows. -
Conséquence : vous pouvez rencontrer des problèmes lorsque vous essayez d'inclure ce fichier d'en-tête dans votre application sur des systèmes d'exploitation basés sur Linux.
-
État de la résolution : mise à niveau vers AWS CloudHSM Client SDK 5 version 5.4.1 ou supérieure, qui inclut une version compatible avec Linux de ce fichier d'en-tête.