PrivateSphare
PrivateSphare 是一个安全、匿名、零知识的文件存储与共享平台。用户可上传文件并获取一个人类可读的 24 词密码短语用于检索。无需账户、无追踪,且任何未加密数据都不会触及服务器的持久存储。
🛡️ 关键特性
- 后量子安全:文件采用量子安全混合方案(Kyber1024 + AES-256-GCM)加密,可抵御未来量子计算机的威胁。
- 零知识加密:文件在浏览器上下文中(客户端意图)使用从 24 词 BIP-39 密码短语派生的密钥进行加密。
- 元数据隐私:文件名和 MIME 类型在存入数据库前已加密。
- 透明存储:文件以随机 UUID 密钥存储于 S3/MinIO。即使是管理员也无法识别存储的文件内容。
- 自动销毁:
- 自动过期:通过 S3 生命周期策略,文件在上传 24 小时后自动删除。
- 检索即擦除:文件与元数据在成功检索后立即销毁。
- 双重限制:标准上传限制为 100MB,可通过尊享码解锁至 1GB。
- 现代化 UI:全响应式设计,支持自动暗色模式,并具备“完成”安全流程以保护浏览器历史中的密码短语。
🛠️ 技术栈
- 后端: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 被攻破,后量子层仍然安全。
📜 许可
由 Daniel Shamany 创作。专为隐私设计。