Actualmente estoy usando un sistema de inicio de sesión que se describe a continuación:
- Se genera una cadena de 1000 caracteres en el servidor cada vez que se abre el sitio web y funciona durante un máximo de 5 minutos, momento en el que se genera una nueva cadena que estará en la memoria hasta el próximo inicio de sesión
- La cadena se encripta luego usando mi clave pública que está almacenada en el servidor
- El mensaje cifrado PGP se muestra en la página de inicio de sesión
- Después de descifrar un mensaje PGP usando mi clave privada, copio / pego el mensaje descifrado en la página de inicio de sesión
- y, finalmente, el script del lado del servidor compara el mensaje descifrado con la cadena generada en el paso 1 y después de que el inicio de sesión generado anteriormente ya no esté disponible
Ventajas de usar este sistema:
- la contraseña solo se almacena en la memoria del servidor por un tiempo muy corto
- El mensaje PGP solo se puede descifrar usando mi clave privada (RSA - 4096 bits) Y mi frase de contraseña
Contras:
- inconveniente
- mi implementación podría ser defectuosa
Esto es solo para fines educativos y no se utilizará en ningún sistema de producción.
También subí el código a github si alguien quiere ver el código
¿Cuáles son algunos de los riesgos de seguridad potenciales de usar dicho sistema?