第 0 章:引言與一致性
0.1 文件狀態
本文件是 Control Authority Protocol(CAP)的規範性技術規格說明的草案版本。草案版本不承諾向後相容性,可在正式發布前進行任意變更。當本草案穩定並通過完整測試驗證後,將作為首個正式版本發布到 specification/2025-10-25/。
本文件與 CAP 架構藍圖(docs/zh-TW/blueprint/)配套使用:
- 藍圖回答「是什麼、為什麼、做什麼」——定義協議的設計意圖、能力邊界和核心機制
- 規範回答「怎麼做、怎麼驗證」——定義協議的訊息格式、流程步驟、錯誤處理和一致性要求
藍圖中的非規範性描述與本規範中的規範性條款衝突時,以本規範為準。
0.2 範圍
本規範定義 CAP 協議 v1 版本的技術細節,涵蓋藍圖第三章 3.1 節列出的 6 項核心能力:
- 離線授權(Authorization_Descriptor)的簽發、儲存、校驗、撤銷、更新
- 線上票據(Trusted_Ticket)的簽發、查詢、與離線授權的轉換
- 會話管理(Session)的完整生命週期
- 控制權交接策略(Handover_Policy)的三類策略與原子性保證
- 存活檢測(Liveness_Detection)的雙重判定機制
- 資源存取模式(Resource_Access_Mode)的讀寫鎖模型
本規範明確排除藍圖第三章 3.2 節列出的功能,包括跨終端會話遷移、多終端協同授權、授權委派鏈、ABAC、稽核日誌標準化格式、協議訊息加密傳輸規範、分散式撤銷共識、Session 內動態權限提升。
0.3 一致性術語
本規範遵循 RFC 2119 和 RFC 8174 的關鍵字約定。以下關鍵字以全大寫出現時具有規範性含義:
- MUST / 必須:絕對要求。不滿足該要求的實作不符合本規範
- MUST NOT / 不得:絕對禁止。違反該禁止的實作不符合本規範
- SHOULD / 應當:強烈建議。在充分理解後果的前提下可有正當理由偏離
- SHOULD NOT / 不應:強烈不建議。在充分理解後果的前提下可有正當理由偏離
- MAY / 可以:可選項。實作可自行決定是否提供
不以全大寫出現的相同詞彙僅表達字面含義,不具有規範效力。
0.4 術語對齊
本規範使用的術語與藍圖 00-術語表.md 完全一致。當本規範引用某術語時,使用藍圖定義的識別碼(如 Authorization_Descriptor、Fay、Terminal_Resource)。
為方便引用,本規範在各章節首次使用某關鍵術語時以粗體標註,並附藍圖術語表中的簡短定義。術語完整定義以藍圖為準。
0.5 一致性等級
本規範定義 3 種實作一致性等級。一個實作 MUST 至少滿足「終端一致性等級」才能宣稱符合 CAP v1。
0.5.1 終端一致性等級(Terminal Conformance)
適用於實作 Descriptor_Validator、Protocol_Engine 和會話管理邏輯的終端裝置。終端實作 MUST:
- 完整實作第 3 章定義的 Authorization_Descriptor 校驗流程
- 完整實作第 5 章定義的 Session 生命週期與 Liveness_Detection 機制
- 完整實作第 7 章定義的 Resource_Access_Mode 讀寫鎖語意
- 拒絕所有不通過校驗的請求,並按第 9 章返回標準化錯誤碼
- 維護本地撤銷清單,並在聯網時按第 3 章定義的策略進行同步
0.5.2 簽發方一致性等級(Issuer Conformance)
適用於實作 Descriptor_Issuer 或 Ticket_Issuer 的可信實體。簽發方實作 MUST:
- 按第 2 章定義的欄位約束產生合法的 Authorization_Descriptor 和 Trusted_Ticket
- 按第 8 章定義的密碼學要求對憑證進行數位簽章
- 維護已簽發憑證的狀態記錄,支援撤銷操作
- 實作第 4 章定義的 Trusted_Ticket 到 Authorization_Descriptor 的轉換
0.5.3 執行時一致性等級(Runtime Conformance)
適用於實作 iFay_Runtime 的 Fay 執行時環境。執行時實作 MUST:
- 按第 1 章定義的介面契約向 Protocol_Engine 提交授權校驗請求
- 維持長連線並按第 5 章定義的頻率傳送應用層心跳
- 接收並轉達 Protocol_Engine 推送的會話狀態變更通知
- 在 Fay 實例終止時主動通知 Protocol_Engine 釋放相關 Session
實作可同時滿足多個一致性等級。例如,整合式終端可同時是終端實作和執行時實作。
0.6 引用規範
本規範以規範性方式引用以下文件:
- RFC 2119 / RFC 8174:本規範使用的關鍵字約定
- RFC 8949(CBOR):用於 Authorization_Descriptor 的緊湊二進位序列化(參見第 2 章)
- RFC 8032(EdDSA):預設數位簽章演算法(參見第 8 章)
- RFC 7515(JWS):Trusted_Ticket 的 JSON 序列化與簽章(參見第 4 章)
- RFC 5280(X.509):可選的憑證格式(參見第 8 章)
CAP Schema 定義檔案(schema/{version}/schema.json)作為本規範第 2 章的形式化補充,與本規範同等具有規範效力。當 schema.json 與本規範文字描述存在衝突時,以 schema.json 為準。
0.7 文件結構
本規範按以下順序組織:
| 章節 | 主題 | 關鍵內容 |
|---|---|---|
| 第 1 章 | 架構與角色 | 協議角色、信任鏈、外部介面契約 |
| 第 2 章 | 資料模型 | 核心資料結構的欄位級定義 |
| 第 3 章 | 離線授權協議 | Authorization_Descriptor 完整流程 |
| 第 4 章 | 線上票據協議 | Trusted_Ticket 完整流程與降級 |
| 第 5 章 | 會話管理與存活檢測 | Session 狀態機與心跳 |
| 第 6 章 | 控制權交接協議 | Handover_Policy 三類策略 |
| 第 7 章 | 資源存取模式 | read/write/execute/configure 語意 |
| 第 8 章 | 密碼學與簽章 | 演算法集、金鑰格式、分發 |
| 第 9 章 | 錯誤碼與一致性等級 | 標準錯誤碼、等級宣告 |
| 第 10 章 | 安全考量 | 威脅模型、已知風險 |
讀者建議按順序閱讀第 0–2 章建立基礎,再根據實作關注點跳轉到相關章節。
