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

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors