El cifrado es solo una herramienta; Se aplica principalmente por tres razones:
-
Para lograr algo de confidencialidad. Esto tiene sentido en contextos donde los datos almacenados (contenido de la base de datos) podrían estar expuestos a terceros maliciosos, pero algunos elementos de datos específicos (la clave de cifrado) podrían mantenerse ocultos a los mismos terceros maliciosos.
-
Para lograr el cumplimiento de algunas regulaciones. Por ejemplo, cuando se trata de información de tarjeta de crédito, uno o más tiene que seguir las prescripciones de PCI-DSS , incluida la aplicación de algunos cifrados para algunos datos.
-
Para dar una sensación de seguridad al rociar un poco de criptografía por todo el lugar. Esta razón, por supuesto, no es buena ; sin embargo, es muy común en la práctica.
Por la primera razón, esto tiene sentido solo en relación con un modelo de ataque donde los atacantes no pueden leer la clave de cifrado. La aplicación que accede a la base de datos debe, por definición, poder leer el contenido de los datos, por lo que debe conocer la clave de descifrado. Considere, por ejemplo, un cifrado completo de la base de datos (lo que Microsoft y Oracle llaman TDE ): esto encripta todo el contenido de la base de datos; pero la aplicación que accede a la base de datos debe conocer la clave para descifrar los datos sobre la marcha y ver los contenidos de texto sin cifrar. Si el modelo de ataque se trata de atacantes que roban cintas de respaldo o recuperan discos duros desechados, entonces TDE es el camino a seguir: dicho atacante solo verá una gran cantidad de datos cifrados, con una clave que no tiene. Por otro lado, si el modelo de ataque se trata de inyecciones de SQL , TDE no ofrece seguridad adicional ya que el SQL inyectado se interpreta En el contexto de la aplicación normal, sobre los datos descifrados.
Por la segunda razón, encripte lo que sea necesario para lograr el cumplimiento, y termine con eso. Eso es lo bueno del cumplimiento: no tiene que pensar , solo seguir las reglas.
Por la tercera razón, debe invocar a los dioses criptográficos para cada campo que los auditores / jefes / clientes consideren como "importante". Por lo general, las personas se sienten nerviosas por lo que consideran su identidad, por lo que los nombres, las direcciones de correo electrónico, las direcciones de las calles, los números de teléfono ... deben estar encriptados. Ya que esto es solo un teatro de seguridad, la mayoría de las veces puede lograr el mismo tipo de efecto psicológico con una "codificación" que no necesita ser una encriptación propiamente dicha (por ejemplo, Base64 ).