Estuve pensando en esto por un tiempo. Supongamos que tenemos una aplicación para la que hay una consola de administración, y necesitamos proporcionar acceso a la consola de administración a través del navegador (sí, HTTPS).
Para la autenticación, en lugar de solicitar una contraseña, ¿sería más seguro lo siguiente?
- Prepare un conjunto de preguntas poco comunes de muy amplio alcance para las respuestas que difícilmente conocerían sus amigos o familiares. Y al menos es seguro asumir que ninguna persona sabría la respuesta a todas esas preguntas por completo. Estas preguntas pueden ser cosas como cosas menores que suceden en tu vida, y no importan lo suficiente como para contárselo a alguien.
- Almacene las respuestas a estas preguntas en forma normalizada. Así que recorte espacios en blanco, elimine la puntuación, etc., y péguelas en sal al igual que lo hace con las contraseñas.
- Al iniciar sesión, haga estas preguntas en orden aleatorio (y haga solo una parte de las preguntas, para que el conjunto sea diferente la próxima vez que el hacker intente iniciar sesión). Al final, verifique todas las respuestas juntas y, si son válidas, inicie sesión en el usuario.
Me pregunto si esto será más seguro que los métodos actuales. Si no es así, ¿hay algo que me esté perdiendo?