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

Dans laAWS Encryption SDKutilisation des implémentations linguistiquesversion sémantiquepour vous permettre d'identifier plus facilement l'ampleur des changements dans chaque version. Un changement du numéro de version principal, tel que 1.x.xà.x.x, indique une modification majeure susceptible de nécessiter des modifications de code et un déploiement planifié. Une modification apportée à une version mineure, telle quex1.xpourx2.x, est toujours rétrocompatible, mais peut inclure des éléments obsolètes.

Dans la mesure du possible, utilisez la dernière version duAWS Encryption SDKdans le langage de programmation de votre choix. Dans lapolitique de maintenance et d'assistancepour chaque version, les implémentations du langage de programmation diffèrent. Pour de plus amples informations sur les versions prises en charge dans le langage de programmation de votre choix, consultez leSUPPORT_POLICY.rstfichier dans sonGitHubré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.xet 1.8.xsont conçues comme des versions de transition qui vous aident à effectuer une mise à niveau à partir de versions antérieures à 1.7.xvers les versions 2.0.xet plus tard. Pour plus d'informations, 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 dépôt.

Note

Dans laxdans un numéro de version représente n'importe quel patch de la version majeure et mineure. Par exemple, la version 1.7.xreprésente toutes les versions qui commencent par 1.7, y compris 1.7.1 et 1.7.9.

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

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

Versions antérieures à 1.7.x

Note

Tous les 1.x.xversions duAWS Encryption SDKsont dans leend-of-supportphase. Effectuez une mise à niveau vers la dernière version disponible duAWS Encryption SDKpour votre langage de programmation dès que possible. Pour effectuer une mise à niveau depuisAWS Encryption SDKversion antérieure à 1.7.x, vous devez d'abord passer à la version 1.7.x. Pour plus d'informations, consultez.Migrer votreAWS Encryption SDK

Versions duAWS Encryption SDKantérieure à 1,7.xfournissent des fonctionnalités de sécurité importantes, notamment le chiffrement à l'aide de l'algorithme Advanced Encryption Standard en mode Galois/Counter (AES-GCM), basé sur HMAC extract-and-expand fonction de dérivation de clé (HKDF), signature et clé de cryptage 256 bits. Cependant, ces versions ne prennent pas en chargebonnes pratiquesque nous recommandons, y comprisengagement clé.

Version 1.7.x

Note

Tous les 1.x.xversions duAWS Encryption SDKsont dans leend-of-supportphase.

Version 1.7.xest conçu pour aider les utilisateurs des versions antérieures deAWS Encryption SDKpour passer à la version 2.0.xet plus tard. Si vous êtes un nouvel utilisateur duAWS Encryption SDK, vous pouvez ignorer cette version et commencer par la dernière version disponible dans votre langage de programmation.

Version 1.7.xest entièrement rétrocompatible ; il n'introduit aucune modification majeure 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.

Version 1.7.xinclut les modifications suivantes :

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

Version 1.7.xintroduit de nouveaux constructeurs dansKit SDK de chiffrement AWS pour JavaetKit SDK de chiffrement AWS pour Pythonqui créent explicitementAWS KMSprincipaux fournisseurs de clés dans l'un desstricteoudécouverte. Cette version apporte des modifications similaires àAWS Encryption SDKinterface de ligne de commande (CLI). Pour plus d'informations, consultez.Mise à jour en coursAWS KMSprincipaux fournisseurs de clés

  • Dansmode strict,AWS KMSles fournisseurs 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'encapsulage que vous avez spécifiées. Il s'agit d'unAWS Encryption SDKbonne pratique qui garantit que vous utilisez les clés d'emballage que vous avez l'intention d'utiliser.

  • Dansmode de découverte,AWS KMSles fournisseurs de clés principales ne prennent aucune clé d'emballage. 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. Cependant, vous pouvez limiter les clés d'encapsulation utilisées pour le déchiffrement à celles en particulierComptes AWS. Le filtrage des comptes est facultatif, mais il s'agit d'unbonne pratiqueque nous recommandons.

Les constructeurs qui créent les versions précédentes deAWS KMSles fournisseurs de clés principales sont obsolètes dans la version 1.7.xet supprimé dans version 2.0.x. Ces constructeurs instancient les fournisseurs de clés principales qui chiffrent à l'aide des clés d'encapsulation que vous spécifiez. Toutefois, ils déchiffrent les clés de données crypté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 déchiffrer involontairement des messages à l'aide de clés d'encapsulation qu'ils n'ont pas l'intention d'utiliser, notammentAWS KMS keysdans d'autresComptes AWSet régions.

Aucune modification n'a été apportée aux constructeurs pourAWS KMSclés principales. Lors du chiffrement et du déchiffrement,AWS KMSles clés principales utilisent uniquement leAWS KMS keyque vous spécifiez.

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

Version 1.7.xajoute un nouveau filtre auKit SDK de chiffrement AWS pour CetKit SDK de chiffrement AWS pour JavaScriptdes implémentations qui limitentAWS KMSporte-clés Discoveryà particulierComptes AWS. Ce nouveau filtre de compte est facultatif, mais il s'agit d'unbonne pratiqueque nous recommandons. Pour plus d'informations, consultez.Mise à jour en coursAWS KMSporte-clés

Aucune modification n'a été apportée aux constructeurs pourAWS KMSporte-clés. StandardAWS KMSles trousseaux se comportent comme des fournisseurs de clés principales en mode strict.AWS KMSles trousseaux de découverte sont créés explicitement en mode découverte.

Transmission d'un identifiant de clé àAWS KMSDéchiffrer

À partir de version 1.7.x, lors du déchiffrement de clés de données cryptées,AWS Encryption SDKspécifie toujoursAWS KMS keydans ses appels auAWS KMS Déchiffreropération. Dans laAWS Encryption SDKobtient la valeur de l'identifiant de clé pourAWS KMS keyà partir des métadonnées de chaque clé de données cryptée. Cette fonctionnalité ne nécessite aucune modification du code.

Spécifier l'ID de clé duAWS KMS keyn'est pas nécessaire pour déchiffrer du texte chiffré à l'aide d'une clé KMS à chiffrement symétrique, mais il s'agit d'unAWS KMSbonne pratique. Tout comme la spécification de clés d'encapsulation dans votre fournisseur de clés, cette pratique garantit queAWS KMSdéchiffre uniquement à l'aide de la clé d'encapsulation que vous souhaitez utiliser.

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

Version 1.7.xpeut déchiffrer le texte chiffré avec ou sansengagement 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 le texte chiffré avec un engagement clé avant même qu'elles ne rencontrent un tel texte chiffré. Comme cette version déchiffre les messages cryptés sans engagement de clé, vous n'avez pas besoin de rechiffrer le texte chiffré.

Pour implémenter ce comportement, version 1.7.xinclut un nouveaupolitique d'engagementparamètre de configuration qui détermine siAWS Encryption SDKpeut crypter ou déchiffrer avec un engagement clé. Dans la version 1.7.x, la seule valeur valide pour la politique d'engagement,ForbidEncryptAllowDecrypt, est utilisé dans toutes les opérations de chiffrement et de déchiffrement. Cette valeur empêche laAWS Encryption SDKdu chiffrement à l'aide de l'une ou l'autre des nouvelles suites d'algorithmes qui incluent un engagement de clé. Il permet àAWS Encryption SDKpour décrypter le texte chiffré avec et sans engagement 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 votre politique d'engagement de passer automatiquement àrequire-encrypt-require-decryptlors de la version 2.1.x. Au lieu de cela, vous pouvezmigrez votre politique d'engagementpar étapes.

Suites d'algorithmes avec engagement clé

Version 1.7.xcomprend deux nouveauxsuites d'algorithmesqui soutiennent un engagement clé. L'un inclut la signature, l'autre non. Comme les suites d'algorithmes prises en charge précédemment, ces deux nouvelles suites d'algorithmes incluent le chiffrement avec AES-GCM, une clé de cryptage 256 bits et une solution basée sur HMAC extract-and-expand fonction de dérivation par clé (HKDF).

Toutefois, la suite d'algorithmes par défaut utilisée pour le chiffrement ne change pas. Ces suites d'algorithmes sont ajoutées à version 1.7.xpour préparer votre application à les utiliser dans les versions 2.0.xet plus tard.

Changements relatifs à l'implémentation du

Version 1.7.xintroduit des modifications à l'interface du gestionnaire de matériel cryptographique (CMM) par défaut pour soutenir l'engagement clé. Cette modification ne vous concerne que si vous avez écrit un CMM personnalisé. Pour plus d'informations, consultez la documentation relative à l'API ou GitHub référentiel pour votrelangage de programmation.

Version 1.8.x

Note

Tous les 1.x.xversions duAWS Encryption SDKsont dans leend-of-supportphase.

PourAWSCLI de chiffrement, version 1.8.xest la version de transition entre les versions antérieures à 1.7.xet versions 2.1.xet plus tard. PourAWSCLI de chiffrement, version 1.8.xest entièrement rétrocompatible ; il n'introduit aucune modification majeure 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. Elle 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 version 1.8.xde laAWSEncryption CLI, veuillezVersion 1.7.x.

Version 1.9.x

Note

Tous les 1.x.xversions duAWS Encryption SDKsont dans leend-of-supportphase.

Version 1.9.xprend 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 utilisezAWS Encryption SDKversions antérieures à version 2.0.x, vous devez passer à la version 1.9.xpour tirer parti des améliorations.

Version 1.9.xprend également en charge la limitation du nombre de clés de données cryptées dans les messages que vous déchiffrez à partir de sources non fiables. Cette fonctionnalité recommandée 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.

Is version 1.7.x, version 1.9.xest rétrocompatible avec les versions antérieures à 1.7.xet versions ultérieures compatibles avec les versions 2.0.xet plus tard. Il inclut les nouvelles fonctionnalités présentes dans les versions 2.0.xet plus tard, mais implémente des valeurs par défaut sûres. Si vous utilisez la version 1.9.x, vous pouvez effectuer une mise à version 2.2 en toute sécurité.x. Pour de plus amples informations sur la migration des paramètres de votre politique d'engagement, veuillez consulterDéfinition de votre politique d'engagement.

Version 2.0.x

Version 2.0.xprend en charge les nouvelles fonctionnalités de sécurité proposées dansAWS Encryption SDK, y compris les clés d'emballage spécifiées et l'engagement clé. Pour prendre en charge ces fonctionnalités, version 2.0.xinclut des modifications majeures pour les versions précédentes deAWS Encryption SDK. Vous pouvez vous préparer à ces modifications en déployant la version 1.7.x. Version 2.0.xinclut toutes les nouvelles fonctionnalités introduites dans la version 1.7.xavec les ajouts et modifications suivants.

Note

Version 2x.xde laKit SDK de chiffrement AWS pour Pythonet leAWSLes CLI de chiffrement se trouvent dansend-of-supportphase.

Pour plus d'informations surprise en charge et maintenancede ceAWS Encryption SDKversion dans votre langage de programmation préféré, consultez leSUPPORT_POLICY.rstfichier dans sonGitHubréférentiel.

AWS KMSprincipaux fournisseurs

L'originalAWS KMSconstructeurs de fournisseurs de clés principaux qui étaient obsolètes dans la version 1.7.xsont supprimés dans version 2.0.x. Vous devez explicitement construireAWS KMSprincipaux fournisseurs de clé dansmode strict ou mode découverte.

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

Version 2.0.xpeut crypter et décrypter du texte chiffré avec ou sansengagement clé. Son comportement est déterminé par le paramétrage de la politique d'engagement. Par défaut, il crypte toujours avec engagement de clé et ne déchiffre que le texte chiffré crypté avec engagement de clé. À moins que vous ne changiez la politique d'engagement,AWS Encryption SDKne décryptera pas les textes chiffrés par une version antérieure duAWS Encryption SDK, y compris la version 1.7.x.

Important

Par défaut, version 2.0.xne décryptera aucun texte chiffré crypté sans engagement de clé. Si votre application risque de rencontrer un texte chiffré sans engagement clé, définissez une valeur de politique d'engagement avecAllowDecrypt.

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

  • ForbidEncryptAllowDecrypt— LeAWS Encryption SDKImpossible de crypter avec un engagement de clé. Il peut déchiffrer des textes chiffrés cryptés avec ou sans engagement de clé.

  • RequireEncryptAllowDecrypt— LeAWS Encryption SDKdoit être crypté avec un engagement clé. Il peut déchiffrer des textes chiffrés cryptés avec ou sans engagement de clé.

  • RequireEncryptRequireDecrypt(par défaut)AWS Encryption SDKdoit être crypté avec un engagement clé. Il ne déchiffre que les textes chiffrés avec un engagement clé.

Si vous effectuez une migration à partir d'une version antérieure deAWS Encryption SDKvers 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. Il est probable que vous ajustiez ce paramètre au fil du temps.

Version 2.1.x

Note

Version 2x.xde laKit SDK de chiffrement AWS pour Pythonet leAWSLes CLI de chiffrement se trouvent dansend-of-supportphase.

Pour plus d'informations surprise en charge et maintenancede ceAWS Encryption SDKversion dans votre langage de programmation préféré, consultez leSUPPORT_POLICY.rstfichier dans sonGitHubréférentiel.

PourAWSCLI de chiffrement, version 2.1.xest la version qui inclut les clés d'emballage et l'engagement clé spécifiés. Cette version est équivalente à version 2.0.xdans d'autres langages de programmation.

Pour plus d'informations sur version 2.1.xde laAWSEncryption CLI, veuillezVersion 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 2x.xde laKit SDK de chiffrement AWS pour Pythonet leAWSLes CLI de chiffrement se trouvent dansend-of-supportphase.

Pour plus d'informations surprise en charge et maintenancede ceAWS Encryption SDKversion dans votre langage de programmation préféré, voirSUPPORT_POLICY.rstfichier dans sonGitHubréférentiel.

Signatures numériques

Pour améliorer la gestion designature numériquelors du déchiffrement, leAWS Encryption SDKcomprend les fonctions suivantes :

  • Mode non streaming— 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 cryptées à l'aide de signatures numériques (la suite d'algorithmes par défaut). Par exemple, parce queAWSLa CLI de chiffrement traite toujours les données en mode streaming, utilisez le--bufferparamètre lors du déchiffrement de texte chiffré avec des 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 détecte une signature numérique dans le texte chiffré, l'opération échoue. Utilisez cette fonctionnalité pour éviter de traiter involontairement du texte brut à partir de messages signés avant de vérifier la signature.

Limiter les clés de données cryp

Vous pouvezlimiter le nombre de clés de données cryptéesdans un message crypté. Cette fonctionnalité peut vous aider à détecter un fournisseur de clé principale ou un trousseau 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 vers votre infrastructure clé.

Version 2.3.x

Ajoute le support pourAWS KMSClés multi-régions. Pour plus d'informations, consultez.Utiliser multi-régionsAWS KMS keys

Note

Dans laAWSEncryption CLI prend en charge les clés multi-région commençantversion 3.0.x.

Version 2x.xde laKit SDK de chiffrement AWS pour Pythonet leAWSLes CLI de chiffrement se trouvent dansend-of-supportphase.

Pour plus d'informations surprise en charge et maintenancede ceAWS Encryption SDKversion dans votre langage de programmation préféré, voirSUPPORT_POLICY.rstfichier dans sonGitHubréférentiel.

Version 2.4.x

Note

Version 2x.xde laKit SDK de chiffrement AWS pour Pythonet leAWSLes CLI de chiffrement se trouvent dansend-of-supportphase.

Dans laKit SDK de chiffrement AWS pour Javaversion 2.4.0 ajoute le prise en charge deAWS SDK for Java 2.x. À partir de version 2.4.0, leKit SDK de chiffrement AWS pour JavaappuisAWS SDK for Javaversion 1.xet version 2.x. Utilisation duAWS SDK for JavaFacultative. Dans laKit SDK de chiffrement AWS pour Javanécessite leAWS SDK for Javauniquement si vous utilisezAWS Key Management Service(AWS KMS) en tant que fournisseur de clés principal.

Pour plus d'informations, consultez.Prérequis

Version 3.0.x

Note

Version 3.x.xde laAWSLa CLI de chiffrement est disponibleend-of-supportphase.

Pour plus d'informations surprise en charge et maintenancede ceAWS Encryption SDKversion dans votre langage de programmation préféré, voirSUPPORT_POLICY.rstfichier dans sonGitHubréférentiel.

AWSVersion CLI de chiffrement version 3.0.xajoute le support pourAWS KMSClés multi-régions. Pour plus d'informations, consultez leAWS Key Management ServiceManuel du développeur. (AWS Encryption SDKles langages de programmation supportent les clés multi-région commençant parversion 2.3.x.)

Ajout deAWS Encryption SDKpour .NET.