seguridad de detalles de inicio de sesión mediante salt y hash, y un rol de inicio de sesión en postgresql

7

Estoy codificando la seguridad de un sitio web en la base de datos express.js y postgresql. Ahora he estado leyendo sobre salting y hash y tengo el código configurado con pbkdf2 usando el módulo criptográfico, pero mi problema es cómo estructuraré la tabla de cuentas en la base de datos.

¿Debo crear un rol de inicio de sesión que tenga un formato MD5 encriptado para la contraseña, que será la clave derivada del "procedimiento" de sal y hash? ¿Sería eso una exageración?

Habrá una tabla que será la siguiente: UID (la ID del rol de inicio de sesión), SALT, HASH y también el rol de inicio de sesión.

Entonces, en un intento de autenticación, el código intentará iniciar sesión como ese rol, primero obteniendo el UID asociado, generando la contraseña salt y hash para la contraseña proporcionada y la autenticación en un nivel de base de datos.

Espero que tenga sentido.

   var usrSalt = crypto.randomBytes('128').toString('base64');
   //text , salt ,iterations , keylen , callback
   crypto.pbkdf2(usr, usrSalt, 10000, 512, function (err, derivedKey) {
       if (err) { console.log(err); }
       else {
           usr = derivedKey;
           next();
       }
   });

P.S. ¿Sería mejor un módulo pgcrypto en el mismo escenario, simplemente eliminando el código en node.js.

    
pregunta czioutas 13.01.2014 - 16:48
fuente

1 respuesta

2

El patrón más común para las aplicaciones web es que la aplicación se autentique utilizando una cuenta de rol y luego realice la autenticación del usuario en la base de datos. No otorgaría acceso a la base de datos a cuentas de usuarios individuales; considere el caso en el que su base de datos está expuesta inadvertidamente a Internet. ¿Desea que las credenciales de usuario sean utilizables en ese caso? (Es un poco mejor en el caso que ha descrito, donde se derivan de alguna función PBKDF2).

Su aplicación web requerirá una cuenta de rol en cualquier caso: deberá registrar nuevos usuarios, recuperar la sal por usuario para la operación PBKDF2 y (dependiendo de la aplicación) deberá realizar operaciones para usuarios anónimos.

    
respondido por el David 08.01.2018 - 02:31
fuente

Lea otras preguntas en las etiquetas