Almacenar datos confidenciales y compartidos

0

Estoy creando una solución de intranet para una empresa que utiliza PHP.

Una de sus funcionalidades deseadas es el almacenamiento de nóminas, ausencias e información personal. Necesitan que esto sea accesible para el propio empleado y para la gerencia, pero esta es una compañía de tecnología, con personas con conocimientos de tecnología, por lo que necesitan que sea imposible recuperarse de la base de datos sin la clave privada, incluso con acceso de raíz al servidor

Lo que estoy pensando es usar RSA para generar un par de claves y almacenar la clave pública para cada persona en la base de datos, y luego, cuando un empleado agrega la información, comparte la información con las personas deseadas utilizando su clave pública ( duplicando las filas db para cada persona con acceso). La clave privada podría entonces cifrarse con AES y almacenarse en la base de datos.

  1. ¿Es esta una buena solución?
  2. ¿Es posible vincular esto con una función de hash para que puedan usar una contraseña y no toda la clave para descifrar?
  3. ¿Alguna clase de PHP (con ejemplos?) de la que pueda trabajar?

Cualquier sugerencia o consejo es bienvenido.

    
pregunta Jørgen 01.06.2016 - 15:18
fuente

1 respuesta

-1

¿Por qué no usar una CA y limitar la autorización por certificado? Luego puede fortalecer su servidor y dejar que la CA maneje si un certificado dado es válido o no. Luego puede usar el certificado de "administración" para firmar los certificados de "minion". Entonces tiene una autenticación sólida de dos factores si también agrega un nombre de usuario y una contraseña.

Para limitar el acceso al servidor, debe requerir una clave para obtener acceso, y almacenar la clave en un dispositivo USB (o dos) y almacenarlos en una ubicación de control dual. También puedes usar este método para almacenar la clave privada súper secreta si vas con tu esquema.

    
respondido por el Desthro 01.06.2016 - 16:34
fuente

Lea otras preguntas en las etiquetas