¿Qué beneficio tiene usar una clave de cifrado diferente (frase de contraseña) para diferentes clientes?

0

Cuando almacenamos información confidencial en nuestra base de datos, la ciframos utilizando AES. Además, cuando los clientes instalan nuestro producto, protegen sus máquinas mediante un firewall.

¿Debemos usar diferentes claves de cifrado (frases de contraseña) para diferentes clientes? ¿Cuáles serían los beneficios y / o inconvenientes?

Agregado

Tenemos un sistema de interfaz de usuario web que accede a través de un navegador. Las claves de cifrado (frases de contraseña) se almacenan en el lado del servidor. El cliente web no tendrá acceso a las claves de cifrado (frases de contraseña). Ejemplo de la información confidencial: LDAP Bind DN password. Esta contraseña es utilizada por el servidor cuando un usuario se autentica en LDAP.

Por lo tanto, todos los usuarios deberían poder usar las claves de cifrado (frases de contraseña) durante la autenticación LDAP, pero nadie necesita leerlas (de hecho, nadie las leyó)

    
pregunta Michael 04.08.2015 - 16:44
fuente

3 respuestas

2

Dado que solo hay una clave para todos los usuarios, probablemente la esté almacenando en el servidor en el que se encuentra la base de datos. Esto solo es ligeramente mejor que dejar los datos en texto claro, es como pegar la llave de su casa a la cerradura de su puerta. Si le da la clave a cada cliente, será trivial para un atacante adquirir la clave, haciendo que su cifrado sea inútil.

En ambos casos, usar una sola clave de cifrado significa que todos los datos se comprometen a la vez.

Sin embargo, es difícil ofrecer consejos más precisos sin más detalles. ¿Desea simplemente almacenar los datos del cliente de forma segura para acceder posteriormente a por el cliente , o el servidor necesita tener acceso a ellos en momentos arbitrarios? ¿Para qué se usan los datos?

Si solo está guardando datos para los usuarios finales, debe hacer que cada cliente genere una clave AES y cifre todos los datos antes que se los envíen. De esta manera, una violación de datos no filtrará los datos confidenciales; los atacantes también tendrán que obtener claves de cliente individuales.

Sin embargo, si necesita poder acceder a los datos confidenciales a voluntad, será más difícil. Tendrá que guardar una copia de las claves de descifrado en algún lugar , y luego volverá a comenzar con el mantenimiento de las claves junto con las cerraduras.

    
respondido por el etherealflux 04.08.2015 - 17:04
fuente
3

Recomiendo crear claves de cifrado seguras y aleatorias cada vez que tenga que cifrar la información del cliente a través de AES e ingresarla en la base de datos. Obviamente, tendrás que almacenar las claves de alguna manera ya que serán generadas aleatoriamente. Dicho esto, sugeriría usar un Módulo de seguridad de hardware para almacenar claves, pero definitivamente debería consultar esto responde por más soluciones de almacenamiento. Solo asegúrese de que los datos estén cifrados y descifrados en la máquina del cliente.

El beneficio: Digamos que un atacante comprometió su base de datos de clientes. Si encuentra la clave de cifrado, tiene todos los datos de su cliente, el cifrado se vuelve completamente inútil. Sin embargo, si las claves se generan aleatoriamente y se almacenan en un Módulo de seguridad de hardware, el atacante básicamente tendrá una base de datos inútil (a menos que obtenga las claves del HSM, algo que no debería poder hacer). La seguridad de su cliente es un factor extremadamente importante, y debe asegurarse de que está haciendo todo lo posible para mantener segura su información.

    
respondido por el Sakamaki Izayoi 04.08.2015 - 18:17
fuente
1

Usaste ambos términos clave y contraseña , por lo que no estoy seguro de lo que quieres decir porque son conceptos diferentes. Es por eso que los discutiré brevemente:

  1. En el caso de que esté hablando de claves, entonces todo su sistema es inseguro porque:
    • La persona que tiene claves de cifrado no debe ser la misma persona que tiene acceso a los datos cifrados.
    • Deben ser necesarias al menos dos personas para autenticar el acceso de una clave de cifrado, de modo que ninguna persona tenga acceso a una clave de cifrado.
    • Nadie debe saber el valor completo de una clave de cifrado (o su frase de contraseña)
    • Idealmente, la clave simétrica de AES debería cambiar con cada interacción,

Respecto a estos elementos, más bien necesita implementar una PKI (cuesta).

  1. En el caso de que esté hablando de frase de contraseña: cada usuario debe tener su propia frase de contraseña por alguna razón @etherealflux y @SakamakiIzayoi mencionadas.
respondido por el user45139 04.08.2015 - 18:24
fuente

Lea otras preguntas en las etiquetas