Skip to content

orenIsabella/Whisper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Whisper - Secure Data Transmission System

Overview

Whisper is a real-time data transmission system designed to capture, enrich, and securely forward data to a designated server over HTTP or TCP. It efficiently handles multiple concurrent connections, ensures data integrity, and features an optional self-destruction mechanism for emergency scenarios.

Features

  • Real-time Data Processing: Listens for raw TCP connections and processes incoming messages.
  • Data Enrichment: Adds metadata such as timestamp, client IP, and MD5 hash.
  • Configurable Transmission: Supports HTTP & TCP transmission, configurable via whisper-config.yaml.
  • Automatic Retry Mechanism: Retries failed HTTP transmissions up to 3 times.
  • Self-Destruction Mechanism: Can be triggered remotely to erase all traces of Whisper.
  • Automatic Transmission of Unsent Messages: Ensures no data is lost before shutdown.
  • Docker Support: Deployable in a containerized environment.

Installation

Prerequisites

  • Java 17+
  • Maven
  • Docker (optional for containerized deployment)

** Clone the Repository**

git clone https://github.com/your-repo/whisper.git
cd whisper

** Configure Whisper**

Edit whisper-config.yaml to specify ports, transmission mode, and security settings as mentioned in its notes.

** Build the Project**

mvn clean package

** Run Whisper**

java -jar target/whisper.jar

Usage

Sending Data via TCP

You can use nc (Netcat) to send data:

echo "Hello Whisper" | nc 127.0.0.1 9090

Sending Data via HTTP

Use curl to send a message:

curl -X POST "https://webhook.site/your-custom-url" --data "Hello Whisper"

Triggering Self-Destruction

While the only_authorized_ip in the yaml file says "Yes" only messages from the authorized IP will trigger self-destruction:

echo "DESTROY_WHISPER_NOW" | nc 127.0.0.1 9090

In case only_authorized_ip is set on "No", you can trigger the self-destruction from any ip.

Expected Output:

SELF-DESTRUCT SEQUENCE INITIATED
Whisper is self-destructing...
Sending unsent messages before destruction...
Whisper has self-destructed successfully.

Testing

For testing, webhook.site was used as the HTTP server to capture messages.

  1. Go to webhook.site and copy your custom URL.
  2. Set it in whisper-config.yaml under http_url.
  3. Run Whisper and send test data.
  4. View the received messages in Webhook Site's interface.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors