The send_finger_print procedure sends a fingerprint file to the Extra Systems Cypher Net server, which is required for our central server to recognize you as our legitimate client, and also to receive information about which mode (input or output) and which subscriber you wish to contact.
This procedure is called at the right moment by the receiver and transmitter and does its job using the following algorithm:
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; }
It should be noted that the fingerprint mechanism itself, invented by us in this encryption system, serves as one of the mechanisms for protecting the Extra Systems Cypher Net central server from hacker attacks. Receiving a connection request from an abstract client (which may be an intruder), the server expects to immediately receive the correct fingerprint from it. If this does not happen, the server does not conduct any further conversations with such a client and immediately terminates the connection. Let us recall that since the fingerprint files are encrypted via RSA with an open (only by name) server key, which is not actually published anywhere, it is absolutely impossible to forge them.
Thus, with the help of such a simple mechanism, we also have protection here that is impossible to hack.
The content of this page is also available in French, German, Portuguese, Spanish, Italian, Ukrainian and Russian.
© Extra Systems, 2024 |
|