第 0 章:引言與一致性

0.1 文件狀態

本文件是 Control Authority Protocol(CAP)的規範性技術規格說明的草案版本。草案版本不承諾向後相容性,可在正式發布前進行任意變更。當本草案穩定並通過完整測試驗證後,將作為首個正式版本發布到 specification/2025-10-25/

本文件與 CAP 架構藍圖(docs/zh-TW/blueprint/)配套使用:

  • 藍圖回答「是什麼、為什麼、做什麼」——定義協議的設計意圖、能力邊界和核心機制
  • 規範回答「怎麼做、怎麼驗證」——定義協議的訊息格式、流程步驟、錯誤處理和一致性要求

藍圖中的非規範性描述與本規範中的規範性條款衝突時,以本規範為準。

0.2 範圍

本規範定義 CAP 協議 v1 版本的技術細節,涵蓋藍圖第三章 3.1 節列出的 6 項核心能力:

  1. 離線授權(Authorization_Descriptor)的簽發、儲存、校驗、撤銷、更新
  2. 線上票據(Trusted_Ticket)的簽發、查詢、與離線授權的轉換
  3. 會話管理(Session)的完整生命週期
  4. 控制權交接策略(Handover_Policy)的三類策略與原子性保證
  5. 存活檢測(Liveness_Detection)的雙重判定機制
  6. 資源存取模式(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_DescriptorFayTerminal_Resource)。

為方便引用,本規範在各章節首次使用某關鍵術語時以粗體標註,並附藍圖術語表中的簡短定義。術語完整定義以藍圖為準。

0.5 一致性等級

本規範定義 3 種實作一致性等級。一個實作 MUST 至少滿足「終端一致性等級」才能宣稱符合 CAP v1。

0.5.1 終端一致性等級(Terminal Conformance)

適用於實作 Descriptor_ValidatorProtocol_Engine 和會話管理邏輯的終端裝置。終端實作 MUST:

  1. 完整實作第 3 章定義的 Authorization_Descriptor 校驗流程
  2. 完整實作第 5 章定義的 Session 生命週期與 Liveness_Detection 機制
  3. 完整實作第 7 章定義的 Resource_Access_Mode 讀寫鎖語意
  4. 拒絕所有不通過校驗的請求,並按第 9 章返回標準化錯誤碼
  5. 維護本地撤銷清單,並在聯網時按第 3 章定義的策略進行同步

0.5.2 簽發方一致性等級(Issuer Conformance)

適用於實作 Descriptor_IssuerTicket_Issuer 的可信實體。簽發方實作 MUST:

  1. 按第 2 章定義的欄位約束產生合法的 Authorization_Descriptor 和 Trusted_Ticket
  2. 按第 8 章定義的密碼學要求對憑證進行數位簽章
  3. 維護已簽發憑證的狀態記錄,支援撤銷操作
  4. 實作第 4 章定義的 Trusted_Ticket 到 Authorization_Descriptor 的轉換

0.5.3 執行時一致性等級(Runtime Conformance)

適用於實作 iFay_Runtime 的 Fay 執行時環境。執行時實作 MUST:

  1. 按第 1 章定義的介面契約向 Protocol_Engine 提交授權校驗請求
  2. 維持長連線並按第 5 章定義的頻率傳送應用層心跳
  3. 接收並轉達 Protocol_Engine 推送的會話狀態變更通知
  4. 在 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 章建立基礎,再根據實作關注點跳轉到相關章節。