第 3 章 システムアーキテクチャとデータフロー
この章では、高レベルのシステム コンポーネントと、アップロード、ダウンロード、送信者管理のためのエンドツーエンドのデータ フローについて説明します。 何が暗号化されるのか、どのようなメタデータが必要なのか、アクセス制御と取り消しがどのように実施されるのかが焦点となります。
ドキュメントのメタデータ
- ホワイトペーパー版
- v1.0
- 最終更新日
- 2026-01-14
3.1 コンポーネント
- Client: ファイルのチャンク化、暗号化/復号化、および URL フラグメント内の CEK の管理を行います。
- API/Edge: スコープ付きトークンを発行および検証します。マニフェストと暗号文のチャンクを提供します。
- オブジェクトストレージ: 暗号化されたチャンクとマニフェストを保存します。平文の機密性のために信頼できないものとして扱われます。
- 州のストア: 最小限のメタデータで転送状態 (アップロードの進行状況、有効期限、取り消し) を追跡します。
3.2 データオブジェクト
- Manifest: チャンクのフェッチとアセンブルに必要なパブリック パラメーター (cryptoVersion、チャンク サイズ/数、マッピング)。 CEK を含んではなりません。
- Chunk: 暗号化されたファイル部分 (暗号文) と最小限のメタデータ (長さ/etag) を加えたもので、(transferId、fileId、chunkIndex) によってアドレス指定されます。
- State: 認可、TTL、取り消し、再開可能性に関するサーバー側のレコード。
3.3 アップロードの流れ
- クライアントは転送を作成し、有効期間が短く、範囲が指定されたアップロード トークンを受け取ります。
transferId. - クライアントはファイルごとの CEK をローカルで生成し、ファイルを固定サイズのチャンクに分割し、各チャンクを AEAD で暗号化します。
- クライアントは暗号文チャンクを並行してアップロードします。再試行はチャンクごとにべき等です。
- クライアントはマニフェストをアップロードします (パブリック パラメーターのみ)。必要な部分が存在する場合、サーバーは転送 READY のマークを付けます。
3.4 ダウンロードの流れ
- 受信者は共有リンクを開きます。 URL フラグメント (CEK マテリアル) はブラウザー内に留まり、サーバーには送信されません。
- クライアントは、スコープ指定されたダウンロード トークンを使用してマニフェストを取得し、チャンク プランを決定します。
- クライアントは暗号文チャンクをダウンロードし (オプションで並行して)、AEAD 認証を検証してから、平文ファイルを組み立てます。
- 失敗すると、クライアントは不足しているチャンクのみを要求して再開します。整合性エラーはフェイルクローズしなければなりません (MUST)。
3.5 送信者の管理と監査のフロー
- 送信者は、管理操作のために有効期間の長いログイン トークン (クライアントに保存されている) を使用して認証します。
- 管理 API を使用すると、転送の一覧表示、配信証拠の確認、転送の取り消し/削除が可能になります。
- 監査データは、送信者のみが閲覧できるように設計されています。デフォルトでは受信者に公開されません。
3.6 可視性と最小化
- サーバーとストレージは暗号文と必要な公開パラメータのみを処理します。 CEK がなければコンテンツを復号化できません。
- ログと分析は最小限にする必要があり、URL フラグメントや CEK マテリアルを含めてはなりません。
- メタデータの収集は、目的を限定する必要があります (配信証拠、悪用防止、運用の信頼性)。