Transparent data encryption (TDE) for the Production Mapping workspace in SQL Server (Production Mapping)
Puede adoptar varias precauciones para ayudar a proteger la base de datos, como diseñar un sistema de protección, 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.
Transparent Data Encryption (TDE) enables you to encrypt sensitive data, such as credit card numbers, stored in tables and tablespaces. Encrypted data is transparently decrypted for a database user or application that has access to data. TDE helps protect data stored on media in the event that the storage media or data file is stolen. Oracle uses authentication, authorization, and auditing mechanisms to secure data in the database but not in the operating system data files where data is stored. To protect these data files, Oracle provides TDE. TDE encrypts sensitive data stored in data files. To prevent unauthorized decryption, TDE stores the encryption keys in a security module external to the database.
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 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 AES y 3DES sin cambiar las aplicaciones existentes.
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 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.
Benefits of using TDE:
- As a security administrator, you can be sure that sensitive data is safe in case the storage media or data file is stolen.
- Implementing TDE helps you address security-related regulatory compliance issues.
- You do not need to create triggers or views to decrypt data for the authorized user or application. Data from tables is transparently decrypted for the database user and application.
- Database users and applications need not be aware that the data they are accessing is stored in encrypted form. Data is transparently decrypted for the database users and applications.
- Applications need not be modified to handle encrypted data. Data encryption and decryption are managed by the database.
- Key management operations are automated. The user or application does not need to manage encryption keys.
Consulte información más detallada en Cifrado transparente de datos (TDE), en la biblioteca de MSDN.
Para utilizar TDE, efectúe el siguiente procedimiento 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.
Example of TDE
You can use the SQL commands below to configure TDE. You can choose the password for the master key, and when backing up the master key, you can choose the folder and file name.
![Nota Nota](rsrc/note.png)
La operación de copiar y pegar el ejemplo puede dar lugar a errores de sintaxis.
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 = 'pm$$@admin';
GO
/* Backup master key */
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'pm$$@admin';
GO
BACKUP MASTER KEY TO FILE = 'D:\mssqlbackup\master\masterkey.mk'
ENCRYPTION BY PASSWORD = 'pm$$@admin';
GO
/* Create Certificate */
CREATE CERTIFICATE pm_cert WITH SUBJECT = 'PM Server Certificate';
GO
/* Verify Certificate */
SELECT * FROM sys.certificates where [name] = 'pm_cert'
GO
/* Backup certificate */
BACKUP CERTIFICATE pm_cert TO FILE = 'D:\mssqlbackup\master\pm.cer'
WITH PRIVATE KEY (
FILE = 'D:\mssqlbackup\master\pm.pvk',
ENCRYPTION BY PASSWORD = 'pm$$@admin');
GO
--use pm database
USE pmdb
GO
/* Create Encryption key */
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE pm_cert;
GO
/* Encrypt database */
ALTER DATABASE pmdb 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 ='pmdb'
GO