Hash contraseña con bcrypt antes de cifrar el documento con openpgp

2

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.

    
pregunta Dmitri Rabinowitz 21.11.2018 - 16:50
fuente

1 respuesta

0
  

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.

Editar: No veo una debilidad criptográfica en esto, sin embargo, parece muy complicado para lo que estás tratando de lograr. Le sugiero que escriba sus requisitos exactos y luego busque la forma más sencilla en que su infraestructura y criptografía pueden cumplirlos.

Por ejemplo, no veo una razón en particular para usar el cifrado asimétrico aquí (además de ser ridículamente lento en comparación con el cifrado simétrico).

  

cualquier preocupación en [...] la generación de dos hashes diferentes desde la misma contraseña usando dos sales diferentes.

No. Salt simplemente "extiende" los datos originales para dificultar el uso de las tablas arco iris por parte de un atacante una vez que obtienen su base de datos. Que yo sepa, no hay ataques, lo que permite (o facilita) romper el hash, si se proporcionan dos hashes con diferentes sales.

    
respondido por el GxTruth 21.11.2018 - 17:05
fuente

Lea otras preguntas en las etiquetas