BLUEPRINT
第七章 安全與加密
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(控制授權協定)預協商的金鑰:
- CAP 在連線建立階段完成身分驗證和金鑰交換
- DTP 使用 CAP 提供的金鑰進行 Payload 加密/解密
- 金鑰版本號(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 的身分驗證機制 |
| 重放攻擊 | 序列號單調遞增 + 工作階段綁定 |
