La procedura send_finger_print invia un file di impronte digitali al server Extra Systems Cypher Net, necessario affinché il nostro server centrale ti riconosca come nostro cliente legittimo e riceva anche informazioni su quale modalità (input o output) e con quale abbonato desideri contattare.
Questa procedura viene chiamata al momento giusto dal ricevitore e dal trasmettitore e svolge il suo lavoro utilizzando il seguente 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; }
Va notato che il meccanismo dell'impronta digitale stesso, che abbiamo inventato in questo sistema di comunicazione crittografata, funge da uno dei meccanismi per proteggere il server centrale Extra Systems Cypher Net dagli attacchi degli hacker. Quando riceve una richiesta di connessione da un client astratto (che potrebbe essere un utente malintenzionato), il server si aspetta di ricevere immediatamente da esso l'impronta digitale corretta. Se ciò non accade, il server non avvia più alcuna conversazione con tale client e interrompe immediatamente la connessione. Ricordiamo che poiché i file delle impronte digitali vengono crittografati tramite RSA con la chiave pubblica (solo nominativa) del server, che in realtà non viene pubblicata da nessuna parte, è assolutamente impossibile falsificarli.
Quindi, con l'aiuto di un meccanismo così semplice, anche qui abbiamo una protezione che non può essere violata.
Il contenuto di questa pagina è disponibile anche in inglese, francese, tedesco, portoghese, spagnolo, ucraino e russo.
© Extra Systems, 2024 |
|