Estoy creando una aplicación web y tengo una idea para crear un sistema de autenticación personalizado, que sería rápido y seguro.
No quiero utilizar la combinación de inicio de sesión (correo electrónico) / contraseña casi "predeterminada".
Quiero generar para todos los usuarios una clave de cadena segura criptográficamente única al azar (por ejemplo, 70 caracteres aleatorios) cuando se inscriban.
Habría solo un campo de entrada para iniciar sesión, donde el usuario tendrá que ingresar esta clave para restaurar su sesión nuevamente.
Lo único que me preocupa es su seguridad.
¿Cuáles son los problemas con los que tengo que lidiar al usar este método de autenticación?
El único problema, sospecho por ahora es la fuerza bruta. Pero por lo que entiendo, si tomo cualquier biblioteca para generar, por ejemplo, tokens de contraseña de recuperación de correo electrónico, la posibilidad de fuerza bruta será pequeña. Además, desde matemáticas (corríjame por favor si me equivoco) la posibilidad de dañar dos campos de 20 caracteres de longitud (como inicio de sesión y contraseña) es igual a un campo de 40 caracteres de longitud (mi clave) si tienen el mismo conjunto de caracteres.
EDIT 1: Agregué ese hecho, esa clave no solo debe ser aleatoria, sino también única, para que sea posible usarla como una identificación. Sin embargo me pregunto si hash, usando, en ex. Bcrypt también sería único. ¿Es posible lograr eso? ¿Será el hash único si la clave es única? ¿Es alto el riesgo de colisión?