Mithilfe von RSA-Schlüsseln generieren Extra Systems Cypher Net-Abonnenten in der Anfangsphase (get_common_key-Prozedur) zufällige Bytefolgen und tauschen diese in verschlüsselter Form aus. Dieser Austausch wird Prolog (weitere, bereits sinnvolle Verbindung) genannt. In der oben erwähnten get_common_key-Prozedur sind diese Zeilen für diesen Prozess (Prolog) relevant:
make_local_key(); get_hash(local_key.packed, PACKED_VALUE_LENTH / 2, local_hash); encrypt_local_key(); memcpy(socket_buffer, crypted_local_key, PACKED_VALUE_LENTH); memcpy(socket_buffer + PACKED_VALUE_LENTH, local_hash, HASH_SIZE); socket_send_buffer(socket, socket_buffer, PACKED_VALUE_LENTH + HASH_SIZE);
Die Größe des Prologs beträgt, wie Sie leicht erkennen können, PACKED_VALUE_LENTH + HASH_SIZE, das heißt, sie hängt von der Bittiefe der verwendeten RSA-Schlüssel (Parameter PACKED_VALUE_LENTH) und dem in dieser bestimmten Lieferung verwendeten Hashing-Algorithmus (Parameter HASH_SIZE) ab. Somit kann es zu Änderungen kommen, was für den zentralen Server in der connect_server-Prozedur zu Problemen führen würde, wenn die Abonnenten ihm nicht vorab während der check_finger_print-Prozedur durch den von ihnen gesendeten Fingerabdruck den Wert ihrer prolog_size mitgeteilt hätten.
Es ist leicht zu erkennen, dass der Prolog aus zwei Teilen besteht: einer vom Client generierten Zufallssequenz local_key (in der Prozedur make_local_key) und einem Hash dieser Sequenz local_hash. Gleichzeitig wird der Hash vor der Verschlüsselung des local_key berechnet, was die Zuverlässigkeit der Verbindung gewährleistet, da nur ein Kommunikationspartner, der über einen privaten RSA-Schlüssel verfügt, dieses Paket entschlüsseln kann, und nur ein Teilnehmer, dem dieser Partner diesen persönlich gegeben hat Der öffentliche Schlüssel hierfür kann es verschlüsseln. Daher ist in diesem Fall kein Man-in-the-Middle-Angriff möglich.
Der Inhalt dieser Seite ist auch in Englisch, Französisch, Portugiesisch, Spanisch, Italienisch, Ukrainisch und Russisch verfügbar.
© Extra Systems, 2024 |
|