# Live Steganography Experiments

This project explores the concept of serving live image requests while embedding encrypted metadata into images using real-time steganography.

## Core Concept

The server begins by caching all images into memory (if configured to do so). When a client requests an image:

1. The server intercepts the request.
2. It embeds encrypted metadata — including the client’s IP address, timestamp, and headers — directly into the image pixels using LSB (Least Significant Bit) encoding.
3. The modified image is returned to the client in real time.
4. If the image is later disseminated (and remains uncompressed), it can be traced back to the original request.

Key properties of the system:

- **Invisible**: Embedding is imperceptible to the human eye.
- **Encrypted**: Metadata is secured with AES-GCM; only those with the key can decrypt it.
- **Stateless**: No logs are stored on the server; the information is embedded within the image itself.

## Use Cases

- Watermarking downloaded content per user
- Forensic tracking and auditing of media distribution

## Limitations

- For large images, encoding can introduce noticeable latency.
- Embedded images are generated per request, which limits caching efficiency.

## Components

- `stego-server/`: HTTP server that encodes client metadata into images on-the-fly.
- `stego-client/`: CLI tool to decode and decrypt embedded metadata from images.

## Disclaimer

Do not use this technology in ways that violate laws, privacy regulations, or platform terms of service.
