Incluso si tengo cuidado de no perder / olvidar mi contraseña para algunas cuentas web, otras personas no lo son, por lo que la mayoría de los sitios tienen un mecanismo de restablecimiento de contraseña, que a menudo es un token de restablecimiento enviado a la dirección de correo electrónico registrada. A menos que haya una manera de optar por no hacerlo (lo que nunca he visto), eso deja a mi cuenta en su sitio vulnerable a la aceptación o intercepción del correo electrónico.
En lugar de permitir que los usuarios conscientes de la seguridad desactiven los correos electrónicos para restablecer la contraseña por completo, he pensado en la idea de permitir que las personas registren opcionalmente una clave pública PGP y luego usar esa clave para cifrar el token de restablecimiento que se envía por correo electrónico. p>
Creo que, en teoría, sería mejor que envíen una solicitud de restablecimiento de contraseña firmada, en lugar de descifrar un token, porque esto parece más bien en el espíritu de tener claves separadas para propósitos separados. Pero cifrar el token sería conceptualmente un cambio muy simple a una parte del código existente:
if (defined key) encrypt(token,key);
email_send(token);
Si bien un sistema basado en firmas sería un sistema completamente nuevo, tendría más oportunidades de estropearlo.
Nunca he visto nada parecido a restablecimientos cifrados de clave pública. Esto permite que el propietario de la cuenta calibre por sí mismo exactamente cuánto esfuerzo desean realizar para asegurar su clave privada. ¿Hay precedente para esto? ¿Hay alguna razón para que no funcione?
(Esto es por mi curiosidad, no planeo implementar un sistema de este tipo).