Recommandations pour le chiffrement des données
S’applique à la recommandation de la liste de contrôle de sécurité well-architected Framework :
SE :07 | Chiffrer les données à l’aide de méthodes modernes standard pour protéger la confidentialité et l’intégrité. Aligner l’étendue de chiffrement avec les classifications de données ; hiérarchiser les méthodes de chiffrement de plateforme native. |
---|
Si vos données ne sont pas protégées, elles peuvent être modifiées de manière malveillante, ce qui entraîne une perte d’intégrité et de confidentialité.
Ce guide décrit les recommandations relatives au chiffrement et à la protection de vos données. Le chiffrement est le processus d’utilisation d’algorithmes de chiffrement pour rendre les données non lisibles et verrouiller les données avec une clé. Dans l’état chiffré, les données ne peuvent pas être déchiffrées. Il ne peut être déchiffré qu’à l’aide d’une clé associée à la clé de chiffrement.
Définitions
Petits caractères | Définition |
---|---|
Certificats | Fichiers numériques qui contiennent les clés publiques pour le chiffrement ou le déchiffrement. |
Suite de chiffrement | Ensemble d’algorithmes utilisés pour chiffrer et déchiffrer des informations pour sécuriser une connexion réseau via le protocole TLS (Transport Layer Security). |
Informatique confidentielle | L’informatique confidentielle est la protection des données en cours d’utilisation en effectuant des calculs dans un environnement d’exécution approuvé attesté basé sur le matériel. |
Déchiffrement | Processus dans lequel les données chiffrées sont déverrouillées avec un code secret. |
Double chiffrement | Processus de chiffrement des données à l’aide de deux couches indépendantes ou plus de chiffrement. |
Chiffrement | Processus par lequel les données sont rendues illisibles et verrouillées avec un code secret. |
Hashing | Processus de transformation des données en texte ou en nombres avec l’intention de masquer des informations. |
Clés | Code secret utilisé pour verrouiller ou déverrouiller des données chiffrées. |
Signature | Tampon chiffré d’authentification sur les données. |
Signature | Processus de vérification de l’authenticité des données à l’aide d’une signature. |
X.509 | Norme qui définit le format des certificats de clé publique. |
Stratégies de conception
Les mandats organisationnels ou les exigences réglementaires peuvent appliquer des mécanismes de chiffrement. Par exemple, il peut y avoir une exigence que les données restent uniquement dans la région sélectionnée et que les copies des données sont conservées dans cette région.
Ces exigences sont souvent le minimum de base. S’efforcez d’obtenir un niveau de protection plus élevé. Vous êtes responsable de la prévention des fuites de confidentialité et de la falsification de données sensibles, qu’il s’agisse de données utilisateur externes ou d’employés.
Les mécanismes de chiffrement doivent probablement sécuriser les données en trois étapes :
Les données au repos sont toutes les informations conservées dans les objets de stockage.
Un exemple de sécurisation des données au repos consiste à utiliser BitLocker pour chiffrer les données enregistrées dans le stockage sur un disque.
Les données en transit sont des informations transférées entre des composants, des emplacements ou des programmes.
Par exemple, la sécurisation des données en transit consiste à chiffrer des données avec TLS afin que les paquets qui se déplacent sur des réseaux publics et privés soient sécurisés.
Les données en cours d’utilisation sont des données qui sont activement utilisées en mémoire.
Un exemple de sécurisation des données en cours d’utilisation consiste à chiffrer avec l’informatique confidentielle pour protéger les données au fur et à mesure qu’elles sont traitées.
Les choix précédents ne s’excluent pas mutuellement. Ils sont souvent utilisés ensemble dans le contexte de l’ensemble de la solution. Une étape peut servir de contrôle de compensation. Par exemple, vous devrez peut-être isoler les données pour empêcher la falsification lorsque les données sont lues à partir de la mémoire.
Déterminer les exigences de chiffrement
Classifiez les données selon leur objectif et leur niveau de confidentialité pour déterminer les données dont vous avez besoin pour chiffrer. Pour les données qui doivent être chiffrées, déterminez le niveau de protection requis. Avez-vous besoin du chiffrement TLS de bout en bout pour toutes les données en transit ? Pour les données au repos, quelles fonctionnalités Azure peuvent répondre à vos besoins ? Avez-vous besoin de chiffrer deux données à chaque point de stockage ? Comment implémenter la protection des informations ?
Il est important d’équilibrer vos décisions de chiffrement, car il existe des compromis importants.
Compromis : chaque tronçon de chiffrement peut introduire une latence de performances. Des complexités opérationnelles peuvent se produire par rapport à la résolution des problèmes et à l’observabilité. La récupération peut être un défi.
Limitez ces compromis. Prévoyez des compromis pour les données classées comme sensibles. Les exigences peuvent même déterminer les compromis, par exemple si un certain type de données doit être chiffré et stocké dans certains seuils.
Il existe des cas où le chiffrement n’est pas possible en raison de limitations techniques, d’investissement ou d’autres raisons. Vérifiez que ces raisons sont claires, valides et documentées.
Les mécanismes de chiffrement forts ne doivent pas être votre seule forme de défense. Implémentez des processus de prévention du vol de données, des méthodes de test appropriées et la détection d’anomalies.
Pour plus d’informations sur la classification, consultez Recommandations sur la classification des données.
Utiliser des mécanismes de chiffrement natifs
La plupart des services Azure fournissent un niveau de chiffrement de base. Explorez les options de chiffrement fournies par la plateforme.
Il est vivement recommandé de ne pas désactiver les fonctionnalités de la plateforme pour développer vos propres fonctionnalités. Les fonctionnalités de chiffrement de plateforme utilisent des normes industrielles modernes, sont développées par des experts et sont hautement testées.
Pour de rares occasions, si vous devez remplacer le chiffrement fourni par la plateforme, évaluez les avantages et inconvénients et utilisez des algorithmes de chiffrement standard.
Les développeurs doivent utiliser des API de chiffrement intégrées au système d’exploitation plutôt qu’à des bibliothèques de chiffrement nonplates. Pour .NET, suivez le modèle de chiffrement .NET.
Choisir une approche des clés de chiffrement
Par défaut, les services Azure utilisent des clés de chiffrement gérées par Microsoft pour chiffrer et déchiffrer les données. Azure est responsable de la gestion des clés.
Vous pouvez choisir des clés gérées par le client. Azure utilise toujours vos clés, mais vous êtes responsable des opérations de clé. Vous avez la possibilité de modifier les clés lorsque vous le souhaitez. Le déchiffrement est une raison intéressante d’utiliser des clés gérées par le client.
Vous devez associer un chiffrement fort avec un déchiffrement fort. Du point de vue de la sécurité, la protection d’une clé de déchiffrement est importante, car la rotation est un moyen courant de contrôler le rayon d’explosion si une clé est compromise. Surveillez l’accès pour détecter l’accès et les activités anormales.
Stockez des clés distinctes des données chiffrées. Ce découplage permet de s’assurer que la compromission d’une entité n’affecte pas l’autre. Si vous utilisez des clés gérées par le client, stockez-les dans un magasin de clés. Stockez des données hautement sensibles dans un module de sécurité matériel managé (HSM).
Les deux magasins sont protégés par un accès basé sur l’identité. Cette fonctionnalité vous permet de refuser l’accès, même à la plateforme.
Utiliser des algorithmes de chiffrement standard
Utilisez des algorithmes de chiffrement qui sont bien établis et respectent les normes du secteur au lieu de créer des implémentations personnalisées.
Les normes du secteur pour les algorithmes exigent que les schémas de chiffrement aient un certain niveau d’entropie. Les sources d’entropie sont injectées pendant le chiffrement. L’entropie renforce l’algorithme et complique l’extraction d’informations par un attaquant. Déterminez les seuils tolérables d’entropie. Les procédures de chiffrement sont gourmandes en processeur. Trouvez le bon équilibre afin que vous optimisez les cycles de calcul qui sont dépensés sur le chiffrement, par rapport aux cibles globales de performances de la demande de calcul.
Compromis : si vous choisissez un algorithme très complexe ou injecte plus qu’une quantité raisonnable d’entropie, il dégrade les performances de votre système.
Utiliser des hachages et des sommes de contrôle
En règle générale, le hachage est une technique de détection d’erreurs. Vous pouvez également utiliser le hachage pour la sécurité, car il détecte les modifications apportées aux données susceptibles d’être provoquées par la falsification. Les fonctions de hachage sont basées sur le chiffrement, mais elles n’utilisent pas de clés. Les fonctions de hachage utilisent des algorithmes pour produire des sommes de contrôle. Les sommes de contrôle peuvent comparer les données pour vérifier l’intégrité de celui-ci.
Les applications doivent utiliser la famille SHA-2 d’algorithmes de hachage, tels que SHA-256, SHA-384 ou SHA-512.
Chiffrer des données au repos
Classifiez et protégez les objets de stockage d’informations conformément aux exigences de conformité internes et externes. Consultez les recommandations suivantes :
Chiffrez les données à l’aide d’options natives fournies pour les services de stockage, les magasins de données et d’autres ressources utilisées pour conserver les données. Chiffrez ces données même si vous stockez des données dans ces services de stockage ou ressources uniquement temporairement. Chiffrez également vos données de sauvegarde pour maintenir le même niveau de sécurité que la source d’origine.
Pour plus d’informations, consultez Protection des données au repos.
Utilisez le chiffrement double. Si vos besoins métier demandent une assurance plus élevée, vous pouvez effectuer un double chiffrement. Chiffrez les données dans deux couches ou plus à l’aide de clés gérées par le client indépendantes. Stockez les données dans un HSM managé. Pour lire les données, vous devez accéder aux deux clés. Si une clé est compromise, l’autre clé protège toujours les données. Cette technique vise à augmenter les coûts pour les attaquants.
Vous pouvez également utiliser le chiffrement fourni par la plateforme pour double chiffrer les données. Le chiffrement fourni par la plateforme protège le support de stockage au niveau de l’infrastructure et vous appliquez une autre couche de chiffrement au niveau des données. Par exemple, un service de répartiteur de messages dispose d’un chiffrement fourni par la plateforme via des clés gérées par Microsoft qui protège le canal de message. Cette méthode vous permet de chiffrer les messages avec des clés gérées par le client.
Utilisez plusieurs clés de chiffrement. Utilisez une clé de chiffrement de clé (KEK) pour protéger votre clé de chiffrement de données (DEK).
Utilisez des contrôles d’accès basés sur l’identité pour contrôler l’accès aux données. Ajoutez des pare-feu réseau pour fournir une couche supplémentaire de sécurité qui bloque l’accès inattendu et non sécurisé.
Pour plus d'informations, veuillez consulter la section Recommandations pour la gestion des identités et des accès.
Stockez des clés dans un HSM managé qui dispose d’un contrôle d’accès avec privilèges minimum. Séparez les données des clés des données.
Stockez une quantité limitée de données afin que vous chiffrez uniquement ce qui est nécessaire. Vos données ne doivent pas vivre plus longtemps que votre cycle de chiffrement. Lorsque les données ne sont plus nécessaires, supprimez les données chiffrées sans dépenser de cycles de déchiffrement.
Chiffrer les données en transit
Utilisez des protocoles sécurisés pour la communication client-serveur. Les protocoles de transport ont une couche de sécurité intégrée. TLS est la norme du secteur pour l’échange des données entre les points de terminaison client et serveur.
N’utilisez pas les versions antérieures à TLS 1.2. Migrez des solutions pour prendre en charge TLS 1.2 et utilisez cette version par défaut. Tous les services Azure prennent en charge TLS 1.2 sur les points de terminaison HTTPS publics.
Risque : les clients plus anciens qui ne prennent pas en charge TLS 1.2 peuvent ne pas fonctionner correctement si la compatibilité descendante n’est pas prise en charge.
Toutes les communications de site web doivent utiliser HTTPS, quelle que soit la sensibilité des données transférées. Pendant une négociation client-serveur, négociez l’utilisation de la stratégie HTTP Strict Transport Security (HSTS) afin que le transport HTTPS soit conservé et ne passe pas au protocole HTTP pendant la communication. Cette politique protège contre les attaques man-in-the-middle.
La prise en charge de HSTS concerne les versions plus récentes. Vous pouvez rompre la compatibilité descendante avec les navigateurs plus anciens.
Remarque
Vous pouvez également chiffrer des protocoles pour établir des connexions sécurisées pour les bases de données. Par exemple, Azure SQL Database prend en charge le protocole TDS (Tabular Data Stream), qui intègre une négociation TLS.
Une suite de chiffrement est un ensemble d’algorithmes utilisés pour normaliser la négociation entre le client et le serveur. Les chiffrements garantissent que l’échange est chiffré et authentifié. Le choix des chiffrements dépend de la version TLS utilisée par le serveur. Pour certains services, tels qu’Azure Application Gateway, vous pouvez choisir la version de TLS et les suites de chiffrement que vous souhaitez prendre en charge. Implémentez des suites de chiffrement qui utilisent Advanced Encryption Standard (AES) comme chiffrement de bloc symétrique. AES-128, AES-192 et AES-256 sont acceptables.
Gérez le cycle de vie des certificats. Les certificats ont une durée de vie prédéterminée. Ne conservez pas les certificats de longue durée et ne les laissez pas expirer eux-mêmes. Implémentez un processus qui renouvelle les certificats à une fréquence acceptable. Vous pouvez automatiser le processus pour les renouvellements qui se produisent à intervalles courts.
Remarque
Si vous utilisez l’épinglage de certificat, familiarisez-vous avec les limitations de gestion des certificats et de l’agilité.
Votre flux de travail ne doit pas autoriser l’acceptation des certificats non valides dans l’environnement. Le processus d’épinglage de certificat doit valider les certificats et appliquer cette vérification de validation. Vous devez surveiller les journaux d’accès pour vous assurer que la clé de signature est utilisée avec des autorisations appropriées.
Si une clé est compromise, le certificat doit être révoqué immédiatement. Une autorité de certification fournit une liste de révocation de certificats (CRL) qui indique les certificats qui sont invalidés avant leur expiration. La vérification de la validation doit tenir compte des listes de révocation de certificats.
Compromis : le processus de validation de certification peut être fastidieux et implique généralement une autorité de certification. Déterminez les données que vous devez chiffrer avec des certificats. Pour d’autres types de communication, déterminez si vous pouvez implémenter des contrôles de compensation localisés pour ajouter la sécurité.
L’une des façons de localiser les contrôles consiste à utiliser tls mutuel (mTLS). Il établit l’approbation dans les deux directions entre le client et le serveur. Le client et le serveur ont leurs propres certificats, et chaque certificat est authentifié avec leur paire de clés publique ou privée. Avec mTLS, vous ne dépendez pas de l’autorité de certification externe. Le compromis est l’ajout de la complexité de la gestion de deux certificats.
Double chiffrer les connexions VPN si nécessaire. Effectuez un double chiffrement pour ajouter une défense en profondeur à votre tunnel VPN. Lorsque vous utilisez deux serveurs VPN, vous pouvez masquer l’adresse IP entre les serveurs, et également masquer l’adresse IP entre le serveur et la destination. Pendant ce processus, les données en transit sont également chiffrées deux fois.
Compromis : par rapport aux configurations VPN uniques, les configurations vpn doubles sont souvent plus coûteuses et les connexions sont souvent plus lentes.
Implémentez des processus de journalisation et de surveillance. Effectuez le suivi des ressources de connexion d’accès qui stockent des informations sur les clients, telles que leur adresse IP source, leur port et leur protocole. Utilisez ces informations pour détecter les anomalies.
Chiffrer les données en cours d’utilisation
Pour les charges de travail de haute sécurité, la segmentation, l’isolation et le moins privilégié sont des modèles de conception recommandés.
Dans le contexte de la protection in-use, les limites matérielles peuvent nécessiter le chiffrement des données pendant qu’elles sont utilisées dans le processeur physique et la mémoire pour garantir l’isolation des machines virtuelles, du code de gestion de l’hôte et d’autres composants. Le chiffrement et le déchiffrement des données doivent uniquement être effectués dans ces limites d’isolation.
Des exigences de sécurité ou réglementaires plus strictes peuvent également nécessiter des preuves basées sur du matériel, signées par chiffrement, que les données sont chiffrées lors de leur utilisation, ce qui peut être obtenu via l’attestation. L’informatique confidentielle est une technologie de ce type qui prend en charge l’exigence. Des services spécifiques dans Azure offrent la possibilité de protéger les données lorsqu’elles sont calculées. Pour plus d’informations, consultez La facilitation Azure : Calcul confidentiel Azure.
Prenez en compte le cycle de vie final des données que vous protégez les données passent souvent par plusieurs systèmes dans sa durée de vie, veillez à vous assurer que toutes les parties de composant d’une solution peuvent fournir les niveaux de protection requis, ou assurez-vous que votre stratégie de gestion des données fournit une segmentation ou un masquage appropriés.
Facilitation Azure
Les sections suivantes décrivent les services et fonctionnalités Azure que vous pouvez utiliser pour chiffrer vos données.
Clés gérées par le client
Stockez des clés gérées par le client dans Azure Key Vault ou dans un HSM géré par Key Vault.
Key Vault traite les clés comme n’importe quel autre secret. Les contrôles d’accès en fonction du rôle Azure (RBAC) accèdent aux clés via un modèle d’autorisation. Ce contrôle basé sur l’identité doit être utilisé avec les stratégies d’accès Key Vault.
Pour plus d’informations, consultez Fournir l’accès aux clés, certificats et secrets Key Vault à l’aide de RBAC.
Azure Key Vault Premium et Managed-HSM améliorent davantage l’offre en incluant des capabilites informatiques confidentiels et une version de clé sécurisée qui prend en charge une stratégie pour s’assurer qu’une clé n’est jamais publiée dans une charge de travail qui peut prouver qu’elle s’exécute dans un environnement d’exécution approuvé (TEE).
Protection des données au repos
Stockage Azure chiffre automatiquement vos données avec des chiffrements de bloc lorsque les données sont conservées dans un compte de stockage. Pour Stockage Blob Azure et stockage file d’attente Azure, Le stockage fournit également un chiffrement côté client via des bibliothèques.
Pour plus d’informations, consultez Chiffrement du stockage.
Azure Machines Virtuelles a des fichiers de disque qui servent de volumes de stockage virtuel. Vous pouvez chiffrer les fichiers de disque virtuel afin que le contenu ne soit pas accessible.
Les disques managés peuvent être exportés à partir du portail. Le chiffrement côté serveur et le chiffrement sur l’hôte peuvent protéger les données uniquement après leur exportation. Toutefois, vous devez protéger les données pendant le processus d’exportation. Vous pouvez utiliser Azure Disk Encryption pour protéger et protéger vos données pendant le processus d’exportation.
Azure propose plusieurs options de chiffrement pour les disques managés. Pour plus d’informations, consultez Vue d’ensemble des options de chiffrement de disque managé.
SQL Database offre une fonctionnalité de chiffrement transparent des données utilisée pour chiffrer un fichier de base de données au niveau de la page.
Protection des données en transit
Avec Key Vault, vous pouvez provisionner, gérer et déployer des certificats SSL (Public Et Private Secure Sockets Layer) ou TLS. Vous pouvez utiliser les certificats avec Azure et vos ressources connectées internes.
Protection des données en cours d’utilisation
Des services spécifiques dans Azure offrent la possibilité de protéger les données tout en étant calculés au sein du processeur physique et de la mémoire d’un hôte à l’aide de l’informatique confidentielle Azure.
Les Machines Virtuelles confidentiels offrent une machine virtuelle entière s’exécutant à l’intérieur d’une TEE, la mémoire et l’exécution du contenu de l’UC de la machine virtuelle sont chiffrées offrant une approche simple « lift &shift » pour déplacer des applications non modifiées avec des exigences de sécurité élevées vers Azure. Chaque machine virtuelle confidentielle Azure possède son propre module TPM (Virtual Trust Platform Module) dédié. Le chiffrement est effectué pendant le démarrage sécurisé des composants du système d’exploitation.
Les nœuds worker AKS confidentiels, les conteneurs confidentiels sur AKS ou les conteneurs confidentiels sur Azure Container Instances (ACI) offrent la possibilité d’exécuter et de gérer des conteneurs non modifiés à l’intérieur d’une TEE qui permet aux clients de bénéficier d’une protection en cours d’utilisation. Les offres de conteneurs sont intégrées Machines Virtuelles confidentielles et bénéficient des mêmes protections.
Les solutions Application Enclave sont des applications spécialement conçues qui tirent parti des extensions de processeur spécifiques offertes par les références SKU de machine virtuelle qui prennent en charge les extensions Intel Software Guard (SGX), celles-ci offrent une base de calcul approuvée très granulaire (TCB), mais nécessitent que les applications soient spécifiquement codées pour tirer parti des fonctionnalités.
La version de clé sécurisée peut être combinée avec ces technologies pour garantir que les données chiffrées ne sont jamais déchiffrées à l’intérieur d’une TEE, ce qui prouve qu’elle fournit le niveau de protection requis par le biais d’un processus appelé Attestation.
Gestion des secrets
Vous pouvez utiliser Key Vault pour stocker et contrôler en toute sécurité l’accès aux jetons, mots de passe, certificats, clés API et autres secrets. Utilisez Key Vault comme solution de gestion des clés et des certificats. La référence SKU Premium prend en charge les modules HSM.
Exemple
L’exemple suivant montre les solutions de chiffrement que vous pouvez utiliser pour gérer des clés, des certificats et des secrets.
Liens connexes
- Modèle de chiffrement .NET
- Azure Disk Encryption
- Chiffrement du stockage pour les données au repos
- Épinglage de certificat dans les services Azure
- Fournir l’accès aux clés, certificats et secrets Key Vault à l’aide de RBAC
- Présentation des options de chiffrement de disque managé
- Chiffrement transparent des données
- Vue d’ensemble du module de plateforme d’approbation
- Informatique confidentielle Azure
Liens de la communauté
Liste de contrôle de sécurité
Reportez-vous à l’ensemble complet de recommandations.