Pasión por la tecnología…

julio 3, 2008

SQL Server 2008: Transparent Data Encryption (DTE)!

Archivado en: SQL Server 2008 — Juan Carlos González Martín @ 22:08

Una de las grandes puntos de mejora de SQL Server 2008, ya existente en otros motores de bases de datos (BD’s), la tenemos en lo que es la seguridad y nivel de protección de las bases de datos utilizando la tecnología Transparent Data Encryption (DTE) que permite realizar el encriptado de una BD completa frente a la alternativa de encriptado a nivel de columna que teníamos en SQL Server 2005. Algunas de las características de DTE son las siguientes:

  • La aplicación o el desarrollador no tienen que hacer nada.
  • El nivel de protección es configurable a distintos niveles:
    • De usuario.
    • De ítem: una BD entera, archivos de datos, archivos de log.
  • Incluso se puede encriptar el backup.

La clave del DTE de SQL Server 2008 se basa en usar usa una clave especial: Database Encription Key (DEK), que permite realizar el encriptado de la BD. La idea de este post es ver como con DTE podemos prevenir escenarios de robo de backups, cumplir con la legislación en cuanto a protección de datos, etc. Empecemos.

Copiando una BD desencriptada

Lo primero que vamos a hacer es demostrar lo sencillo que es “robar” una BD no encriptada y utilizar su contenido de forma fraudulenta. Por ejemplo, supongamos que nuestra organización tiene una política de realización de backups que finalmente se depositan en una carpeta compartida en red que presenta un cierto agujero de seguridad, de manera que dicho backup está accesible y puede ser restaurado de una forma sencilla (luego la seguridad de los datos de nuestra organización está claramente comprometida):

  • Abrimos SQL Server Management Studio.
  • En el explorador de objetos, desplegamos la sección databases, hacemos clic con el botón derecho del ratón en una cierta BD (en mi caso, en la BD AdventureWorksLT) seleccionamos Tasks -> Back Up…
  • En la pantalla de realización del backup, dejamos marcadas las opciones por defecto y pulsamos OK.
  • Una vez que hemos realizado el backup de la BD AdventureWorks, nos vamos al path dónde se ha quedado almacenado y simplemente lo abrimos con el bloc de notas. Una rápida inspección del contenido nos da una idea de que los datos de la BD son accesibles de forma sencilla:
image image  

image

Implementando el DTE en la BD

En esta sección vamos a ver como la funcionalidad DTE de SQL Server 2008 nos permite encriptar una BD resolviendo situaciones como la comentada en el apartado anterior. Los pasos para encriptar la BD son los siguientes:

  • Abrimos el editor de consultas de SQL Server y añadimos la siguiente consulta:

USE master;

GO

                        CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘pa$$@word1′;

GO

                        CREATE CERTIFICATE MyServerCert WITH SUBJECT = ‘Mi Certificado DEK’

GO

USE AdventureWorksLT

GO

                        CREATE DATABASE ENCRYPTION KEY

                                               WITH ALGORITHM = AES_128

                                                                       ENCRYPTION BY SERVER CERTIFICATE MyServerCert

GO

                        ALTER DATABASE AdventureWorksLT

                        SET ENCRYPTION ON

GO

Lo que estamos haciendo con este script es lo siguiente:

    • Creamos una master key con contraseña pa$$@word1.
    • Creamos un certificado de servidor que nos permite garantizar que nuestra BD no puede ser restaurada en otro servidor mientras en el mismo no exista este certificado.
    • Creamos una clave de encriptación de la BD utilizando el algoritmo AES_128 y utilizando el certificado anterior.
  • Borramos el backup de AdventureWorksLT que habíamos creado en la sección anterior.
  • Creamos un nuevo backup de AdventureWorksLT.
  • Abrimos el backup con el bloc de notas:

image

Luego ahora el backup si que tiene el contenido encriptado y por lo tanto hemos solucionado el problema de seguridad visto. Y hasta aquí llega lo que os quería contar sobre DTE. Espero que el post os haya resultado interesante.

El tema Rubric Blog de WordPress.com.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 40 seguidores