TDE
loading...
Cifrado de datos transparente (TDE)
La principal funcion del TDE es proteger las bases de datos, como el diseño de una sistema seguro, en caso de que se de un robo de discos duros o copias de seguridad el usuario no tendra acceso a la informacion.
Para implementar un TDE seguimos los siguientes pasos:
Paso 1: Crear una clave maestra, con las siguiente sentencia revisamos si ya existe alguna:
use master
select
* from sys.symmetric_keys
--##MS_ServiceMasterKey## 1 102 256 A3 AES_256 2015-10-12 16:26:55.190 2015-10-12 16:26:55.190 6D1DE52F-93CF-4694-8F21-583AA1F5B687 NULL NULL NULL NULL
Para poder crear la clave maestra debe cumplir con ciertos requeriemientos ya que tiene que ser una contraseña segura, si dejamos por ejemplo una contraseña vacia nos aparecera un error de que no cumple con la directiva de Windows.
create master key encryption
by password= '';
go
Se recomienda que la contraseña contenga los siguientes caracteres: Mayusculas, Minusculas, Digitos del 0 al 9 y caracteres que no sean alfanumericos por ejemplo $.
create master key encryption
by password= 'Pas$Word';
go
select
* from sys.symmetric_keys
where name like '%##MS_DatabaseMasterKey##%';
select name, is_master_key_encrypted_by_server
from sys.databases
Paso 2: Una vez creada la clave maestra el siguiete paso es crear el certificado, para eso ejecutamos la siguiente sentencia:
create certificate CertificadoTDE
with subject = 'Certificado para TDE';
go
select *
from sys.certificates
where name ='CertificadoTDE';
go
--CertificadoTDE 258 1 MK ENCRYPTED_BY_MASTER_KEY 1 Certificado para TDE 5a 85 2e a3 4a 1b 78 bd 4d 76 dc 02 b9 d3 62 08 0x0106000000000009010000007B5B3F6C129B374C9A0A5A9F3346E005F1B5AFED S-1-9-1-1816091515-1278712594-2673478298-98584115-3987715569 Certificado para TDE 2017-09-14 23:50:09.000 2016-09-14 23:50:09.000 0x7B5B3F6C129B374C9A0A5A9F3346E005F1B5AFED NULL NULL
Paso 3: Despues de crear el certificado en necesario proteger la clave de cifrado, para eso ejecutamos la siguiente sentencia:
use AdventureWorks2014
create database encryption key
with algorithm = AES_128
encryption by server certificate CertificadoTDE;
go
select database_id, DB_NAME(database_id) as Nombre,
encryption_state, key_algorithm, key_length
from sys.dm_database_encryption_keys
alter database AdventureWorks2014
set encryption on;
go
select *
from sys.dm_database_encryption_keys
Paso 4: Creamos un respaldo del certificado usado para cifrar la clave de la base de datos, ya que son necesarios para poder restaurar la base de datos en otro servidor.
backup database AdventureWorks2014
to disk = N'C:\Backup\Bkp_AdventureWorks2014.bak'
with noformat, noinit,
name= N'AdventureWorks2014 completa cifrada',
skip, norewind, nounload, stats=10;
go
Con la siguiente sentencia validamos que el respaldo se completo correctamente:
RESTORE FILELISTONLY
FROM DISK = 'C:\Backup\Bkp_AdventureWorks2014.bak'
A continuación vamos a tratar de restaurar esta base de datos en otro servidor o instancia de SQL Server:
restore database AdventureWorks2014_bkpcfe
from disk = N'C:\Backup\Bkp_AdventureWorks2014.bak'
with file =1,
MOVE 'AdventureWorks2014_Data' TO 'C:\Full\AdventureWorks2014_Data.mdf',
MOVE 'AdventureWorks2014_Log' TO 'C:\Full\AdventureWorks2014_Log.ldf',
nounload, stats=10;
go
NOTA:Nos aparece error ya que no tenemos el certificado para poder restaurar la base de datos, necesitamos primero restaurar el cert.ficado y despues la base de datos.
Paso 5: Primero restauramos el certificadoTDE de la siguiente manera:
use master;
go
backup certificate CertificadoTDE
to file= 'C:\Backup\CertificadoTDE.cert'
with private key
(
file = 'C:\Backup\ClavePrivada.key',
encryption by password =''
)
go
Paso 6: Una vez restaurado el certificado creamos una nueva clave maestra ejecutando los siguientes comandos:
use master
create master key encryption
by password = 'Nv&va8a$s';
go
Paso 7: Una vez creada la calve maestra creamos un nuevo certificado ejecutando los siguientes comandos:
create certificate NuevoCertificadoTDE
from file = 'C:\Backup\CertificadoTDE.cert'
with private key
(
file ='C:\Backup\ClavePrivada.key',
decryption by password =''
);
go
Paso 8: Como ya se creo el certificado y la cave en el nuevo servidor o instancia ya podemos restaurar la base de datos cifrada sin ningun problema.
restore database AdventureWorks2014_bkpcfe
from disk = N'C:\Backup\Bkp_AdventureWorks2014.bak'
with file =1,
MOVE 'AdventureWorks2014_Data' TO 'C:\Backup\AdventureWorks2014_Data.mdf',
MOVE 'AdventureWorks2014_Log' TO 'C:\Backup\AdventureWorks2014_Log.ldf',
nounload, stats=10;
go

Comentarios
Publicar un comentario