Vamos a implementar Transparent Data Encryption (TDE) como sistema de encriptación en un Availability Group (AG) con dos servidores. Deberemos configurar TDE en la base de datos primaria y luego replicar las claves de cifrado y certificados necesarios a la réplica secundaria para asegurar la compatibilidad de cifrado en ambas instancias. Con lo cual tendremos nuestro sistema de encriptación configurado correctamente.
Pasos para Implementar el sistema de encriptación
Paso 1: Crear una Master Key en la Base de Datos Master de Ambos Servidores
En cada servidor del AG, primero deberemos crear una master key en la base de datos master para proteger las claves de cifrado de TDE.
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Test.1234';
GO
Paso 2: Crear o Restaurar el Certificado en el Servidor Primario
1.Crear un Certificado para TDE en el Servidor Primario
USE master;
GO
CREATE CERTIFICATE TDECert
WITH SUBJECT = 'Certificado TDE para Availability Group';
GO
2.Respaldar el Certificado y la Clave Privada
Necesitarás restaurar este certificado en el servidor secundario para permitir que el cifrado funcione en ambas réplicas.
USE master;
GO
BACKUP CERTIFICATE TDECert
TO FILE = 'C:\backups\TDECert.cer'
WITH PRIVATE KEY (
FILE = 'C:\backups\TDECert_PrivateKey.pvk',
ENCRYPTION BY PASSWORD = 'Pass.1234'
);
GO
Guarda los archivos .cer y .pvk en una ubicación segura y accesible para restaurarlos en el servidor secundario.
Paso 3: Restaurar el Certificado en el Servidor Secundario
1. Copiar los Archivos del Certificado al Servidor Secundario
Transfiere los archivos TDECert.cer y TDECert_PrivateKey.pvk al servidor secundario en una ubicación accesible.
2. Restaurar el Certificado en el Servidor Secundario:
USE master;
GO
CREATE CERTIFICATE TDECert
FROM FILE = 'C:\backups\TDECert.cer'
WITH PRIVATE KEY (
FILE = 'C:\backups\TDECert_PrivateKey.pvk',
DECRYPTION BY PASSWORD = 'Pass.1234'
);
GO
Esto garantiza que ambos servidores tengan el mismo certificado, necesario para leer y escribir datos cifrados de forma sincronizada.

Paso 4: Crear y Configurar la Database Encryption Key (DEK) en la Base de Datos Primaria
1. Conéctate a la Base de Datos Primaria y Crear la DEK Usando el Certificado TDE
USE TestDB;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE TDECert;
GO
2. Activar el Cifrado en la Base de Datos Primaria
ALTER DATABASE TestDB
SET ENCRYPTION ON;
GO
En este punto, el cifrado comenzará en la base de datos primaria. La operación puede llevar algún tiempo en completarse dependiendo del tamaño de la base de datos.
Paso 5: Validar el Estado de Cifrado en Ambas Réplicas
Para verificar que el cifrado esté activo en ambas réplicas, puedes ejecutar la siguiente consulta en ambas instancias:
SELECT name, is_encrypted
FROM sys.databases
WHERE name = 'TestDB';
Si is_encrypted muestra 1, el cifrado está activo en esa base de datos.
Por defecto el certificado creado tendrá un año de caducidad, es muy importante para evitar futuros problemas renovar dicho certificado antes de su fecha de expiración.

¿No te atreves a montar un sistema de encriptación?
Confía la implementación del TDE de SQL Server como sistema de encriptación en expertos en SQL Server. El tener tu servicio sin ningún tipo de seguridad a nivel de encriptación compromete la seguridad de la empresa y los datos alojados en la misma. Si necesitas implementarlo en tu entorno, consúltanos sin compromiso y valoramos tu caso.
¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.
Sígue a GPS en LinkedIn
