Soluciones de cifrado de información –  nuevo paradigma. 

Desde hace un tiempo y de la mano de Thousand Guards, venimos trabajando con una startup americana que se denomina Vaultree y que nace con el objetivo de poner a punto de forma disruptiva una tecnología para el cifrado de información en BBDD relacionales. Cada día los usuarios dan mayor  importancia a la confidencialidad de la información. Esto, sumado a que la cantidad de información que manejan los sistemas no para de crecer, despertó nuestro interés por esta tecnología.

Tradicionalmente, la forma de garantizar la confidencialidad en BBDD relacionales viene siendo el cifrado completo de la información con algunas particularidades según la implementación propia de cada fabricante. Esta solución ha resuelto parcialmente un problema para los casos de mayor necesidad sin llegar a ser nunca una solución definitiva ni ampliamente extendida. 

Vamos a tratar de explicar en las próximas líneas en qué consisten conceptualmente estas soluciones y por qué creemos que la adopción de estas tecnologías permite una aproximación radicalmente diferente a la protección de los datos.

Planteamiento tradicional

Si se analizan las características de las principales soluciones de cifrado que hay en el mercado, se ve que casi todas soportan lo que es conocido como TDE (Transparent Data Encription  o cifrado transparente de datos en español). La usan las empresas de tecnologías de bases de datos más grandes como Microsoft, Oracle o IBM. Han incorporado esta tecnología como características añadidas a sus productos estándar.

Estas soluciones suelen ir acompañadas de herramientas que automatizan la gestión de las claves de cifrado (en general cifrado simétrico) para garantizar la disponibilidad y confidencialidad de las mismas. 

Este tipo de cifrado a nivel de base de datos que funciona para cifrar datos en reposo, es decir, cuando no se accede a los datos de forma masiva, no se modifican ni se mueven a través de una red, codificando la estructura de la base de datos y no los datos en sí. Son soluciones que garantizan la confidencialidad si se accede a los medios físicos (discos) o a los ficheros de la base de datos (Sistema operativo). De esta manera, incluso si se roba un disco, no se puede acceder a los datos sin el certificado de cifrado original y la clave maestra (https://www.comparitech.com/net-admin/database-encryption-tools/)

Esquema TDE – (Fuente: https://www.comparitech.com/net-admin/database-encryption-tools/)

Las características funcionales más importantes se pueden resumir en los siguientes puntos: 

  • Estas soluciones permiten garantizar la confidencialidad en caso de  sustracción de los medios de almacenamiento o de los archivos de datos. Con esta tecnología , el robo de los ficheros o el acceso a los medios físicos no supone una brecha de confidencialidad y el atacante nunca podrá leer los datos. 
  • Los datos se descifran de forma transparente para la aplicación y el usuario final. No es necesario que las aplicaciones y usuarios sepan que los datos a los que acceden están cifrados. Esto se consigue porque es el propio motor de base de datos el encargado de gestionar el proceso de cifrado y descifrado. Esta es la principal característica del TDE. 
  • La base de datos administra el cifrado y descifrado de datos penalizando el rendimiento. Cuando se implementan estas soluciones, el rendimiento de las consultas y transacciones cae y la implementación suele ir acompañada de inversiones en capacidad de cómputo nada despreciables.

Es una solución atractiva para almacenar datos en reposo y de bajo índice de modificación (Data at Rest). Pero el acceso a la información se tiene que hacer en claro y es en ese momento cuando deja de ser útil porque requieren salir del ámbito cifrado.

Por este motivo, desde el punto de vista de la confidencialidad, estas soluciones plantean un punto débil común que ninguna de ellas resuelve y que no es menor. En la medida en que el software de la BBDD es el que se ocupa del proceso cifrado/descifrado, en todas las soluciones los DB-ADMIN (usuarios administradores de la base de datos) tienen acceso a los datos desde el momento en administran también las claves maestras de cifrado. Si los piratas informáticos obtienen acceso a la cuenta de administrador, ya sea por negligencia en mantener la contraseña segura o porque no les importó lo suficiente como para usar una compleja, nada les impedirá obtener acceso completo a los datos. 

Con estas soluciones, el único modo de garantizar la confidencialidad desde el ámbito de los administradores de base de datos (DBA – Data Base Admin) es procedimental (Controlar accesos, registrar actividad,…) y como todo procedimiento, arrastra las lagunas inherentes a las manualidades. Bien es verdad que para evitar este problema, algunas soluciones como Oracle han implantado mejoras como la granularidad del cifrado donde pasan a usar claves diferentes por objetos dentro de la base de datos, de manera que cada objeto tiene su propia clave de cifrado y descifrado que se adjunta a la consulta. Pero no soluciona el problema de origen. 

Nuevo planteamiento – Manipulación de datos cifrados como si estuvieran en claro.

La pregunta que nos hacemos es ¿existe alguna solución que arregla el problema de raíz? Porque las bases de datos no necesitan entender el contenido de los datos que manejan. Y ese es el motivo de su existencia, industrializar y optimizar el acceso a los datos sin importar el contenido de los mismos. Solamente necesitan saber los formatos y las operaciones permitidas entre ellos. Pero, ¿y si esas operaciones se pudieran realizar sobre los datos cifrados directamente sin tener que descifrarlos previamente? Es decir, ¿si se pudiera comparar datos cifrados, realizar operaciones con datos cifrados como por ejemplo una suma sin necesidad de descifrar los sumandos?  

Arquitectura de gestión del dato en un entorno de cifrado homomórfico

Pongamos un ejemplo muy sencillo (no real) para entender conceptualmente lo que hay detrás de estas preguntas. Veamos que pasaría si pudiéramos hacer las operaciones habituales de una BBDD sobre los datos cifrados, sin necesidad de descifrarlos y devolviendo el resultado también cifrado para que sea el usuario con sus claves personales y sus autorizaciones de acceso quien lo descifre. La información solo le importa al usuario final mientras que el motor de la BBDD solo necesita saber el tipo de dato.

La BB de datos cifra el valor “2” con una clave y lo almacena como «vXa.3er» al aplicar una función de cifrado (datos simulados, no reales). Del mismo modo, almacena el valor cifrado de “3” que supongamos fuera «tBz5nv». Le pedimos a la BBDD  la suma de ambos valores y por tanto, debería devolver “5” (que al aplicar la función de cifrado daría como resultado Y.Abv4)

Los pasos tradicionales para ejecutar una suma de esos datos sería: 

El motor de la Base de Datos con la clave de cifrado que almacena en su configuración realiza lo siguiente:

  1. Descifra «vXa.3er» = 2
  2. Descifra «tBz5nv» = 3
  3. Los suma (2+3=5) y devuelve 5. 

El gran avance innovador radica en hacer la operación con los datos cifrados. Es decir, que en ningún momento se tengan que descifrar los sumandos. Los pasos serían los siguientes: 

  1. Se obtienen los valores cifrados de la BBDD y el motor realiza la operación Suma sobre los valores cifrados (vXa.3er + tBz5nv = Y.Abv4). El resultado es el valor cifrado de la suma y nunca el valor real de la suma.
  2. La BBDD finalmente devuelve «Y.Abv4» al usuario final sin haber tenido en ningún momento acceso a la información real. 
  3. El usuario final que  si requiere interpretar los datos, recibe «Y.Abv4» y lo descifra de acuerdo a sus autorizaciones de acceso, dando como resultado «5». 

La base tecnología que permite realizar estas operaciones es, entre otras, el cifrado homomórfico y cómo se puede ver, el único que tiene acceso al dato es el usuario final que es quien tiene las autorizaciones necesarias para ello: 

  1. El administrador de la base de datos no necesita las claves de cifrado y por lo tanto, solo verá datos cifrados. 
  2. El almacenamiento de los datos y el procesamiento de los mismos puede ser realizado en cualquier lugar, incluida la «Cloud» porque está garantizado que nadie excepto el usuario final con derecho de acceso podrá ver la información. 
  3. El usuario final, a la vez que tiene acceso a las tablas de la BBDD donde están los datos, se le da acceso a las claves para descifrar los datos. 
  4. La complejidad para el manejo de claves de cifrado es parte de la gestión de acceso a la información y es independiente de las labores de administración de los medios físicos y lógicos empleados para almacenar y procesar la información. 

¿Y existen algoritmos lo suficientemente maduros que permiten hacer esto? La respuesta es SI. 

En el siglo pasado, a la vez que RSA desarrollaba los algoritmos de cifrado asimétrico, ya se estaban dando también los primeros pasos en el desarrollo de lo que se denominó cifrado homomórfico. 

Según Wikipedia (es decir, sin profundizar mucho), se dice que un sistema de cifrado es homomórfico si es capaz de realizar una operación algebraica concreta sobre un texto original, equivalente a otra operación algebraica (no necesariamente la misma) sobre el resultado cifrado de ese texto original.1 De esta manera, si se realizan operaciones sobre datos cifrados, y posteriormente se descifra el resultado, se obtendrá lo mismo que si se realizan operaciones equivalentes sobre los datos originales.2 

Utilizando este tipo de esquemas, cualquier flujo de datos puede ser homomorficamente evaluado, lo que permite la construcción de programas que pueden procesar datos cifrados de entrada y producir datos cifrados de salida. Puesto que estos programas nunca descifran los datos de entrada, pueden ejecutarse en equipos no confiables sin necesidad de revelar los datos de entrada y su estado interno. Un sistema criptográfico eficiente y completamente homomórfico tiene grandes implicaciones prácticas en la externalización de sistemas de cómputo privados y en el contexto de la computación en nube.

La tecnología que Vaultree está poniendo a punto, permite trabajar con los datos de la forma que acabamos de describir de forma sencilla incluso con las bases de datos ya existentes. Ya hemos llevado a cabo las primeras Pruebas de Concepto (PoC) y los resultados son extraordinarios. El siguiente reto es la adaptación a los entornos productivos. La solución de Vaultree facilita la migración a este entorno y elimina barreras técnicas en el proceso de incorporación de su tecnología. Pero no basta con esto, es necesario que los DB-Admin y los arquitectos de bases de datos adapten su visión de la arquitectura al nuevo paradigma descrito con todas las implicaciones que arrastra. Y como en CrossMind no somos expertos en criptograma, es en este ámbito donde nuestra aportación contribuye a la mejor adaptación posible de un modelo como este.