sql >> Base de Datos >  >> RDS >> Mysql

Mejore el hashing de contraseñas con una sal aleatoria

Un atacante está "permitido" para conocer la sal:su seguridad debe diseñarse de manera que, incluso con el conocimiento de la sal, siga siendo segura.

¿Qué hace la sal?

Salt ayuda en la defensa contra ataques de fuerza bruta usando "tablas de arcoíris" precalculadas.
Sal hace que la fuerza bruta sea mucho más costosa (en términos de tiempo/memoria) para el atacante.
Calcular una tabla de este tipo es costoso y, por lo general, solo se realiza cuando se puede usar para más de un ataque/contraseña.
SI usa la misma sal para todas las contraseñas, un atacante podría precalcular dicha tabla y luego forzar sus contraseñas en texto sin cifrar ...
Siempre y cuando genere una nueva sal aleatoria (mejor criptográficamente fuerte) para cada contraseña cuyo hash desee almacenar, no hay problema.

SI desea fortalecer aún más la seguridad
Puede calcular el hash varias veces (hash the hash, etc.) - esto no le cuesta mucho, pero hace que un ataque de fuerza bruta / calcular "tablas de arco iris" sea aún más costoso... por favor no No se invente a sí mismo:existen métodos estándar comprobados para hacerlo, consulte, por ejemplo, http://en. wikipedia.org/wiki/PBKDF2 y http://www.itnewb.com/tutorial/Encrypting-Passwords-with-PHP-for-Storage-Using-the-RSA-PBKDF2-Standard

NOTA:

Usar tal mecanismo es en estos días obligatorio ya que el "tiempo de CPU" (utilizable para ataques como tablas arcoíris/fuerza bruta, etc.) está cada vez más disponible (vea, por ejemplo, el hecho de que el servicio en la nube de Amazon se encuentra entre los 50 supercomputadores más rápidos del mundo y puede ser utilizado por cualquiera por una cantidad comparativamente pequeña)!