Tengo un dilema aquí: estoy trabajando en un sistema que se conectará a servidores Linux remotos para monitorear y automatizar algunos procesos. Como el usuario + pass es inseguro por razones obvias y existen pares de claves pública / privada por una razón, mi sitio genera un par de claves y le da la clave pública al usuario (para subir a su servidor) pero en En caso de que el usuario olvide su clave pública, me gustaría darle una forma de recuperarla.
Sin embargo, si cifro la clave pública con la contraseña del usuario, si un pirata informático ingresa a la base de datos, incluso si la contraseña está oculta, puede usar ese hash para descifrar la clave pública, por lo que no tendría sentido. Comencé a pensar en usar OTP en lugar de preguntarle en la fase de generación clave y en la fase de vista clave.
¿Qué piensas? ¿Es este método seguro? ¿Hay alguna forma mejor de asegurar esto? En realidad, lo que me gustaría archivar es algo como usar una contraseña / clave maestra para desencriptar esos datos, algo que el usuario tiene, pero al mismo tiempo puedo usar para desencriptar los datos en caso de que mi sistema lo necesita ... Por ejemplo, para iniciar sesión tengo que comparar la contraseña de alguna manera, ¿verdad? y para desencriptar la clave pública para la visualización, también tengo que hacerlo.
Cualquier sugerencia o idea sería muy bienvenida, ya que me he pasado dos días pensando por completo en este problema, pero no he encontrado una forma libre de hackers para hacerlo. Sé que todo es hackeable, pero no me importaría si se hace de alguna manera que tomará alrededor de 10 GTX 1080 para descifrar la información, eso me dará suficiente tiempo para actuar, creo. ¿Estoy equivocado?