Résolution des problèmes de migration vers les dernières versions - AWS Encryption SDK

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.

Résolution des problèmes de migration vers les dernières versions

Avant de mettre à jour votre application vers la version 2.0.xou une version ultérieure duAWS Encryption SDK, mise à jour vers la dernière version 1.xversion duAWS Encryption SDKet déployez-le complètement. Cela vous aidera à éviter la plupart des erreurs que vous pourriez rencontrer lors de la mise à jour vers les versions 2.0.xet plus tard. Pour des instructions détaillées, y compris des exemples, voirMigrer votreAWS Encryption SDK.

Important

Vérifiez que votre dernier 1.xversion 1.7.xou une version ultérieure duAWS Encryption SDK.

Note

AWSCLI de chiffrement : Références dans ce guide à la version 1.7.xde laAWS Encryption SDKappliquer à la version 1.8.xde laAWSCLI de chiffrement. Références dans ce guide à la version 2.0.xde laAWS Encryption SDKappliquer au 2.1.xde laAWSCLI de chiffrement.

Les nouvelles fonctionnalités de sécurité ont été initialement publiées enAWSVersions CLI de chiffrement 1.7.xet 2.0.x. Cependant,AWSVersion 1.8 de la CLI de chiffrementxremplace la version 1.7.xetAWSCryptage CLI 2.1.xremplace 2.0.x. Pour plus d'informations, consultez laAvis de sécuritédans leaws-encryption-sdk-cliréférentiel sur GitHub.

Cette rubrique est conçue pour vous aider à identifier et à résoudre les erreurs les plus courantes que vous pouvez rencontrer.

Objets obsolètes ou supprimés

version 2.0.xinclut plusieurs modifications majeures, notamment la suppression des anciens constructeurs, méthodes, fonctions et classes qui étaient obsolètes dans la version 1.7.x. Pour éviter les erreurs de compilation, les erreurs d'importation, les erreurs de syntaxe et les erreurs de symbole introuvable (en fonction de votre langage de programmation), passez d'abord à la dernière version 1.xversion duAWS Encryption SDKpour votre langage de programmation. (Il doit s'agir de la version 1.7.xou plus tard.) Lors de l'utilisation de la dernière version 1.xversion, vous pouvez commencer à utiliser les éléments de remplacement avant que les symboles d'origine ne soient supprimés.

Si vous devez effectuer une mise à niveau vers la version 2.0.xou plus tard immédiatement,consulter le changelogpour votre langage de programmation, et remplacez les anciens symboles par les symboles recommandés par le journal des modifications.

Conflit de configuration Politique d'engagement et suite d'algorithmes

Si vous spécifiez une suite d'algorithmes qui entre en conflit avec votrepolitique d'engagement d', l'appel de chiffrement échoue en renvoyant unConflit deErreur.

Pour éviter ce type d'erreur, ne spécifiez pas de suite d'algorithmes. Par défaut, le plugin XAWS Encryption SDKchoisit l'algorithme le plus sécurisé compatible avec votre politique d'engagement. Toutefois, si vous devez spécifier une suite d'algorithmes, par exemple sans signature, veillez à choisir une suite d'algorithmes compatible avec votre politique d'engagement.

Politique d'engagement d' Suites d'algorithmes compatibles
ForbidEncryptAllowDecrypt

Toute suite d'algorithmessansun engagement clé, tel que :

AES_256_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384(03 78 x) (avec signature)

AES_256_GCM_IV12_TAG16_HKDF_SHA256(01 78 x) (sans signature)

RequireEncryptAllowDecrypt

RequireEncryptRequireDecrypt

Toute suite d'algorithmesavecun engagement clé, tel que :

AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384(05 78 x) (avec signature)

AES_256_GCM_HKDF_SHA512_COMMIT_KEY(04 78 x) (sans signature)

Si vous rencontrez cette erreur alors que vous n'avez pas spécifié de suite d'algorithmes, il est possible que la suite d'algorithmes en conflit ait été choisie par votregestionnaire de matériel cryptographique(CM). Le CMM par défaut ne sélectionnera pas une suite d'algorithmes conflictuelle, mais un CMM personnalisé le fera. Pour obtenir de l'aide, consultez la documentation de votre CMM personnalisé.

Conflit de configuration Politique d'engagement et texte chiffré

Dans laRequireEncryptRequireDecrypt politique d'engagement d'n'autorise pasAWS Encryption SDKpour décrypter un message qui a été crypté sansEngagé de durée. Si vous demandezAWS Encryption SDKpour déchiffrer un message sans engagement clé, il renvoie unConflit deErreur.

Pour éviter cette erreur, avant de définir leRequireEncryptRequireDecryptpolitique d'engagement, assurez-vous que tous les textes chiffrés cryptés sans engagement de clé sont déchiffrés et recryptés avec engagement de clé, ou gérés par une autre application. Si vous rencontrez cette erreur, vous pouvez renvoyer une erreur concernant le texte chiffré en conflit ou modifier temporairement votre politique d'engagement enRequireEncryptAllowDecrypt.

Si vous rencontrez cette erreur parce que vous avez effectué une mise à niveau vers la version 2.0.xou une version ultérieure à partir d'une version antérieure à 1.7.xsans passer au préalable à la dernière version 1.xversion (version 1.7).xou plus tard), considérezrestauration de durée Xau plus tard 1.xversion et déploiement de cette version sur tous les hôtes avant la mise à niveau vers la version 2.0.xou plus tard. Pour obtenir de l'aide, veuillez consulter Comment migrer et déployerAWS Encryption SDK.

La validation des engagements clés a échoué

Lorsque vous déchiffrez des messages cryptés avec un engagement clé, vous pouvez obtenir unLa validation des engagements clés a échouéMessage d'erreur. Cela indique que l'appel de déchiffrement a échoué en raison d'une clé de données dans unMessage chiffdé den'est pas identique à la clé de données unique du message. En validant la clé de données lors du déchiffrement,Engagé de duréevous empêche de déchiffrer un message susceptible de générer plusieurs textes en clair.

Cette erreur indique que le message crypté que vous essayez de déchiffrer n'a pas été renvoyé parAWS Encryption SDK. Il peut s'agir d'un message créé manuellement ou du résultat d'une corruption de données. Si vous rencontrez cette erreur, votre application peut rejeter le message et continuer, ou arrêter de traiter les nouveaux messages.

Autres échecs de chiffrement

Le chiffrement peut échouer pour de multiples raisons. Vous ne pouvez pas utiliser un pluginAWS KMSporte-clés Discoveryou unfournisseur de clés principales en mode découvertepour crypter un message.

Assurez-vous de spécifier un porte-clés ou un fournisseur de clés principales avec les clés d'encapsulage dont vous disposezautorisation d'utilisationpour le chiffrement. Pour obtenir de l'aide concernant les autorisationsAWS KMS keys, voir.Affichage d'une politique de cléetDéterminer l'accès à unAWS KMS keydans leAWS Key Management ServiceManuel du développeur.

Autres échecs de déchiffrement

Si votre tentative de déchiffrement d'un message crypté échoue, cela signifie queAWS Encryption SDKn'a pas pu (ou n'a pas voulu) déchiffrer les clés de données cryptées du message.

Si vous avez utilisé un jeu de clés ou un fournisseur de clés principales qui spécifie des clés d'encapsulation,AWS Encryption SDKutilise uniquement les clés d'encapsulation que vous avez spécifiées. Vérifiez que vous utilisez les clés d'encapsulage que vous souhaitez et que vous disposezkms:Decryptautorisation sur au moins une des clés d'emballage. Si vous utilisez des XAWS KMS keys, comme solution de rechange, vous pouvez essayer de déchiffrer le message à l'aide d'unAWS KMSporte-clés Discoveryou unfournisseur de clés principales en mode découverte. Si l'opération aboutit, avant de renvoyer le texte en clair, vérifiez que la clé utilisée pour déchiffrer le message est une clé fiable.

Considérations relatives à l'

Si votre application ne parvient pas à chiffrer ou à déchiffrer les données, vous pouvez généralement résoudre le problème en mettant à jour les symboles de code, les trousseaux de clés, les fournisseurs de clés principales oupolitique d'engagement. Toutefois, dans certains cas, vous pouvez décider qu'il est préférable de restaurer votre application vers une version précédente deAWS Encryption SDK.

Si vous devez revenir en arrière, faites-le avec prudence. Versions duAWS Encryption SDKversion 1.7.xImpossible de déchiffrer le texte chiffré avecEngagé de durée.

  • En arrière par rapport à la dernière version 1.xversion d'une version précédente duAWS Encryption SDKest généralement sûr. Vous devrez peut-être annuler les modifications que vous avez apportées à votre code pour utiliser des symboles et des objets qui ne sont pas pris en charge dans les versions précédentes.

  • Une fois que vous avez commencé à crypter avec un engagement clé (en définissant votre politique d'engagement surRequireEncryptAllowDecrypt) dans la version 2.0.xou version ultérieure, vous pouvez revenir à la version 1.7.x, mais pas vers une version antérieure. Versions duAWS Encryption SDKversion 1.7.xImpossible de déchiffrer le texte chiffré avecEngagé de durée.

Si vous activez accidentellement le chiffrement avec engagement de clé avant que tous les hôtes ne puissent le déchiffrer avec engagement de clé, il peut être préférable de poursuivre le déploiement plutôt que de revenir en arrière. Si les messages sont transitoires ou peuvent être supprimés en toute sécurité, vous pouvez envisager une restauration avec perte de messages. Si une restauration est requise, vous pouvez envisager d'écrire un outil qui déchiffre et rechiffre tous les messages.