Cifrado de base de datos

Cifrado de base de datos  : el uso de tecnología de cifrado para convertir la información almacenada en una base de datos (DB) en texto cifrado , lo que hace que sea imposible de leer por personas que no tienen claves de cifrado [1] .

Los enfoques principales se pueden clasificar según el nivel en el que se produce el cifrado [1] [2] :

  1. Cifrado a nivel de almacenamiento,
  2. Cifrado a nivel de base de datos,
  3. Cifrado a nivel de aplicación.

Cifrado de nivel de almacenamiento

También llamado "transparente" ( en inglés ,  Transparent Database Encryption , TDE). Esta tecnología se utiliza, por ejemplo, en productos de Microsoft y Oracle para cifrar y descifrar la entrada/salida de archivos de bases de datos . Los datos se cifran antes de escribirse en el disco y se descifran mientras se leen en la memoria, lo que resuelve el problema de proteger los datos "inactivos", pero no garantiza la seguridad de la información durante la transmisión a través de canales de comunicación o durante su uso. La ventaja de TDE es que el cifrado y el descifrado son transparentes para las aplicaciones, lo que significa que no es necesario modificarlos [3] [4] [5] .

Implementación de Microsoft

TDE se aplica a los archivos de la base de datos y al registro de transacciones a nivel de página. Las páginas se cifran mediante una clave de cifrado de base de datos simétrica especial ( Clave de cifrado de base de datos ), protegida por un certificado que se almacena en la base de datos maestra y se cifra con su clave maestra, o una clave asimétrica, protegida por el Administrador de claves extensible ( EKM ). El uso de TDE no aumenta el tamaño de la base de datos cifrada y el impacto en el rendimiento es insignificante [3] .   

Implementación de Oracle

TDE se aplica a los archivos de base de datos a nivel de columna. Para la tabla que contiene las columnas seleccionadas para encriptar, se crea una clave de encriptación simétrica, protegida por la clave maestra, que se almacena en un lugar seguro fuera de la base de datos, llamado wallet ( Monedero en inglés  ). Las claves encriptadas de las tablas están contenidas en el Diccionario de Datos [ 4 ] . 

Cifrado del sistema de archivos

Es importante tener en cuenta que los métodos tradicionales de cifrado de bases de datos suelen cifrar y descifrar el contenido de la base de datos, que es administrado por un sistema de gestión de bases de datos que se ejecuta sobre el sistema operativo [6] . Esto reduce la seguridad de la información, ya que la base de datos cifrada se puede ejecutar en un sistema operativo abierto o potencialmente vulnerable . Por ejemplo, Microsoft utiliza la tecnología Sistema de cifrado de archivos (EFS) para proporcionar cifrado a nivel de archivo .  Cada objeto se cifra con una clave de cifrado de archivo única , protegida por el certificado del usuario. Este certificado puede ser compuesto, lo que permite que más de un usuario acceda al archivo. Debido a la expansión del alcance del cifrado, el uso de EFS puede reducir el rendimiento y complicar la administración, ya que el administrador del sistema necesita acceso al sistema operativo para usar EFS [7] [8] .  

Cifrado a nivel de base de datos

Un ejemplo de cifrado a nivel de base de datos es el cifrado a nivel de columna ( Eng.  Column-Level Encryption ), que escribe datos ya cifrados en la base de datos y la base de datos en sí, sin más cifrado, en el almacenamiento. Una característica del cifrado a nivel de columna es el uso de una sola clave al procesar los datos de una columna. Las claves pueden asignarse a los usuarios y protegerse con una contraseña para evitar el descifrado automático, pero esto complica la administración de la base de datos. Cuando se utiliza el cifrado a nivel de columna, se deben realizar cambios en las aplicaciones cliente. Además, se reduce el rendimiento de la base de datos [4] [7] .

Cifrado a nivel de aplicación

En el cifrado a nivel de aplicación, el proceso de cifrado lo lleva a cabo la aplicación que crea o modifica los datos, es decir, se produce antes de que se escriba en la base de datos. Este enfoque es más flexible porque la aplicación conoce los roles o permisos de los usuarios, así como información sobre qué datos son privados [8] [9] .

Beneficios

Una de las principales ventajas del cifrado integrado en la aplicación es que no es necesario utilizar una solución adicional para proteger los datos en tránsito a través de los canales de comunicación, ya que se envían cifrados. Otra ventaja de este método es que el robo de información confidencial se vuelve más difícil, ya que un atacante debe tener acceso a la aplicación para poder descifrar los datos almacenados en la base de datos [8] [9] .

Desventajas

Para implementar el cifrado a nivel de aplicación, es necesario realizar cambios no solo en la aplicación en sí, sino también en la base de datos. También puede haber problemas con el rendimiento de la base de datos, que, por ejemplo, pierde la capacidad de indexación y búsqueda. Otra desventaja es la gestión de claves en un sistema con dicho cifrado. Dado que varias aplicaciones pueden utilizar la base de datos, las claves se almacenan en muchos lugares, por lo que una mala gestión de las mismas puede provocar el robo de información o la imposibilidad de utilizarla. Además de esto, si es necesario cambiar la clave, primero debe descifrar todos los datos con la clave anterior y luego volver a cifrarlos con la nueva clave [8] [9] .

CryptoDB


Es un ejemplo de cifrado a nivel de aplicación. En la arquitectura, se puede destacar [10] : un servidor proxy , al que hay acceso seguro desde la aplicación, un servidor con una base de datos SQL en la que se cifran las columnas. Las solicitudes del servidor proxy van a este servidor de base de datos (servidor DBMS ing.) a través de un canal que se supone que no es seguro. La diferencia con el cifrado a nivel de columna anterior es que el servidor no descifra los datos de la columna; además, el servidor proxy no envía claves u otra información que permita al servidor descifrar las columnas. Desde el punto de vista del servidor con la base de datos, las solicitudes del servidor proxy parecen comandos ordinarios para trabajar con la base de datos SQL. Por lo tanto, el servidor puede tener una solución preparada, por ejemplo, en forma de CryptDB MySQL utilizada por los autores . Dado que el servidor DBMS solo puede realizar funciones en datos cifrados, la tarea del servidor proxy es traducir las solicitudes de los usuarios en solicitudes y operaciones equivalentes que operan en datos cifrados. Este problema se resuelve con la ayuda de varias clases de cifrados, cuya característica común es la preservación de cierta propiedad de los textos simples. Algunos de ellos se enumeran a continuación. [diez]

clase DET

Cifrados deterministas, del cifrado determinista inglés. Consiste en todos los cifrados que tienen la siguiente propiedad: con la misma clave, los mismos textos sin formato también se cifran de la misma manera.

Por lo tanto, si todos los datos de una columna se cifran con dicho cifrado, las operaciones en la columna de datos sin formato que requieren la comparación de dos valores son equivalentes a las de la columna de datos cifrados. Por ejemplo, si el usuario quiere contar el número de filas con el valor en la columna Nombre igual a "Alice", entonces el proxy solo reemplaza los parámetros en la solicitud del usuario, no los operadores. "Alice" - al texto cifrado correspondiente. Esta clase de cifrado le permite ejecutar consultas que contienen, entre otros: COUNT, GROUP BY, DISTINCT y SELECT con un predicado de igualdad o desigualdad. Un ejemplo de un cifrado determinista es un cifrado de bloques con un vector de inicialización fijo (inglés IV, vector de inicialización) [11] .

clase HOM

Cifrados homomórficos, del cifrado homomórfico inglés. Esta clase consta de cifrados que [12] transforman los valores en columnas para que una operación sobre ellos corresponda únicamente a, posiblemente otra, operación sobre textos cifrados. La arquitectura de CryptDB utiliza el sistema criptográfico Peye , que permite calcular el texto cifrado de la suma de valores si se conoce el texto cifrado de cada uno de ellos, a saber:

Por lo tanto, si la columna está cifrada con cifrado homomórfico, la suma de los valores elegidos se puede calcular descifrando el producto de los textos cifrados correspondientes. Por lo tanto, el servidor proxy traduce la solicitud SUM del usuario en un producto (expresado a través de EXP, LOG) y luego, al obtener una respuesta del servidor de la base de datos, la descifra y se la envía al usuario.

La clase OPE

Cifrados que preservan el orden, del orden inglés que protege el cifrado. Un cifrado de esta clase actúa sobre los datos de la columna de modo que .

Por lo tanto, si una columna está cifrada con un cifrado de clase OPE, una llamada ORDER BY realizada en el texto sin formato de la columna es equivalente a la de la columna cifrada. Para tales datos, las operaciones están disponibles en el rango de valores, ENTRE, así como MIN, MAX, RANGO. Un ejemplo de dicho cifrado sería la asignación de un número entero p a un número c, que es la suma de p números positivos pseudoaleatorios [13] .

Resistencia a los criptoataques

Las desventajas de las clases de cifrados y arquitectura descritas anteriormente en particular incluyen la vulnerabilidad a algunos tipos conocidos de ataques. Naveed , 2015 considera a un atacante que tiene acceso a textos cifrados y cierto conocimiento a priori de la distribución del texto plano. El supuesto tiene coincidencia en la vida real, por ejemplo, la base de datos puede contener información de carácter médico, y el atacante, además de acceder directamente a la base de datos encriptada, puede tener información del censo de población o de instituciones similares. Es decir, conocer la distribución, por ejemplo, de grupos sanguíneos. Basándose en la suposición de lo que exactamente está disponible para el atacante, los autores proponen varios métodos para recuperar datos en columnas cifradas tanto con el cifrado DET como con el cifrado OPE. Dado que un cifrado determinista asigna el mismo texto cifrado al mismo valor en una columna, la distribución de frecuencia de los datos en la columna cifrada coincidirá con la del texto sin formato. El análisis de frecuencia clásico tiene complejidad , donde N es el tamaño de todo el conjunto de textos sin formato. Esto significa que tal ataque es efectivo si N es pequeño. Se aplica un ataque similar al análisis de frecuencia a una columna con cifrado de preservación del orden, pero en lugar de valores de frecuencia específicos, el rango en el conjunto de texto cifrado de la columna se compara con el rango de la palabra en el conjunto de texto sin formato. El ataque, como se ha señalado, es más eficaz para las columnas en las que el conjunto de posibles textos sin formato se representa de forma más completa [14] .

También se ha desarrollado un método de ataque de función de distribución empírica (ECDF), que es más adecuado para atacar una columna con textos cifrados presentados de manera desigual, y un método que considera la información de varias columnas, así como su correlación [15] . Además, el trabajo de Minaud, 2019 presenta un esquema para la recuperación parcial de datos en la columna OPE, si solo hay información sobre todas las solicitudes. El algoritmo, a diferencia de los anteriores, es escalable, ya que N [14] no está incluido en su estimación de complejidad .

Además, ni los cifrados DET ni OPE, como todos los cifrados deterministas, tienen la propiedad de indistinguibilidad. De hecho, para comprender si un texto cifrado dado es un mensaje cifrado o si un atacante necesita solicitar textos cifrados para ambos mensajes, lo cual es factible si se usa cifrado abierto, y se compara con el texto cifrado H [14] .

Cifrado de base de datos simétrico y asimétrico

Hay dos formas principales de cifrar la información: simétrica y asimétrica. El principio fundamental en ellos es que el emisor y el receptor conocen de antemano el algoritmo de encriptación y la clave del mensaje, sin saber que la información es un conjunto de caracteres sin sentido [8] [16] .

Cifrado simétrico

El cifrado simétrico (cifrado de clave privada) es el método más antiguo y conocido. En el contexto de las bases de datos, incluye la clave privada utilizada para cifrar y descifrar la información almacenada y recuperada de la base de datos. Esta clave cambia los datos de tal manera que se vuelve imposible leerlos sin descifrarlos. La desventaja obvia de este método es que se puede filtrar información confidencial si la clave está en manos de personas que no deberían tener acceso a los datos. Sin embargo, el uso de una sola clave en el proceso de encriptación tiene la ventaja de la rapidez y facilidad de uso de esta tecnología [8] [16] [17] .

Cifrado asimétrico

El problema de que una clave secreta caiga en las manos equivocadas durante la transmisión a través de canales de comunicación, que tiene el cifrado de clave privada, se resuelve en el cifrado asimétrico (cifrado de clave pública), en el que hay dos claves relacionadas entre sí: este es un par de claves . La clave pública es conocida por todos y puede transmitirse a través de un canal de comunicación inseguro. Mientras que la segunda, la clave privada, se mantiene en secreto y es única para cada usuario. La clave pública se utiliza para cifrar los datos y la clave privada se utiliza para descifrarlos. El cifrado asimétrico es más seguro que el cifrado simétrico, pero al mismo tiempo es significativamente más lento [8] [16] . Otras desventajas incluyen el hecho de que el cifrado asimétrico determinista, que se utiliza en bases de datos en las que el cifrado se produce en la capa de aplicación (consulte CryptDB ), es vulnerable a ataques basados ​​en el texto sin formato elegido [18] .

Véase también

Notas

  1. ↑ 1 2 Luc Bouganim, Yanli Guo. Cifrado de base de datos  // Enciclopedia de criptografía y seguridad  / Ed. por Henk C. A. van Tilborg y Sushil Jajodia. - Springer, 2011. - Pág. 307-312. - ISBN 978-1-4419-5906-5 .
  2. ↑ Tipos de métodos de cifrado de bases  de datos . Solarwinds MSP (10 de mayo de 2019). Recuperado: 25 de diciembre de 2019.
  3. 1 2 Cifrado de datos transparente (TDE) . microsoft.com .
  4. 1 2 3 Cifrado de datos transparente . oráculo.com .
  5. Postgres y Cifrado de datos transparente (TDE) . empresadb.com .
  6. Fecha, 2005 .
  7. 1 2 Cifrado de base de datos en SQL Server 2008 Enterprise Edition . microsoft.com .
  8. 1 2 3 4 5 6 7 Baccam, Tanya Cifrado de datos transparente: nuevas tecnologías y mejores prácticas para el cifrado de bases de datos . sans.org . Instituto SANS (abril de 2010). Consultado: 25 de octubre de 2015.
  9. 1 2 3 Cifrado a nivel de aplicación (enlace muerto) . thales-esecurity.com . Fecha de acceso: 14 de diciembre de 2016. Archivado desde el original el 3 de agosto de 2016. 
  10. ↑ 1 2 Raluca Ada Popa, Catherine MS Redfield, Nickolai Zeldovich, Hari Balakrishnan. CryptDB: procesamiento de consultas en una base de datos cifrada  //  Comunicaciones del ACM. — 2012-09-01. — vol. 55 , edición. 9 _ — Pág. 103 . -doi : 10.1145/ 2330667.2330691 .
  11. Linda A. Bertram, Gunther van Dooble. Nomenclatura: enciclopedia de criptografía moderna y seguridad en Internet: desde AutoCrypt y cifrado exponencial hasta claves a prueba de conocimiento cero. — ISBN 3749461686 .
  12. Yi, Xun (profesor universitario), . Capítulo 2 // Cifrado homomórfico y aplicaciones . — Cham. — 1 recurso en línea (xii, 126 páginas) p. - ISBN 978-3-319-12229-8 , 3-319-12229-0.
  13. Rakesh Agrawal, Jerry Kiernan, Ramakrishnan Srikant, Yirong Xu. Protección de cifrado de pedidos para datos numéricos  //  Actas de la conferencia internacional ACM SIGMOD de 2004 sobre gestión de datos - SIGMOD '04. - París, Francia: ACM Press, 2004. - P. 563 . — ISBN 978-1-58113-859-7 . -doi : 10.1145/ 1007568.1007632 .
  14. ↑ 1 2 3 Ataque de la semana: cifrado de búsqueda y la función de fuga en constante expansión .
  15. F. Betül Durak, Thomas M. DuBuisson, David Cash. ¿Qué más revela el cifrado de revelación de pedidos?  (ing.)  // Actas de la Conferencia ACM SIGSAC 2016 sobre Seguridad Informática y de las Comunicaciones - CCS'16. - Viena, Austria: ACM Press, 2016. - P. 1155-1166 . - ISBN 978-1-4503-4139-4 . doi : 10.1145 / 2976749.2978379 .
  16. 1 2 3 Descripción del cifrado simétrico y asimétrico . microsoft.com .
  17. Korobeinikov, 2004 , pág. 56.
  18. Alexandra Boldyreva, Nathan Chenette, Younho Lee, Adam O'Neill. Cifrado simétrico que conserva el orden  // Avances en criptología - EUROCRYPT 2009 / Antoine Joux. - Berlín, Heidelberg: Springer Berlin Heidelberg, 2009. - T. 5479 . — S. 224–241 . - ISBN 978-3-642-01000-2 , 978-3-642-01001-9 . -doi : 10.1007 / 978-3-642-01001-9_13 .

Literatura

  • Fecha CJ Introducción a los Sistemas de Base de Datos = Introducción a los Sistemas de Base de Datos. - 8ª edición. - M. : Williams, 2005. - 1328 p. - ISBN 5-8459-0788-8 (ruso) 0-321-19784-4 (inglés).
  • Korobeinikov A. G., Gatchin Yu. A. Fundamentos matemáticos de la criptografía. Tutorial. - San Petersburgo. : SPb GU ITMO, 2004. - 106 p.


Enlaces