Compartir datos encriptados

3

Tengo una aplicación web que almacena información relacionada con una organización que me gustaría cifrar pero compartir entre los miembros de la organización. Solo me gustaría que los miembros de la organización puedan ver estos datos cifrados, no los administradores del servidor.

Parece que quiero algún tipo de cifrado simétrico. Cada miembro tendría una copia de un secreto maestro encriptado utilizando una contraseña proporcionada por el usuario. Los pasos para obtener acceso a los datos de la organización serían, proporcionar la contraseña del usuario para obtener el secreto maestro, usar el secreto maestro para desbloquear los datos de la organización.

Una de las preocupaciones que tengo es agregar un nuevo miembro a la organización. No veo una manera obvia de permitir que el nuevo miembro cree su versión del secreto maestro cifrado. De algún modo, cuando el nuevo usuario esté creando una nueva cuenta, necesitará el secreto maestro para cifrar, pero no estoy seguro de cómo hacerlo de forma segura.

También es muy probable que esté pensando en todo esto de manera incorrecta, cualquier consejo sería genial. Gracias.

    
pregunta seanbrant 01.04.2013 - 02:28
fuente

2 respuestas

6

Normalmente, en una organización, un administrador de sistemas es un tipo en el que todos confían.

  

Parece que quiero algún tipo de cifrado simétrico

  1. El mayor problema con el cifrado simétrico será compartir la clave secreta entre los miembros de la organización.
  2. Otro problema es que incluso si la clave secreta se comparte con éxito pero se almacena en el sistema cliente (la mayoría de las personas perezosas lo harán), entonces el administrador puede iniciar sesión en el sistema y acceder a la clave. La clave debe mantenerse en un USB conducir.

Utilizando un par de claves público-privadas

  1. El uso de PKI definitivamente protegerá sus datos y resolverá el problema de compartir claves, pero su pregunta no menciona la cantidad de personas que accederán a los datos, así como la cantidad de datos que desea compartir.

  2. Digamos que tiene 100 usuarios, entonces el servidor que hospeda sus datos tendrá que realizar un seguimiento de la clave pública de cada usuario.

  3. Dado que no confía en los administradores, supongo que los datos guardados en el servidor se cifrarán por adelantado mediante el uso de la clave pública de cada usuario (de modo que solo él / ella pueda descifrarla). esto significará que habrá 100 instancias diferentes del mismo conjunto de datos. Dependiendo del tamaño de los datos y la cantidad de usuarios, esto podría ser un problema de rendimiento.

Simplemente sugeriría mantener un sitio web de intranet con autenticación de usuario y HTTPS habilitado que no estará bajo el control de los administradores de sistemas (si su política de seguridad lo permite). Pero, una vez más, debe tener el dolor de cabeza del mantenimiento y la seguridad del sistema.

Nota: Normalmente, un administrador del sistema tendrá acceso físico a todos los sistemas de una organización y sus datos estarán presentes en texto sin formato en un lugar u otro (en los sistemas cliente que descifraron los datos para su uso). Así que hay muchos ifs y peros ....

    
respondido por el Shurmajee 01.04.2013 - 10:23
fuente
6

Descargo de responsabilidad del modelo de amenaza estándar: difícil de responder sin saber más sobre el contexto del sistema, la sensibilidad de los datos, los tipos de atacantes, etc.

Suponiendo que el único agente de amenazas que le preocupa es un administrador del sistema y todos los derechos de administrador de la aplicación web, el sistema operativo y la base de datos, mantener la información almacenada en dicha aplicación y la base de datos completamente segura es casi imposible. P.ej. incluso si lo cifras en reposo, con acceso completo al sistema operativo acceden a los datos de descifrado en la memoria.

Si solo tienen acceso de administrador de aplicaciones y tal vez acceso de administrador de base de datos y desea dificultarles el acceso a los datos de forma clara (regla 80/20), entonces sería mejor alguna forma de cifrado del lado del cliente. Puede usar el cifrado asimétrico para archivar esto con los datos cifrados usando claves públicas de múltiples usuarios. La clave privada para cada usuario es almacenada solo localmente por el usuario y utilizada para el descifrado. No hay una copia de seguridad de la clave y si un usuario pierde su clave privada, se revoca su acceso y se crea una nueva cuenta de usuario para ellos.

Esto tiene ventajas sobre el método de clave simétrica que describió porque cada miembro de la organización no necesita saber que la clave maestra y la distribución de la clave es segura.

Por ejemplo:

Si le preocupan solo los administradores de bases de datos y no los administradores de aplicaciones, un enfoque más simple es utilizar algo como el cifrado transparente de la base de datos, lo que significa que si acceden directamente a la base de datos no pueden ver la información.

    
respondido por el Rakkhi 01.04.2013 - 05:10
fuente

Lea otras preguntas en las etiquetas