Anche se sto attento a non perdere / dimenticare la mia password per alcuni account web, altre persone non lo sono e quindi la maggior parte dei siti ha un meccanismo di reimpostazione della password, spesso un token di ripristino inviato all'indirizzo email registrato. A meno che non ci sia un modo per rinunciare a questo (che non ho mai visto), questo lascia il mio account sul loro sito vulnerabile alla presa di posta elettronica o all'intercettazione.
Invece di consentire alla sicurezza di disattivare completamente le e-mail per la reimpostazione della password, ho pensato all'idea di consentire alle persone di registrare facoltativamente una chiave pubblica PGP e quindi di usare quella chiave per crittografare il token di ripristino che viene inviato via email.
Penso che in teoria sarebbe meglio fargli mandare una richiesta di reimpostazione della password firmata, piuttosto che decifrare un token, perché questo sembra più nello spirito di avere chiavi separate per scopi separati. Ma la crittografia del token sarebbe concettualmente una modifica molto semplice a una parte del codice esistente:
if (defined key) encrypt(token,key);
email_send(token);
Mentre un sistema basato su firma sarebbe un sistema completamente nuovo, quindi avrebbe maggiori possibilità di rovinarlo.
Non ho mai visto nulla di simile al reset della chiave pubblica. Ciò consente al proprietario dell'account di calibrare da solo esattamente lo sforzo che vogliono passare per proteggere la propria chiave privata. C'è un precedente per questo? C'è qualche ragione per cui non funzionerebbe?
(Questo è per mia curiosità, non ho intenzione di implementare un tale sistema.)