Descripción del Cifrado de datos transparente (TDE)

Puede tomar varias precauciones para proteger la base de datos, como diseñar un sistema seguro, cifrar los datos confidenciales e instalar un firewall alrededor de los servidores de bases de datos. Sin embargo, si se diera el caso de un robo de medios físicos (como unidades de disco o cintas de copia de seguridad), un usuario malintencionado sólo tendría que restaurar o adjuntar la base de datos y examinar los datos. Una solución consiste en cifrar los datos confidenciales en la base de datos y usar un certificado para proteger las claves que se utilizan para cifrarlos. Esto evita que utilice los datos cualquiera que carezca de las claves, pero este tipo de protección debe planearse de antemano.

El cifrado de datos transparente (TDE) realiza el cifrado y descifrado de E/S en tiempo real de los datos y los archivos de registro. El cifrado utiliza una clave de cifrado de la base de datos (DEK), que está almacenada en el registro de arranque de la base de datos para que esté disponible durante la recuperación. La DEK es una clave simétrica protegida utilizando un certificado almacenado en la base de datos maestra del servidor o una clave asimétrica protegida por un módulo EKM. TDE protege los datos "en reposo", es decir, los archivos de datos y de registro. Ofrece la posibilidad de cumplir muchas leyes, normativas y directrices establecidas en diversos sectores. También permite a los desarrolladores de software cifrar los datos mediante algoritmos de cifrado AES y 3DES sin cambiar las aplicaciones existentes.

Nota importanteImportante

TDE no proporciona cifrado para los canales de comunicaciones. Para obtener más información sobre cómo cifrar los datos a su paso por los canales de comunicaciones, vea Cifrar conexiones a SQL Server.

Una vez protegida, la base de datos puede restaurarse utilizando el certificado correcto. Para obtener más información acerca de los certificados, vea Certificados y claves asimétricas de SQL Server.

[!NOTA]

Al habilitar TDE, debería hacer inmediatamente una copia de seguridad del certificado y la clave privada asociada al certificado. Si el certificado no está disponible en algún momento o si debe restaurar o adjuntar la base de datos en otro servidor, debe tener copias de seguridad del certificado y la clave privada o no podrá abrir la base de datos. El cifrado del certificado o asimétrico se debería conservar aun cuando TDE deje de estar habilitado en la base de datos. Aunque la base de datos no se cifre, la clave de cifrado de la base de datos se puede conservar en la base de datos y puede que sea necesario el acceso a la misma para algunas operaciones.

El cifrado del archivo de base de datos se realiza en el nivel de página. Las páginas de una base de datos cifrada se cifran antes de escribirse en el disco y se descifran cuando se leen en la memoria. TDE no aumenta el tamaño de la base de datos cifrada. Para obtener más información acerca de las páginas de base de datos, vea Descripción de páginas y extensiones.

En la siguiente ilustración se muestra la arquitectura del cifrado TDE:

Muestra la jerarquía descrita en el tema .

Utilizar el cifrado de datos transparente

Para usar TDE, siga estos pasos.

  • Cree una clave maestra

  • Cree u obtenga un certificado protegido por la clave maestra

  • Cree una clave de cifrado de base de datos y protéjala con el certificado

  • Configure la base de datos para que utilice el cifrado

En el ejemplo siguiente se muestra cómo cifrar y descifrar la base de datos AdventureWorks mediante un certificado instalado en el servidor denominado MyServerCert.

USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>';
go
CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate'
go
USE AdventureWorks
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE MyServerCert
GO
ALTER DATABASE AdventureWorks
SET ENCRYPTION ON
GO

SQL Server programa las operaciones de cifrado y descifrado en subprocesos que se ejecutan en segundo plano. Puede ver el estado de estas operaciones mediante las vistas de catálogo y las vistas de administración dinámica de la lista que se muestra más adelante en este tema.

Nota de advertenciaAdvertencia

Los archivos de copia de seguridad de las bases de datos que tienen habilitado TDE también se cifran mediante la clave de cifrado de la base de datos. Como consecuencia, al restaurar estas copias de seguridad debe estar disponible el certificado que protege la clave de cifrado de la base de datos. Esto significa que, además de hacer copias de seguridad de la base de datos, tiene que asegurarse de que mantiene copias de seguridad de los certificados del servidor para evitar la pérdida de datos. Si el certificado deja de estar disponible, perderá los datos. Para obtener más información, vea Certificados y claves asimétricas de SQL Server.

Comandos y funciones

Para que puedan ser aceptados por las instrucciones siguientes, los certificados de TDE deben cifrarse con la clave maestra de la base de datos. Si solamente se cifran con una contraseña, las instrucciones los rechazarán como sistemas de cifrado.

Nota importanteImportante

Si los certificados se protegen mediante contraseña una vez usados para TDE, la base de datos dejará de ser accesible después de un reinicio.

En la tabla siguiente se proporcionan vínculos y explicaciones de los comandos y funciones de TDE.

Comando o función

Finalidad

CREATE DATABASE ENCRYPTION KEY (Transact-SQL)

Crea una clave que se utiliza para cifrar una base de datos.

ALTER DATABASE ENCRYPTION KEY (Transact-SQL)

Cambia la clave que se utiliza para cifrar una base de datos.

DROP DATABASE ENCRYPTION KEY (Transact-SQL)

Quita la clave que se utilizó para cifrar una base de datos.

Opciones de ALTER DATABASE SET (Transact-SQL)

Explica la opción ALTER DATABASE que se utiliza para habilitar TDE.

Vistas de catálogo y vistas de administración dinámica

En la tabla siguiente se muestran las vistas de catálogo y las vistas de administración dinámica de TDE.

Vista de catálogo o vista de administración dinámica

Finalidad

sys.databases (Transact-SQL)

Vista de catálogo que muestra información sobre las bases de datos.

sys.certificates (Transact-SQL)

Vista de catálogo que muestra los certificados de una base de datos.

sys.dm_database_encryption_keys (Transact-SQL)

Vista de administración dinámica que proporciona información sobre las claves de cifrado utilizadas en una base de datos y el estado de cifrado de una base de datos.

Permisos

Cada una de las características y comandos de TDE tiene sus propios requisitos de permisos, que se describen en las tablas mostradas anteriormente.

Para ver los metadatos relacionados con TDE, se requiere el permiso VIEW DEFINITION en el certificado. Para obtener más información, vea Permiso VIEW DEFINITION.

Consideraciones

Mientras se realiza el examen del proceso de nuevo cifrado para una operación de cifrado de base de datos, las operaciones de mantenimiento de la base de datos están deshabilitadas. Puede configurar la base de datos en modo de usuario único si desea realizar la operación de mantenimiento. Para obtener más información, vea Cómo establecer una base de datos en modo de usuario único (SQL Server Management Studio).

Puede encontrar el estado del cifrado de la base de datos utilizando la vista de administración dinámica sys.dm_database_encryption_keys. Para obtener más información, vea la sección "Vistas de catálogo y vistas de administración dinámica"anteriormente en este tema.

En TDE, se cifran todos los archivos y grupos de archivos de la base de datos. Si algún grupo de archivos de una base de datos está marcado como READ ONLY, se producirá un error en la operación de cifrado de la base de datos.

Si una base de datos se utiliza en una creación de reflejo de la base de datos o en un trasvase de registros, se cifrarán ambas bases de datos. Las transacciones del registro se cifrarán cuando se envíen entre ellas.

Nota importanteImportante

Los índices de texto completo nuevos se cifrarán cuando una base de datos esté configurada para cifrarse. Los índices de texto completo creados previamente se importarán durante la actualización y usarán TDE una vez que los datos se hayan cargado en SQL Server. La habilitación de un índice de texto completo en una columna puede ocasionar que los datos de dicha columna se escriban en texto sin formato en el disco durante el examen para la indización de texto completo. No se recomienda crear un índice de texto completo para datos confidenciales cifrados.

Los datos cifrados se comprimen mucho menos que los datos no cifrados equivalentes. Si se usa TDE para cifrar una base de datos, la compresión de copia de seguridad no podrá comprimir significativamente el almacenamiento de copia de seguridad. Por consiguiente, no se recomienda usar conjuntamente TDE y la compresión de copia de seguridad.

Restricciones

No están permitidas las operaciones siguientes durante el cifrado inicial de la base de datos, el cambio clave o el descifrado de una base de datos:

  • Quitar un archivo de un grupo de archivos de la base de datos.

  • Quitar la base de datos.

  • Desconectar la base de datos.

  • Separar la base de datos.

  • Pasar la base de datos o el grupo de archivos al estado READ ONLY.

No están permitidas las operaciones siguientes durante la ejecución de instrucciones CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY o ALTER DATABASE...SET ENCRYPTION.

  • Quitar un archivo de un grupo de archivos de la base de datos.

  • Quitar la base de datos.

  • Desconectar la base de datos.

  • Separar la base de datos.

  • Pasar la base de datos o el grupo de archivos al estado READ ONLY.

  • Usar un comando ALTER DATABASE.

  • Iniciar una copia de seguridad de base de datos o de archivos de base de datos.

  • Iniciar una restauración de base de datos o de archivos de base de datos.

  • Crear una instantánea.

Las operaciones o condiciones siguientes impedirán la ejecución de las instrucciones CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY o ALTER DATABASE...SET ENCRYPTION.

  • La base de datos o cualquiera de sus grupos de archivos son de sólo lectura.

  • Se está ejecutando un comando ALTER DATABASE.

  • Se está ejecutando cualquier tipo de copia de seguridad de los datos.

  • La base de datos está desconectada o en restauración.

  • Se está realizando una instantánea.

  • Se están realizando tareas de mantenimiento en la base de datos.

El cifrado de datos transparente y los registros de transacciones

Al habilitar una base de datos para utilizar TDE, se "pone a cero" la parte restante del registro de transacciones virtual para exigir el registro de transacciones virtual siguiente. Esto garantiza que no quede ningún texto sin cifrar en los registros de transacciones una vez configurada la base de datos para el cifrado. Puede encontrar el estado del cifrado del archivo de registro en la columna encryption_state de la vista sys.dm_database_encryption_keys, como en este ejemplo:

USE AdventureWorks;
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

Para obtener más información acerca de la arquitectura de los archivos de registro de SQL Server, vea Arquitectura física del registro de transacciones.

Todos los datos escritos en el registro de transacciones antes de cambiar la clave de cifrado de la base de datos se cifrarán mediante la clave de cifrado anterior de la base de datos.

Cuando una clave de cifrado de base de datos se modifica dos veces, debe realizarse una copia de seguridad de registros para que la clave de cifrado de base de datos pueda volver a modificarse.

El cifrado de datos transparente y la base de datos del sistema tempdb

La base de datos del sistema tempdb se cifrará si alguna otra base de datos de la instancia de SQL Server se cifra mediante TDE. Esto podría tener un efecto en el rendimiento de las bases de datos no cifradas de la misma instancia de SQL Server. Para obtener más información sobre la base de datos del sistema tempdb, vea Base de datos tempdb.

Cifrado de datos transparente y replicación

La replicación no replica automáticamente los datos de una base de datos habilitada para TDE en un formato cifrado. Debe habilitar por separado TDE si desea proteger las bases de datos de suscriptor y de distribución. La replicación de instantáneas, así como la distribución inicial de datos para la replicación transaccional y de mezcla, puede almacenar los datos en archivos intermedios sin cifrar; por ejemplo, los archivos bcp.  Durante la replicación transaccional o de mezcla, el cifrado puede habilitarse para proteger el canal de comunicaciones. Para obtener más información, vea Cómo habilitar conexiones cifradas en el motor de base de datos (Administrador de configuración de SQL Server).

Cifrado de datos transparente y FILESTREAM DATA

Los datos FILESTREAM no se cifran ni siquiera cuando se habilita TDE.