¿qué campos debo cifrar en una base de datos que contenga información del usuario? [cerrado]

2

Por lo tanto, en una base de datos pueden existir muchos campos de usuario. Normalmente, cuando configuro una base de datos, me salgo de las recomendaciones de los expertos en seguridad sobre qué campos cifrar, pero tengo curiosidad por saber cuál es el conjunto de campos más estándar para cifrar. Por lo que he visto, suele ser la contraseña (hash), la tarjeta de crédito (AES) y el número de teléfono (AES), pero la dirección, el nombre y otras partes quedan en texto sin formato.

Como muchas personas aquí probablemente también cifran otros campos, tengo curiosidad por saber qué campos codifica en sus bases de datos de usuario.

    
pregunta Robert Mennell 25.09.2015 - 21:07
fuente

1 respuesta

5

El cifrado es solo una herramienta; Se aplica principalmente por tres razones:

  1. 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.

  2. 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.

  3. 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 ).

    
respondido por el Tom Leek 25.09.2015 - 21:35
fuente

Lea otras preguntas en las etiquetas