PrivateSphare
PrivateSphare — это безопасная, анонимная платформа для хранения и обмена файлами с нулевым разглашением (zero-knowledge). Она позволяет пользователям загружать файлы и получать читаемую человеком фразу из 24 слов для их извлечения. Никаких аккаунтов, никакого отслеживания, и никакие незашифрованные данные никогда не попадают в постоянное хранилище сервера.
🛡️ Ключевые особенности
- Постквантовая безопасность: Файлы шифруются с использованием квантово-устойчивой гибридной схемы (Kyber1024 + AES-256-GCM), которая защищает от будущих угроз со стороны квантовых компьютеров.
- Шифрование с нулевым разглашением: Файлы шифруются в контексте браузера (на стороне клиента) с использованием ключа, полученного из 24-словной фразы BIP-39.
- Конфиденциальность метаданных: Имена файлов и MIME-типы шифруются перед сохранением в базе данных.
- Непрозрачное хранение: Файлы хранятся в S3/MinIO под случайными UUID-ключами. Даже администратор не может определить, какие файлы хранятся.
- Автоуничтожение:
- Автоматическое истечение: Файлы автоматически удаляются через 24 часа после загрузки с помощью политик жизненного цикла S3.
- Удаление при получении: Файлы и метаданные немедленно уничтожаются после успешного извлечения.
- Двойные лимиты: Стандартный лимит загрузки 100 МБ, который можно разблокировать до 1 ГБ с помощью премиум-кода.
- Современный интерфейс: Полностью адаптивный дизайн с автоматической поддержкой тёмной темы и защищённым потоком «Готово» для защиты парольных фраз в истории браузера.
🛠️ Технологический стек
- Бэкенд: Rust (Axum, Tokio, Tower-HTTP)
- База данных: SurrealDB (v2.1.4)
- Хранилище: MinIO (S3-совместимое)
- Фронтенд: Шаблоны Handlebars, Tailwind CSS
- Безопасность: Argon2id KDF, Kyber1024 (PQC), шифрование AES-256-GCM, хеширование SHA-256, JWT (для премиум-сессий)
🚀 Начало работы
Предварительные требования
- Docker и Docker Compose (или Podman и Podman Compose)
1. Настройка
Скопируйте пример файла окружения и обновите свои секреты:
Отредактируйте .env, чтобы задать SURREAL_PASS, S3_SECRET_KEY, PRIVATE_SPHARE_PREMIUM_CODE и PRIVATE_SPHARE_JWT_SECRET.
2. Развёртывание
Запустите полный стек:
docker-compose up -d --build
(Или podman-compose up -d --build)
Приложение будет доступно по адресу http://localhost:3000.
🔒 Архитектура безопасности
- Вывод ключа: Фраза из 24 слов хешируется SHA-256, а затем пропускается через Argon2id с уникальной 16-байтовой солью для получения 64-байтового зерна.
- Постквантовый слой: Зерно используется для детерминистической генерации пары ключей Kyber1024. Общий секрет инкапсулируется с помощью открытого ключа, создавая шифротекст Kyber.
- Симметричное шифрование: Общий секрет используется для шифрования данных с помощью AES-256-GCM.
- Структура хранения: Итоговый блоб содержит соль, одноразовый номер (nonce), шифротекст Kyber и шифротекст AES. Этот гибридный подход гарантирует, что даже если классический AES будет скомпрометирован, слой PQC останется безопасным.
📜 Лицензия
Создано Даниэлем Шамани. Спроектировано для конфиденциальности.