Sto costruendo applicazioni web e ho un'idea per creare un sistema di autenticazione personalizzato, che sarebbe rapido e sicuro.
Non voglio usare quasi la combinazione "predefinita" di accesso (email) / password.
Quando si registrano, voglio generare per tutti gli utenti una chiave di stringa crittograficamente sicura (ad esempio 70 caratteri casuali) casuale.
Ci sarà solo un campo di input per accedere, in cui l'utente dovrà inserire questa chiave per ripristinare di nuovo la sessione.
L'unica cosa di cui sono preoccupato è la sua sicurezza.
Quali sono i problemi che devo affrontare, utilizzando questo metodo di autenticazione?
L'unico problema, sospetto per ora è la forza bruta. Ma per quanto ho capito, se prendo qualsiasi libreria per generare, ad esempio i token per la password di recupero della posta elettronica, la possibilità della forza bruta sarà piccola. Inoltre dalla matematica (correggimi per favore se ho torto) la possibilità di brute due campi di lunghezza di 20 caratteri (come login e password) è uguale a un campo di 40 caratteri (la mia chiave) se hanno lo stesso set di caratteri.
MODIFICA 1: Ho aggiunto questo fatto, quella chiave dovrebbe essere non solo casuale, ma anche unica, per renderlo possibile utilizzare come ID. comunque mi chiedo se hash, usando, nell'ex. Bcrypt sarebbe anche unico. È possibile raggiungerlo? L'hash sarà unico se la chiave è unica? Il rischio di collisione è alto?