El procedimiento send_finger_print envía un archivo de huellas digitales al servidor Cypher Net de Extra Systems, que es necesario para que nuestro servidor central lo reconozca como nuestro cliente legítimo, y también reciba información sobre qué modo (entrada o salida) y con qué suscriptor desea contactar.
Este procedimiento es llamado en el momento adecuado por el receptor y el transmisor y realiza su trabajo utilizando el siguiente algoritmo:
int send_finger_print(int socket, unsigned int client_id, unsigned int server_id, int client_mode) { int file_handle; char file_name[64]; unsigned char client_finger_print[PACKED_VALUE_LENTH]; if (client_mode == CLIENT_MODE_INPUT) sprintf(file_name, "fingerprint_i_%d_%d", client_id, server_id); else sprintf(file_name, "fingerprint_o_%d_%d", client_id, server_id); if((file_handle = open(file_name, O_RDONLY)) == -1) return 0; read(file_handle, client_finger_print, PACKED_VALUE_LENTH); close(file_handle); socket_send_buffer(socket, client_finger_print, PACKED_VALUE_LENTH); return 1; }
Cabe señalar que el mecanismo de huellas dactilares en sí, que inventamos en este sistema de comunicación cifrado, sirve como uno de los mecanismos para proteger el servidor central Cypher Net de Extra Systems de ataques de piratas informáticos. Al recibir una solicitud de conexión de un cliente abstracto (que puede ser un atacante), el servidor espera recibir inmediatamente la huella digital correcta del mismo. Si esto no sucede, el servidor no mantiene más conversaciones con dicho cliente y finaliza inmediatamente la conexión. Le recordamos que, dado que los archivos de huellas dactilares se cifran a través de RSA con la clave pública (sólo de nombre) del servidor, que en realidad no se publica en ninguna parte, es absolutamente imposible falsificarlos.
Así, con la ayuda de un mecanismo tan simple, también aquí tenemos una protección que no puede ser pirateada.
El contenido de esta página también está disponible en inglés, francés, alemán, portugués, ucraniano y ruso.
© Extra Systems, 2024 |