TRANSPARENT DATA ENCRYPTION

(Este articulo fue publicado originalmente en mi antiguo blog).

La pregunta lógica que uno hace al saber que hay una versión nueva de algún producto es: ¿Cuáles son las nuevas características que trae incluidas? Y lógicamente, el tema de seguridad es uno de los más consultados.

En SQL Server 2008 una de las nuevas características es TRANSPARENT DATA ENCRYPTION (TDE). En este post vamos a tratar de explicar en qué consiste y cuáles son los usos y ventajas de usar esta modalidad de encriptación de datos.

¿QUE ES TDE?

SQL Server 2005 ya traía incorporadas ciertas capacidades de encriptación en forma de librerías; estas capacidades permitían encriptación basadas en roles de usuarios. TDE permite realizar encriptación de todos los datos en la Base de Datos, datos físicos y logs de transacciones. Esto se realiza al encriptar los datos a medida que se escriben al disco y desencriptando al realizar la lectura.

¿POR QUE USAR TDE?

Uno de los usos posibles de esta característica es si necesitamos darle acceso a nuestras Bases de Datos a personal externo a nuestra empresa (ej.: Desarrolladores Externos). Si la Base de Datos es demasiado grande para enviarla vía Correo Electrónico o FTP; o si nuestras políticas de seguridad no permiten dar acceso a nuestra red a personal externo, la única opción que nos quedaría es entregarle a ese Desarrollador una copia de la Base de Datos en un Disco Externo. Lógicamente el Desarrollador firmara una serie de documentos legales en los cuales se compromete a no divulgar la información contenida en la Base de Datos, pero ¿y si le roban el disco externo? O ¿Si la empresa que tenía que transportarlo lo extravía en el camino?

¿CUANDO USAR TDE?

TDE es una manera eficiente y muy fácil de implementar de asegurar nuestras bases de datos (incluyendo los respaldos). Esto la convierte en una herramienta muy potente cuando necesitamos enviar copias de nuestras Bases de Datos a personal externo, sucursales o los respaldos que, tal como dicen las buenas prácticas, almacenamos en un lugar físico distinto a nuestras oficinas.

Una de las principales ventajas de TDE es que no importa si alguien se roba el Disco Externo donde enviamos la Base de Datos al desarrollador externo, no podrá acceder la información a menos que tenga un certificado que da acceso a los datos. Además de ese certificado, necesitamos una llave privada y las credenciales para acceder a esa llave. Lógicamente, cada uno de estos elementos debe ser almacenado de manera independiente y en caso de tener que enviarlos a alguien se debieran enviar de manera separada.

¿COMO FUNCIONA TDE?

Si bien existen otros métodos de encriptación, estos usualmente encriptan los datos antes de que se escriban o actualicen los datos. Generalmente, la encriptación ocurre a nivel de aplicación; en un nivel intermedio del código o en el servidor de Base de Datos con las características que trae SQL Server 2005. La clave acá es que los datos se encriptan antes de escribirse en la cache (y por lo tanto en el disco) y se mantienen encriptados en la cache y en el disco. La desencriptación ocurre cuando los datos se recuperan desde la cache y esto puede ocurrir a nivel de código medio o aplicación.

En el caso de TDE no se encripta parte de los datos, se encriptan TODOS los datos en bloques de 8K a medida que los datos se escriben en el disco y la desencriptación ocurre al leerse desde el disco. Esta encriptación ocurre a bajo nivel y aunque ocurre para todas las páginas de datos, solo ocurre al escribir y leer datos desde el disco. Por lo tanto, si la Base de Datos tiene un bajo nivel de transacciones y un alto nivel de consultas (las cuales se generan principalmente en cache), no se notara un cambio significativo en el rendimiento. En cambio, si la Base de Datos es altamente transaccional (por lo tanto, con un alto nivel de operaciones de I/O) se notara un impacto en el rendimiento.

Un aspecto importante sobre TDE es que al encriptar cualquier numero de bases de datos en una instancia, se encripta automáticamente la base TEMPDB. Esto puede resultar en una disminución del rendimiento en otras bases de datos que no estén encriptadas y que tengan un alto nivel de uso de la base Tempdb. Si este es el caso, es conveniente considerar la opción de instalar una instancia de SQL Server especifica para las bases encriptadas o buscar otra alternativa de encriptación.

Por ahora es suficiente, como siempre sus comentarios y sugerencias son mas que bienvenidos.

Saludos,

Un comentario en “TRANSPARENT DATA ENCRYPTION”

  1. hola felipe, alejandro ferrada de aiep concepcion por aca.

    me adelante a la 2ª parte de la clase de seguridad y tengo una consulta respecto a TDE:

    por lo que señalas, es recomendable usar TDE para una bd de producción que no necesariamente va a ser copiada a externos, pero si con acceso a consultores externos dentro de la red interna de la misma empresa? o para bd que tengan acceso desde la web?.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *