Descifrado con autenticación bidireccional

1

Tenemos un cliente que desea que sus datos confidenciales de usuario se almacenen con un cifrado.

Estos son los requisitos básicos:

  • Los datos confidenciales del usuario se almacenan en una base de datos mediante el cifrado
  • Un atacante remoto que tiene acceso al servidor web y / o la base de datos no obtiene acceso a los datos confidenciales
  • Los usuarios que han iniciado sesión deben poder acceder a los datos

Se nos ocurrió el siguiente entorno & Flujo de trabajo

Ambiente

  • Servidor 1

    • Servidor web que aplica HTTPS
    • Base de datos con datos de usuario encriptados
    • No tiene acceso al servidor 2, solo a un servicio
  • Servidor 2

    • Servicio con autenticación de 2 vías
    • Tiene acceso a la base de datos cifrada en el servidor 1
    • Tiene clave de cifrado para los datos de usuario en la base de datos en el servidor 1

Flujo de trabajo

  1. El usuario inicia sesión en el sitio web con el nombre de usuario & contraseña [inicio de sesión parte 1]
  2. El servidor 1 solicita un token en el servidor 2
  3. El servidor 2 descifra el número de teléfono móvil de los datos de usuario en el servidor 1 y envía un SMS de autenticidad.
  4. El usuario ingresa el código de autenticación del SMS en el formulario [Parte 2 de inicio de sesión]
  5. El servidor 1 solicita la clave de cifrado del servidor 2 mediante el token y el código de autenticación
  6. El servidor 1 almacena la clave solicitada en la sesión de usuario (sesión de PHP, el usuario del servidor web no tiene acceso) . El servidor 1 utiliza algunos de los datos de conexión de los usuarios web (dirección IP y cadena de agente de usuario) para cifrar la clave en la sesión de usuario

¿Es esta una solución lo suficientemente buena para proteger los datos confidenciales?

    
pregunta nick 26.05.2016 - 15:32
fuente

0 respuestas

Lea otras preguntas en las etiquetas