Exploración del cifrado de datos transparente

Completado

El cifrado de datos transparente (TDE) de Microsoft SQL Server cifra todos los datos de una base de datos de destino en el nivel de página. Los datos se cifran a medida que se escriben en la página de datos en el disco y se descifran cuando se leen en la memoria, lo que da lugar a que se cifren todas las páginas de datos del disco.

TDE no cifra los datos en el nivel de tabla o columna. Cualquier persona con los permisos adecuados puede leer, copiar y compartir los datos. El cifrado en reposo protege contra la restauración de una copia de seguridad en un servidor no seguro o la copia de archivos de base de datos y de registro de transacciones en otro servidor no seguro. No se produce ningún descifrado durante la operación de copia de seguridad.

TDE protege los datos en reposo y cumple con diversas leyes, regulaciones y directrices del sector. Permite a los desarrolladores de software cifrar los datos mediante algoritmos de cifrado AES sin cambiar las aplicaciones existentes.

Diagrama que muestra la arquitectura de cifrado de datos transparente.

Las bases de datos creadas en Azure SQL Database después de mayo de 2017 tienen TDE habilitado automáticamente. Las bases de datos creadas antes de mayo de 2017 necesitan que el TDE esté habilitado manualmente. Para Azure SQL Managed Instance, TDE está habilitado de forma predeterminada para las bases de datos creadas después de febrero de 2019. Las bases de datos creadas antes de febrero de 2019 necesitan que el TDE esté habilitado manualmente.

Para habilitar TDE en una instancia de Azure SQL Database, edite la base de datos en Azure Portal. En el panel Cifrado de datos transparente, seleccione la opción para habilitar el cifrado de datos.

Captura de pantalla que muestra la configuración de Cifrado de datos transparente para una instancia de Azure SQL Database.

De forma predeterminada, las bases de datos de Azure SQL Database se cifran mediante un certificado proporcionado por Microsoft (clave administrada por el servicio). Azure también ofrece una opción Bring Your Own Key (BYOK), lo que le permite usar una clave administrada por el cliente creada por la empresa y cargada en Azure Key Vault. Si la clave administrada por el cliente se quita de Azure, se cierran las conexiones de base de datos y se deniega el acceso a la base de datos.

Habilitar TDE dentro de una base de datos de Microsoft SQL Server es un proceso sencillo, ya que solo se requieren algunos comandos de T-SQL. Este proceso implica los siguientes pasos:

  1. Defina una clave maestra en la base de datos maestra mediante el comando CREATE MASTER KEY ENCRYPTION.
  2. Cree un certificado en la base de datos maestra mediante el CREATE CERTIFICATE comando .
  3. Cree una clave de cifrado de base de datos dentro de la base de datos mediante el CREATE DATABASE ENCRYPTION KEY comando .
  4. Habilite la clave de cifrado mediante el ALTER DATABASE comando .
USE master;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<your-pwd>';
GO

CREATE CERTIFICATE MyServerCert
    WITH SUBJECT = 'TDEDemo_Certificate';
GO

USE [TDE_Demo];
GO

CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO

ALTER DATABASE TDE_Demo SET ENCRYPTION ON;
GO

Una vez habilitado el TDE, se tarda tiempo en cifrar la base de datos, ya que cada página debe leerse, cifrarse y volver a escribirse en el disco. Cuanto mayor sea la base de datos, más tiempo tarda este proceso. Este proceso en segundo plano se ejecuta con una prioridad baja para evitar sobrecargar la E/S o la CPU del sistema.

El certificado usado por TDE debe realizar una copia de seguridad manual y almacenarse de forma segura. SQL Server se integra con administradores de claves empresariales (EKM), como Azure Key Vault, para administrar las claves de cifrado. La administración del certificado es fundamental porque si se pierde y la base de datos debe restaurarse a partir de una copia de seguridad, se produce un error en la restauración porque no se puede leer la base de datos.

Nota:

Para usar TDE con las bases de datos de un grupo de disponibilidad Always On, se debe realizar una copia de seguridad del certificado usado para cifrar la base de datos y restaurarlo en los demás servidores del grupo de disponibilidad que hospedarán copias de la base de datos.

Claves administradas por el cliente

También puede usar BYOK y aprovechar las ventajas de un almacén de claves de Azure. Las ventajas de usar claves administradas por el cliente son:

  • Control completo y pormenorizado del uso y de la administración del protector de TDE;
  • Transparencia del uso del protector de TDE;
  • Capacidad de implementar la separación de tareas en la administración de claves y datos en la organización
  • El administrador del almacén de claves puede revocar los permisos de acceso de las claves para hacer que la base de datos cifrada sea inaccesible
  • Administración central de claves en AKV;
  • Mayor confianza de los clientes finales, ya que AKV está diseñado de forma que Microsoft no puede ver ni extraer claves de cifrado

También puede aprovechar el uso de una identidad administrada asignada por el usuario (UMI) con claves administradas por el cliente para TDE, que:

  • Permite autorizar previamente el acceso al almacén de claves para los servidores lógicos de Azure SQL mediante la creación de una identidad administrada asignada por el usuario y la concesión de acceso al almacén de claves, incluso antes de crear el servidor o la base de datos.
  • Permite la creación de un servidor lógico de Azure SQL con TDE y CMK habilitados.
  • Permite asignar la misma identidad administrada asignada por el usuario a varios servidores, lo que elimina la necesidad de activar individualmente la identidad administrada asignada por el sistema para cada servidor lógico de Azure SQL y proporcionarle acceso al almacén de claves.
  • Proporciona la capacidad de aplicar CMK en tiempo de creación del servidor con una directiva de Azure integrada disponible.

La rotación automática de claves se introduce para las claves administradas por el cliente mediante TDE. Cuando se habilita, el servidor comprueba continuamente el almacén de claves para ver las nuevas versiones de la clave que se usan como protector de TDE. Si se detecta una nueva versión de la clave, el protector de TDE del servidor se rota automáticamente a la versión de clave más reciente en un plazo de 24 horas.

Azure Disk Encryption

Además de estas características de seguridad de SQL Server, las máquinas virtuales de Azure incluyen una capa adicional de seguridad, Azure Disk Encryption, una característica que ayuda a proteger y salvaguardar los datos y a cumplir con los compromisos de cumplimiento y organización. Si usa TDE, los datos están protegidos por varias capas de cifrado con Azure Disk Encryption.