Versions du AWS Encryption SDK - 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.

Versions du AWS Encryption SDK

Les implémentations du AWS Encryption SDK langage utilisent le versionnement sémantique pour vous permettre d'identifier plus facilement l'ampleur des changements dans chaque version. Une modification du numéro de version principal, tel que 1. x. x à 2. x. x, indique un changement radical susceptible de nécessiter des modifications de code et un déploiement planifié. Les modifications apportées à une nouvelle version peuvent ne pas avoir d'impact sur tous les cas d'utilisation. Consultez les notes de publication pour voir si vous êtes concerné. Une modification apportée à une version mineure, telle que x .1. x à x 2.2. x, est toujours rétrocompatible, mais peut inclure des éléments obsolètes.

Dans la mesure du possible, utilisez la dernière version du AWS Encryption SDK dans le langage de programmation de votre choix. La politique de maintenance et de support pour chaque version diffère selon les implémentations du langage de programmation. Pour plus de détails sur les versions prises en charge dans votre langage de programmation préféré, consultez le SUPPORT_POLICY.rst fichier dans son GitHubréférentiel.

Lorsque les mises à niveau incluent de nouvelles fonctionnalités nécessitant une configuration spéciale pour éviter les erreurs de chiffrement ou de déchiffrement, nous fournissons une version intermédiaire et des instructions détaillées pour son utilisation. Par exemple, les versions 1.7. x et 1.8. x sont conçus pour être des versions de transition qui vous aident à effectuer une mise à niveau à partir de versions antérieures à 1.7. x vers les versions 2.0. x et versions ultérieures. Pour plus de détails, consultez Migrer votreAWS Encryption SDK.

Note

Le x dans un numéro de version représente n'importe quel correctif de la version majeure ou mineure. Par exemple, la version 1.7. x représente toutes les versions qui commencent par 1.7, y compris les versions 1.7.1 et 1.7.9.

Les nouvelles fonctionnalités de sécurité ont été initialement publiées dans les versions 1.7 de la CLI de AWS chiffrement. x et 2.0. x. Cependant, AWS Encryption CLI version 1.8. x remplace la version 1.7. x et CLI de AWS chiffrement 2.1. x remplace 2.0. x. Pour plus de détails, consultez l'avis de sécurité correspondant dans le aws-encryption-sdk-cliréférentiel sur GitHub.

Les tableaux suivants fournissent un aperçu des principales différences entre les versions prises en charge AWS Encryption SDK pour chaque langage de programmation.

C

Pour une description détaillée de toutes les modifications, consultez le fichier ChangeLog.md dans le référentiel sur. aws-encryption-sdk-c GitHub

Version majeure Détails Phase du cycle de vie de la version majeure du SDK
1. x 1.0 Première version. Phase de fin de support
1,7 Mises à jour AWS Encryption SDK qui aident les utilisateurs des versions antérieures à effectuer la mise à niveau vers les versions 2.0. x et versions ultérieures. Pour plus d'informations, consultez la version 1.7. x.
2. x 2.0 Mises à jour du AWS Encryption SDK. Pour plus d'informations, consultez la version 2.0. x. Disponibilité générale (GA)
2.2 Améliorations apportées au processus de déchiffrement des messages.
2.3 Ajoute la prise en charge des clés AWS KMS multirégionales.

C#//.NET

Pour une description détaillée de toutes les modifications, consultez le fichier ChangeLog.md dans le référentiel sur. aws-encryption-sdk-net GitHub

Version majeure Détails Phase du cycle de vie de la version majeure du SDK
3. x 3.0 Première version.

Disponibilité générale (GA)

La version 3.x de AWS Encryption SDK for .NET passera en mode maintenance le 13 mai 2024.

4. x 4.0 Ajoute la prise en charge du AWS KMS jeu de clés hiérarchique, du contexte de chiffrement requis CMM et des jeux de clés RSA asymétriques. AWS KMS Disponibilité générale (GA)

Interface de ligne de commande (CLI)

Pour une description détaillée de toutes les modifications, voir Versions duAWSCLI de chiffrement et le fichier ChangeLog.rst dans le référentiel sur. aws-encryption-sdk-cli GitHub

Version majeure Détails Phase du cycle de vie de la version majeure du SDK
1. x 1.0 Première version. Phase de fin de support
1,7 Mises à jour AWS Encryption SDK qui aident les utilisateurs des versions antérieures à effectuer la mise à niveau vers les versions 2.0. x et versions ultérieures. Pour plus d'informations, consultez la version 1.7. x.
2. x 2.0 Mises à jour du AWS Encryption SDK. Pour plus d'informations, consultez la version 2.0. x. Phase de fin de support
2.1

Supprime le --discovery paramètre et le remplace par l'discoveryattribut du --wrapping-keys paramètre.

La version 2.1.0 de la CLI de AWS chiffrement est équivalente à la version 2.0 dans d'autres langages de programmation.

2.2 Améliorations apportées au processus de déchiffrement des messages.
3. x 3.0 Ajoute la prise en charge des clés AWS KMS multirégionales. Phase de fin de support
4. x 4.0 La CLI de AWS chiffrement ne prend plus en charge Python 2 ou Python 3.4. À partir de la version majeure 4. x de la CLI de AWS chiffrement, seul Python 3.5 ou version ultérieure est pris en charge. Disponibilité générale (GA)
4.1 La CLI de AWS chiffrement ne prend plus en charge Python 3.5. À partir de la version 4.1. x de la CLI de AWS chiffrement, seul Python 3.6 ou version ultérieure est pris en charge.
4.2 La CLI de AWS chiffrement ne prend plus en charge Python 3.6. À partir de la version 4.2. x de la CLI de AWS chiffrement, seul Python 3.7 ou version ultérieure est pris en charge.

Java

Pour une description détaillée de toutes les modifications, consultez le fichier ChangeLog.rst dans le référentiel sur. aws-encryption-sdk-java GitHub

Version majeure Détails Phase du cycle de vie de la version majeure du SDK
1. x 1.0 Première version. Phase de fin de support
1.3 Ajoute la prise en charge du gestionnaire de matériel cryptographique et de la mise en cache des clés de données. Passage à la génération IV déterministe.
1.6.1

Obsolète AwsCrypto.encryptString() AwsCrypto.decryptString() et les remplace par et. AwsCrypto.encryptData() AwsCrypto.decryptData()

1,7 Mises à jour AWS Encryption SDK qui aident les utilisateurs des versions antérieures à effectuer la mise à niveau vers les versions 2.0. x et versions ultérieures. Pour plus d'informations, consultez la version 1.7. x.
2. x 2.0 Mises à jour du AWS Encryption SDK. Pour plus d'informations, consultez la version 2.0. x.

Disponibilité générale (GA)

La version 2.x Kit SDK de chiffrement AWS pour Java entrera en mode maintenance en 2024.

2.2 Améliorations apportées au processus de déchiffrement des messages.
2.3 Ajoute la prise en charge des clés AWS KMS multirégionales.
2,4 Ajoute le support pour AWS SDK for Java 2.x.
3. x 3.0

Intègre Kit SDK de chiffrement AWS pour Java la bibliothèque des fournisseurs de matériaux.

Ajoute la prise en charge des porte-clés RSA symétriques et asymétriques, des AWS KMS porte-clés AWS KMS hiérarchiques, des porte-clés AES bruts, des porte-clés RSA bruts, des porte-clés multiples et du contexte de chiffrement requis CMM.

Disponibilité générale (GA)

JavaScript

Pour une description détaillée de toutes les modifications, consultez le fichier ChangeLog.md dans le référentiel sur. aws-encryption-sdk-javascript GitHub

Version majeure Détails Phase du cycle de vie de la version majeure du SDK
1. x 1.0 Première version. Phase de fin de support
1,7 Mises à jour AWS Encryption SDK qui aident les utilisateurs des versions antérieures à effectuer la mise à niveau vers les versions 2.0. x et versions ultérieures. Pour plus d'informations, consultez la version 1.7. x.
2. x 2.0 Mises à jour du AWS Encryption SDK. Pour plus d'informations, consultez la version 2.0. x. Phase de fin de support
2.2 Améliorations apportées au processus de déchiffrement des messages.
2.3 Ajoute la prise en charge des clés AWS KMS multirégionales.
3. x 3.0 Supprime la couverture CI pour le nœud 10. Met à niveau les dépendances pour ne plus prendre en charge les nœuds 8 et 10.

Maintenance

Support pour la version 3.x du Kit SDK de chiffrement AWS pour JavaScript prendra fin le 17 janvier 2024.

4. x 4.0 Nécessite la version 3 Kit SDK de chiffrement AWS pour JavaScript des kms-client pour utiliser le AWS KMS porte-clés. Disponibilité générale (GA)

Python

Pour une description détaillée de toutes les modifications, consultez le fichier ChangeLog.rst dans le référentiel sur. aws-encryption-sdk-python GitHub

Version majeure Détails Phase du cycle de vie de la version majeure du SDK
1. x 1.0 Première version. Phase de fin de support
1.3 Ajoute la prise en charge du gestionnaire de matériel cryptographique et de la mise en cache des clés de données. Passage à la génération IV déterministe.
1,7 Mises à jour AWS Encryption SDK qui aident les utilisateurs des versions antérieures à effectuer la mise à niveau vers les versions 2.0. x et versions ultérieures. Pour plus d'informations, consultez la version 1.7. x.
2. x 2.0 Mises à jour du AWS Encryption SDK. Pour plus d'informations, consultez la version 2.0. x. Phase de fin de support
2.2 Améliorations apportées au processus de déchiffrement des messages.
2.3 Ajoute la prise en charge des clés AWS KMS multirégionales.
3. x 3.0 Python 2 ou Python 3.4 Kit SDK de chiffrement AWS pour Python ne sont plus pris en charge. À partir de la version majeure 3. x du Kit SDK de chiffrement AWS pour Python, seul Python 3.5 ou version ultérieure est pris en charge. Disponibilité générale (GA)

Détails de la version

La liste suivante décrit les principales différences entre les versions prises en charge du AWS Encryption SDK.

Versions antérieures à 1.7. x

Note

Tous les 1. x. x versions de celui-ci AWS Encryption SDK sont en end-of-supportcours de phase. Passez à la dernière version disponible AWS Encryption SDK de votre langage de programmation dès que possible. Pour effectuer une mise à niveau depuis une AWS Encryption SDK version antérieure à 1.7. x, vous devez d'abord passer à la version 1.7. x. Pour plus de détails, consultez Migrer votreAWS Encryption SDK.

Versions des versions AWS Encryption SDK antérieures à 1.7. x fournissent des fonctionnalités de sécurité importantes, notamment le chiffrement à l'aide de l'algorithme Advanced Encryption Standard en mode Galois/Counter (AES-GCM), une fonction de dérivation de extract-and-expand clé basée sur HMAC (HKDF), la signature et une clé de chiffrement 256 bits. Cependant, ces versions ne prennent pas en charge les meilleures pratiques que nous recommandons, y compris les engagements clés.

La version 1.7. x

Note

Tous les 1. x. x versions de celui-ci AWS Encryption SDK sont en end-of-supportcours de phase.

La version 1.7. x est conçu pour aider les utilisateurs des versions antérieures du AWS Encryption SDK à passer aux versions 2.0. x et versions ultérieures. Si vous découvrez le AWS Encryption SDK, vous pouvez ignorer cette version et commencer par la dernière version disponible dans votre langage de programmation.

La version 1.7. x est entièrement rétrocompatible ; il n'introduit aucun changement radical ni ne modifie le comportement du AWS Encryption SDK. Il est également compatible avec les transmissions ; il vous permet de mettre à jour votre code afin qu'il soit compatible avec la version 2.0. x. Il inclut de nouvelles fonctionnalités, mais ne les active pas complètement. Et cela nécessite des valeurs de configuration qui vous empêchent d'adopter immédiatement toutes les nouvelles fonctionnalités tant que vous n'êtes pas prêt.

La version 1.7. x inclut les modifications suivantes :

AWS KMS mises à jour du fournisseur de clés principales (obligatoire)

La version 1.7. x introduit de nouveaux constructeurs dans le Kit SDK de chiffrement AWS pour Java et Kit SDK de chiffrement AWS pour Python qui créent explicitement des fournisseurs de clés AWS KMS principales en mode strict ou en mode découverte. Cette version apporte des modifications similaires à l'interface de AWS Encryption SDK ligne de commande (CLI). Pour plus de détails, consultez Mise à jourAWS KMS des fournisseurs de clés principales.

  • En mode strict, les fournisseurs de clés AWS KMS principales ont besoin d'une liste de clés d'encapsulation, et ils chiffrent et déchiffrent uniquement avec les clés d'encapsulation que vous spécifiez. Il s'agit d'une AWS Encryption SDK bonne pratique qui garantit que vous utilisez les clés d'encapsulage que vous avez l'intention d'utiliser.

  • En mode découverte, les fournisseurs de clés AWS KMS principales n'acceptent aucune clé d'encapsulation. Vous ne pouvez pas les utiliser pour le chiffrement. Lors du déchiffrement, ils peuvent utiliser n'importe quelle clé d'encapsulation pour déchiffrer une clé de données chiffrée. Cependant, vous pouvez limiter les clés d'encapsulation utilisées pour le déchiffrement à celles-ci en particulier Comptes AWS. Le filtrage des comptes est facultatif, mais c'est une bonne pratique que nous recommandons.

Les constructeurs qui créent des versions antérieures des fournisseurs de clés AWS KMS principales sont obsolètes dans la version 1.7. x et supprimé dans la version 2.0. x. Ces constructeurs instancient des fournisseurs de clés principales qui chiffrent à l'aide des clés d'encapsulage que vous spécifiez. Cependant, ils déchiffrent les clés de données chiffrées à l'aide de la clé d'encapsulation qui les a chiffrées, sans tenir compte des clés d'encapsulation spécifiées. Les utilisateurs peuvent involontairement déchiffrer des messages à l'aide de clés d'encapsulation qu'ils n'ont pas l'intention d'utiliser, y compris AWS KMS keys dans d'autres régions ou régions Comptes AWS .

Aucune modification n'a été apportée aux constructeurs des clés AWS KMS principales. Lors du chiffrement et du déchiffrement, les clés AWS KMS principales utilisent uniquement celles que vous spécifiez AWS KMS key .

AWS KMS mises à jour du trousseau de clés (facultatif)

La version 1.7. x ajoute un nouveau filtre aux Kit SDK de chiffrement AWS pour JavaScript implémentations Kit SDK de chiffrement AWS pour C et qui limite les porte-clés de AWS KMS découverte à des données spécifiques. Comptes AWS Ce nouveau filtre de compte est facultatif, mais c'est une bonne pratique que nous recommandons. Pour plus de détails, consultez Mise à jour en coursAWS KMSporte-clés.

Aucune modification n'a été apportée aux constructeurs des AWS KMS porte-clés. Les AWS KMS porte-clés standard se comportent comme des fournisseurs de clés principales en mode strict. AWS KMS les porte-clés de découverte sont créés explicitement en mode découverte.

Transmission d'un identifiant clé pour le AWS KMS déchiffrer

À partir de la version 1.7. x, lors du déchiffrement de clés de données chiffrées, le spécifie AWS Encryption SDK toujours un AWS KMS key dans ses appels à l' AWS KMS opération Decrypt. AWS Encryption SDK obtient la valeur de l'ID de clé pour le AWS KMS key à partir des métadonnées de chaque clé de données cryptée. Cette fonctionnalité ne nécessite aucune modification de code.

AWS KMS key Il n'est pas nécessaire de spécifier l'ID de clé pour déchiffrer le texte chiffré sous une clé KMS de chiffrement symétrique, mais il s'agit d'une bonne pratique.AWS KMS Tout comme la spécification des clés d'encapsulation dans votre fournisseur de clés, cette pratique garantit le déchiffrement AWS KMS uniquement à l'aide de la clé d'encapsulation que vous avez l'intention d'utiliser.

Déchiffrez le texte chiffré avec un engagement clé

La version 1.7. x peut déchiffrer le texte chiffré avec ou sans clé d'engagement. Cependant, il ne peut pas crypter le texte chiffré avec un engagement clé. Cette propriété vous permet de déployer entièrement des applications capables de déchiffrer le texte chiffré avec clé d'engagement avant qu'elles ne rencontrent un tel texte chiffré. Comme cette version déchiffre les messages chiffrés sans engagement de clé, il n'est pas nécessaire de rechiffrer le texte chiffré.

Pour implémenter ce comportement, version 1.7. x inclut un nouveau paramètre de configuration de la politique d'engagement qui détermine s'ils AWS Encryption SDK peuvent chiffrer ou déchiffrer avec un engagement clé. Dans la version 1.7. x, la seule valeur valide pour la politique d'engagementForbidEncryptAllowDecrypt, est utilisée dans toutes les opérations de chiffrement et de déchiffrement. Cette valeur AWS Encryption SDK empêche le chiffrement avec l'une ou l'autre des nouvelles suites d'algorithmes qui incluent un engagement de clé. Il permet de AWS Encryption SDK déchiffrer le texte chiffré avec et sans engagement de clé.

Bien qu'il n'y ait qu'une seule valeur de politique d'engagement valide dans la version 1.7. x, nous exigeons que vous puissiez définir cette valeur de manière explicite lorsque vous utilisez les nouvelles API introduites dans cette version. La définition explicite de la valeur empêche que votre politique d'engagement soit automatiquement modifiée require-encrypt-require-decrypt lorsque vous passez à la version 2.1. x. Au lieu de cela, vous pouvez migrer votre politique d'engagement par étapes.

Des suites d'algorithmes avec un engagement clé

La version 1.7. x inclut deux nouvelles suites d'algorithmes qui soutiennent les engagements clés. L'un inclut la signature ; l'autre non. Comme les suites d'algorithmes précédemment prises en charge, ces deux nouvelles suites d'algorithmes incluent le chiffrement avec AES-GCM, une clé de chiffrement 256 bits et une fonction de dérivation de clé basée sur HMAC extract-and-expand (HKDF).

Cependant, la suite d'algorithmes par défaut utilisée pour le chiffrement ne change pas. Ces suites d'algorithmes sont ajoutées à la version 1.7. x pour préparer votre application à les utiliser dans les versions 2.0. x et versions ultérieures.

Changements de mise en œuvre du CMM

La version 1.7. x introduit des modifications à l'interface du gestionnaire de matériaux cryptographiques (CMM) par défaut pour soutenir l'engagement clé. Cette modification ne vous concerne que si vous avez écrit un CMM personnalisé. Pour plus de détails, consultez la documentation ou le GitHub référentiel de l'API correspondant à votre langage de programmation.

La version 2.0. x

La version 2.0. x prend en charge les nouvelles fonctionnalités de sécurité proposées dans le AWS Encryption SDK, notamment les clés d'emballage spécifiées et l'engagement des clés. Pour prendre en charge ces fonctionnalités, version 2.0. x inclut les modifications majeures apportées aux versions antérieures du AWS Encryption SDK. Vous pouvez vous préparer à ces modifications en déployant la version 1.7. x. La version 2.0. x inclut toutes les nouvelles fonctionnalités introduites dans la version 1.7. x avec les ajouts et modifications suivants.

Note

Version 2. x. x du Kit SDK de chiffrement AWS pour Python Kit SDK de chiffrement AWS pour JavaScript, et la CLI de AWS chiffrement sont en end-of-supportphase.

Pour plus d'informations sur le support et la maintenance de cette AWS Encryption SDK version dans votre langage de programmation préféré, consultez le SUPPORT_POLICY.rst fichier dans son GitHubréférentiel.

AWS KMS fournisseurs de clés principales

Les constructeurs du fournisseur de clés AWS KMS principales d'origine qui étaient obsolètes dans la version 1.7. x sont supprimés dans la version 2.0. x. Vous devez explicitement créer des fournisseurs de clés AWS KMS principales en mode strict ou en mode découverte.

Chiffrez et déchiffrez le texte chiffré avec un engagement clé

La version 2.0. x peut chiffrer et déchiffrer le texte chiffré avec ou sans clé d'engagement. Son comportement est déterminé par le paramétrage de la politique d'engagement. Par défaut, il chiffre toujours avec un engagement par clé et ne déchiffre que le texte chiffré chiffré avec un engagement par clé. À moins que vous ne changiez la politique d'engagement, les textes chiffrés ne AWS Encryption SDK seront pas déchiffrés par une version antérieure du AWS Encryption SDK, y compris la version 1.7. x.

Important

Par défaut, version 2.0. x ne déchiffrera aucun texte chiffré chiffré sans engagement de clé. Si votre application risque de rencontrer un texte chiffré sans engagement de clé, définissez une valeur de politique d'engagement avec. AllowDecrypt

Dans la version 2.0. x, le paramètre de la politique d'engagement comporte trois valeurs valides :

  • ForbidEncryptAllowDecrypt— Ils AWS Encryption SDK ne peuvent pas chiffrer avec un engagement clé. Il peut déchiffrer les textes chiffrés avec ou sans clé d'engagement.

  • RequireEncryptAllowDecrypt— Ils AWS Encryption SDK doivent chiffrer avec un engagement clé. Il peut déchiffrer les textes chiffrés avec ou sans clé d'engagement.

  • RequireEncryptRequireDecrypt(par défaut) — Le chiffrement AWS Encryption SDK doit être effectué avec un engagement clé. Il ne déchiffre que les textes chiffrés avec un engagement clé.

Si vous migrez d'une version antérieure AWS Encryption SDK vers la version 2.0. x, définissez la politique d'engagement sur une valeur garantissant que vous pouvez déchiffrer tous les textes chiffrés existants que votre application est susceptible de rencontrer. Il est probable que vous modifiiez ce paramètre au fil du temps.

La version 2.2. x

Prend en charge les signatures numériques et limite les clés de données chiffrées.

Note

Version 2. x. x du Kit SDK de chiffrement AWS pour Python Kit SDK de chiffrement AWS pour JavaScript, et la CLI de AWS chiffrement sont en end-of-supportphase.

Pour plus d'informations sur le support et la maintenance de cette AWS Encryption SDK version dans votre langage de programmation préféré, consultez le SUPPORT_POLICY.rst fichier dans son GitHubréférentiel.

Signatures numériques

Pour améliorer la gestion des signatures numériques lors du déchiffrement, les fonctionnalités suivantes sont AWS Encryption SDK incluses :

  • Mode non diffusé : renvoie du texte brut uniquement après avoir traité toutes les entrées, y compris la vérification de la signature numérique si elle est présente. Cette fonctionnalité vous empêche d'utiliser du texte brut avant de vérifier la signature numérique. Utilisez cette fonctionnalité chaque fois que vous déchiffrez des données chiffrées à l'aide de signatures numériques (suite d'algorithmes par défaut). Par exemple, étant donné que la CLI de AWS chiffrement traite toujours les données en mode streaming, utilisez le - -buffer paramètre lors du déchiffrement du texte chiffré à l'aide de signatures numériques.

  • Mode de déchiffrement non signé uniquement : cette fonctionnalité ne déchiffre que le texte chiffré non signé. Si le déchiffrement rencontre une signature numérique dans le texte chiffré, l'opération échoue. Utilisez cette fonctionnalité pour éviter de traiter involontairement le texte brut des messages signés avant de vérifier la signature.

Limiter les clés de données chiffrées

Vous pouvez limiter le nombre de clés de données chiffrées dans un message chiffré. Cette fonctionnalité peut vous aider à détecter un fournisseur de clé principale ou un jeu de clés mal configuré lors du chiffrement, ou à identifier un texte chiffré malveillant lors du déchiffrement.

Vous devez limiter les clés de données chiffrées lorsque vous déchiffrez des messages provenant d'une source non fiable. Cela évite les appels inutiles, coûteux et potentiellement exhaustifs vers votre infrastructure clé.

La version 2.3. x

Ajoute la prise en charge des clés AWS KMS multirégionales. Pour plus de détails, consultez Utilisation de plusieurs régions AWS KMS keys.

Note

La CLI AWS de chiffrement prend en charge les clés multirégionales à partir de la version 3.0. x.

Version 2. x. x du Kit SDK de chiffrement AWS pour Python Kit SDK de chiffrement AWS pour JavaScript, et la CLI de AWS chiffrement sont en end-of-supportphase.

Pour plus d'informations sur le support et la maintenance de cette AWS Encryption SDK version dans votre langage de programmation préféré, consultez le SUPPORT_POLICY.rst fichier dans son GitHubréférentiel.