Trabajo para una empresa que proporciona una aplicación web en la que nos gustaría ofrecer al usuario algún tipo de "caja fuerte digital". En esta caja fuerte, el usuario puede almacenar y descargar los archivos que desee.
La idea es que el sistema genere una clave simétrica para un usuario y esta clave se utilizará para cifrar y descifrar los archivos dentro de la caja fuerte. Esta clave solo se generará una vez para el usuario y, tan pronto como la descargue, se eliminará del servidor. Si el usuario quiere ver lo que está dentro de la caja fuerte o quiere poner un nuevo archivo dentro, deberá proporcionar esta clave. Como todos los archivos se cifrarían en reposo, esto debería mantenernos seguros en caso de que alguien tenga acceso a estos archivos en el servidor. Además, si alguien logra robar la cuenta y la contraseña de un usuario, no podrá ver los archivos a menos que también logren robar la clave.
El objetivo es transferir realmente la responsabilidad de mantener segura esta clave para el usuario. Somos conscientes de que si pierde esta clave, nunca más podrá recuperar lo que almacena en la caja fuerte. La idea es hacernos menos responsables de lo que está almacenando en la caja fuerte y demostrar que ni siquiera nosotros, los creadores de la aplicación web, tenemos acceso a sus datos.
Entonces, resumen: la divulgación es importante. Queremos permitir que el usuario cifre los archivos y los proteja de nosotros mismos y de posibles intrusos, incluso si el nombre de usuario y la contraseña del usuario se filtran. Dejar que el usuario sea responsable de su clave debería hacernos menos responsables.
¿Es una idea terrible dejar que el usuario sea responsable de sus datos cifrados?