Versions duAWS 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 duAWS Encryption SDK

Les implémentations duAWS Encryption SDK langage utilisent le contrôle de version sémantique pour vous permettre d'identifier plus facilement l'ampleur des modifications dans chaque version. Modification du numéro de version principale, 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é. Modification d'une version mineure, telle que x .1. x à x 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 langageAWS Encryption SDK 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 de plus amples informations sur les versions prises en charge dans le langage de le langage de le langage de le langage de le langage de les versions prisesSUPPORT_POLICY.rst en charge dans le langage de GitHuble langage de

Lorsque les mises à niveau incluent de nouvelles fonctionnalités qui nécessitent 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.

Pour une description détaillée des modifications apportées à chaque version de votre langage de programmation, consultez le journal des modifications de chaque référentiel.

Note

Le x dans un numéro de version représente n'importe quel patch de la version majeure et 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.

De nouvelles fonctionnalités de sécurité ont été initialement publiées dans les versions 1.7 de l'AWSEncryption CLI. x et 2.0. x. Toutefois,AWS Encryption CLI version 1.8. x remplace la version 1.7. x etAWS Encryption CLI 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.

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

Versions antérieures à 1.7. x

Note

Tous 1. x. x versions duAWS Encryption SDK sont en end-of-supportcours de réalisation. Passez à la dernière version disponible deAWS Encryption SDK pour votre langage de programmation dès que possible. Pour effectuer une mise à niveau à partir d'uneAWS Encryption SDK version antérieure à la 1.7. x, vous devez d'abord passer à la version 1.7. x. Pour plus de détails, consultez Migrer votreAWS Encryption SDK.

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

La version 1.7. x

Note

Tous 1. x. x versions duAWS Encryption SDK sont en end-of-supportcours de réalisation.

La version 1.7. x est conçu pour aider les utilisateurs des versions antérieures duAWS Encryption SDK à passer à la version 2.0. x et versions ultérieures. Si vous utilisez le pour la premièreAWS Encryption SDK fois, 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 aucune modification radicale ni ne modifie le comportement duAWS Encryption SDK. Il est également compatible avec les versions ultérieures ; 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 KMSmises à jour du fournisseur de clés principales (obligatoire)

La version 1.7. x introduit de nouveaux constructeurs dans leKit SDK de chiffrement AWS pour Java etKit SDK de chiffrement AWS pour Python qui créent explicitement des fournisseursAWS KMS de clés principales en mode strict ou en mode découverte. Cette version ajoute des modifications similaires à l'Interface deAWS 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 fournisseursAWS KMS de clés 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'uneAWS Encryption SDK bonne pratique qui garantit que vous utilisez les clés d'encapsulation que vous avez l'intention d'utiliser.

  • En mode découverte, lesAWS KMS fournisseurs de clés 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 cryptée. Toutefois, vous pouvez limiter les clés d'encapsulation utilisées pour le déchiffrement à celles-ci en particulierComptes 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 desAWS KMS fournisseurs de clés 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'encapsulation 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 comprisAWS KMS keys dansComptes AWS d'autres régions.

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

AWS KMSmises à jour du porte-clés (facultatif)

La version 1.7. x ajoute un nouveau filtre auxKit SDK de chiffrement AWS pour JavaScript implémentationsKit SDK de chiffrement AWS pour C et qui limite les ensembles de clés deAWS KMS découverte à des éléments particuliersComptes 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 desAWS KMS porte-clés. LesAWS KMS porte-clés standard se comportent comme des fournisseurs de clés principales en mode strict. AWS KMSles porte-clés de découverte sont créés de manière explicite en mode découverte.

Transmission d'un identifiant de clé àAWS KMS Decrypt

À partir de la version 1.7. x, lors du déchiffrement de clés de données cryptées, spécifieAWS Encryption SDK toujours unAWS KMS key dans ses appels à l'opérationAWS KMS Decrypt. AWS Encryption SDKobtient la valeur d'identification de la clé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 keyIl n'est pas nécessaire de spécifier l'ID de clé du pour déchiffrer le texte chiffré qui a été chiffré à l'aide d'une clé KMS à chiffrement symétrique, mais il s'agit d'une AWS KMSbonne pratique. Tout comme la spécification des clés d'encapsulation dans votre fournisseur de clés, cette pratique garantit que le déchiffrement se faitAWS 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 un texte chiffré avec ou sans saisie de clé. 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 un texte chiffré avec un engagement clé avant même qu'elles ne rencontrent un tel texte chiffré. Comme cette version déchiffre les messages chiffrés sans saisie de clé, vous n'avez pas besoin de rechiffrer le texte chiffré.

Pour implémenter ce comportement, la version 1.7. x inclut un nouveau paramètre de configuration de politique d'engagement qui détermine s'ilAWS Encryption SDK peut 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 valeurAWS Encryption SDK empêche le chiffrement avec l'une ou l'autre des nouvelles suites d'algorithmes qui incluent un engagement clé. Il permetAWS Encryption SDK de déchiffrer le texte chiffré avec et sans engagement de clé.

Bien qu'il n'existe qu'une seule valeur de politique d'engagement valide dans la version 1.7. x, nous avons besoin que vous puissiez définir cette valeur de manière explicite lorsque vous utilisez les nouvelles API introduites dans cette version. La définition de cette valeur empêche la modification automatique de votre politique d'engagementrequire-encrypt-require-decrypt lors de la mise à niveau vers 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 un engagement clé. L'un inclut la signature, l'autre non. À l'instar des suites d'algorithmes précédemment prises en charge, ces deux nouvelles suites d'algorithmes incluent le chiffrement avec AES-GCM, une clé de cryptage 256 bits et une fonction de dérivation de extract-and-expand clés basée sur HMAC (HKDF).

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

Modifications de l'implémentation de la CMM

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

Version 1.8. x

Note

Tous 1. x. x versions duAWS Encryption SDK sont en end-of-supportcours de réalisation.

Pour la CLI deAWS chiffrement, version 1.8. x est la version de transition entre les versions antérieures à la 1.7. x et versions 2.1. x et versions ultérieures. Pour la CLI deAWS chiffrement, version 1.8. x est entièrement rétrocompatible ; il n'introduit aucune modification radicale ni ne modifie le comportement duAWS Encryption SDK. Il est également compatible avec les versions ultérieures ; 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. 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.

Pour plus d'informations sur la version 1.8. x de la CLI deAWS chiffrement, voirLa version 1.7. x.

Version 1.9. x

Note

Tous 1. x. x versions duAWS Encryption SDK sont en end-of-supportcours de réalisation.

Version 1.9. x prend en charge les améliorations apportées à la sécurité des signatures numériques dans la version 2.2. x. Si vous utilisez actuellement des signatures numériques avec vos applications et que vous utilisez desAWS Encryption SDK versions antérieures à la version 2.0. x, vous devez passer à la version 1.9. x pour tirer parti des améliorations.

Version 1.9. x permet également de limiter le nombre de clés de données cryptées dans les messages que vous déchiffrez à partir de sources non fiables. Cette fonctionnalité basée sur les meilleures pratiques vous permet de détecter un fournisseur de clé principale ou un jeu de clés mal configuré lors du chiffrement de messages ou un texte chiffré potentiellement malveillant lors du déchiffrement de messages.

Comme la version 1.7. x, version 1.9. x est rétrocompatible avec les versions antérieures à 1.7. x et versions ultérieures compatibles avec les versions 2.0. x et versions ultérieures. Il inclut les nouvelles fonctionnalités présentes dans les versions 2.0. x et versions ultérieures, mais implémente des valeurs par défaut sûres. Si vous utilisez la version 1.9. x, vous pouvez passer en toute sécurité à la version 2.2. x. Pour plus de détails sur la migration de votre paramètre de politique d'engagement, consultezDéfinition de votre politique d'engagement.

Version 2.0. x

Version 2.0. x prend en charge les nouvelles fonctionnalités de sécurité proposées dans leAWS Encryption SDK, notamment les clés d'encapsulation spécifiées et l'engagement clé. Pour prendre en charge ces fonctionnalités, la version 2.0. x inclut les modifications majeures apportées aux versions antérieures duAWS Encryption SDK. Vous pouvez vous préparer à ces modifications en déployant la version 1.7. x. 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 duKit SDK de chiffrement AWS pour Python et la CLI deAWS chiffrement sont en end-of-supportphase.

Pour plus d'informations sur le support et la maintenance de cetteAWS Encryption SDK version dans le langage de programmation de votre choix, consultez leSUPPORT_POLICY.rst fichier dans son GitHubréférentiel.

AWS KMSprincipaux fournisseurs de clés

Les constructeursAWS KMS de fournisseurs de clés 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 desAWS KMS fournisseurs de clés principales en mode strict ou en mode découverte.

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

Version 2.0. x peut crypter et déchiffrer du texte chiffré avec ou sans saisie de clé. Son comportement est déterminé par la définition de la politique d'engagement. Par défaut, il chiffre toujours avec engagement clé et ne déchiffre que le texte chiffré chiffré avec engagement clé. À moins que vous ne modifiiez la politique d'engagement, ils neAWS Encryption SDK déchiffreront pas les textes chiffrés par une version antérieure duAWS Encryption SDK, y compris la version 1.7. x.

Important

Par défaut, la version 2.0. x ne déchiffrera aucun texte chiffré qui a été chiffré sans saisie de clé. Si votre application risque de rencontrer un texte chiffré sans engagement de clé, définissez une valeur de politique d'engagement avecAllowDecrypt.

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

  • ForbidEncryptAllowDecrypt— IlsAWS Encryption SDK ne peuvent pas crypter avec un engagement clé. Il peut déchiffrer des textes chiffrés avec ou sans saisie de clé.

  • RequireEncryptAllowDecrypt— IlsAWS Encryption SDK doivent crypter avec un engagement clé. Il peut déchiffrer des textes chiffrés avec ou sans saisie de clé.

  • RequireEncryptRequireDecrypt(par défaut) — Le chiffrementAWS 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érieureAWS Encryption SDK vers la version 2.0. x, définissez la politique d'engagement sur une valeur qui garantit que vous pouvez déchiffrer tous les textes chiffrés existants que votre application est susceptible de rencontrer. Vous êtes susceptible d'ajuster ce paramètre au fil du temps.

Version 2.1. x

Note

Version 2. x. x duKit SDK de chiffrement AWS pour Python et la CLI deAWS chiffrement sont en end-of-supportphase.

Pour plus d'informations sur le support et la maintenance de cetteAWS Encryption SDK version dans le langage de programmation de votre choix, consultez leSUPPORT_POLICY.rst fichier dans son GitHubréférentiel.

Pour l'AWSEnriter CLI, version 2.1. x est la version qui inclut les clés d'encapsulation et l'engagement clé spécifiés. C'est l'équivalent de la version 2.0. x dans d'autres langages de programmation.

Pour plus d'informations sur la version 2.1. x de la CLI deAWS chiffrement, voirVersion 2.0. x.

Version 2.2. x

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

Note

Version 2. x. x duKit SDK de chiffrement AWS pour Python et la CLI deAWS chiffrement sont en end-of-supportphase.

Pour plus d'informations sur le support et la maintenance de cetteAWS Encryption SDK version dans le langage de programmation de votre choix, consultez leSUPPORT_POLICY.rst fichier dans son GitHubréférentiel.

Signatures numériques

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

  • Mode sans diffusion : renvoie le texte en clair 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 (la suite d'algorithmes par défaut). Par exemple, étant donné que la CLI deAWS chiffrement traite toujours les données en mode streaming, utilisez--buffer ce paramètre lors du déchiffrement à l'aide de signatures numériques.

  • Mode de déchiffrement non signé uniquement : cette fonctionnalité déchiffre uniquement le texte chiffré non signé. Si le déchiffrement détecte 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 cryptées

Vous pouvez limiter le nombre de clés de données cryptées dans un message crypté. 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 cryptées lorsque vous déchiffrez des messages provenant d'une source non fiable. Cela évite les appels inutiles, coûteux et potentiellement exhaustifs à votre infrastructure clé.

La version 2.3. x

Prend en charge les ClésAWS KMS multi-région. Pour plus de détails, consultez Utilisation de multi-régionAWS KMS keys.

Note

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

Version 2. x. x duKit SDK de chiffrement AWS pour Python et la CLI deAWS chiffrement sont en end-of-supportphase.

Pour plus d'informations sur le support et la maintenance de cetteAWS Encryption SDK version dans le langage de programmation de votre choix, consultez leSUPPORT_POLICY.rst fichier dans son GitHubréférentiel.

Version 2.4. x

Note

Version 2. x. x duKit SDK de chiffrement AWS pour Python et la CLI deAWS chiffrement sont en end-of-supportphase.

LaKit SDK de chiffrement AWS pour Java version 2.4.0 ajoute la prise en charge deAWS SDK for Java 2.x. À partir de la version 2.4.0, ilKit SDK de chiffrement AWS pour Java prend en charge laAWS SDK for Java version 1. x et version 2. x. L'utilisation duAWS SDK for Java est facultative. CelaAWS SDK for Java n'estKit SDK de chiffrement AWS pour Java requis que si vous utilisezAWS Key Management Service (AWS KMS) comme fournisseur de clé principale.

Pour plus de détails, consultez Prérequis.

Version 3.0. x

Note

Version 3. x. x de la CLI deAWS chiffrement est en end-of-supportphase.

Pour plus d'informations sur le support et la maintenance de cetteAWS Encryption SDK version dans le langage de programmation de votre choix, consultez leSUPPORT_POLICY.rst fichier dans son GitHubréférentiel.

AWSChiffrement CLI version 3.0. x ajoute la prise en charge des clésAWS KMS multirégions. Pour plus de détails, consultez le Guide duAWS Key Management Service développeur. (D'autres langagesAWS Encryption SDK de programmation prennent en charge les clés multirégions à partir de la version 2.3. x.)

A présenté leAWS Encryption SDK pour .NET.