Message Transmission Process and ExampleScenario (Labs and Research Centers)

Message Transmission Process

Objective To enable secure data transmission from senders to receivers via a central server using CipherMQ, leveraging mTLS for authentication and x25519 encryption for message security.

Process Steps

  1. Initial Setup
    1. Server Configuration: The server is configured with TLS 1.3 for secure communication.
    1. Client Configuration: Receivers register their public keys with the server; senders retrieve and load the public keys of intended recipients.
  2. Message Generation & Encryption
    1. Senders generate messages in a standardized format: { “message_id”: “”, “sender_id”: “”, “sent_timestamp”: “”, “content”: “” }
    1. Messages are encrypted for each recipient using their x25519 public key, including message_id, receiver_client_id, and ciphertext.
  3. Transmission to Central Server
    1. Senders connect to the server via mTLS for secure authentication.
    1. Encrypted messages are sent with a publish command.
    1. The server stores metadata in the table and sends an ACK to the sender.
  4. Processing & Distribution
    1. The server queues messages using a high-performance DashMap.
    1. Based on routing_key and bindings, messages are directed to recipient queues.
    1. Messages are delivered to connected recipients.
  5. Reception & Decryption
    1. Receivers connect to their designated queue, consume messages, and decrypt them using their private key.
    1. Decrypted messages are saved in a standardized file.

Receivers send an ACK to the server, which updates acknowledged_time in the database, removes the message from the queue, and retains only metadata.

ExampleScenario: Labs and Research Centers

Locations Defined

  • Labs (Senders): These generate and encrypt data.

FL-LAB (Florida Laboratory)                       

PA-LAB (Pennsylvania Laboratory)

MA-LAB (Massachusetts Laboratory)    

IL-LAB (Illinois Laboratory)

  • Research Centers (Receivers): These receive and decrypt data.

CA-RC (California Research Center)

NY-RC (New York Research Center)

SF-RC (San Francisco Research Center)

  • Central Server (Headquarters): server, responsible for managing and distributing messages.

DC-HQ (Washington D.C Headquarters)

Event

FL-LAB: Generates raw data (FL-LAB_DAT_20251008_001), encrypts it for CA-RC and SF-RC, and sends via mTLS to DC-HQ.

PA-LAB: Generates report (PA-LAB_RPT_20251008_125), encrypts it for CA-RC, NY-RC and SF-RC, and sends via mTLS to DC-HQ.

MA-LAB: Generates raw data (MA-LAB_DAT_20251008_045), encrypts it for NY-RC and SF-RC, and sends via mTLS to DC-HQ.

IL-LAB: Generates report (IL-LAB_RPT_20251008_175), encrypts it for CA-RC and SF-RC, and sends via mTLS to DC-HQ.

Processing at Headquarters:

Routes messages to queues (ca_rc_queue, ny_rc_queue, sf_rc_queue) based on routing_key.

Reception at Research Centers:

CA-RC: Receives and decrypts messages from FL-LAB, PA-LAB, IL-LAB.

NY-RC: Receives and decrypts messages from PA-LAB, MA-LAB.

SF-RC: Receives and decrypts messages from FL-LAB, PA-LAB, MA-LAB, IL-LAB.


Posted

in

Tags: