Cifrado de clave simétrica multiusuario

0

Me doy cuenta de que se han hecho preguntas SIMILARES anteriormente, pero estoy buscando ciertos detalles que no puedo encontrar en ningún otro lugar. La siguiente pregunta se asemeja mucho a la mía, pero se queda corta para mí en los detalles: Estrategias de cifrado para el acceso de múltiples usuarios en sistemas de producción .

Estoy creando una aplicación que permite a los usuarios agregar contenido, que luego se encripta y almacenado en una base de datos utilizando una clave de contenido. Esta clave de contenido es una cadena de 32 caracteres generada aleatoriamente (ya que rijndael-256 no parece admitir más de 32 caracteres, o ciertos caracteres de utf-8, pero ese tema está fuera del alcance de esta pregunta). La clave de contenido también se almacena en la base de datos, cifrada con la clave de aplicación privada.

Lo que no tiene sentido para mí es que a continuación, de acuerdo con publicaciones similares, a cada usuario que debería tener acceso al contenido cifrado se le debe dar una clave única.

¿Cómo es esto más seguro que digamos que se crea una referencia para cada fila cifrada que indica qué usuarios pueden ver el contenido cifrado en función de la identificación del usuario?

Lo que estoy buscando es una explicación detallada sobre cómo abordar este tipo de situaciones y, además, de qué se deben derivar las claves y las contraseñas (si corresponde).

    
pregunta Kevin Op den Kamp 02.05.2014 - 13:57
fuente

1 respuesta

1

¿Y cómo les otorga esa tabla acceso a los archivos? Todo el punto de cifrado debe ser que el servidor no puede acceder a los archivos, incluso si lo desea. Si solo tiene las claves de datos almacenadas en una tabla con una lista de quién tiene permiso para acceder a la clave, el servidor ahora puede acceder a los archivos y el cifrado no tiene sentido.

En cambio, una copia de la clave de contenido para el archivo se cifra con la clave pública del usuario al que se le otorga acceso y se almacena en el conjunto de claves de los usuarios (una tabla muy parecida a la que describió para decir quién tiene acceso, pero almacenando las claves de acceso en lugar que una simple búsqueda de permisos). Sin que el usuario inicie sesión y proporcione su contraseña, su clave privada no se puede descifrar, la clave de contenido no se puede descifrar y no se puede acceder al archivo utilizando su copia de la clave de contenido.

Si desea rechazar el acceso, simplemente quite la clave de contenido de su conjunto de claves y destrúyala (siempre que el servidor nunca haya filtrado la clave de contenido mientras tuvo acceso, sería un poco más seguro cambiar la clave de contenido, pero eso resulta costoso ya que requiere volver a cifrar el archivo y todos los demás llaveros).

    
respondido por el AJ Henderson 02.05.2014 - 15:40
fuente

Lea otras preguntas en las etiquetas