Questions fréquentes (FAQ) - 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.

Questions fréquentes (FAQ)

Quelle est la différence entre le kit AWS Encryption SDK et les autres kits SDK AWS ?

LeAWSKits SDKfournir des bibliothèques pour interagir avec Amazon Web Services (AWS), y comprisAWS Key Management Service(AWS KMS). Certaines des implémentations linguistiques duAWS Encryption SDK, tels que leAWS Encryption SDKpour .NET, requiert toujours leAWSSDK dans le même langage de programmation. Les autres implémentations linguistiques requièrent les paramètres correspondantsAWSSDK uniquement lorsque vous utilisezAWS KMSclés de vos porte-clés ou de vos principaux fournisseurs de clés. Pour plus d'informations, consultez la rubrique concernant votre langage de programmation dans la pageLangages de programmation AWS Encryption SDK.

Vous pouvez utiliser le pluginAWSSDK avec lesquels interagirAWS KMS, notamment le chiffrement et le déchiffrement de petites quantités de données (jusqu'à 4 096 octets avec une clé de chiffrement symétrique) et la génération de clés de données pour le chiffrement côté client. Toutefois, lorsque vous générez une clé de données, vous devez gérer l'intégralité du processus de chiffrement et de déchiffrement, y compris le chiffrement de vos données avec la clé de données en dehors deAWS KMS, en supprimant en toute sécurité la clé de données en texte brut, en stockant la clé de données chiffrée, puis en déchiffrant la clé de données et en déchiffrant vos données. LeAWS Encryption SDKgère ce processus pour vous.

LeAWS Encryption SDKfournit une bibliothèque qui chiffre et déchiffre les données à l'aide des normes et des bonnes pratiques du secteur. Il génère la clé de données, la chiffre sous les clés d'encapsulation que vous spécifiez et renvoie unMessage chiffré, un objet de données portable qui inclut les données chiffrées et les clés de données chiffrées dont vous avez besoin pour les déchiffrer. Lorsqu'il est temps de déchiffrer, vous transmettez le message chiffré et au moins une des clés d'encapsulation (facultatif), et leAWS Encryption SDKrenvoie vos données en texte brut.

Vous pouvez utiliserAWS KMS keyscomme clés d'encapsulation dans leAWS Encryption SDK, mais n'est pas nécessaire. Vous pouvez utiliser des clés de chiffrement que vous générez et celles de votre gestionnaire de clés ou de votre module de sécurité matérielle local. Vous pouvez utiliser le pluginAWS Encryption SDKMême si vous n'avez pas deAWS.

Fonctionnement du kitAWS Encryption SDKDifférent du client de chiffrement Amazon S3 ?

LeClient de chiffrement Amazon S3dans leAWSLes kits SDK fournissent le chiffrement et le déchiffrement pour les données que vous stockez dans Amazon Simple Storage Service (Amazon S3). Ces clients sont étroitement liés à Amazon S3 et sont conçus pour être utilisés uniquement avec les données qui y sont stockées.

Le kit AWS Encryption SDK fournit le chiffrement et le déchiffrement pour les données que vous pouvez stocker n'importe où. LeAWS Encryption SDKet le client de chiffrement Amazon S3 ne sont pas compatibles, car ils produisent des textes chiffrés avec différents formats de données.

Quels algorithmes de chiffrement sont pris en charge par le kit AWS Encryption SDK, et lequel est l'algorithme par défaut ?

LeAWS Encryption SDKutilise l'algorithme symétrique AES (Advanced Encryption Standard) en mode GCM (Galois/Counter Mode), appelé AES-GCM, pour chiffrer vos données. Il vous permet de choisir parmi plusieurs algorithmes symétriques et asymétriques pour chiffrer les clés de données qui chiffrent vos données.

Pour AES-GCM, la suite d'algorithmes par défaut est AES-GCM avec une clé de 256 bits, dérivation de clé (HKDF),signatures numériques, etEngagement clé.AWS Encryption SDKprend également en charge également les clés de chiffrement et les algorithmes de chiffrement 192 et 128 bits sans signature numérique et sans engagement de clé.

Dans tous les cas, la longueur du vecteur d'initialisation est de 12 octets ; la longueur de la balise d'authentification est de 16 octets. Par défaut, le kit SDK utilise la clé de données en tant qu'entrée du kit HMAC. extract-and-expand fonction de dérivation de clés (HKDF) pour dériver la clé de chiffrement AES-GCM, et ajoute également une signature ECDSA (Elliptic Curve Digital Signature Algorithm).

Pour plus d'informations sur le choix de l'algorithme à utiliser, consultez Suites d'algorithmes prises en charge.

Pour obtenir des détails sur l'implémentation des algorithmes pris en charge, consultez Référence relative aux algorithmes du kit.

Comment est généré le vecteur d'initialisation et où est-il stocké ?

LeAWS Encryption SDKutilise une méthode déterministe pour construire une valeur de vecteur d'initialisation différente pour chaque cadre. Cette procédure garantit que les IV ne sont jamais répétées dans un message. (Avant la version 1.3.0 du kitKit SDK de chiffrement AWS pour Javaet l'Kit SDK de chiffrement AWS pour Python, leAWS Encryption SDKGénéré de façon aléatoire une valeur de vecteur d'initialisation pour chaque cadre.)

Le vecteur d'initialisation est stocké dans le message chiffré que leAWS Encryption SDKrenvoie. Pour plus d'informations, consultez le AWS Encryption SDK référence de format de message.

Comment est générée, chiffrée et déchiffrée chaque clé de données ?

La méthode dépend du porte-clés ou du fournisseur de clés principales que vous utilisez.

LeAWS KMSporte-clés et fournisseurs de clés principales dans leAWS Encryption SDKUtilisez le kitAWS KMS GenerateDataKeyOpération API pour générer chaque clé de données et la chiffrer sous sa clé d'encapsulation. Pour chiffrer des copies de la clé de données sous des clés KMS supplémentaires, ils utilisent leAWS KMS Encrypt. Pour déchiffrer les clés de données, ils utilisent leAWS KMS Decrypt. Pour plus d'informations, consultez .AWS KMSPorte-clésdans leAWS Encryption SDKSpécification en GitHub.

D'autres porte-clés génèrent la clé de données, chiffrent et déchiffrent à l'aide des meilleures pratiques pour chaque langage de programmation. Pour plus de détails, reportez-vous aux spécifications du porte-clés ou du fournisseur de clés principales dans leSection FrameworkduAWS Encryption SDKSpécification en GitHub.

Comment puis-je effectuer le suivi des clés de données qui ont été utilisées pour chiffrer mes données ?

Le kit AWS Encryption SDK le fait automatiquement pour vous. Lorsque vous chiffrez des données, le kit SDK chiffre la clé de données et stocke la clé chiffrée ainsi que les données chiffrées dans le message chiffré qu'il renvoie. Lorsque vous déchiffrez des données, le kit AWS Encryption SDK extrait la clé de données chiffrée du message chiffré, la déchiffre, puis l'utilise pour déchiffrer les données.

Comment le kit AWS Encryption SDK stocke-t-il les clés de données chiffrées avec leurs données chiffrées ?

Les opérations de chiffrement du kit AWS Encryption SDK renvoient un message chiffré, une structure de données unique qui contient les données chiffrées et leurs clés de données chiffrées. Le format de message se compose d'au moins deux parties : un en-tête et un corps. L'en-tête du message contient les clés de données chiffrées, ainsi que des informations sur la manière dont le corps du message est formé. Le corps du message contient les données chiffrées. Si la suite d'algorithmes inclut unsignature numérique, le format du message inclut unebas de pagequi contient la signature. Pour plus d'informations, consultez AWS Encryption SDK référence de format de message.

Quelle est la surcharge ajoutée par le format de message du kit AWS Encryption SDK à mes données chiffrées ?

La surcharge ajoutée par le kit AWS Encryption SDK dépend de plusieurs facteurs, notamment :

  • La taille des données en texte brut

  • L'algorithme pris en charge utilisé

  • Le fait que les données authentifiées supplémentaires (données AAD) sont fournies ou non, et la longueur de ces données AAD

  • Le nombre et le type de clés d'encapsulage ou de clés principales

  • La taille du cadre (lorsque des données encadrées sont utilisées)

Lorsque vous utilisez le kitAWS Encryption SDKavec sa configuration par défaut (uneAWS KMS keyEn tant que clé d'encapsulage (ou clé principale), pas d'AAD, de données non encadrées et d'un algorithme de chiffrement avec signature), la surcharge est d'environ 600 octets. En général, vous pouvez raisonnablement considérer que le kit AWS Encryption SDK ajoute une surcharge de 1 Ko au maximum, sans compter les données AAD fournies. Pour plus d'informations, consultez AWS Encryption SDK référence de format de message.

Puis-je utiliser mon propre fournisseur de clés principales ?

Oui. Les détails d'implémentation varient en fonction du langage de programmation pris en charge que vous utilisez. Cependant, toutes les langues prises en charge vous permettent de définir des langues personnaliséesgestionnaires de matériaux cryptographiques (GMT), fournisseurs de clés principales, porte-clés, clés principales et clés d'encapsulation.

Puis-je chiffrer des données sous plusieurs clés d'encapsulage ?

Oui. Vous pouvez chiffrer la clé de données avec des clés d'encapsulage supplémentaires (ou des clés principales) afin d'accroître la redondance lorsque la clé se trouve dans une autre région ou n'est pas disponible pour le déchiffrement.

Pour chiffrer des données sous plusieurs clés d'encapsulage, créez un porte-clés ou un fournisseur de clés principales avec plusieurs clés d'encapsulage. Lorsque vous travaillez avec des porte-clés, vous pouvez créer un seul porte-clés avec plusieurs clés d'encapsulage ou un porte-clés multiple.

Lorsque vous chiffrez des données avec plusieurs clés d'encapsulation, leAWS Encryption SDKutilise une clé d'encapsulation pour générer une clé de données en texte clair. La clé de données est unique et mathématiquement sans rapport avec la clé d'encapsulation. Cette opération renvoie la clé de données en texte brut et une copie de la clé de données chiffrée par la clé d'encapsulage. Ensuite, la méthode de chiffrement chiffre la clé de données avec les autres clés d'encapsulage. Le résultatMessage chiffréinclut les données chiffrées et une clé de données chiffrée pour chaque clé d'encapsulage.

Le message chiffré peut être déchiffré à l'aide de l'une des clés d'encapsulage utilisées dans l'opération de chiffrement. LeAWS Encryption SDKutilise une clé d'encapsulage pour déchiffrer une clé de données chiffrée. Ensuite, il utilise la clé de données en texte brut pour déchiffrer les données.

Quels types de données puis-je chiffrer avec le kit AWS Encryption SDK ?

La plupart des implémentations de langages de programmation du kitAWS Encryption SDKpeut chiffrer des octets (tableaux d'octets) bruts, des flux d'E/S (flux d'octets) et des chaînes. LeAWS Encryption SDKpour .NET ne prend pas en charge les flux d'E/S. Nous fournissons des exemples de code pour chacun des langages de programmation pris en charge.

Comment le kit AWS Encryption SDK chiffre-t-il et déchiffre-t-il les flux de données d'entrée/sortie (I/O) ?

Le kit AWS Encryption SDK crée un flux de chiffrement ou de déchiffrement qui encapsule un flux d'I/O sous-jacent. Le flux de chiffrement ou de déchiffrement effectue une opération de chiffrement sur un appel en lecture ou en écriture. Par exemple, il peut lire les données en texte brut sur le flux sous-jacent et les chiffrer avant de renvoyer le résultat. Ou il peut lire un texte chiffré à partir d'un flux sous-jacent et le déchiffrer avant de renvoyer le résultat. Nous fournissons des exemples de code pour le chiffrement et le déchiffrement de flux pour chacun deslangage de programmation pris en chargequi prend en charge le streaming.

LeAWS Encryption SDKpour .NET ne prend pas en charge les flux d'E/S.