Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Transparent Data Encryption (TDE) chiffre les fichiers de données SQL Server et Azure SQL Database, appelés chiffrement des données au repos. Vous pouvez prendre plusieurs précautions pour sécuriser la base de données, comme la conception d’un système sécurisé, le chiffrement des ressources confidentielles et la création d’un pare-feu autour des serveurs de base de données. Toutefois, dans un scénario où les supports physiques (tels que les lecteurs ou bandes de sauvegarde) sont volés, une partie malveillante peut simplement restaurer ou attacher la base de données et parcourir les données. Une solution consiste à chiffrer les données sensibles dans la base de données et à protéger les clés utilisées pour chiffrer les données avec un certificat. Cela empêche toute personne sans les clés d’utiliser les données, mais ce type de protection doit être planifié à l’avance.
TDE effectue le chiffrement et le déchiffrement d’E/S en temps réel des données et des fichiers journaux. Le chiffrement utilise une clé de chiffrement de base de données stockée dans l’enregistrement de démarrage de base de données à des fins de disponibilité lors de la récupération. La clé de chiffrement de base de données est une clé symétrique sécurisée à l'aide d'un certificat stocké dans la base de données master du serveur ou une clé asymétrique protégée par un module de gestion de clés extensible. Le chiffrement transparent des données protège les données « au repos », autrement dit les fichiers de données et les fichiers journaux. Il permet de se conformer à de nombreuses lois, règles et instructions établies dans différents secteurs professionnels. Cela permet aux développeurs de logiciels de chiffrer des données à l’aide d’algorithmes de chiffrement AES et 3DES sans modifier les applications existantes.
Important
TDE ne fournit pas de chiffrement entre les canaux de communication. Pour plus d’informations sur le chiffrement des données entre les canaux de communication, consultez Activer les connexions chiffrées au moteur de base de données (Gestionnaire de configuration SQL Server).
Rubriques connexes :
À propos de TDE
Le chiffrement du fichier de base de données est effectué au niveau de la page. Les pages d’une base de données chiffrée sont chiffrées avant d’être écrites sur le disque et déchiffrées lors de la lecture en mémoire. TDE n’augmente pas la taille de la base de données chiffrée.
Informations applicables à SQL Database
Lorsque vous utilisez TDE avec SQL Database V12 V12 (préversion dans certaines régions), le certificat au niveau du serveur stocké dans la base de données master est automatiquement créé pour vous par SQL Database. Pour déplacer une base de données TDE sur SQL Database, vous devez déchiffrer la base de données, déplacer la base de données, puis réactiver TDE sur la base de données SQL de destination. Pour obtenir des instructions pas à pas pour TDE sur SQL Database, consultez Transparent Data Encryption avec Azure SQL Database.
La préversion de l’état de TDE s’applique même dans le sous-ensemble de régions géographiques où la famille de versions V12 de SQL Database est annoncée comme étant désormais en état de disponibilité générale. TDE pour SQL Database n’est pas destiné à être utilisé dans les bases de données de production tant que Microsoft n’annonce pas que TDE est promu de la préversion à la disponibilité générale. Pour plus d’informations sur SQL Database V12, consultez Nouveautés d’Azure SQL Database.
Informations applicables à SQL Server
Une fois qu’elle est sécurisée, la base de données peut être restaurée à l’aide du certificat approprié. Pour plus d'informations sur les certificats, consultez SQL Server Certificates and Asymmetric Keys.
Lorsque vous activez TDE, vous devez sauvegarder immédiatement le certificat et la clé privée associée au certificat. Si le certificat devient indisponible ou si vous devez restaurer ou attacher la base de données sur un autre serveur, vous devez disposer de sauvegardes du certificat et de la clé privée, ou vous ne pourrez pas ouvrir la base de données. Le certificat de chiffrement doit être conservé même si TDE n’est plus activé sur la base de données. Même si la base de données n’est pas chiffrée, certaines parties du journal des transactions peuvent rester protégées et le certificat peut être nécessaire pour certaines opérations jusqu’à ce que la sauvegarde complète de la base de données soit effectuée. Un certificat qui a dépassé sa date d’expiration peut toujours être utilisé pour chiffrer et déchiffrer des données avec TDE.
Hiérarchie de chiffrement
L’illustration suivante montre l’architecture du chiffrement TDE. Seuls les éléments au niveau de la base de données (la clé de chiffrement de base de données et les parties ALTER DATABASE sont configurables par l’utilisateur lors de l’utilisation de TDE sur SQL Database.
Utilisation du chiffrement transparent des données
Pour utiliser TDE, procédez comme suit.
| S’applique à : SQL Server. |
Créez une clé principale.
Créez ou obtenez un certificat protégé par la clé principale.
Créez une clé de chiffrement de base de données et protégez-la à l'aide du certificat.
Configurez la base de données pour qu'elle utilise le chiffrement.
L'exemple ci-dessous illustre le chiffrement et le déchiffrement de la base de données AdventureWorks2012 à l'aide d'un certificat installé sur le serveur nommé MyServerCert.
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>';
go
CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate';
go
USE AdventureWorks2012;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
ALTER DATABASE AdventureWorks2012
SET ENCRYPTION ON;
GO
Les opérations de chiffrement et de déchiffrement sont planifiées sur des threads d'arrière-plan par SQL Server. Vous pouvez afficher l’état de ces opérations à l’aide des affichages catalogue et des vues de gestion dynamique dans la liste qui s’affiche plus loin dans cette rubrique.
Avertissement
Les fichiers de sauvegarde des bases de données pour lesquelles le chiffrement transparent des données est activé sont également chiffrés à l'aide de la clé de chiffrement de base de données. En conséquence, lorsque vous restaurez ces sauvegardes, le certificat qui protège la clé de chiffrement de base de données doit être disponible. Cela signifie qu’en plus de sauvegarder la base de données, vous devez vous assurer que vous gérez les sauvegardes des certificats de serveur pour éviter toute perte de données. Une perte de données interviendra si le certificat n'est plus disponible. Pour plus d'informations, consultez SQL Server Certificates and Asymmetric Keys.
Commandes et fonctions
Les certificats TDE doivent être chiffrés par la clé principale de base de données pour être acceptés par les commandes suivantes. S’ils sont chiffrés uniquement par mot de passe, les instructions les rejettent en tant que encrypteurs.
Important
La modification des certificats pour qu’ils soient protégés par mot de passe après leur utilisation par TDE entraîne l’inaccessible de la base de données après un redémarrage.
Le tableau suivant fournit des liens et des explications des commandes et fonctions TDE.
| Commande ou fonction | Objectif |
|---|---|
| CRÉER UNE CLÉ DE CHIFFREMENT DE BASE DE DONNÉES (Transact-SQL) | Crée une clé utilisée pour chiffrer une base de données. |
| ALTER DATABASE ENCRYPTION KEY (Transact-SQL) | Modifie la clé utilisée pour chiffrer une base de données. |
| DROP DATABASE ENCRYPTION KEY (Transact-SQL) | Supprime la clé utilisée pour chiffrer une base de données. |
| Options SET d’ALTER DATABASE (Transact-SQL) | Explique l’option ALTER DATABASE utilisée pour activer TDE. |
Vues du catalogue et vues de gestion dynamique
Le tableau suivant présente les vues de catalogue TDE et les vues de gestion dynamique.
| Affichage catalogue ou vue de gestion dynamique | Objectif |
|---|---|
| sys.databases (Transact-SQL) | Affichage catalogue qui affiche les informations de base de données. |
| sys.certificates (Transact-SQL) | Affichage catalogue qui affiche les certificats dans une base de données. |
| sys.dm_database_encryption_keys (Transact-SQL) | Vue de gestion dynamique qui fournit des informations sur les clés de chiffrement utilisées dans une base de données et l’état du chiffrement d’une base de données. |
Autorisations
Chaque fonctionnalité et commande TDE ont des exigences d’autorisation individuelles, décrites dans les tableaux indiqués précédemment.
L’affichage des métadonnées impliquées avec TDE nécessite l’autorisation VIEW DEFINITION sur le certificat.
Considérations
Alors qu’une analyse de rechiffrement d’une opération de chiffrement de base de données est en cours, les opérations de maintenance sur la base de données sont désactivées. Vous pouvez utiliser le paramètre de mode utilisateur unique pour la base de données afin d’effectuer l’opération de maintenance. Pour plus d’informations, consultez Définir une base de données en mode mono-utilisateur.
Vous pouvez trouver l’état du chiffrement de base de données à l’aide de la vue de gestion dynamique sys.dm_database_encryption_keys. Pour plus d’informations, consultez la section « Vues de catalogue et vues de gestion dynamique » plus haut dans cette rubrique.
Dans TDE, tous les fichiers et groupes de fichiers de la base de données sont chiffrés. Si des groupes de fichiers d’une base de données sont marqués EN LECTURE SEULE, l’opération de chiffrement de base de données échoue.
Si une base de données est utilisée dans la mise en miroir de bases de données ou la copie des journaux de transaction, les deux bases de données sont chiffrées. Les transactions de journal sont chiffrées lorsqu’elles sont envoyées entre elles.
Important
Les nouveaux index de recherche en texte intégral sont chiffrés lorsqu’une base de données est définie pour le chiffrement. Les index de recherche en texte intégral créés précédemment seront importés pendant la mise à niveau et ils seront dans TDE une fois les données chargées dans SQL Server. L’activation d’un index de recherche en texte intégral sur une colonne peut entraîner l’écriture des données de cette colonne en texte brut sur le disque pendant une analyse d’indexation en texte intégral. Nous vous recommandons de ne pas créer d’index de recherche en texte intégral sur des données chiffrées sensibles.
Les données chiffrées compressent considérablement moins que les données non chiffrées équivalentes. Si TDE est utilisé pour chiffrer une base de données, la compression de sauvegarde ne pourra pas compresser considérablement le stockage de sauvegarde. Par conséquent, l’utilisation de TDE et la compression de sauvegarde ensemble ne sont pas recommandées.
Restrictions
Les opérations suivantes ne sont pas autorisées pendant le chiffrement de base de données initial, la modification de clé ou le déchiffrement de base de données :
Suppression d’un fichier à partir d’un groupe de fichiers dans la base de données
Suppression de la base de données
Mise hors connexion de la base de données
Détachement d’une base de données
Transition d’une base de données ou d’un groupe de fichiers dans un état READ ONLY
Les opérations suivantes ne sont pas autorisées pendant la CLÉ CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY ou ALTER DATABASE... Instructions SET ENCRYPTION.
Suppression d’un fichier à partir d’un groupe de fichiers dans la base de données.
Suppression de la base de données
Mise hors connexion de la base de données.
Détacher une base de données.
Transition d’une base de données ou d’un groupe de fichiers dans un état READ ONLY.
Utilisation d’une commande ALTER DATABASE.
Démarrage d’une sauvegarde de fichiers de base de données ou de base de données.
Démarrage d’une restauration de fichiers de base de données ou de base de données.
Création d’un instantané.
Les opérations ou conditions suivantes empêcheront les instructions CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY ou ALTER DATABASE... SET ENCRYPTION.
La base de données est en lecture seule ou possède des groupes de fichiers en lecture seule.
Une commande ALTER DATABASE est en cours d’exécution.
Toute sauvegarde de données est en cours d’exécution.
La base de données se trouve dans une condition hors connexion ou de restauration.
Un instantané est en cours.
Tâches de maintenance de base de données.
Lors de la création de fichiers de base de données, l’initialisation instantanée des fichiers n’est pas disponible lorsque TDE est activé.
Pour chiffrer la clé de chiffrement de base de données avec une clé asymétrique, la clé asymétrique doit résider sur un fournisseur de gestion de clés extensible.
Chiffrement transparent des données et journaux des transactions
L’activation d’une base de données pour utiliser TDE a pour effet de « zéro » la partie restante du journal des transactions virtuelles pour forcer le journal des transactions virtuelles suivant. Cela garantit qu’aucun texte clair n’est laissé dans les journaux des transactions une fois la base de données définie pour le chiffrement. Vous pouvez trouver l’état du chiffrement du fichier journal en affichant la encryption_state colonne dans l’affichage sys.dm_database_encryption_keys , comme dans cet exemple :
USE AdventureWorks2012;
GO
/* The value 3 represents an encrypted state
on the database and transaction logs. */
SELECT *
FROM sys.dm_database_encryption_keys
WHERE encryption_state = 3;
GO
Pour plus d’informations sur l’architecture des fichiers journaux SQL Server, consultez le journal des transactions (SQL Server).
Toutes les données écrites dans le journal des transactions avant une modification de la clé de chiffrement de base de données seront chiffrées à l’aide de la clé de chiffrement de base de données précédente.
Une fois qu’une clé de chiffrement de base de données a été modifiée deux fois, une sauvegarde de journal doit être effectuée avant que la clé de chiffrement de base de données puisse être modifiée à nouveau.
Transparent Data Encryption et la base de données système tempdb
La base de données système tempdb est chiffrée si une autre base de données sur l’instance de SQL Server est chiffrée à l’aide de TDE. Cela peut avoir un effet de performances pour les bases de données non chiffrées sur la même instance de SQL Server. Pour plus d’informations sur la base de données système tempdb, consultez base de données tempdb.
Chiffrement et réplication transparents des données
La réplication ne réplique pas automatiquement les données à partir d’une base de données compatible TDE dans un formulaire chiffré. Vous devez activer TDE séparément si vous souhaitez protéger les bases de données de distribution et d’abonné. La réplication d’instantanés, ainsi que la distribution initiale des données pour la réplication transactionnelle et de fusion, peut stocker des données dans des fichiers intermédiaires non chiffrés ; par exemple, les fichiers bcp. Pendant la réplication transactionnelle ou de fusion, le chiffrement peut être activé pour protéger le canal de communication. Pour plus d’informations, consultez Activer des connexions chiffrées dans le moteur de base de données (Gestionnaire de configuration SQL Server).
Transparent Data Encryption et FILESTREAM DATA
Les données FILESTREAM ne sont pas chiffrées même si TDE est activé.
Chiffrement transparent des données et extension de pool de mémoires tampons
Les fichiers liés à l’extension de pool de mémoires tampons (BPE) ne sont pas chiffrés lorsque la base de données est chiffrée à l’aide de TDE. Vous devez utiliser des outils de chiffrement au niveau du système de fichiers comme Bitlocker ou EFS pour les fichiers associés à BPE.
Chiffrement transparent des données et In-Memory OLTP
TDE peut être activé sur une base de données qui contient des objets OLTP In-Memory. In-Memory enregistrements de journal OLTP sont chiffrés si TDE est activé. Les données d’un groupe de fichiers MEMORY_OPTIMIZED_DATA ne sont pas chiffrées si TDE est activé.
Voir aussi
Déplacer une base de données protégée par TDE vers un autre serveur SQL ServerActiver TDE à l’aide d’EKMTransparent Data Encryption avec Azure SQL DatabaseChiffrement SQL ServerSQL Server et des clés de chiffrement des bases de données (moteur de base de données)Centre de sécurité pour le moteur de base de données SQL Server et Azure SQL DatabaseFILESTREAM (SQL Server)