Dados los siguientes supuestos:
- La disponibilidad de un servidor es de confianza implícita, pero no se confía para mantener la privacidad de los datos (por razones como tener una seguridad cuestionable o ser sospechoso de las garantías del gobierno).
- El software cliente es de confianza implícita (por ejemplo, debido a que es un software de código abierto, posiblemente desarrollado por un tercero).
- Se confía en que la comunicación entre el cliente y el servidor sea privada (por ejemplo, debido a que está cifrada por TLS).
¿Existen primitivas de seguridad que permitan a un cliente proporcionar una contraseña en lugar de una clave de cifrado para proteger adecuadamente los datos cifrados que se almacenan en un servidor remoto? ¿Es seguro para el software del cliente XOR una clave de cifrado de datos con un hash de la contraseña del usuario para el servidor y luego almacenar el resultado en el servidor para volver a generar la clave de cifrado original? Si esto (ya sea en general o por el proceso descrito) es intrínsecamente inseguro, ¿qué lo hace inseguro?