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でハッシュ化され、その後、一意の16バイトソルトと共にArgon2idを通過して64バイトのシードが導出されます。
- ポスト量子レイヤー: シードを使用して決定論的にKyber1024鍵ペアを生成します。公開鍵を使用して共有秘密がカプセル化され、Kyber暗号文が生成されます。
- 対称暗号化: 共有秘密を使用してデータをAES-256-GCMで暗号化します。
- ストレージレイアウト: 最終的なブロブには、ソルト、ノンス、Kyber暗号文、AES暗号文が含まれます。このハイブリッドアプローチにより、従来のAESが侵害されても、PQCレイヤーは安全に保たれます。
📜 ライセンス
作成者: Daniel Shamany。プライバシーを考慮して設計されています。