Esta no es una respuesta definitiva, solo algunos pensamientos.
1. Hashing del lado del cliente.
Veo lo que buscas: proteger la contraseña de texto sin formato. Una idea como esta se basa en cada sitio que usa un esquema de hashing diferente (de lo contrario, puede hacer listas de los sitios que usan el mismo esquema de hash y saber que sus hashes / contraseñas serán intercambiables).
Supongo que esto ayudaría un poco, pero ciertamente no resuelve el problema, y se basa en que los desarrolladores cambien sus esquemas de hashing de los valores predeterminados (lo que es peligroso por otras razones si no entienden realmente cómo funciona el hashing de contraseñas). ).
2. Prueba de conocimiento cero basada en contraseña
No soy un experto en pruebas de conocimiento cero, pero tengo entendido que son un subconjunto de Algoritmos de clave pública. Los algoritmos de clave simétrica (como el cifrado AES) se pueden combinar fácilmente con contraseñas ... clave pública, no tanto. Mi intuición es que si desarrolla esta idea por completo, básicamente va a reinventar el SSL autenticado por el cliente, ¿así que solo use eso?
Mis comentarios
Las contraseñas de la OMI en su conjunto son un barco que se hunde; son un sistema roto Esto se debe a que estamos en el punto de la historia en el que la capacidad del pirata informático de contraseñas de fuerza bruta está comenzando a superar la capacidad del cerebro humano de recordar contraseñas complejas.
En lugar de intentar parchar un barco que se hunde, sugiero que nosotros (como industria) nos movamos lo más rápido posible para adoptar sistemas de autenticación no basados en contraseñas. Cosas como las teclas 2FA o ssh no tienen los mismos problemas fundamentales que las contraseñas, y son el tipo de soluciones que deberíamos aceptar.
P.S. Al momento de escribir, la pregunta tiene 3 votos cerrados como "demasiado amplio". He hecho una cosa peligrosa aquí cuando edité la pregunta del OP para que fuera menos amplia, y luego publiqué una respuesta a la pregunta recién redactada. Espero que esto sea aceptable.