Hola a todos, por la primera vez que publico gracias por organizar esta gran comunidad.
Estoy trabajando en una extensión para permitir que los usuarios almacenen documentos encriptados en un servidor que tengo. Me gustaría evitar que vuelvan a ingresar su contraseña cada vez que quieran cifrar o descifrar un documento, pero también espero evitar tener que guardar su contraseña, aunque sea solo en la memoria.
Para iniciar sesión, mi proceso de pensamiento para esto es copiar la contraseña en el cliente con bcrypt y enviarla al servidor. En el servidor, pondré la entrada del cliente y almacenaré las sales del cliente y del servidor.
Para el cifrado, volveré a cifrar la contraseña en el cliente con bcrypt y un salt diferente (también almacenaré este salt en el servidor para que el usuario pueda regenerar el hash). Luego generaré un par de claves con openPGP para cifrar el documento. Cifraré la clave privada con una clave simétrica generada a partir del hash de la contraseña y almacenaré la clave privada cifrada, el documento cifrado y la clave pública en mi servidor.
Mi pregunta es si existe alguna inquietud en el uso de un hash como entrada para openpgp o en la generación de dos hashes diferentes desde la misma contraseña usando dos sales diferentes.