¿Es seguro generar un par de claves públicas / privadas a partir de la contraseña de un usuario utilizando PBKDF2, y enviar la clave pública al servidor para que se almacene como clave del usuario? Luego, cuando el usuario inicia sesión, generará nuevamente la clave privada a partir de la contraseña y la usará para comunicarse con el servidor.
La sal será generada por el servidor y enviada al cliente como parte del formulario de registro; sin embargo, esta sal sería completamente única para cada solicitud, y la sal elegida se enviaría de nuevo al servidor con la clave pública.
Mi pensamiento es que esto resolvería el problema de atar los recursos del servidor si muchos usuarios quisieran registrarse. También me pregunto si sería más seguro que simplemente sal y hachís un millón de veces.
Obviamente, esto es vulnerable a un ataque MitM durante el registro, pero ¿qué no lo es? Debería ser inmune a un intruso, ¿verdad? Excepto por la fuerza de la contraseña.