Manejo de inicio de sesión de usuario usando criptografía asimétrica

0

¿Es posible implementar un protocolo de inicio de sesión con criptografía asimétrica en lugar del método de contraseña con hash?

Por ejemplo, al crear una cuenta, el cliente genera un par de clave privada / pública a partir de un hash del nombre de usuario, contraseña y otros datos adicionales. La clave pública se envía al servidor con el nombre de usuario, y el servidor almacena el nombre de usuario y la clave pública. Cuando el usuario desea iniciar sesión, ingresa su contraseña, el cliente regenera la clave privada, firma un nonce con ella y envía el mensaje firmado al servidor. El servidor puede autenticar al usuario ya que conoce la clave pública asociada con el nombre de usuario.

¿Hay algún defecto en este protocolo?

¿Y cuáles serían las ventajas sobre almacenar el hash de contraseña?

EDITAR: De hecho, encontré una respuesta bastante completa aquí: enlace

    
pregunta lmeunier 20.05.2016 - 10:47
fuente

1 respuesta

1

Es una mala idea generar la clave para la criptografía asimétrica totalmente en datos predecibles (es decir, contraseña elegida por el usuario) en lugar de datos aleatorios seguros. Al basar la clave completamente en datos predecibles, la clave obtiene la misma previsibilidad que la contraseña utilizada como entrada.

Aún así, la criptografía asimétrica se puede utilizar para la autenticación / inicio de sesión, pero no de la forma que usted propone. Los ejemplos típicos son la autenticación con certificados de cliente en TLS y la autenticación con una clave en SSH. En ambos casos, la clave pública es conocida por el servidor (y está asociada con el usuario) o el servidor puede generar confianza en el certificado al construir la cadena de confianza para certificados de emisor de confianza local.

    
respondido por el Steffen Ullrich 20.05.2016 - 14:56
fuente

Lea otras preguntas en las etiquetas