第 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 上傳流程
- 用戶端建立傳輸,並取得綁定
transferId、短效且限定範圍的上傳權杖。 - 用戶端在本機為每個檔案產生 CEK,將檔案切分為固定大小的區塊,並以 AEAD 加密每個區塊。
- 用戶端平行上傳密文區塊;每個區塊的重試皆為冪等。
- 用戶端上傳清單(僅含公開參數)。當必要部分都已就緒時,伺服器將傳輸標記為 READY。
3.4 下載流程
- 收件者開啟分享連結。URL 片段(CEK 材料)只留在瀏覽器中,不會傳送到伺服器。
- 用戶端使用限定範圍的下載權杖取得清單,並決定區塊下載計畫。
- 用戶端下載密文區塊(可選擇平行下載),驗證 AEAD 驗證標籤,然後組裝出明文檔案。
- 發生失敗時,用戶端僅請求缺少的區塊以續傳;完整性驗證失敗 MUST 失敗即關閉。
3.5 寄件者管理與稽核流程
- 寄件者使用長效登入權杖(儲存在用戶端)進行身分驗證,以執行管理操作。
- 管理 API 可用於列出傳輸、查看交付證據,以及撤銷/刪除傳輸。
- 稽核資料的設計僅供寄件者查看;預設不會向收件者公開。
3.6 可見性與最小化
- 伺服器與儲存空間僅處理密文與必要的公開參數;沒有 CEK 就無法解密內容。
- 日誌與分析資料 SHOULD 盡量精簡,且 MUST NOT 包含 URL 片段或 CEK 材料。
- 中繼資料的蒐集 SHOULD 限於特定目的(交付證據、濫用防範與營運可靠性)。