Para una asignación de programación universitaria, debo implementar un protocolo de comunicación seguro entre un servidor y uno o más clientes. Al crear una instancia del programa del servidor, se genera un archivo, llámelo 'server_file'. Luego se coloca en una ubicación conocida y se supone que estará disponible para los programas del cliente a través de un canal seguro no disponible para un pirata informático.
El programa cliente luego generará su propio archivo, lo llamará 'archivo_cliente', y luego deberá poder enviar comandos al servidor (por ejemplo, crear una nueva cuenta, establecer un valor, obtener algún valor, simples solicitudes transaccionales). Este archivo de clientes puede considerarse como una clave de cliente o PIN que permite al servidor saber quién es el usuario. El punto es hacerlo para que un ataque MitM u otro ataque no permita que un adversario subvierta el sistema.
Tengo cierta familiaridad con PyCrypt y una comprensión básica de los principales principios criptográficos. Sin embargo, antes de comenzar, quería obtener alguna idea sobre la mejor manera de implementar esto. Estaba pensando en usar el archivo de servidor para firmar (HMAC) la clave de cliente y enviar los comandos del cliente al servidor (junto con el mensaje de la transacción) usando algo como AES en modo CTR.
¿Parece un buen enfoque? ¿Harías algo diferente? El propósito es asegurar el canal de comunicación.
Gracias de antemano!