Événements
31 mars, 23 h - 2 avr., 23 h
L’événement de la communauté Microsoft Fabric, Power BI, SQL et AI ultime. 31 mars au 2 avril 2025.
Inscrivez-vous aujourd’huiCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
S’applique à : SQL Server 2019 (15.x) et versions ultérieures - Windows uniquement Azure SQL Database
Cet article explique comment créer et utiliser des index sur des colonnes chiffrées en utilisant des clés de chiffrement de colonne activées pour les enclaves avec Always Encrypted avec enclaves sécurisées.
Always Encrypted avec enclaves sécurisées prend en charge :
Notes
Le reste de cet article traite des index non-cluster sur les colonnes chiffrées avec des clés de chiffrement aléatoire et activées pour les enclaves.
Comme un index sur une colonne utilisant un chiffrement aléatoire et une clé de chiffrement de colonne activée pour les enclaves contient des données chiffrées (texte chiffré) triées en fonction du texte en clair, le moteur SQL Server doit utiliser l’enclave pour toute opération qui implique la création, la mise à jour ou la recherche dans un index, notamment :
DBCC
qui impliquent la vérification de l’intégrité des index, par exemple DBCC CHECKDB (Transact-SQL) ou DBCC CHECKTABLE (Transact-SQL).Toutes les opérations ci-dessus nécessitent que l’enclave ait la clé de chiffrement de colonne pour la colonne indexée. La clé est nécessaire pour déchiffrer les clés d’index. En règle générale, l’enclave peut obtenir une clé de chiffrement de colonne dans une des deux façons suivantes :
Pour que cette méthode d’appel d’opérations d’indexation fonctionne, l’application (incluant un outil comme SQL Server Management Studio (SSMS)) émettant une requête qui déclenche une opération sur un index doit :
Une fois que le moteur SQL Server analyse la requête de l’application et détermine qu’elle doit mettre à jour un index sur une colonne chiffrée pour exécuter la requête, il demande au pilote du client d’émettre la clé de chiffrement de colonne nécessaire à l’enclave via un canal sécurisé. C’est exactement le même mécanisme qui est utilisé pour fournir à l’enclave les clés de chiffrement de colonne pour le traitement de toutes les autres requêtes qui n’utilisent pas d’index. Par exemple, un chiffrement sur place ou des requêtes utilisant une correspondance de modèle et des comparaisons de plages.
Cette méthode est pratique pour vérifier que la présence d’index sur des colonnes chiffrées est transparente pour les applications déjà connectées à la base de données avec Always Encrypted et activées pour les calculs d’enclave. La connexion de l’application peut utiliser l’enclave pour le traitement des requêtes. Une fois que vous créez un index sur une colonne, le pilote à l’intérieur de votre application fournira en toute transparence les clés de chiffrement de colonne à l’enclave pour les opérations d’indexation. La création d’index peut augmenter le nombre de requêtes qui nécessitent que l’application envoie les clés de chiffrement de la colonne à l’enclave.
Pour utiliser cette méthode, suivez les instructions générales concernant l’exécution des instructions avec une enclave sécurisée qui sont fournies dans Exécuter des instructions Transact-SQL utilisant des enclaves sécurisées.
Pour obtenir des instructions pas à pas sur l’utilisation de cette méthode, consultez Didacticiel : Création et utilisation d’index sur des colonnes prenant en charge les enclaves à l’aide d’un chiffrement aléatoire.
Une fois qu’une application cliente envoie une clé de chiffrement de colonne à l’enclave pour traiter n’importe quelle requête nécessitant des calculs d’enclave, l’enclave met en cache la clé de chiffrement de colonne dans un cache interne. Ce cache se trouve à l’intérieur de l’enclave et est inaccessible à partir de l’extérieur.
Si cette même application ou une autre application cliente utilisée par ce même utilisateur ou un autre utilisateur déclenche une opération sur un index sans fournir directement le chiffrement de colonne nécessaire, l’enclave recherche la clé de chiffrement de colonne dans le cache. Par conséquent, l’opération sur l’index réussit, bien que l’application cliente n’a pas fourni la clé.
Pour cette méthode d’appel au fonctionnement d’opérations d’indexation, l’application doit se connecter à la base de données sans Always Encrypted activé pour la connexion et la clé de chiffrement de colonne requise doit être disponible dans le cache à l’intérieur de l’enclave.
Cette méthode d’appel des opérations est prise en charge seulement pour les requêtes qui ne nécessitent pas de clés de chiffrement de colonne pour les autres opérations non liées à des index. Par exemple, une application insérant une ligne avec une instruction INSERT
dans une table qui contient une colonne chiffrée doit se connecter à la base de données avec Always Encrypted activé dans la chaîne de connexion, et elle doit avoir accès aux clés, que la colonne chiffrée ait ou non un index.
Cette méthode est précise pour :
Vérifier que la présence d’index sur des colonnes prenant en charge les enclaves à l’aide d’un chiffrement aléatoire est transparente pour les applications et les utilisateurs n’ayant pas accès aux clés et aux données en texte en clair.
Elle garantit que la création d’un index sur une colonne chiffrée ne ralentit pas les requêtes existantes. Si une application émet une requête sur une table contenant des colonnes chiffrées sans nécessiter l’accès aux clés, l’application peut continuer à s’exécuter sans avoir accès aux clés après la création d’un index par un administrateur de base de données. Par exemple, considérez une application qui exécute la requête ci-dessous sur la table Employees, qui contient des colonnes chiffrées. L’administrateur de base de données n’a créé d’index sur aucune des colonnes chiffrées.
DELETE FROM [dbo].[Employees] WHERE [EmployeeID] = 1;
GO
Si l’application envoie la requête via une connexion sans Always Encrypted et les calculs d’enclave activés, la requête réussit. La requête ne déclenche aucun calcul sur les colonnes chiffrées. Une fois qu’un administrateur de base de données a créé un index sur des colonnes chiffrées, la requête déclenche la suppression des clés d’index dans les index. Dans ce cas, l’enclave a besoin des clés de chiffrement de colonne. Toutefois, l’application sera en mesure de continuer à exécuter cette requête sur la même connexion tant qu’un propriétaire des données a fourni les clés de chiffrement de colonne à l’enclave.
Pour obtenir la séparation des rôles lors de la gestion des index, car elle permet aux DBA de créer et modifier des index sur des colonnes chiffrées, sans avoir accès aux données sensibles.
Conseil
sp_enclave_send_keys (Transact-SQL) vous permet d’envoyer facilement à l’enclave toutes les clés de chiffrement de colonne activées pour les enclaves utilisées pour les index et de remplir le cache de clés.
Pour obtenir des instructions pas à pas sur l’utilisation de cette méthode, consultez Didacticiel : Création et utilisation d’index sur des colonnes prenant en charge les enclaves à l’aide d’un chiffrement aléatoire.
Événements
31 mars, 23 h - 2 avr., 23 h
L’événement de la communauté Microsoft Fabric, Power BI, SQL et AI ultime. 31 mars au 2 avril 2025.
Inscrivez-vous aujourd’huiEntrainement
Module
Protéger les données en transit et au repos - Training
Protéger les données en transit et au repos
Certification
Microsoft Certified : Azure Database Administrator Associate - Certifications
Administrer une infrastructure de base de données SQL Server pour les bases de données relationnelles cloud, locales et hybrides à l’aide des offres de bases de données relationnelles Microsoft PaaS.
Documentation
Tutoriel sur la création et l’utilisation d’index sur des colonnes prenant en charge les enclaves à l’aide d’un chiffrement aléatoire pris en charge dans Always Encrypted avec enclaves sécurisées pour SQL Server et la base de données Azure SQL.
Exécuter des instructions Transact-SQL à l’aide d’enclaves sécurisées - SQL Server
Exécuter des instructions DDL (Data Definition Language) pour configurer le chiffrement de votre colonne ou gérer des index sur des colonnes chiffrées, et interroger des colonnes chiffrées
Configurer le chiffrement de colonne sur place avec Transact-SQL - SQL Server
Configurer le chiffrement de colonne sur place avec Transact-SQL