Sistema de Login Seguro con PHP/MySQL: Salt y hash para evitar reply

Publicado por frhfpwimb, Mayo 11, 2013, 15:24:50

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

frhfpwimb

Hola,

Estoy necesitando un script de php que me permita realizar logins de forma segura, es decir que utiliza salt y hash para evitar ataques de repetición o reply.

La idea sería esto:

Servidor --> Cliente: salt
C -> S: Nick, hash(pass+salt)
S -> C: Si hash(pass_db+salt) = hash(pass+salt) login correcto sino error de logue.

Espero que se entienda.

Si alguien tiene algún script que haga esto que avise porque no quiero programarlo de 0.

Esto solucionaría que se roben las cookies o que vuelvan a enviar datos de session dado que el salt varía cada vez que se loguea.
POR FAVOR: Considere hacer una donación para que de esta forma se pueda pagar el housing así esta comunidad pueda seguir en linea.

Camello_AR

En realidad necesitas además generar un cookie sesion que te relacione el salt con un cliente para validarlo, y matar la sesion al usar el salt por primera vez. (S > C set cookie sesion=abcde, en el texto

El problemon que tenes es que tu estructura es vulnerable a ataques contra la db (al menos como la planteas), porque estarías almacenando la clave en texto plano para poder hashearla en cada login

El hash necesitas hacerlo en JavaScript, con lo cual es conocido por el cliente, y quien puede manipularlo.
Y las cookies de sesion (login activo) igual siguen siendo vulnerables a robo (aun cuando las vincules a una IP, es decir en tu db guardas sesion = 1234, user = pepito, IP = 1.2.3.4; alguien en la lan puede usar tus credenciales).
Lo mejor, sin perjuicio de las medidas de seguridad que implementes, es usar SSL que encripta la comunicacion desde 0.

frhfpwimb

Si se puede hashear en la DB también eso no es problema.

Lo de la IP no me convence pq' muchas veces se usan mobile que usa diferentes ips.

SSL no puedo implementar por tema de costos tanto de tener un servidor virtual con ip propia y un certificado, dado que certificado autovalidado muchos no lo aceptarán por no saber que es.

Obvio que esta solución al requerir javascript puede no funcionar cuando esté desactivado, por eso la mejor es enviar en texto plano pero sobre una capa SSL, pero como dije no puedo.

Por eso si alguien tiene conocimiento de algún script ya hecho avisen porque no quiero reinventar la rueda.
POR FAVOR: Considere hacer una donación para que de esta forma se pueda pagar el housing así esta comunidad pueda seguir en linea.