Asegurar los datos confidenciales en una base de datos, ¿vale la pena usar H2?

3

Estoy diseñando una aplicación web en este momento, y uno de los requisitos es asegurar las credenciales de usuario así como sus roles.

Ahora, por supuesto, además del hash de contraseña habitual + salt + .... Estaba pensando en poner esas tablas específicas en una base de datos H2 cifrada, y el resto de los datos en una base de datos de MySQL. Las ventajas del H2 en mi caso son:

  • almacenamiento en memoria (lo que significa un acceso más rápido)
  • db encriptada (por lo que una capa adicional de seguridad en caso de que el servidor se vea comprometido)

¿Es esta una práctica común cuando se exige una capa de seguridad adicional? lo que significa que es una buena idea separar la información de inicio de sesión (en mi caso, son los datos confidenciales) de los otros datos.

    
pregunta Elio 12.09.2011 - 11:52
fuente

1 respuesta

4

El cifrado de la base de datos impide el acceso basado en archivos de bajo nivel a la base de datos que evade el sistema de permisos de la base de datos. Esto es especialmente útil, si es probable que un atacante obtenga acceso físico a la computadora (piense en cuadernos robados).

En los servidores tiene el problema de qué hacer con la clave / contraseña. Si lo almacena fuera del cifrado, le facilita al atacante acceder a él. Pero no almacenarlo requiere la interacción manual en un reinicio del servidor que a menudo no es deseable por razones de disponibilidad.

El cifrado de la base de datos no ayuda a un atacante que puede aprovechar una aplicación web que tiene permiso para acceder a la base de datos a través de inyección de SQL.

Tener una segunda base de datos, especialmente un segundo software de base de datos, aumenta la superficie de ataque: eres vulnerable al conjunto de errores de la unión de MySQL y H2. Y necesita personas que entiendan ambos sistemas para operar de forma segura.

Hay una ventaja a través de: Solo hay muy poco código que accede a la información de autenticación. Las vulnerabilidades de inyección SQL en la gran mayoría del código no podrán acceder a la información de autenticación aislada.

En mi lugar de trabajo, lo hicimos para nuestra aplicación web: utilizamos diferentes conexiones de base de datos según el rol del usuario que realiza las solicitudes. Así, por ejemplo, los usuarios anónimos obtienen una conexión de base de datos que tiene muy pocos permisos de base de datos.

    
respondido por el Hendrik Brummermann 12.09.2011 - 12:10
fuente

Lea otras preguntas en las etiquetas