第 3 章 系統架構與資料流

本章說明系統的高階元件,以及上傳、下載與寄件者管理的端到端資料流。 重點在於哪些內容會被加密、需要哪些中繼資料,以及存取控制與撤銷如何落實。

文件中繼資料

白皮書版本
v1.0
最後更新
2026-01-14

3.1 元件

  • 用戶端:負責將檔案分塊、加密/解密,並在 URL 片段中管理 CEK。
  • API/邊緣:核發並驗證限定範圍的權杖;提供清單與密文區塊。
  • 物件儲存:儲存加密區塊與清單;就明文機密性而言,視為不受信任。
  • 狀態儲存:以最少的中繼資料追蹤傳輸狀態(上傳進度、到期、撤銷)。

3.2 資料物件

  • 清單(Manifest):取得並組裝區塊所需的公開參數(cryptoVersion、區塊大小/數量、對應關係);MUST NOT 包含 CEK。
  • 區塊(Chunk):加密後的檔案片段(密文),加上最少的中繼資料(長度/etag),以(transferId、fileId、chunkIndex)定址。
  • 狀態:伺服器端用於授權、TTL、撤銷與續傳的紀錄。

3.3 上傳流程

  1. 用戶端建立傳輸,並取得綁定 transferId、短效且限定範圍的上傳權杖。
  2. 用戶端在本機為每個檔案產生 CEK,將檔案切分為固定大小的區塊,並以 AEAD 加密每個區塊。
  3. 用戶端平行上傳密文區塊;每個區塊的重試皆為冪等。
  4. 用戶端上傳清單(僅含公開參數)。當必要部分都已就緒時,伺服器將傳輸標記為 READY。

3.4 下載流程

  1. 收件者開啟分享連結。URL 片段(CEK 材料)只留在瀏覽器中,不會傳送到伺服器。
  2. 用戶端使用限定範圍的下載權杖取得清單,並決定區塊下載計畫。
  3. 用戶端下載密文區塊(可選擇平行下載),驗證 AEAD 驗證標籤,然後組裝出明文檔案。
  4. 發生失敗時,用戶端僅請求缺少的區塊以續傳;完整性驗證失敗 MUST 失敗即關閉。

3.5 寄件者管理與稽核流程

  • 寄件者使用長效登入權杖(儲存在用戶端)進行身分驗證,以執行管理操作。
  • 管理 API 可用於列出傳輸、查看交付證據,以及撤銷/刪除傳輸。
  • 稽核資料的設計僅供寄件者查看;預設不會向收件者公開。

3.6 可見性與最小化

  • 伺服器與儲存空間僅處理密文與必要的公開參數;沒有 CEK 就無法解密內容。
  • 日誌與分析資料 SHOULD 盡量精簡,且 MUST NOT 包含 URL 片段或 CEK 材料。
  • 中繼資料的蒐集 SHOULD 限於特定目的(交付證據、濫用防範與營運可靠性)。