Tengo un sistema de CRM basado en la web (perl/MySQL), y necesito una sección para Recursos Humanos para agregar detalles sobre las acciones disciplinarias y el salario.Diseño de base de datos cifrada segura
Toda esta información que almacenamos en la base de datos debe ser encriptada para que los desarrolladores no podamos verla.
Estaba pensando en utilizar el cifrado AES, pero ¿qué uso debo usar como clave? Si utilizo la contraseña del Administrador de Recursos Humanos, si olvida su contraseña, perdemos toda la información de Recursos Humanos. Si ella cambia su contraseña, entonces tenemos que descifrar toda la información y volver a encriptar con la nueva contraseña, que parece ineficaz y peligrosa, y podría salir terriblemente mal si hay un error a la mitad del proceso.
Tuve la idea de que podría tener una clave de encriptación que encripta toda la información y usar la contraseña del administrador de recursos humanos para encriptar la clave. Luego puede cambiar su contraseña todo lo que quiera y solo necesitaremos volver a encriptar la clave. (Y sin la contraseña del administrador de recursos humanos, los datos son seguros)
Pero aún existe el problema del acceso multiusuario a los datos encriptados.
Podría conservar una copia sin formato de la clave del sitio y encriptarla con la contraseña de cada nuevo miembro del personal de recursos humanos. Pero luego conozco la llave maestra, que no parece ideal.
¿Alguien ha intentado esto antes, y ha tenido éxito?
Esta es una buena área para pensar. Espero ver buenas respuestas. –
Vine aquí para hacer esta misma pregunta. +1. Soy el desarrollador principal y no me importa ver el salario de nadie más y tampoco quiero que mis desarrolladores lo vean. Eso sería un gran no-no. – Vic