Actualmente estoy desarrollando una pieza de software donde los archivos deben ser cargados y luego compartidos con otras personas que no están en la plataforma.
Aquí está mi enfoque sobre el cifrado:
- Un usuario tiene una contraseña maestra, de la cual solo se almacena el hash (se usa para iniciar sesión)
- Cuando el usuario carga un archivo, una contraseña aleatoria será
generado y el archivo se cifrará con él (todo el lado del cliente) - La contraseña se cifrará con la contraseña maestra y luego
almacenado junto con el archivo
Cuando se comparte un archivo con un usuario externo, se toman los siguientes pasos:
- El usuario conectado comparte el archivo. La clave de archivo se recupera y descifrado con la contraseña del usuario en el lado del cliente
- El usuario ahora puede compartir la contraseña y el archivo, o usar un enlace para El archivo con la contraseña en el hash de ubicación. El archivo siempre ser descifrado en el lado del cliente
¿Este enfoque es seguro? Además, ¿hay mejores opciones?