Cifrado transparente de datos (TDE) para el espacio de trabajo de Workflow Manager en SQL Server
Se pueden tomar varias precauciones que ayudarán a proteger la base de datos, como diseñar un sistema protegido, cifrar activos confidenciales y crear un firewall en torno a los servidores de base de datos. Sin embargo, en un escenario en el que se sustraigan los medios físicos (como unidades o cintas de copia de seguridad) un intruso malintencionado puede restaurar o adjuntar la base de datos y examinar los datos. Una solución consiste en cifrar los datos confidenciales de la base de datos y proteger las claves utilizadas para cifrar los datos con un certificado. Esto evita que alguien que no tenga las claves pueda utilizar los datos, pero este tipo de protección debe planearse con antelación.
El cifrado transparente de datos (TDE) permite cifrar datos confidenciales tales como números de tarjetas de crédito almacenados en tablas y grupos de archivos. Los datos cifrados se descifran de forma transparente para una aplicación o un usuario de base de datos que tenga acceso a los datos. TDE ayuda a proteger los datos almacenados en medios en caso de sustracción de los medios de almacenamiento o los archivos de datos. SQL Server usa mecanismos de autenticación, autorización y auditoría para proteger los datos de la base de datos pero no los archivos de datos del sistema operativo donde se almacenan datos. Para proteger estos archivos de datos, SQL Server proporciona TDE. TDE cifra los datos confidenciales almacenados en los archivos de datos. Para evitar descifrados no autorizados, TDE almacena las claves de cifrado en un módulo de seguridad externo a la base de datos.
TDE realiza cifrado y descifrado de E/A en tiempo real de los archivos de registro y datos. El cifrado usa una clave de cifrado de base de datos (DEK), que se almacena en el registro de arranque de la base de datos a efectos de disponibilidad durante la recuperación. La DEK es una clave simétrica protegida mediante el uso de un certificado almacenado en la base de datos maestra del servidor o una clave asimétrica protegida por un módulo de Administración de clave extensible (EKM). TDE protege los datos sin actividad, es decir, los archivos de registro y de datos. Proporciona la posibilidad de cumplir con muchas leyes, reglamentos y directrices establecidos en diversos sectores. Esto permite a los desarrolladores de software cifrar datos mediante el uso de algoritmos de cifrado American Encryption Standard (AES) y 3DES sin cambiar las aplicaciones existentes.
El cifrado de archivos 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 que se escriban en el disco y se descifran cuando se leen en la memoria. TDE no aumenta el tamaño de la base de datos cifrada.
Ventajas de utilizar el TDE
- Como administrador de seguridad tendrá la tranquilidad de que los datos confidenciales estén protegidos en caso de robo de los medios de almacenamiento o de los archivos de datos.
- La implementación de TDE ayuda a abordar los aspectos de cumplimiento reglamentario relacionados con la seguridad.
- No es necesario crear desencadenadores ni vistas para descifrar los datos para una aplicación o usuario autorizados. Los datos de las tablas se descifran de forma transparente para la aplicación y el usuario de la base de datos.
- No es necesario que las aplicaciones y usuarios de base de datos sepan que los datos a los que acceden están almacenados en modo cifrado. Los datos se descifran de forma transparente para las aplicaciones y usuarios de base de datos.
- No hace falta modificar las aplicaciones para controlar los datos cifrados. La base de datos administra el cifrado y descifrado de datos.
- Las operaciones de administración de claves están automatizadas. El usuario o la aplicación no necesitan administrar las claves de cifrado.
Para usar TDE, siga estos pasos en SQL Server Management Studio.
- Cree una clave principal.
- Cree u obtenga un certificado protegido por la clave principal.
- Cree una clave de cifrado de base de datos y protéjala mediante un certificado.
- Establezca que la base de datos utilice cifrado.
Ejemplo de TDE
Puede usar los comandos de SQL siguientes para configurar TDE. Puede elegir la contraseña para la clave principal, y al realizar la copia de seguridad de la clave principal, puede elegir la carpeta y el nombre de archivo.

La operación de copiar y pegar los ejemplos puede dar lugar a errores de sintaxis.
Ejemplo de TDE
USE master
GO
/* Verify master key */
SELECT * FROM sys.symmetric_keys WHERE name LIKE '%MS_DatabaseMasterKey%'
GO
/* if there are no records found, then it means there was no predefined Master Key.
To create a Master Key, you can execute the below mentioned TSQL code. */
/* Create master key */
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'wmx$$@admin';
GO
/* Backup master key */
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'wmx$$@admin';
GO
BACKUP MASTER KEY TO FILE = 'D:\mssqlbackup\master\masterkey.mk'
ENCRYPTION BY PASSWORD = 'wmx$$@admin';
GO
/* Create Certificate */
CREATE CERTIFICATE wmx_cert WITH SUBJECT = 'WMX Server Certificate';
GO
/* Verify Certificate */
SELECT * FROM sys.certificates where [name] = 'wmx_cert'
GO
/* Backup certificate */
BACKUP CERTIFICATE wmx_cert TO FILE = 'D:\mssqlbackup\master\wmx.cer'
WITH PRIVATE KEY (
FILE = 'D:\mssqlbackup\master\wmx.pvk',
ENCRYPTION BY PASSWORD = 'wmx$$@admin');
GO
--use wmx database
USE wmxdb
GO
/* Create Encryption key */
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE wmx_cert;
GO
/* Encrypt database */
ALTER DATABASE wmxdb SET ENCRYPTION ON;
GO
/* Verify Encryption */
SELECT
DB_NAME(database_id) AS DatabaseName
,Encryption_State AS EncryptionState
,key_algorithm AS Algorithm
,key_length AS KeyLength
FROM sys.dm_database_encryption_keys
GO
SELECT
NAME AS DatabaseName
,IS_ENCRYPTED AS IsEncrypted
FROM sys.databases where name ='wmxdb'
GO