¿Debo el usuario y la contraseña de hash del cliente, HTTPS a password_hash en el servidor PHP / MySQL?

2

Siguiendo con mi pregunta anterior ¿Mejoro la seguridad agregando todas las contraseñas con una cadena larga fija? Creo que puedo usar la función PHP password_hash con bcrypt en mi servidor.

Dos preguntas ...

¿Pido al usuario el hash para poder buscarlo con una cadena fija en la base de datos, luego comparar el valor almacenado password_hash () con password_verify () y el pase de hash del cliente?

¿Tengo alguna ventaja en el hash de la contraseña o simplemente la envío sin alterar a través del cable HTTPS? Leí en otra parte que esto está bien, pero me deja sin resolver.

    
pregunta fiprojects 18.09.2016 - 21:10
fuente

1 respuesta

1

He resuelto: este es el proceso que estoy siguiendo en caso de que alguien esté interesado.

Durante el registro inicial, el usuario ingresa un nombre de usuario y contraseña. Ambos están procesados, enviados a través de HTTPS al servidor.

El servidor DB guarda el hash de inicio de sesión del cliente y la salida a password_hash ($ pass, PASSWORD_BCRYPT, ["cost" = > 12]) a la db.

Más tarde, durante el proceso de inicio de sesión, el usuario ingresa el inicio de sesión y la contraseña. Ambos están procesados, enviados a través de HTTPS al servidor.

El cliente solicita al servidor que busque en la base de datos el loginhash, recupera la salida de password_hash.

si password_verify ($ clientpass, $ dbpass) devuelve true, entonces la contraseña es válida, en caso contrario, false / password inválida.

Esto funciona para mí.

¿Por qué tengo un hash entre el usuario y la contraseña en el cliente a pesar de que pasan por el cable como https? Debido a que las longitudes fijas son más rápidas de buscar en la base de datos (mysql preparo todas mis consultas para garantizar que no dependa de datos de clientes sucios). También porque aunque los datos se cifran, prefiero una larga secuencia de caracteres en lugar de una breve secuencia que podría contener un nombre de usuario / contraseña. En mi mundo, se siente mejor, aunque creo que por lo que leo no lo hago. No hay nada extra por el esfuerzo.

    
respondido por el fiprojects 18.09.2016 - 23:03
fuente

Lea otras preguntas en las etiquetas