Programé una aplicación en Linux usando C, agregué una capa de autenticación y criptografía que funciona así:
1-cliente envía solicitud de conexión. -servidor enviar un desafío aleatorio al cliente. -El cliente agrega sal al desafío y lo procesa usando SHA1 y luego lo envía. -El servidor agrega el mismo salt y hash al desafío con SHA1, y compara el resultado recibido.
2: en el caso positivo, el servidor solicita al cliente el inicio de sesión y la contraseña. -El cliente envía el nombre de usuario y la contraseña (con sala y hash con sha1). -el servidor busca la contraseña de inicio de sesión y hash en un archivo.
3 -Si el cliente ha enviado un nombre de usuario y contraseña válidos, se autentica. -Una sesión clave se genera al concatenar el desafío de hash recibido y la contraseña de hash ..
4 -la sesión clave se utiliza para cifrar datos con AES256
Quiero que me digas qué piensas al respecto, ¿es seguro? ¿Hay algún ataque que pueda romper esas secuencias en cualquier paso ...? Muchas gracias.