PrivateSphare
PrivateSphare es una plataforma segura, anónima y de conocimiento cero para almacenar y compartir archivos. Permite a los usuarios subir archivos y recibir una frase de recuperación legible de 24 palabras. Sin cuentas, sin seguimiento y ningún dato sin cifrar toca nunca el almacenamiento persistente del servidor.
🛡️ Características principales
- Seguridad post-cuántica: Los archivos se cifran usando un esquema Híbrido resistente a cuántica (Kyber1024 + AES-256-GCM) que protege contra futuras amenazas de ordenadores cuánticos.
- Cifrado de conocimiento cero: Los archivos se cifran en el contexto del navegador (intención del lado del cliente) usando una clave derivada de una frase BIP-39 de 24 palabras.
- Privacidad de metadatos: Los nombres de archivo y tipos MIME se cifran antes de almacenarse en la base de datos.
- Almacenamiento opaco: Los archivos se almacenan en S3/MinIO bajo claves UUID aleatorias. Ni siquiera un administrador puede identificar qué archivos están almacenados.
- Autodestrucción:
- Auto-caducidad: Los archivos se eliminan automáticamente 24 horas después de la subida mediante políticas de ciclo de vida de S3.
- Borrado al recuperar: Los archivos y metadatos se destruyen inmediatamente tras una recuperación exitosa.
- Límites dobles: Límite estándar de subida de 100MB, ampliable a 1GB mediante un código Premium.
- Interfaz moderna: Diseño totalmente adaptable con soporte automático de modo oscuro y un flujo de seguridad "Hecho" para proteger las frases de contraseña en el historial del navegador.
🛠️ Stack Tecnológico
- Backend: Rust (Axum, Tokio, Tower-HTTP)
- Base de datos: SurrealDB (v2.1.4)
- Almacenamiento: MinIO (compatible con S3)
- Frontend: Plantillas Handlebars, Tailwind CSS
- Seguridad: KDF Argon2id, Kyber1024 (PQC), Cifrado AES-256-GCM, Hashing SHA-256, JWT (para sesiones Premium)
🚀 Primeros pasos
Requisitos previos
- Docker y Docker Compose (o Podman y Podman Compose)
1. Configuración
Copia el archivo de entorno de ejemplo y actualiza tus secretos:
Edita .env para establecer tu SURREAL_PASS, S3_SECRET_KEY, PRIVATE_SPHARE_PREMIUM_CODE y PRIVATE_SPHARE_JWT_SECRET.
2. Despliegue
Ejecuta el stack completo:
docker-compose up -d --build
(O podman-compose up -d --build)
La aplicación estará disponible en http://localhost:3000.
🔒 Arquitectura de seguridad
- Derivación de clave: La frase de 24 palabras se somete a un hash SHA-256 y luego se procesa con Argon2id usando una sal única de 16 bytes para derivar una semilla de 64 bytes.
- Capa post-cuántica: La semilla se usa para generar deterministamente un par de claves Kyber1024. Se encapsula un secreto compartido usando la clave pública, produciendo un texto cifrado Kyber.
- Cifrado simétrico: El secreto compartido se usa para cifrar los datos con AES-256-GCM.
- Disposición de almacenamiento: El blob final contiene la sal, el nonce, el texto cifrado Kyber y el texto cifrado AES. Este enfoque híbrido asegura que incluso si el AES clásico se ve comprometido, la capa PQC permanece segura.
📜 Licencia
Creado por Daniel Shamany. Diseñado para la privacidad.