what are the drawbacks of that approach?
Per cominciare, è un passo in più che gli altri metodi di autenticazione hanno ridotto significativamente. È uno sforzo extra per i tuoi utenti. Le password sono ... facili da dimenticare e questo può diventare un problema che sconfigge il loro vero scopo. Soprattutto, regole per le password sicure che non sono in contatto con la realtà sono un'insicurezza.
Puoi osservare questo attraverso le persone che provano la loro password più comune su qualche forum, solo per scoprire che hanno sbagliato a causa di qualche oscura, anormale regola di cui si sono dimenticati, e così continuano a pappagare sempre username e la combinazione di password che hanno mai utilizzato nei campi di accesso. Qual è il punto delle password se hai intenzione di condividerle con estranei casuali del genere?
Ogni volta che noto siti che eseguono questa operazione, sospetto che possano cercare in modo subdolo di cercare password per altri siti. Per quanto mi riguarda, a meno che tu non sia un'agenzia bancaria al giorno d'oggi, dovresti probabilmente evitare di memorizzare le password se vuoi essere visto come legittimo. Esistono metodi migliori che sono più affidabili e più sicuri.
Per elaborare: a meno che i tuoi utenti non abbiano qualcosa da proteggere, permetti loro di usare qualunque cosa vogliano come password. Cioè, se decidi di usare una password, anche le password vuote dovrebbero essere accettabili.
Is there a good reason all sites don't use that approach?
Eseguo ciò che alcuni considerano comunemente "siti" a cui concedo l'accesso ad altri a volte, e non memorizzo password o impone requisiti della password ; Uso i certificati per l'autenticazione (come qualsiasi tecnologia moderna dovrebbe) e le persone possono (se lo desiderano) proteggere questi certificati con una alla loro estremità.
I miei siti sono server, e c'è un ottimo motivo non voglio memorizzare password di altre persone. Se uno dei miei utenti riesce a ottenere l'accesso amministrativo ai miei server, potrebbe ottenere altri hash delle password.
Allo stesso modo, puoi osservare questo sito, che probabilmente non dovevi inserire una password perché eri già connesso alla rete StackExchange ... e la rete StackExchange ti permette di accedere usando Facebook o Google, quindi c'è anche quello.
L'autenticazione del certificato non è una novità; è usato da anni in PAM, non richiede l'autenticazione tramite password ed è sicuramente ancora più potente da utilizzare per le istituzioni bancarie oltre alla semplice password.
generate a long (32+ char), random (with good randomness) password
Puoi farlo, ma quando dimentica o disorganizza le tue password, finirai per fornire password per alcuni servizi ad altri servizi. Se sei soddisfatto, così sia. Il mondo non smetterà di girare se il tuo conto in banca viene aperto a crepapelle.
Ci scusiamo, ma non troverete nessuno che sostenga che la generazione di una password lunga e casuale sia più sicura di quella di generare un certificato privato lungo e casuale che viene utilizzato per firmare alcune sale nonce e mai memorizzato direttamente sul lato server.
show it to the user once
Tu non dovresti mostrare all'utente (a meno che la password non sia per qualcosa di non importante , come i tuoi forum su Internet), ma il tuo generatore di chiavi SSH dovrebbe chiedere all'utente di ripetere la passphrase al momento della generazione della chiave. Questo ha lo stesso effetto della verifica visiva (forse anche più strong), tranne per il fatto che non stai mostrando la tua "password" in testo normale per chiunque guardi oltre la tua spalla per vedere ...
hash it with SHA256
Si potrebbe anche arrivare a suggerire che un sale sia usato. Il problema è che stai ancora memorizzando un digest e gli utenti potrebbero ancora pappaggere password per altri servizi. La soluzione al problema "hai dimenticato la password" non è quella di provare ogni password che hai mai usato , indebolendo così in modo significativo la tua sicurezza, ma a eliminare le password (dal tuo server ).
resetting the password generates another long, random password
Anche i più forti schemi di autenticazione basati su password hanno difetti duraturi a causa di qualche altra tecnologia , come e-mail o telefoni cellulari; quando uno di questi diventa il link più debole, troverai l'opzione password completamente compressa.
La soluzione per la privacy e la sicurezza è utilizzare le chiavi crittografiche per autenticare, piuttosto che e-mail, numeri di telefono, password e codici PIN.
In fact perhaps the approach could even be enhanced if instead of showing the password to the user, the site simply displayed a form with the password field filled in so the browser and/or passwords managers could memorize it. The user would just submit the form and would never have to see it.
La soluzione è di memorizzare la password da qualche parte in memoria, in modo che le persone debbano solo accedere a quella posizione di memoria per trovarla? A me sembra quasi una soluzione. Usa qualcosa di fisico, come una chiave GPG protetta da passphrase su una pen drive USB.