PrivateSphare
PrivateSphare ist eine sichere, anonyme, Zero-Knowledge-Dateispeicher- und Freigabeplattform. Sie ermöglicht Benutzern das Hochladen von Dateien und den Erhalt einer menschenlesbaren 24-Wort-Passphrase zum Abrufen. Keine Konten, kein Tracking und keine unverschlüsselten Daten gelangen jemals in den persistenten Speicher des Servers.
🛡️ Hauptfunktionen
- Post-Quantum-Sicherheit: Dateien werden mit einem Quantum-Safe-Hybrid-Schema (Kyber1024 + AES-256-GCM) verschlüsselt, das vor zukünftigen Bedrohungen durch Quantencomputer schützt.
- Zero-Knowledge-Verschlüsselung: Dateien werden im Browser-Kontext (clientseitig) mit einem Schlüssel verschlüsselt, der aus einer 24-Wort-BIP-39-Passphrase abgeleitet wird.
- Metadaten-Privatsphäre: Dateinamen und MIME-Typen werden vor der Speicherung in der Datenbank verschlüsselt.
- Undurchsichtiger Speicher: Dateien werden in S3/MinIO unter zufälligen UUID-Schlüsseln gespeichert. Nicht einmal ein Administrator kann erkennen, welche Dateien gespeichert sind.
- Automatische Zerstörung:
- Auto-Ablauf: Dateien werden automatisch 24 Stunden nach dem Hochladen über S3-Lebenszyklusrichtlinien gelöscht.
- Löschen bei Abruf: Dateien und Metadaten werden sofort zerstört, sobald sie erfolgreich abgerufen wurden.
- Duale Limits: Standard-Obergrenze von 100 MB, auf 1 GB erweiterbar mit einem Premium-Code.
- Moderne Benutzeroberfläche: Vollständig responsives Design mit automatischer Dark-Mode-Unterstützung und einem „Done“-Sicherheitsablauf zum Schutz von Passphrasen im Browserverlauf.
🛠️ Technologie-Stack
- Backend: Rust (Axum, Tokio, Tower-HTTP)
- Datenbank: SurrealDB (v2.1.4)
- Speicher: MinIO (S3-kompatibel)
- Frontend: Handlebars-Vorlagen, Tailwind CSS
- Sicherheit: Argon2id KDF, Kyber1024 (PQC), AES-256-GCM-Verschlüsselung, SHA-256-Hashing, JWT (für Premium-Sitzungen)
🚀 Erste Schritte
Voraussetzungen
- Docker & Docker Compose (oder Podman & Podman Compose)
1. Konfiguration
Kopieren Sie die Beispiel-Umgebungsdatei und aktualisieren Sie Ihre Secrets:
Bearbeiten Sie .env, um Ihre SURREAL_PASS, S3_SECRET_KEY, PRIVATE_SPHARE_PREMIUM_CODE und PRIVATE_SPHARE_JWT_SECRET zu setzen.
2. Bereitstellung
Starten Sie den vollständigen Stack:
docker-compose up -d --build
(Oder podman-compose up -d --build)
Die Anwendung ist unter http://localhost:3000 verfügbar.
🔒 Sicherheitsarchitektur
- Schlüsselableitung: Die 24-Wort-Passphrase wird mit SHA-256 gehasht und dann mit einem eindeutigen 16-Byte-Salt durch Argon2id geleitet, um einen 64-Byte-Seed abzuleiten.
- Post-Quantum-Schicht: Der Seed wird verwendet, um deterministisch ein Kyber1024-Schlüsselpaar zu generieren. Ein gemeinsames Geheimnis wird mit dem öffentlichen Schlüssel eingekapselt, wodurch ein Kyber-Chiffretext entsteht.
- Symmetrische Verschlüsselung: Das gemeinsame Geheimnis wird verwendet, um die Daten mit AES-256-GCM zu verschlüsseln.
- Speicherlayout: Der endgültige Blob enthält das Salt, Nonce, Kyber-Chiffretext und AES-Chiffretext. Dieser hybride Ansatz stellt sicher, dass selbst wenn klassisches AES kompromittiert wird, die PQC-Schicht sicher bleibt.
📜 Lizenz
Erstellt von Daniel Shamany. Für Privatsphäre konzipiert.