El cifrado de la base de datos generalmente se puede definir como un proceso que utiliza un algoritmo para transformar los datos almacenados en una base de datos en " texto cifrado " que es incomprensible sin ser descifrado primero. [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 para que no puedan acceder a ellos personas con intenciones potencialmente "maliciosas". [2] El acto de cifrar una base de datos también reduce el incentivo para que las personas pirateen la base de datos antes mencionada, ya que los datos cifrados "sin sentido" son de poca o ninguna utilidad para los piratas informáticos. [3] Existen múltiples técnicas y tecnologías disponible para el cifrado de bases de datos, el más importante de los cuales se detallará en este artículo.
Cifrado de base de datos transparente / externo
El cifrado de datos transparente (a menudo abreviado como TDE) se utiliza para cifrar una base de datos completa, [2] que, por lo tanto, implica cifrar " datos en reposo ". [4] Los datos en reposo generalmente se pueden definir como datos "inactivos" que no se están editando o enviando actualmente a través de una red. [5] Como ejemplo, un archivo de texto almacenado en una computadora está "en reposo" hasta que se abre y se edita. Los datos en reposo se almacenan en soluciones de medios de almacenamiento físicos , como cintas o unidades de disco duro. [6] El acto de almacenar grandes cantidades de datos confidenciales en medios de almacenamiento físicos genera naturalmente preocupaciones sobre la seguridad y el robo. TDE garantiza que los datos en los medios de almacenamiento físicos 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 fortaleza más importante que se atribuye a TDE es su transparencia. Dado que TDE cifra todos los datos, se puede decir que no es necesario modificar ninguna aplicación para que TDE se ejecute correctamente. [8] Es importante tener en cuenta que TDE cifra la totalidad de la base de datos, así como las copias de seguridad de la base de datos. El elemento transparente de TDE tiene que ver con el hecho de que TDE encripta en "el nivel de la página", lo que esencialmente significa que los datos se encriptan cuando se almacenan y se desencriptan cuando se llaman a la memoria del sistema. [9] El contenido de la base de datos se cifra mediante 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 delinear la estructura básica de la base de datos. Una base de datos relacional típica se divide en tablas que se dividen en columnas, cada una de las cuales tiene filas de datos. [10] Si bien 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 hace que surjan 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 de arco iris , lo que implica que es menos probable que los datos almacenados dentro de cada columna se pierdan o se filtren. 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. Cifrar columnas separadas con diferentes claves únicas en la misma base de datos puede hacer que el rendimiento de la base de datos disminuya y, además, también disminuye 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á realizando un trabajo experimental para proporcionar operaciones de base de datos (como búsquedas u operaciones aritméticas) en campos cifrados sin la necesidad de descifrarlos. [13] Se requiere un cifrado fuerte para ser aleatorio; se debe generar 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 probar la igualdad sin descifrar los datos. [14]
Cifrado a nivel de sistema de archivos
Sistema de cifrado de archivos (EFS)
Es importante señalar 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 administradas por "Sistemas de administración de bases de datos" (DBMS) que se ejecutan sobre un sistema operativo (SO) existente. [15] Esto plantea un problema de seguridad potencial, 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 para 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. [ cita requerida ] 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 usar EFS. Debido a los problemas relacionados con el rendimiento, EFS no se usa normalmente en aplicaciones de base de datos que requieren entrada y salida frecuentes de la base de datos. Para compensar los problemas de rendimiento, a menudo se recomienda que los sistemas EFS se utilicen en entornos con pocos usuarios. [dieciséis]
Cifrado de disco completo
BitLocker no tiene los mismos problemas de rendimiento asociados con EFS. [dieciséis]
Cifrado de bases de datos simétrico y asimétrico
Cifrado de base de datos simétrico
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 llamados desde una base de datos. Esta clave privada altera los datos de una manera que los hace ilegibles sin ser descifrados primero. [17] Los datos se cifran cuando se guardan y se descifran cuando se abren, dado que el usuario conoce la clave privada. Por lo tanto, si los datos se van a compartir a través de una base de datos, la persona receptora debe tener una copia de la clave secreta utilizada por el remitente para descifrar y ver los datos. [18] Una clara desventaja relacionada con el cifrado simétrico es que se pueden filtrar datos sensibles si la clave privada se difunde a personas que no deberían tener acceso a los datos. [17] Sin embargo, dado que solo una clave está involucrada en el proceso de cifrado, generalmente se puede decir 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 públicas y privadas. [20] Cualquiera puede acceder a una clave pública y es única para un usuario, mientras que una clave privada es una clave secreta que es única y solo conocida por un usuario. [21] En la mayoría de los escenarios, la clave pública es la clave de cifrado, mientras que la clave privada es la clave de descifrado. Por ejemplo, si el individuo A quisiera enviar un mensaje al individuo B usando encriptación asimétrica, encriptaría el mensaje usando la clave pública del individuo B y luego enviaría la versión encriptada. El individuo B podría entonces descifrar el mensaje usando su clave privada. El individuo C no podría descifrar el mensaje del individuo A, ya que la clave privada del individuo C no es la misma que la clave privada del individuo B. [22] El cifrado asimétrico se describe a menudo como más seguro en comparación con el cifrado de base de datos simétrico dado que las claves privadas no necesitan ser compartidas ya que dos claves separadas manejan los procesos de cifrado y descifrado. [23] Por razones de rendimiento, el cifrado asimétrico se utiliza en la gestión de claves en lugar de cifrar los datos, lo que normalmente se realiza con cifrado simétrico.
Gestión de claves
La sección "Cifrado de base 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 acto de intercambiar claves se vuelve imprá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 administran y almacenan correctamente, se pueden filtrar datos muy confidenciales. Además, si un sistema de administración de claves elimina o pierde una clave, la información que fue encriptada a través de dicha clave también se "pierde" esencialmente. La complejidad de la logística de gestión de claves también es un 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 administrarse. Por tanto, es necesario establecer una forma en la que las claves de todas las aplicaciones se puedan gestionar a través de un único canal, lo que también se conoce como gestión de claves empresariales. [24] Las soluciones de gestión de claves empresariales son vendidas por un gran número de proveedores en la industria de la tecnología. Básicamente, estos sistemas proporcionan una solución de administración de claves centralizada que permite a los administradores administrar todas las claves en un sistema a través de un concentrador. [25] Por lo tanto, se puede decir que la introducción de soluciones de gestión de claves empresariales tiene el potencial de reducir los riesgos asociados con la gestión de claves en el contexto del cifrado de bases de datos, así como de los problemas logísticos que surgen cuando muchas personas intentan manualmente compartir claves. [24]
Hashing
El hash se utiliza en los sistemas de bases de datos como método para proteger datos confidenciales como contraseñas; sin embargo, también se utiliza para mejorar la eficiencia de las referencias a bases de datos. [26] Los datos ingresados se manipulan mediante un algoritmo hash. El algoritmo hash convierte los datos ingresados en una cadena de longitud fija que luego se puede almacenar en una base de datos. Los sistemas de hash tienen dos características de importancia crucial que se describen a continuación. En primer lugar, los hash son "únicos y repetibles". Como ejemplo, ejecutar la palabra "gato" a través del mismo algoritmo hash 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 hash no son reversibles. Para relacionar esto con el ejemplo proporcionado anteriormente, sería casi imposible convertir la salida del algoritmo hash de nuevo a la entrada original, que era "cat". [28] En el contexto del cifrado de bases de datos, el hash se utiliza a menudo en los sistemas de contraseñas. Cuando un usuario crea su contraseña por primera vez, se ejecuta a través de un algoritmo hash y se guarda como un hash. Cuando el usuario vuelve a iniciar sesión en el sitio web, la contraseña que ingresa se ejecuta a través del algoritmo hash y luego se compara con el hash almacenado. [29] Dado que los hash son únicos, si ambos coinciden, se dice que el usuario ingresó la contraseña correcta. Un ejemplo de una función hash popular es SHA (algoritmo hash seguro) 256. [30]
Salazón
Un problema que surge cuando se usa el hash para la administración de contraseñas en el contexto del cifrado de la base de datos es el hecho de que un usuario malintencionado podría usar una tabla de arco iris de la tabla Input to Hash [31] para el algoritmo de hash específico que usa el sistema. Esto permitiría efectivamente al individuo descifrar el hash y así tener acceso a las contraseñas almacenadas. [32] Una solución para este problema es "salar" el hachís. La salazón es el proceso de cifrar algo más que la contraseña en una base de datos. Cuanta más información se agregue a una cadena que se va a codificar, más difícil se vuelve la clasificación de tablas de arco iris. 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 de un hash significa que es mucho más difícil y, por lo tanto, menos probable que se generen tablas de arco iris. Naturalmente, esto implica que la amenaza de pérdida de datos confidenciales se minimiza mediante los hash de sal. [33]
Pimienta
Algunos sistemas incorporan un "pimiento" además de sales en sus sistemas de mezcla. Los sistemas de pimienta son controvertidos, sin embargo, aún es necesario explicar su uso. [31] Un pimiento es un valor que se agrega a una contraseña hash que ha sido salada. [34] Este pimiento es a menudo exclusivo de un sitio web o servicio, y es importante tener en cuenta que el mismo pimiento generalmente se agrega a todas las contraseñas guardadas en una base de datos. [35] En teoría, la inclusión de pimientos en los sistemas de hash de contraseñas tiene el potencial de disminuir el riesgo de tablas de arco iris (Entrada: Hash), dada la especificidad de los pimientos a nivel de sistema, sin embargo, los beneficios reales de la implementación del pimiento son muy controvertidos. [34]
Cifrado a nivel de aplicación
En el cifrado a nivel de aplicación, el proceso de cifrado de datos lo completa la aplicación que se ha utilizado para generar o modificar los datos que se van a cifrar. Básicamente, esto significa que los datos se cifran antes de que se escriban en la base de datos. Este enfoque único del cifrado permite que el proceso de cifrado se adapte a cada usuario en función de la información (como derechos 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 los 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 el hecho de que el cifrado a nivel de aplicación tiene el potencial de simplificar el proceso de cifrado utilizado por una empresa. Si una aplicación cifra los datos que escribe / modifica desde 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. Dado que los datos se cifran antes de que se escriban en el servidor, un pirata informático necesitaría tener acceso al contenido de la base de datos, así como a las aplicaciones que se utilizaron para cifrar y descifrar el contenido de la base de datos a fin de descifrar los 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 tiene el potencial de consumir una cantidad significativa de tiempo y otros recursos. Dada la naturaleza del costo de oportunidad, es posible que las empresas no crean que el cifrado a nivel de aplicación valga la pena la inversión. Además, el cifrado a nivel de aplicación puede tener un efecto limitante en el rendimiento de la base de datos. Si todos los datos de una base de datos están encriptados por una multitud de aplicaciones diferentes, entonces será imposible indexar o buscar datos en la base de datos. Para fundamentar esto en la realidad en forma de un ejemplo básico: sería imposible construir un glosario en un solo idioma para un libro que fue escrito en 30 idiomas. Por último, la complejidad de la gestión de claves aumenta, ya que varias aplicaciones diferentes necesitan tener la autoridad y el acceso para cifrar los datos y escribirlos en la base de datos. [37]
Riesgos del cifrado de bases de datos
Al discutir el tema del cifrado de bases de datos, es imperativo estar consciente de los riesgos que están involucrados en el proceso. El primer conjunto de riesgos está relacionado con la gestión de claves. Si las claves privadas no se administran en un "sistema aislado", los administradores del sistema con intenciones maliciosas pueden tener la capacidad de descifrar datos confidenciales utilizando claves a las que tienen acceso. El principio fundamental de las claves también da lugar a un riesgo potencialmente devastador: si las claves se pierden, los datos cifrados también se pierden esencialmente, ya que el descifrado sin claves es casi imposible. [38]
Referencias
- ^ "¿Qué es el cifrado y el descifrado de la base de datos? - Definición de Techopedia" . Techopedia.com . Consultado el 4 de noviembre de 2015 .
- ^ a b c "Cifrado transparente de datos con Azure SQL Database" . msdn.microsoft.com . Consultado el 4 de noviembre de 2015 .
- ^ "SQL SERVER - Introducción al cifrado de SQL Server y tutorial de cifrado de clave simétrica con script" . Viaje a SQL Authority con Pinal Dave . 28 de abril de 2009 . Consultado el 25 de octubre de 2015 .
- ^ "Cifrado transparente de datos (TDE)" . msdn.microsoft.com . Consultado el 25 de octubre de 2015 .
- ^ "¿Qué son los datos en reposo? - Definición de WhatIs.com" . SearchStorage . Consultado el 25 de octubre de 2015 .
- ^ "Técnicas y productos de cifrado para la seguridad del almacenamiento de datos basado en hardware" . ComputerWeekly . Consultado el 31 de octubre de 2015 .
- ^ "Soluciones de cifrado de almacenamiento" . www.thales-esecurity.com . Consultado el 25 de octubre de 2015 .
- ^ "Cifrado transparente de datos (TDE) en SQL Server - DatabaseJournal.com" . www.databasejournal.com . Consultado el 2 de noviembre de 2015 .
- ^ "Uso de cifrado de datos transparente" . sqlmag.com . Archivado desde el original el 14 de octubre de 2017 . Consultado el 2 de noviembre de 2015 .
- ^ "Un tutorial sobre conceptos de bases de datos, SQL usando MySQL" . www.atlasindia.com . Consultado el 4 de noviembre de 2015 .
- ^ "Opciones de cifrado de SQL Server" . sqlmag.com . Archivado desde el original el 27 de octubre de 2017 . Consultado el 2 de noviembre de 2015 .
- ^ "Diferencias entre la base de datos completa y el cifrado de columnas" . www.netlib.com . Consultado el 2 de noviembre de 2015 .
- ^ "Aprovisionamiento optimizado y controlado de datos subcontratados cifrados" (PDF) . www.fkerschbaum.org .
- ^ Suciu, Dan (2012). "Perspectiva técnica: SQL en una base de datos cifrada". Comunicaciones de la ACM . doi : 10.1145 / 2330667.2330690 . S2CID 33705485 .
- ^ 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". Transacciones IEEE sobre ingeniería de software . SE-10 (3): 310–319. doi : 10.1109 / TSE.1984.5010240 . ISSN 0098-5589 . S2CID 15407701 .
- ^ a b "Cifrado de base de datos en SQL Server 2008 Enterprise Edition" . technet.microsoft.com . Consultado el 3 de noviembre de 2015 .
- ^ a b "Descripción de cifrado simétrico y asimétrico" . support.microsoft.com . Consultado el 25 de octubre de 2015 .
- ^ "Cómo funciona el cifrado" . HowStuffWorks . 6 de abril de 2001 . Consultado el 25 de octubre de 2015 .
- ^ "Asimétrico vs simétrico - Hacking con PHP - PHP práctico" . www.hackingwithphp.com . Consultado el 3 de noviembre de 2015 .
- ^ "Cómo funciona el cifrado" . HowStuffWorks . 6 de abril de 2001 . Consultado el 1 de noviembre de 2015 .
- ^ Joven, Dr. Bill. "Fundamentos de la conferencia de seguridad informática 44: cifrado simétrico vs asimétrico" (PDF) . Universidad de Texas en Austin. Archivado desde el original (PDF) el 5 de marzo de 2016 . Consultado el 1 de noviembre de 2015 .
- ^ "¿Qué es la criptografía asimétrica y cómo la uso?" . Autenticidad de dos factores . Consultado el 1 de noviembre de 2015 .
- ^ "Ventajas y desventajas de los criptosistemas asimétricos y simétricos" (PDF) . Universidad de Babilonia . Consultado el 3 de noviembre de 2015 .
- ^ a b "La gestión de claves de cifrado es vital para proteger el almacenamiento de datos empresariales" . ComputerWeekly . Consultado el 2 de noviembre de 2015 .
- ^ "¿Qué es Enterprise Key Management?" . web.townsendsecurity.com . Consultado el 2 de noviembre de 2015 .
- ^ "¿Qué es el hash? - Definición de WhatIs.com" . SearchSQLServer . Consultado el 1 de noviembre de 2015 .
- ^ "Cómo el software de cifrado de datos crea archivos hash unidireccionales utilizando el algoritmo de hash sha1" . www.metamorphosite.com . Consultado el 1 de noviembre de 2015 .
- ^ "Comprensión del cifrado: simétrico, asimétrico y hash" . Giro atómico . 20 de noviembre de 2014 . Consultado el 1 de noviembre de 2015 .
- ^ "PHP: Hash de contraseñas - Manual" . php.net . Consultado el 1 de noviembre de 2015 .
- ^ "Implementación JavaScript del algoritmo hash criptográfico SHA-256 | Scripts de tipo móvil" . www.movable-type.co.uk . Consultado el 3 de noviembre de 2015 .
- ^ a b "Sal y pimienta - Cómo cifrar contraseñas de bases de datos" . blog.kablamo.org . Consultado el 1 de noviembre de 2015 .
- ^ "PHP: Hash de contraseñas - Manual" . php.net . Consultado el 1 de noviembre de 2015 .
- ^ "Por qué siempre debería agregar sal a sus hashes - Desarrollo web en Brighton - Bytes agregados" . Bytes añadidos . Consultado el 1 de noviembre de 2015 .
- ^ a b "blog de ircmaxell: Salar correctamente las contraseñas, el caso en contra de la pimienta" . blog.ircmaxell.com . Consultado el 2 de noviembre de 2015 .
- ^ a b "Cifrado de aplicaciones de Thales e-Security" . www.thales-esecurity.com . Consultado el 25 de octubre de 2015 .
- ^ Pilyankevich, Eugene (18 de diciembre de 2020). "Cifrado de nivel de aplicación para arquitectos de software" . InfoQ .
- ^ a b Baccam, Tanya (abril de 2010). "Cifrado transparente de datos: nuevas tecnologías y mejores prácticas para el cifrado de bases de datos" . Sans.org . Instituto SANS . Consultado el 25 de octubre de 2015 .
- ^ "Cifrado de bases de datos: desafíos, riesgos y soluciones" . www.thales-esecurity.com . Consultado el 25 de octubre de 2015 .