Foros del Web » Programando para Internet » PHP »

Donde almacenais el salt?es correcto?

Estas en el tema de Donde almacenais el salt?es correcto? en el foro de PHP en Foros del Web. Mi pregunta es si almacenar el salt en la bbdd, o meterlo en codigo directamente, y me gustaria saber si haciendo este proceso podría afirmar ...
  #1 (permalink)  
Antiguo 26/09/2012, 09:02
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 13 años, 10 meses
Puntos: 1
Donde almacenais el salt?es correcto?

Mi pregunta es si almacenar el salt en la bbdd, o meterlo en codigo directamente, y me gustaria saber si haciendo este proceso podría afirmar que mi hash resultante es bastante seguro...

$pass="contraseña";
$salt="xxx";

$pass_1 = md5 ($salt.$pass); //Encriptacion nivel 1
$pass_2 = crc32($pass_1); //Encriptacion nivel 2
$pass_4 = crypt($pass_3); //Encriptacion nivel 3
$pass_5 = sha1($pass_4); //Encriptacion nivel 4


Gracias!
  #2 (permalink)  
Antiguo 26/09/2012, 09:23
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Donde almacenais el salt?es correcto?

Con crypt y un salt es sucifiente. Lo que algunos (o muchos) hacen es almacenar el salt junto con el usuario y comparar con ese salt la clave del usuario. Y la recomendación es usar CRYPT_BLOWFISH.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 26/09/2012, 10:09
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Donde almacenais el salt?es correcto?

No entendi muy bien lo del guardar el salt con el usuario, generas un salt lo guardas con el usuario y lueog cuando vas a loguear y comparar como lo haces ? porque la hash del usuario esta me<zclada con el salt... donde esta la referencia??

he probado con bcrypt , teniendolo activado pero me da error.

Tengo php 5.3.9 y cuando ejecuto :
$hash = password_hash($password, PASSWORD_BCRYPT, ['cost' => 10]);
me da el siguiente error:
6:20:13 2012] [error] [client 127.0.0.1] PHP Parse error: syntax error, unexpected '[' in C:\\wamp\\www\\bcrypt\\enc.php on line 8, referer: http://localhost/bcrypt/
  #4 (permalink)  
Antiguo 26/09/2012, 11:40
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Donde almacenais el salt?es correcto?

Creas una columna adicional donde guardes el listado de usuarios en que en ella guardas el salt, cuando vayas a comparar el login del usuario usas tambien el salt que guardaste en esa columna con lo que ingreso el usuario y crypt.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 26/09/2012, 11:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Donde almacenais el salt?es correcto?

ferminako, la sintaxis que utilizas es exclusiva de php 5.4 por eso te da error.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 26/09/2012, 12:28
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Donde almacenais el salt?es correcto?

Gracias patrueke, tendre que ver como actualizar el php de mi wamp :S , por otro lado no consigo entender el tema del salt guardado por cada usuario porque si cuando se registra imagenmos mmm carlos genero un salt tal que xxx y por lo tanto en base de datos guardo
usuario: md5(carlos.salt);
salt:salt;

Cuando vaya a loguearse el usuario mete carlos y yo no puedo ir a bucar nada a la bbdd porque esta guardado con el salt y encriptado, como lo hago??

Gracias!
  #7 (permalink)  
Antiguo 26/09/2012, 12:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Donde almacenais el salt?es correcto?

El procedimiento es el siguiente.

1. Generas un salt al azar
2. Usas el salt con la contraseña para codificarla
3. Almacenas ambos valores por separado

Cuando consultes los datos.

1. Obtienes el salt usando únicamente el acceso sin password (email, nick)
2. Recreas la contraseña codificada usando dicho salt y el password provisto
3. Comparas en la base de datos usando el acceso y la contraseña ya codificada

¡et voila!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 26/09/2012, 12:59
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Donde almacenais el salt?es correcto?

Una vez mas Gracias!!!!!
  #9 (permalink)  
Antiguo 27/03/2013, 18:42
 
Fecha de Ingreso: marzo-2013
Mensajes: 2
Antigüedad: 11 años
Puntos: 0
Respuesta: Donde almacenais el salt?es correcto?

Gran guía para mi este hilo, estaba buscando información para implementar mi esquema de seguridad en las contraseñas y quizá en otros campos sensibles.

Se me ocurre guardar los salt en una tabla aparte de la de usuarios, es decir, una tabla relacionada por el identificador del usuario mas el campo salt.

Esto con la finalidad de que si por algún motivo alguien se logra colar en la BD y en la tabla de usuarios por lo menos no este allí de plano el salt, me parece que seria cerrar la puerta con llave pero dejarla pegada.

Que opinan???
  #10 (permalink)  
Antiguo 28/03/2013, 05:59
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Donde almacenais el salt?es correcto?

Saludos, y bienvenido sanreikaj. Es una posibilidad, pero eso no te dice que sea más segura la aplicación, porque si lograron acceder a una tabla como quiera podrán acceder a todas las tablas claro está si el usuario que estén usando tiene permiso para entrar a ver todas las tablas. La seguridad de la aplicación deben ser varias cosas como cambiar contraseñas de la base de datos cada cierto tiempo, entre otras cosas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 28/03/2013, 10:02
 
Fecha de Ingreso: marzo-2013
Mensajes: 2
Antigüedad: 11 años
Puntos: 0
Respuesta: Donde almacenais el salt?es correcto?

Gracias abimaelrc.

Tienes toda la razón la seguridad debe estar compuesta de varios elementos y nunca sera 100% segura la aplicación, pero si debe ser lo mas complejo posible para el atacante de manera que no sea rentable para el trabajar en ello.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:05.