第七章 安全與加密

7.1 端到端加密設計

DTP 實現端到端加密,確保資料在傳輸過程中即使經過不可信的中間環境(如 FayGer 執行環境),也無法被竊取或竄改。

核心保證:僅目標 iFay 實例能夠解密接收到的承載資料,FayGer 執行環境無法存取明文。

即使 iFay 執行在公有雲的 FayGer 實例上,雲端服務商也無法讀取使用者的健康資料、位置資訊或消費記錄。

7.2 加密範圍

┌─────────────────────────────────────┐
│           Logical_Frame              │
├─────────────────────────────────────┤
│  Header(幀頭)── 明文傳輸           │
│  ┌─────────────────────────────────┐│
│  │ ...                             ││
│  │ encryptionMetadata ── 明文      ││
│  │   algorithm: "AES-256-GCM"     ││
│  │   keyVersion: 3                ││
│  └─────────────────────────────────┘│
├─────────────────────────────────────┤
│  Payload(承載資料)── 加密傳輸      │
│  ┌─────────────────────────────────┐│
│  │ ████████████████████████████    ││
│  │ ████████ 加密資料 ████████████  ││
│  │ ████████████████████████████    ││
│  └─────────────────────────────────┘│
└─────────────────────────────────────┘
  • 幀頭:明文傳輸,包含路由和處理所需的中繼資訊
  • 加密中繼資料:明文傳輸,包含加密演算法標識和金鑰版本號,以便接收方確定解密方式
  • 承載資料:加密傳輸,包含實際的資料內容

7.3 金鑰管理

DTP 不自行管理金鑰,而是依賴 CAP(控制授權協定)預協商的金鑰:

  1. CAP 在連線建立階段完成身分驗證和金鑰交換
  2. DTP 使用 CAP 提供的金鑰進行 Payload 加密/解密
  3. 金鑰版本號(keyVersion)用於標識當前使用的金鑰

CAP 前置條件

DTP 在開始資料傳輸前,必須驗證 CAP 已完成身分驗證和金鑰交換流程。若 CAP 金鑰交換尚未完成,DTP_Engine 拒絕傳送資料並回傳「金鑰未就緒」(KEY_NOT_READY)錯誤。

7.4 加密中繼資料

每個 Logical_Frame 的幀頭攜帶加密中繼資料:

欄位說明
algorithm加密演算法標識,如 "AES-256-GCM"
keyVersion金鑰版本號,標識使用哪個版本的金鑰

加密中繼資料本身不加密,確保接收方能在解密前獲知解密參數。

7.5 加密往返一致性

DTP 保證加密的往返一致性:

  • 使用正確金鑰加密後再解密,應產生與原始資料等價的 Payload
  • 使用錯誤金鑰解密,應失敗並回傳 DECRYPTION_FAILED 錯誤

7.6 終端側解密

當終端作為接收方時(資料注入場景),DTP_Engine 使用終端在 CAP 連線建立階段提交的金鑰進行解密。

7.7 安全威脅防護

威脅DTP 防護措施
中間人竊聽Payload 端到端加密,中間節點無法讀取明文
FayGer 窺探FayGer 僅能看到加密後的 Payload,無法解密
金鑰洩露金鑰版本號機制支援金鑰輪換
身分偽造依賴 CAP 的身分驗證機制
重放攻擊序列號單調遞增 + 工作階段綁定