Articulo de referencia

Cifrado de base de datos

El cifrado de bases de datos se puede definir generalmente como un proceso que utiliza un algoritmo para transformar los datos almacenados en una base de datos en un texto cifra...

El cifrado de bases de datos se puede definir generalmente como un proceso que utiliza un algoritmo para transformar los datos almacenados en una base de datos en un texto cifrado incomprensible sin ser descifrado previamente. [ 1 ] Por lo tanto, se puede decir que el propósito del cifrado de bases de datos es proteger los datos almacenados en una base de datos del acceso por parte de individuos con intenciones potencialmente maliciosas. [ 2 ] El acto de cifrar una base de datos también reduce el incentivo para que los individuos la pirateen, ya que los datos cifrados, al carecer de significado, añaden pasos adicionales para que los piratas informáticos recuperen los datos. [ 3 ] Existen múltiples técnicas y tecnologías disponibles para el cifrado de bases de datos, las más importantes de las cuales se detallarán en este artículo.

Cifrado de base de datos transparente/externo

El cifrado transparente de datos (a menudo abreviado como TDE) se utiliza para cifrar una base de datos completa, [ 2 ] lo que implica el cifrado de " datos en reposo ". [ 4 ] Los datos en reposo se definen generalmente como datos "inactivos" que no se están editando ni transmitiendo a través de una red. [ 5 ] Por ejemplo, un archivo de texto almacenado en un ordenador está "en reposo" hasta que se abre y se edita. Los datos en reposo se almacenan en soportes de almacenamiento físico , como cintas o discos duros. [ 6 ] El hecho de almacenar grandes cantidades de datos confidenciales en soportes de almacenamiento físico genera, naturalmente, preocupaciones sobre la seguridad y el robo. TDE garantiza que los datos en los soportes de almacenamiento físico no puedan ser leídos por personas malintencionadas que puedan tener la intención de robarlos. [ 7 ] Los datos que no se pueden leer carecen de valor, lo que reduce el incentivo para el robo. Quizás la mayor ventaja de TDE sea su transparencia. Dado que TDE cifra todos los datos, se puede decir que no es necesario modificar las aplicaciones para que TDE funcione correctamente. [ 8 ] TDE cifra la totalidad de la base de datos, así como las copias de seguridad de la misma. El elemento transparente de TDE tiene que ver con el hecho de que TDE cifra a nivel de página, lo que esencialmente significa que los datos se cifran cuando se almacenan y se descifran cuando se cargan en la memoria del sistema. [ 9 ] El contenido de la base de datos se cifra utilizando una clave simétrica que a menudo se denomina "clave de cifrado de base de datos". [ 2 ]

Cifrado a nivel de columna

Para explicar el cifrado a nivel de columna, es importante describir la estructura básica de una base de datos. Una base de datos relacional típica se divide en tablas, que a su vez se dividen en columnas , cada una con filas de datos. [ 10 ] Mientras que TDE generalmente cifra una base de datos completa, el cifrado a nivel de columna permite cifrar columnas individuales dentro de una base de datos. [ 11 ] Es importante establecer que la granularidad del cifrado a nivel de columna genera fortalezas y debilidades específicas en comparación con el cifrado de una base de datos completa. En primer lugar, la capacidad de cifrar columnas individuales permite que el cifrado a nivel de columna sea significativamente más flexible en comparación con los sistemas de cifrado que cifran una base de datos completa, como TDE. En segundo lugar, es posible utilizar una clave de cifrado completamente única e independiente para cada columna dentro de una base de datos. Esto aumenta efectivamente la dificultad de generar tablas arcoíris, lo que implica que los datos almacenados en cada columna tienen menos probabilidades de perderse o filtrarse. La principal desventaja asociada con el cifrado de bases de datos a nivel de columna es la velocidad, o la pérdida de la misma. El cifrado de columnas separadas con diferentes claves únicas en la misma base de datos puede provocar una disminución del rendimiento de la base de datos y, además, también reduce la velocidad a la que se puede indexar o buscar el contenido de la base de datos. [ 12 ]

Cifrado a nivel de campo

Se están realizando trabajos experimentales para proporcionar operaciones de base de datos (como búsquedas u operaciones aritméticas) en campos cifrados sin necesidad de descifrarlos. [ 13 ] Se requiere que el cifrado robusto sea aleatorio: debe generarse un resultado diferente cada vez. Esto se conoce como cifrado probabilístico . El cifrado a nivel de campo es más débil que el cifrado aleatorio, pero permite a los usuarios comprobar la igualdad sin descifrar los datos. [ 14 ]

Cifrado a nivel de sistema de archivos

Sistema de cifrado de archivos (EFS)

Es importante destacar que las técnicas tradicionales de cifrado de bases de datos normalmente cifran y descifran el contenido de una base de datos. Las bases de datos son gestionadas por "Sistemas de Gestión de Bases de Datos" (DBMS) que se ejecutan sobre un sistema operativo (SO) existente. [ 15 ] Esto plantea un posible problema de seguridad, ya que una base de datos cifrada puede estar ejecutándose en un sistema operativo accesible y potencialmente vulnerable. EFS puede cifrar datos que no forman parte de un sistema de base de datos, lo que implica que el alcance del cifrado de EFS es mucho más amplio en comparación con un sistema como TDE, que solo es capaz de cifrar archivos de base de datos. Si bien EFS amplía el alcance del cifrado, también disminuye el rendimiento de la base de datos y puede causar problemas de administración, ya que los administradores del sistema requieren acceso al sistema operativo para utilizar EFS. Debido a los problemas de rendimiento, EFS no se suele utilizar en aplicaciones de bases de datos que requieren entrada y salida frecuentes de datos. Para compensar los problemas de rendimiento, a menudo se recomienda utilizar sistemas EFS en entornos con pocos usuarios. [ 16 ]

Cifrado de disco completo

BitLocker no tiene los mismos problemas de rendimiento asociados con EFS. [ 16 ]

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

Una demostración visual de cifrado simétrico

Cifrado simétrico de bases de datos

El cifrado simétrico en el contexto del cifrado de bases de datos implica la aplicación de una clave privada a los datos almacenados y recuperados de una base de datos. Esta clave privada modifica los datos de tal manera que resultan ilegibles sin ser descifrados previamente. [ 17 ] Los datos se cifran al guardarse y se descifran al abrirse, siempre que el usuario conozca la clave privada. Por lo tanto, si los datos se van a compartir a través de una base de datos, el receptor debe disponer de una copia de la clave secreta utilizada por el remitente para descifrar y visualizar los datos. [ 18 ] Una clara desventaja del cifrado simétrico es que los datos confidenciales pueden filtrarse si la clave privada se comparte con personas que no deberían tener acceso a ellos. [ 17 ] Sin embargo, dado que solo interviene una clave en el proceso de cifrado, generalmente se puede afirmar que la velocidad es una ventaja del cifrado simétrico. [ 19 ]

Cifrado asimétrico de bases de datos

El cifrado asimétrico amplía el cifrado simétrico al incorporar dos tipos diferentes de claves en el método de cifrado: claves privadas y públicas. [ 20 ] Cualquier persona puede acceder a una clave pública , que es única para un usuario, mientras que una clave privada es una clave secreta única y conocida solo por un usuario. [ 21 ] En la mayoría de los casos, la clave pública es la clave de cifrado, mientras que la clave privada es la clave de descifrado. Por ejemplo, si la persona A quisiera enviar un mensaje a la persona B mediante cifrado asimétrico, cifraría el mensaje con la clave pública de la persona B y luego enviaría la versión cifrada. La persona B podría entonces descifrar el mensaje con su clave privada. La persona C no podría descifrar el mensaje de la persona A, ya que la clave privada de la persona C no es la misma que la de la persona B. [ 22 ] El cifrado asimétrico se suele describir como más seguro en comparación con el cifrado simétrico de bases de datos, dado que las claves privadas no necesitan compartirse, ya que dos claves diferentes gestionan los procesos de cifrado y descifrado. [ 23 ] Por razones de rendimiento, se utiliza el cifrado asimétrico en la gestión de claves en lugar de para cifrar los datos, lo que normalmente se hace con cifrado simétrico.

Gestión clave

La sección de Cifrado de Bases de Datos Simétrico y Asimétrico introdujo el concepto de claves públicas y privadas con ejemplos básicos en los que los usuarios intercambian claves. El intercambio de claves se vuelve poco práctico desde un punto de vista logístico cuando muchas personas diferentes necesitan comunicarse entre sí. En el cifrado de bases de datos, el sistema gestiona el almacenamiento y el intercambio de claves. Este proceso se denomina gestión de claves. Si las claves de cifrado no se gestionan y almacenan correctamente, se pueden filtrar datos altamente sensibles. Además, si un sistema de gestión de claves elimina o pierde una clave, la información que se cifró con dicha clave también se considera esencialmente "perdida". La complejidad de la logística de la gestión de claves es otro tema que debe tenerse en cuenta. A medida que aumenta el número de aplicaciones que utiliza una empresa, también aumenta el número de claves que deben almacenarse y gestionarse. Por lo tanto, es necesario establecer una forma de gestionar las claves de todas las aplicaciones a través de un único canal, lo que también se conoce como gestión de claves empresariales. [ 24 ] Numerosos proveedores de la industria tecnológica ofrecen soluciones de gestión de claves empresariales. Estos sistemas proporcionan esencialmente una solución centralizada de gestión de claves que permite a los administradores gestionar todas las claves de un sistema a través de un único centro. [ 25 ] Por lo tanto, se puede afirmar que la introducción de soluciones de gestión de claves empresariales tiene el potencial de disminuir los riesgos asociados con la gestión de claves en el contexto del cifrado de bases de datos, así como de reducir los problemas logísticos que surgen cuando muchas personas intentan compartir claves manualmente. [ 24 ]

Hashing

El hashing se utiliza en sistemas de bases de datos como método para proteger datos sensibles, como contraseñas; sin embargo, también se utiliza para mejorar la eficiencia de la referencia a la base de datos. [ 26 ] Los datos de entrada son manipulados por un algoritmo de hashing. El algoritmo de hashing convierte los datos de entrada en una cadena de longitud fija que luego se puede almacenar en una base de datos. Los sistemas de hashing tienen dos características cruciales que se describirán a continuación. En primer lugar, los hashes son "únicos y repetibles". Por ejemplo, pasar la palabra "gato" por el mismo algoritmo de hashing varias veces siempre producirá el mismo hash; sin embargo, es extremadamente difícil encontrar una palabra que devuelva el mismo hash que "gato". [ 27 ] En segundo lugar, los algoritmos de hashing no son reversibles. Para relacionar esto con el ejemplo anterior, sería casi imposible convertir la salida del algoritmo de hashing de nuevo a la entrada original, que era "gato". [ 28 ] En el contexto del cifrado de bases de datos, el hashing se utiliza a menudo en sistemas de contraseñas. Cuando un usuario crea su contraseña por primera vez, esta se procesa mediante un algoritmo de hash y se guarda como un hash. Cuando el usuario vuelve a iniciar sesión en el sitio web, la contraseña que introduce se procesa mediante el algoritmo de hash y se compara con el hash almacenado. [ 29 ] Dado que los hashes son únicos, si ambos coinciden, se considera que el usuario ha introducido la contraseña correcta. Un ejemplo de función hash popular es SHA-256 . [ 30 ]

Salazón

Un problema que surge al usar el hashing para la gestión de contraseñas en el contexto del cifrado de bases de datos es que un usuario malintencionado podría potencialmente usar una tabla arcoíris de entrada a tabla hash [ 31 ] para el algoritmo de hashing específico que usa el sistema. Esto le permitiría descifrar el hash y, por lo tanto, acceder a las contraseñas almacenadas. [ 32 ] Una solución a este problema es agregar sal al hash. El proceso de agregar sal consiste en cifrar más que solo la contraseña en una base de datos. Cuanta más información se agregue a una cadena que se va a hashear, más difícil será generar tablas arcoíris. Por ejemplo, un sistema puede combinar el correo electrónico y la contraseña de un usuario en un solo hash. Este aumento en la complejidad del hash significa que es mucho más difícil y, por lo tanto, menos probable que se generen tablas arcoíris. Esto implica que la amenaza de pérdida de datos confidenciales se minimiza mediante la adición de sal a los hashes. [ 33 ]

Pimienta

Algunos sistemas incorporan un "pimienta" además de sales en sus sistemas de hash. Los sistemas de pimienta son controvertidos, sin embargo, es necesario explicar su uso. [ 31 ] Una pimienta es un valor que se agrega a una contraseña hash que ha sido salada. [ 34 ] Esta pimienta suele ser única para un sitio web o servicio, y es importante señalar que la misma pimienta generalmente se agrega a todas las contraseñas guardadas en una base de datos. [ 35 ] En teoría, la inclusión de pimientas en los sistemas de hash de contraseñas tiene el potencial de disminuir el riesgo de  tablas arcoíris (Entrada : Hash), dada la especificidad a nivel de sistema de las pimientas, sin embargo, los beneficios reales de la implementación de pimienta son muy discutidos. [ 34 ]

Cifrado a nivel de aplicación

En el cifrado a nivel de aplicación, el proceso de cifrado de datos lo realiza la propia aplicación que se ha utilizado para generar o modificar los datos que se van a cifrar. En esencia, esto significa que los datos se cifran antes de escribirse en la base de datos. Este enfoque único de cifrado permite adaptar el proceso a cada usuario en función de la información (como permisos o roles) que la aplicación conoce sobre sus usuarios. [ 35 ]

Según Eugene Pilyankevich, "el cifrado a nivel de aplicación se está convirtiendo en una buena práctica para sistemas con mayores requisitos de seguridad, con una tendencia general hacia sistemas en la nube sin perímetro y más expuestos". [ 36 ]

Ventajas del cifrado a nivel de aplicación

Una de las ventajas más importantes del cifrado a nivel de aplicación es su potencial para simplificar el proceso de cifrado utilizado por una empresa. Si una aplicación cifra los datos que escribe o modifica en una base de datos, no será necesario integrar una herramienta de cifrado secundaria en el sistema. La segunda ventaja principal se relaciona con el tema general del robo de datos. Dado que los datos se cifran antes de escribirse en el servidor, un hacker necesitaría tener acceso tanto al contenido de la base de datos como a las aplicaciones utilizadas para cifrar y descifrar dicho contenido, con el fin de descifrar datos confidenciales. [ 37 ]

Desventajas del cifrado a nivel de aplicación

La primera desventaja importante del cifrado a nivel de aplicación es que las aplicaciones utilizadas por una empresa deberán modificarse para cifrar los datos por sí mismas. Esto puede consumir una cantidad significativa de tiempo y otros recursos. Dado el costo de oportunidad, las empresas podrían no considerar que el cifrado a nivel de aplicación justifique la inversión. Además, el cifrado a nivel de aplicación puede limitar el rendimiento de la base de datos. Si todos los datos de una base de datos están cifrados por múltiples aplicaciones diferentes, resulta imposible indexar o buscar datos en ella. Para ilustrarlo con un ejemplo sencillo: sería imposible crear un glosario en un solo idioma para un libro escrito en 30 idiomas. Por último, aumenta la complejidad de la gestión de claves, ya que múltiples aplicaciones diferentes necesitan tener la autorización y el acceso para cifrar datos y escribirlos en la base de datos. [ 37 ]

Riesgos del cifrado de bases de datos

Al hablar de cifrado de bases de datos, es fundamental tener en cuenta los riesgos que conlleva el proceso. El primer conjunto de riesgos está relacionado con la gestión de claves. Si las claves privadas no se gestionan en un sistema aislado, los administradores de sistemas con intenciones maliciosas podrían descifrar datos confidenciales utilizando las claves a las que tienen acceso. El principio fundamental de las claves también plantea un riesgo potencialmente devastador: si se pierden las claves, los datos cifrados se pierden prácticamente por completo, ya que el descifrado sin ellas es casi imposible. [ 38 ]

¿Cómo se puede utilizar el cifrado para proteger los datos en una base de datos?

El cifrado puede utilizarse para mejorar la seguridad de los datos almacenados en una base de datos, convirtiendo la información a un formato ilegible mediante un algoritmo. Los datos cifrados solo pueden ser accedidos y descifrados con una clave de descifrado, lo que garantiza que, incluso si la base de datos se ve comprometida, la información permanece confidencial.

Al cifrar datos confidenciales como contraseñas, registros financieros e información personal, las organizaciones pueden proteger sus datos contra el acceso no autorizado y las filtraciones. Este proceso reduce el riesgo de robo de datos y garantiza el cumplimiento de las normativas de protección de datos.

La implementación del cifrado en una base de datos implica el uso de tecnologías de cifrado como el Estándar de Cifrado Avanzado (AES) o la Seguridad de la Capa de Transporte (TLS). Las claves de cifrado deben gestionarse de forma segura para evitar el descifrado no autorizado de los datos. [ 39 ]

Referencias

  1. "¿Qué es el cifrado y descifrado de bases de datos? - Definición de Techopedia" . Techopedia.com . Consultado el 4 de noviembre de 2015 .
  2. 1 2 3 "Cifrado transparente de datos con Azure SQL Database" . msdn.microsoft.com . Consultado el 4 de noviembre de 2015 .
  3. "SQL SERVER - Introducción al cifrado de SQL Server y tutorial de cifrado de clave simétrica con script" . Journey to SQL Authority con Pinal Dave . 28 de abril de 2009. Consultado el 25 de octubre de 2015 .
  4. "Cifrado transparente de datos (TDE)" . msdn.microsoft.com . Consultado el 25 de octubre de 2015 .
  5. "¿Qué son los datos en reposo? - Definición de WhatIs.com" . SearchStorage . Consultado el 25 de octubre de 2015 .
  6. "Técnicas y productos de cifrado para la seguridad del almacenamiento de datos basado en hardware" . ComputerWeekly . Consultado el 31 de octubre de 2015 .
  7. "Soluciones de cifrado de almacenamiento" . www.thales-esecurity.com . Archivado del original el 24 de febrero de 2017. Consultado el 25 de octubre de 2015 .
  8. "Cifrado transparente de datos (TDE) en SQL Server — DatabaseJournal.com" . www.databasejournal.com . 19 de mayo de 2014. Consultado el 2 de noviembre de 2015 .
  9. "Uso del cifrado transparente de datos" . sqlmag.com . Archivado del original el 14 de octubre de 2017. Consultado el 2 de noviembre de 2015 .
  10. "Tutorial sobre conceptos de bases de datos, SQL con MySQL" . www.atlasindia.com . Archivado del original el 1 de marzo de 2019. Consultado el 4 de noviembre de 2015 .
  11. "Opciones de cifrado de SQL Server" . sqlmag.com . Archivado del original el 27 de octubre de 2017. Consultado el 2 de noviembre de 2015 .
  12. "Diferencias entre el cifrado de base de datos completa y el cifrado de columnas" . www.netlib.com . Consultado el 2 de noviembre de 2015 .
  13. "Aprovisionamiento optimizado y controlado de datos externalizados cifrados" (PDF) . www.fkerschbaum.org . Archivado del original (PDF) el 26 de marzo de 2017. Consultado el 13 de abril de 2016 .
  14. Suciu, Dan (2012). "Perspectiva técnica: SQL en una base de datos cifrada". Communications of the ACM . doi : 10.1145/2330667.2330690 . S2CID 33705485 . 
  15. Spooner, David L.; Gudes, E. (1 de mayo de 1984). "Un enfoque unificador para el diseño de un sistema operativo de base de datos seguro". IEEE Transactions on Software Engineering . SE-10 (3): 310– 319. doi : 10.1109/TSE.1984.5010240 . ISSN 0098-5589 . S2CID 15407701 .  
  16. 1 2 "Cifrado de bases de datos en SQL Server 2008 Enterprise Edition" . technet.microsoft.com . 4 de septiembre de 2009. Consultado el 3 de noviembre de 2015 .
  17. 1 2 "Descripción del cifrado simétrico y asimétrico" . support.microsoft.com . Consultado el 25 de octubre de 2015 .
  18. "Cómo funciona el cifrado" . HowStuffWorks . 6 de abril de 2001. Consultado el 25 de octubre de 2015 .
  19. "Asimétrico vs. Simétrico – Hacking con PHP - PHP práctico" . www.hackingwithphp.com . Consultado el 3 de noviembre de 2015 .
  20. "Cómo funciona el cifrado" . HowStuffWorks . 6 de abril de 2001. Consultado el 1 de noviembre de 2015 .
  21. Young, Dr. Bill. "Fundamentos de la seguridad informática, Lección 44: Cifrado simétrico frente a cifrado asimétrico" (PDF) . Universidad de Texas en Austin. Archivado del original (PDF) el 5 de marzo de 2016. Consultado el 1 de noviembre de 2015 .
  22. "¿Qué es la criptografía asimétrica y cómo la utilizo?" . Autenticación de dos factores . Consultado el 1 de noviembre de 2015 .
  23. "Ventajas y desventajas de los criptosistemas asimétricos y simétricos" (PDF) . Universidad de Babilonia . Consultado el 3 de noviembre de 2015 .
  24. 1 2 "La gestión de claves de cifrado es vital para proteger el almacenamiento de datos empresariales" . ComputerWeekly . Consultado el 2 de noviembre de 2015 .
  25. "¿Qué es la gestión de claves empresariales?" . web.townsendsecurity.com . Consultado el 2 de noviembre de 2015 .
  26. "¿Qué es el hashing? - Definición de WhatIs.com" . SearchSQLServer . Consultado el 1 de noviembre de 2015 .
  27. "Cómo el software de cifrado de datos crea archivos hash unidireccionales utilizando el algoritmo de hash sha1" . www.metamorphosite.com . 12 de noviembre de 2007. Consultado el 1 de noviembre de 2015 .
  28. "Entendiendo el cifrado: simétrico, asimétrico y hash" . Atomic Spin . 20 de noviembre de 2014. Consultado el 1 de noviembre de 2015 .
  29. "PHP: Hashing de contraseñas - Manual" . php.net . Consultado el 1 de noviembre de 2015 .
  30. "Implementación en JavaScript del algoritmo hash criptográfico SHA-256 | Movable Type Scripts" . www.movable-type.co.uk . Consultado el 3 de noviembre de 2015 .
  31. 1 2 "Sal y pimienta: cómo cifrar contraseñas de bases de datos" . blog.kablamo.org . Consultado el 1 de noviembre de 2015 .
  32. "PHP: Hashing de contraseñas - Manual" . php.net . Consultado el 1 de noviembre de 2015 .
  33. "Por qué siempre debes añadir sal a tus hashes - Desarrollo web en Brighton - Added Bytes" . Added Bytes . Consultado el 1 de noviembre de 2015 .
  34. 1 2 "Blog de ircmaxell: Cómo añadir sal a las contraseñas correctamente, el caso contra la pimienta" . blog.ircmaxell.com . 17 de abril de 2012. Consultado el 2 de noviembre de 2015 .
  35. 1 2 "Cifrado de aplicaciones de Thales e-Security" . www.thales-esecurity.com . Archivado del original el 24 de febrero de 2017. Recuperado el 25 de octubre de 2015 .
  36. Pilyankevich, Eugene (18 de diciembre de 2020). "Cifrado a nivel de aplicación para arquitectos de software" . InfoQ .
  37. 1 2 Baccam, Tanya (abril de 2010). "Cifrado de datos transparente: nuevas tecnologías y mejores prácticas para el cifrado de bases de datos" . Sans.org . Instituto SANS. Archivado del original el 12 de abril de 2018. Recuperado el 25 de octubre de 2015 .
  38. "Cifrado de bases de datos: desafíos, riesgos y soluciones" . www.thales-esecurity.com . Archivado del original el 24 de febrero de 2017. Consultado el 25 de octubre de 2015 .
  39. "Mejor respuesta para "¿Cómo se puede utilizar el cifrado para proteger los datos en una base de datos?"" .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Database_encryption&oldid=1359396115 "