VoidShare is a decentralized peer-to-peer (P2P) encrypted file-sharing system designed to prioritize privacy and security. It enables users to share files directly with peers without relying on centralized servers, ensuring end-to-end encryption and secure communication.
- Decentralized P2P Communication: Direct file sharing between peers using WebRTC and WebSockets.
- End-to-End Encryption: Files are encrypted using AES-256 before transmission, ensuring confidentiality.
- Secure Key Exchange: AES keys are securely exchanged using ECC (Elliptic Curve Cryptography).
- Digital Signatures: Ensures file integrity and authenticity using RSA-based digital signatures.
- Real-Time Communication: Uses WebSockets for signaling and establishing peer connections.
- Progress Tracking: Displays real-time progress for file uploads and downloads.
- Cross-Browser Support: Works seamlessly in modern browsers with WebRTC and Web Crypto API support.
- Technologies Used
- How It Works
- Installation
- Usage
- Project Structure
- Screenshots
- Future Enhancements
- License
- Frontend: HTML, CSS, JavaScript
- Backend: Node.js with WebSocket server
- Cryptography:
- AES-256 for file encryption
- ECC for secure key exchange
- RSA for digital signatures
- WebRTC: Peer-to-peer connection establishment
- WebSockets: Signaling server for peer discovery and connection setup
-
Users authenticate via a central server (backend with JWT)
-
Peers discover each other using a WebSocket signaling channel
-
Upon connection request and approval, peers establish a secure WebRTC session
-
A session key is generated using ECDHE, then shared via ECC encryption
-
The file is encrypted using AES and transferred in chunks via WebRTC DataChannel
-
The receiver decrypts and reassembles the file
-
The session is terminated and keys are securely discarded
- Frontend
cd ../frontend npm install npm run dev
- Node.js (v14 or higher)
- Modern browser with WebRTC and Web Crypto API support
- Clone the Repository:
https://github.com/Sahil-1918912/VoidShare.git cd VoidShare
