PrivateSphare
PrivateSphare è una piattaforma sicura, anonima e a conoscenza zero per l'archiviazione e la condivisione di file. Consente agli utenti di caricare file e ricevere una passphrase leggibile di 24 parole per il recupero. Nessun account, nessun tracciamento e nessun dato non crittografato tocca mai la memoria persistente del server.
🛡️ Caratteristiche Principali
- Sicurezza Post-Quantistica: I file vengono crittografati utilizzando uno schema Quantum-Safe Hybrid (Kyber1024 + AES-256-GCM) che protegge da future minacce di computer quantistici.
- Crittografia a Conoscenza Zero: I file vengono crittografati nel contesto del browser (intento lato client) utilizzando una chiave derivata da una passphrase BIP-39 di 24 parole.
- Privacy dei Metadati: I nomi dei file e i tipi MIME vengono crittografati prima di essere memorizzati nel database.
- Archiviazione Opaca: I file vengono memorizzati in S3/MinIO con chiavi UUID casuali. Nemmeno un amministratore può identificare quali file sono archiviati.
- Auto-Distruzione:
- Scadenza Automatica: I file vengono automaticamente eliminati 24 ore dopo il caricamento tramite le policy del ciclo di vita di S3.
- Cancellazione al Recupero: I file e i metadati vengono immediatamente distrutti non appena vengono recuperati con successo.
- Doppi Limiti: Limite di caricamento standard di 100 MB, sbloccabile a 1 GB tramite un codice Premium.
- Interfaccia Moderna: Design completamente reattivo con supporto automatico della Modalità Scura e un flusso di sicurezza "Done" per proteggere le passphrase nella cronologia del browser.
🛠️ Stack Tecnologico
- Backend: Rust (Axum, Tokio, Tower-HTTP)
- Database: SurrealDB (v2.1.4)
- Archiviazione: MinIO (Compatibile con S3)
- Frontend: Template Handlebars, Tailwind CSS
- Sicurezza: KDF Argon2id, Kyber1024 (PQC), Crittografia AES-256-GCM, Hashing SHA-256, JWT (per sessioni Premium)
🚀 Per Iniziare
Prerequisiti
- Docker e Docker Compose (oppure Podman e Podman Compose)
1. Configurazione
Copia il file di ambiente di esempio e aggiorna i tuoi segreti:
Modifica .env per impostare le tue variabili SURREAL_PASS, S3_SECRET_KEY, PRIVATE_SPHARE_PREMIUM_CODE e PRIVATE_SPHARE_JWT_SECRET.
2. Distribuzione
Esegui l'intero stack:
docker-compose up -d --build
(Oppure podman-compose up -d --build)
L'applicazione sarà disponibile all'indirizzo http://localhost:3000.
🔒 Architettura di Sicurezza
- Derivazione della Chiave: La passphrase di 24 parole viene sottoposta a hash SHA-256 e quindi elaborata tramite Argon2id con un sale unico di 16 byte per derivare un seed di 64 byte.
- Livello Post-Quantistico: Il seed viene utilizzato per generare deterministicamente una coppia di chiavi Kyber1024. Un segreto condiviso viene incapsulato utilizzando la chiave pubblica, producendo un crittogramma Kyber.
- Crittografia Simmetrica: Il segreto condiviso viene utilizzato per crittografare i dati con AES-256-GCM.
- Layout di Archiviazione: Il blob finale contiene il sale, il nonce, il crittogramma Kyber e il crittogramma AES. Questo approccio ibrido garantisce che, anche se la crittografia classica AES venisse compromessa, il livello PQC rimanga sicuro.
📜 Licenza
Creato da Daniel Shamany. Progettato per la privacy.