Fonctionnement du kit Kit SDK de chiffrement AWS - Kit SDK de chiffrement AWS

Si nous fournissons une traduction de la version anglaise du guide, la version anglaise du guide aura préséance en cas de contradiction. La traduction sera une traduction automatique.

Fonctionnement du kit Kit SDK de chiffrement AWS

Le kit Kit SDK de chiffrement AWS utilise le chiffrement d'enveloppe pour protéger vos données et les clés de données correspondantes.

Chiffrement de clé symétrique

Pour chiffrer des données, le kit Kit SDK de chiffrement AWS soumet une clé de chiffrement, connue sous le nom de clé de données et la clé de données en texte brut que vous fournissez à un algorithme de chiffrement. L'algorithme de chiffrement utilise ces entrées pour chiffrer les données. Ensuite, le kit Kit SDK de chiffrement AWS renvoie un message chiffré qui inclut des données chiffrées, une copie chiffrée des données clés, et le contexte de chiffrement si vous en avez utilisé un.

Pour déchiffrer le message chiffré, le kit Kit SDK de chiffrement AWS soumet la clé de données le message chiffré que le kit SDK renvoie à un algorithme de déchiffrement. L'algorithme de déchiffrement utilise ces entrées pour renvoyer les données en texte brut.

Étant donné que la même clé de données est utilisée pour chiffrer et déchiffrer les données, les opérations sont appelées chiffrement et déchiffrement à clé symétrique. La figure suivante illustre un chiffrement et un déchiffrement à clé symétrique dans le kit Kit SDK de chiffrement AWS.


        Chiffrement et déchiffrement à clé symétrique

Chiffrement d'enveloppe

La sécurité de vos données chiffrées dépend partiellement de la protection de la clé de données capable de les déchiffrer. Le chiffrement de la clés de données en vue de sa protection est un bonne pratique reconnue. Pour cela, vous avez besoin d'une autre clé de chiffrement, nommée clé principale. La pratique qui consiste à utiliser une clé principale pour chiffrer des clés de données s'appelle le chiffrement d'enveloppe. Voici certains des avantages que représente le chiffrement d'enveloppe :

Protection des clés de données

Lorsque vous chiffrez une clé de données, vous n'avez pas à vous préoccuper de l'emplacement où la stocker, car la clé de données est intrinsèquement protégée par le chiffrement. Vous pouvez stocker en toute sécurité la clé de données chiffrée avec les données chiffrées. Le kit Kit SDK de chiffrement AWS le fait automatiquement pour vous. Il enregistre les données chiffrées et la clé de données chiffrée dans un message chiffré.

Chiffrement des mêmes données sous plusieurs clés principales

Les opérations de chiffrement peuvent exiger beaucoup de temps, notamment lorsque les données en cours de chiffrement sont des objets de grande taille. Au lieu de rechiffrer des données brutes plusieurs fois avec des clés différentes, vous pouvez rechiffrer uniquement les clés de données qui protègent les données brutes.

Combinaison des points forts de plusieurs algorithmes

En règle générale, les algorithmes de chiffrement à clé symétrique sont plus rapides et produisent des textes chiffrés plus petits que le chiffrement asymétrique et le chiffrement de clé publique. Cependant, les algorithmes de clé publique fournissent une séparation inhérente des rôles et facilitent la gestion des clés. Vous pouvez combiner les points forts de chacun de ces types. Par exemple, vous pouvez chiffrer les données brutes avec le chiffrement de clé symétrique, puis chiffrer la clé de données avec le chiffrement de clé publique.

Le kit Kit SDK de chiffrement AWS utilise le chiffrement d'enveloppe. Il chiffre vos données avec une clé de données. Ensuite, il chiffre la clé de données avec une clé principale. Le kit Kit SDK de chiffrement AWS renvoie les données chiffrées et les clés de données chiffrées dans un même message chiffré, comme illustré dans le schéma suivant.


        Chiffrement d’enveloppe avec le Kit SDK de chiffrement AWS

Si vous avez plusieurs clés principales, ou des clés d'encapsulage, chacune d'entre elles peut chiffrer la clé de données en texte brut. Ensuite, le kit Kit SDK de chiffrement AWS renvoie un message chiffré qui comprend les données chiffrées et la collection des clés de données chiffrées. Chaque clés principales peut déchiffrer l'une des clés de données chiffrées, qui peuvent ensuite déchiffrer les données.

Lorsque vous utilisez le chiffrement d'enveloppe, vous devez protéger vos clés principales contre tout accès non autorisé. Vous pouvez effectuer cette opération de différentes manières :

Si vous ne disposez pas de système de gestion de clés, nous vous recommandons d'utiliser AWS KMS. Le kit Kit SDK de chiffrement AWS s'intègre à AWS KMS pour vous aider à protéger et à utiliser vos clés principales. Vous pouvez également utiliser le kit Kit SDK de chiffrement AWS avec d'autres porte-clés et fournisseurs de clés principales, y compris ceux que vous personnalisez. Même si vous n'utilisez pas AWS, vous pouvez toujours utiliser ce kit Kit SDK de chiffrement AWS.

Flux de travail de chiffrement Kit SDK de chiffrement AWS

Les flux de travail de cette section expliquent comment le kit SDK chiffre les données et déchiffre les messages chiffrés. Ils expliquent de quelle manière le kit SDK utilise les composants que vous créez, y compris un fournisseur de clés principales et une clé principale (Java et Python) ou un porte-clés (C ou JavaScript), pour répondre aux demandes de chiffrement et de déchiffrement à partir de votre application.

Chiffrement de données par le kit SDK

Le kit SDK fournit des méthodes qui chiffrent des chaînes, des tableaux d'octets et des flux d'octets. Pour obtenir des exemples de code permettant de chiffrer et de déchiffrer les chaînes et les flux d'octets dans chaque langage de programmation pris en charge, veuillez consulter les exemples de la section Langages de programmation.

  1. Votre application transmet les données en texte brut à l'une des méthodes de chiffrement. Nous vous recommandons également de transmettre un contexte de chiffrement non secret et facultatif.

  2. La méthode de chiffrement demande les matériaux de chiffrement au gestionnaire des matériaux de chiffrement (CMM).

    Le CMM est un composant qui assemble les clés de données, les clés de signature et d'autres matériaux de chiffrement. Le kit Kit SDK de chiffrement AWS fournit un CMM par défaut et un CMM qui gère la mise en cache des clés de données. Vous pouvez également créer des CMM personnalisés pour vos applications. En règle générale, vous ne créez pas explicitement de CMM par défaut. Lorsque vous spécifiez un fournisseur de clés principales ou un porte-clés, le kit Kit SDK de chiffrement AWS crée un CMM par défaut pour vous.

  3. Le CMM demande les matériaux de chiffrement au fournisseur de clés principales ou au porte-clés. La réponse inclut une clé de données en texte brut et la même clé de données chiffrée sous les clés principales. Le CMM renvoie ces matériaux de chiffrement à la méthode de chiffrement.

  4. La méthode de chiffrement utilise la clé de données en texte brut pour chiffrer les données, puis la supprime. Si vous avez fourni un contexte de chiffrement, la méthode de chiffrement lie cryptographiquement le contexte de chiffrement aux données chiffrées.

  5. La méthode de chiffrement renvoie un message chiffré qui contient les données chiffrées, la clé de données chiffrée et d'autres métadonnées, y compris le contexte de chiffrement en cas d'utilisation préalable.

Déchiffrement d'un message chiffré par le kit SDK

Le kit SDK fournit des méthodes qui déchiffrent le message chiffré et renvoient des chaînes en texte brut, des tableaux d'octets et des flux d'octets. Pour obtenir des exemples de code dans tous les langages de programmation pris en charge, consultez exemples de la section Langages de programmation.

Pour déchiffrer, vous devez utiliser le fournisseur de clés principales et le porte-clés compatibles avec ou identiques à ceux que vous avez utilisés pour le chiffrement.

  1. Votre application transmet un message chiffré à une méthode de déchiffrement.

    Pour indiquer la source des clés de données qui ont été utilisées pour chiffrer vos données, votre demande spécifie un gestionnaire des matériaux de chiffrement (CMM), ou un fournisseur de clés principales ou un porte-clés. Si vous spécifiez un fournisseur de clés principales ou un porte-clés, le kit Kit SDK de chiffrement AWS crée un CMM par défaut pour vous.

  2. La méthode de déchiffrement demande à CMM les matériaux cryptographiques pour déchiffrer le message chiffré. Il transmet des informations à partir du message chiffré, y compris les clés de données chiffrées.

  3. En Java et Python, pour obtenir des matériaux de déchiffrement, la valeur par défaut CMM demande à son fournisseur de clés principales une clé principale qui peut déchiffrer l'une des clés de données chiffrées. D'autres CMMs peuvent utiliser différentes techniques pour obtenir les matériaux de déchiffrement. En C et JavaScript, le CMM demande les matériaux de déchiffrement au porte-clés. Le porte-clés utilise ses clés d'encapsulage pour déchiffrer l'une des clés de données chiffrées.

    La réponse inclut les matériaux de déchiffrement, y compris la clé de données en texte brut.

  4. La méthode de déchiffrement utilise la clé de données en texte brut pour déchiffrer les données, puis la supprime.

  5. La méthode de déchiffrement renvoie les données en texte brut.