¿Qué tecnología reemplazará al hash salado?

Para agregar a la respuesta de Toby Thain:
Necesita introducir un factor de trabajo en la ecuación. Hashing está diseñado para ser rápido, que no es lo que queremos. Esta preocupación solía ser puramente teórica, pero ahora las GPU ahora pueden probar millones de hashes por segundo, haciendo posible los ataques de fuerza bruta.

Bcrypt obliga a que el proceso se ralentice, pero Facebook / GMail y otros proveedores de servicios prefieren usar la autenticación de dos factores (enviar un código de acceso temporal a su teléfono celular a través de un mensaje de texto o una aplicación), en lugar de gastar ciclos de CPU calculando el hash de su contraseña . Después de todo, la contraseña se puede extraer a través de keyloggers, mirar por encima del hombro de alguien, etc.

Los dispositivos físicos, como llaveros, tarjetas de identificación, YubiKeys, lectores de huellas dactilares, escáneres de iris y una variedad de otros datos biométricos serán necesarios para una mejor seguridad, pero incluso las tecnologías de seguridad física pueden verse socavadas, como se observó en el truco RSA Key Fob .

RSA Key Fob hackeado: http://blogs.computerworld.com/1…
YubiKey: http: //yubico.com/yubikey
Por qué deberías usar Bcrypt: http://codahale.com/how-to-safel…

Si agrega suficiente sal a un hash de contraseña, sería suficiente con 128 bits, entonces la precomputación (tablas de arco iris, etc.) será inútil contra ella en el futuro previsible. Sin embargo, los ataques de diccionario aún son posibles contra un hash salado, solo tienen que atacar cada hash de forma independiente.

Existen variantes en los esquemas de salazón (detener la salazón, la pimienta, etc.) que mejoran marginalmente sus propiedades de seguridad. También puede hacer que el hash sea más difícil de calcular, pero obligar al cliente a calcularlo; pero esta es una mala elección con teléfonos móviles y otros clientes de baja potencia.

La posibilidad sigue siendo hacer que el servidor sea más seguro. Puede usar hardware seguro (tarjetas inteligentes u otros módulos de seguridad de hardware), o tener algunos servidores que realizan criptografía en una habitación cerrada, separada de la base de datos de contraseñas. O bien, podría requerir que el cliente inicie sesión con algo más que una contraseña: datos biométricos o una tarjeta inteligente propia. Sin embargo, no estoy seguro de que estas técnicas se pongan al día.

bcrypt extiende la utilidad de la idea de la sal. http://bcrypt.sourceforge.net/