es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Protocolo seguro para descifrar datos sensibles en el servidor.

Tengo un sistema que almacena datos sensibles de usuarios en una base de datos SQL. Existen superusuarios que tienen la contraseña necesaria para descifrar los datos, por lo que cuando necesitan ver la información, el sistema les solicita la contraseña, descifra y muestra los datos.
Ahora hay un nuevo requisito: los usuarios normales deberían poder ver parte de los datos, mientras que los superusuarios siguen pudiendo verlo todo.

La información sobre quién puede ver qué ya está disponible para el sistema y no es un problema que el sistema conozca la contraseña maestra.

No sé cómo hacer esto de manera segura. Una solución es almacenar la contraseña maestra en la memoria, sin embargo, si un ataque logra acceder temporalmente a la memoria de la aplicación, puede acceder a toda la base de datos sin cifrar.
Otra solución que pensé es que el sistema haga una solicitud a otro dispositivo (como el CEO de la empresa) y obtenga la contraseña maestra allí, de esta manera no se queda en la memoria por mucho tiempo.

¿Alguien puede sugerirme algo o indicarme en la dirección correcta?

Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en seguridad, criptografía y protocolos, hay algunas cosas que considerar al abordar este nuevo requisito.

    En primer lugar, almacenar la contraseña maestra en memoria no es una solución segura, ya que puede ser vulnerable a ataques de personas que tengan acceso temporal a la memoria de la aplicación. Como tal, se deben investigar soluciones alternativas.

    Una posible solución es implementar mecanismos de control de acceso a nivel de base de datos, donde los usuarios normales solo tienen acceso a un subconjunto de datos, mientras que los superusuarios tienen acceso completo. El control de acceso se puede implementar a través de roles, usuarios y permisos de la base de datos.

    Otra solución es utilizar cifrado a nivel de campo o columna. Los datos se pueden cifrar utilizando diferentes claves, y los usuarios normales solo tienen acceso a un subconjunto de claves, mientras que los superusuarios tienen acceso a todas las claves. Este enfoque restringe el acceso a datos sensibles, incluso para los superusuarios.

    En ambas soluciones, es importante garantizar que se sigan prácticas adecuadas de gestión de claves. Las claves deben generarse y almacenarse de forma segura, y solo se debe otorgar acceso a aquellos que lo necesiten. Además, se pueden utilizar mecanismos de intercambio seguro de claves, como protocolos de intercambio de claves públicas, para intercambiar claves entre sistemas de manera segura y protegida.

    En conclusión, aunque existen varias opciones para abordar el nuevo requisito, los mecanismos de control de acceso y el cifrado a nivel de campo o columna, combinados con prácticas seguras de gestión de claves, son las soluciones ideales para garantizar la seguridad de los datos sensibles del usuario.

Comments are closed.