← Archive
lm-001597 · 2026-07

03_安全模型_驗證協議與研究計畫

下載 MD 檔 ⬇

生物耦合能力權杖的安全模型、驗證協議與研究計畫

摘要

本文針對個人生物模糊權杖域與多指耦合權杖域,建立初步威脅模型、安全性目標、協議流程、形式驗證方向與實驗計畫。研究重點包括:避免生物特徵成為不可撤銷永久密鑰、避免外部權杖暴露個人區間、避免提示注入繞過人類同意、避免模糊模板被逐步污染,以及避免多指設計被錯誤理解為完全獨立多因素認證。

本文同時提出一個可實作的 MVP:本地 Action Firewall、模擬生物特徵資料、可撤銷模板版本、多指門檻解鎖、短效能力權杖與簽章執行收據。第一階段不依賴真實原始指紋資料,而先驗證數學結構、政策語義、權杖不可區分性與故障恢復能力。

關鍵詞: 威脅模型、形式安全、提示注入、模板污染、權杖不可區分性、MVP、實驗計畫


一、系統參與者

定義參與者:

  • UU :人類使用者;
  • AA :AI Agent;
  • BB :本地能力代理 Broker;
  • VV :秘密保管庫 Vault;
  • RR :遠端資源服務;
  • DD :可信裝置;
  • SiS_i :第 ii 個生物根值;
  • TT :短效能力權杖。

基本流程:

ABUBiometricVerifyMint(T)Execute(R)A \rightarrow B \rightarrow U \rightarrow \operatorname{BiometricVerify} \rightarrow \operatorname{Mint}(T) \rightarrow \operatorname{Execute}(R)

AI 不直接接觸:

  • 原始生物資料;
  • 模板;
  • 模糊提取器輔助秘密;
  • 根種子;
  • 外部長期 API Key;
  • Broker 的簽發根;
  • 最好也不接觸短效能力權杖。

二、資產

需保護的資產包括:

  1. 原始生物樣本 bb
  2. 生物特徵向量 zz
  3. 可撤銷轉換參數 ρ\rho
  4. 模糊重建輔助資料 PP
  5. 個人根種子 SS
  6. 多指分享值 σi\sigma_i
  7. Broker 根密鑰 KBK_B
  8. 第三方 API Key;
  9. 權杖政策;
  10. 執行收據與稽核鏈;
  11. 使用者—服務關聯資訊;
  12. 手指組合與能力語義映射。

三、威脅模型

3.1 惡意或被注入的 Agent

攻擊者透過網頁、文件、程式碼註解或工具輸出誘導 Agent:

  • 要求讀取秘密;
  • 要求生成過大權限;
  • 偷換資源或收件人;
  • 將權杖傳送至外部;
  • 重播已授權操作;
  • 誘導使用者在不知情下掃描指紋。

安全原則:

ImodelAsystemI_{\mathrm{model}} \neq A_{\mathrm{system}}

模型意圖不是系統授權。

3.2 本地惡意程序

其他本地程序可能:

  • 竊取短效權杖;
  • 呼叫本地 Broker;
  • 模擬 Agent 身份;
  • 監聽 IPC;
  • 讀取環境變數;
  • 篡改核准畫面。

因此權杖應綁定:

Agent Identity+Device Key+Audience+Operation Digest\text{Agent Identity} + \text{Device Key} + \text{Audience} + \text{Operation Digest}

3.3 生物偽造

攻擊包括:

  • 假指紋;
  • 重播感測器資料;
  • 模板注入;
  • 特徵替換;
  • 感測器驅動遭入侵。

需要:

  • 活體檢測;
  • 感測器到可信執行環境的完整性;
  • 裝置證明;
  • 高風險操作的第二因素。

3.4 模板污染

攻擊者反覆提交接近閾值的錯誤樣本,使模板中心緩慢偏移。

若更新公式為:

μ(t+1)=(1η)μ(t)+ηzt\mu^{(t+1)} = (1-\eta)\mu^{(t)} +\eta z_t

則必須限制:

μ(t+1)μ(t)ε\left\| \mu^{(t+1)} - \mu^{(t)} \right\| \leq\varepsilon

且只允許在:

CoreMatchLivenessSecondFactorTrustedDevice\mathrm{CoreMatch} \land \mathrm{Liveness} \land \mathrm{SecondFactor} \land \mathrm{TrustedDevice}

時更新。

3.5 權杖關聯與區間推測

外部觀察者可能收集大量 Token,嘗試判斷:

  • 是否屬於同一人;
  • 是否屬於同一手指組合;
  • 是否為高權限;
  • 是否處於同一時間窗;
  • 內部區間寬度。

因此外部權杖必須與均勻亂數計算上不可區分。

3.6 裝置遺失

若裝置遺失,攻擊者可能取得:

  • 加密模板;
  • 輔助資料;
  • Broker 設定;
  • 本地資料庫;
  • 已登入工作階段。

需要:

  • 裝置根金鑰不可匯出;
  • 遠端撤銷;
  • 工作階段短效化;
  • 生物域版本輪替;
  • 離線恢復碼或硬體金鑰。

四、核心安全目標

4.1 生物隱私

AdvAbiorecovernegl(λ)\operatorname{Adv}^{\mathrm{bio-recover}}_{\mathcal A} \leq \operatorname{negl}(\lambda)

攻擊者不應從公開輔助資料、權杖與日誌重建可用生物模板。

4.2 權杖不可區分性

Pr[A(T)=1]Pr[A(Un)=1]negl(λ)\left| \Pr[ \mathcal A(T)=1 ] - \Pr[ \mathcal A(U_n)=1 ] \right| \leq \operatorname{negl}(\lambda)

4.3 跨服務不可連結性

對服務 s1s2s_1\neq s_2

AdvAlink(Ts1,Ts2)negl(λ)\operatorname{Adv}^{\mathrm{link}}_{\mathcal A} ( T_{s_1}, T_{s_2} ) \leq \operatorname{negl}(\lambda)

4.4 可撤銷性

版本更新後:

Verifyv+1(Tv)=0\operatorname{Verify}_{v+1}(T_v)=0

4.5 防重播

每個權杖包含唯一:

jti${0,1}128jti\overset{\$}{\leftarrow}\{0,1\}^{128}

且:

Used(jti)=1Reject(jti)\operatorname{Used}(jti)=1 \Rightarrow \operatorname{Reject}(jti)

4.6 行動綁定

權杖必須綁定操作摘要:

dop=H(operationresourceparamsartifact)d_{\mathrm{op}} = H( operation \parallel resource \parallel params \parallel artifact )

若任何參數改變:

dopdopVerify(T,dop)=0d'_{\mathrm{op}}\neq d_{\mathrm{op}} \Rightarrow \operatorname{Verify}(T,d'_{\mathrm{op}})=0

4.7 持有者綁定

純 Bearer Token 應避免。可使用臨時金鑰:

(skE,pkE)KeyGen()(sk_E,pk_E)\leftarrow\operatorname{KeyGen}()

權杖包含:

cnf=H(pkE)cnf=H(pk_E)

請求必須附上:

σE=SignskE(methodurinoncetimestamp)\sigma_E= \operatorname{Sign}_{sk_E} ( method \parallel uri \parallel nonce \parallel timestamp )

五、協議草案

5.1 註冊

  1. 收集多次生物樣本;
  2. 建立核心區、模糊區與拒絕區;
  3. 產生可撤銷轉換參數;
  4. 建立模糊重建輔助資料;
  5. 產生個人根或多指分享值;
  6. 使用裝置硬體根加密保存;
  7. 建立版本、服務域與能力政策;
  8. 產生離線恢復方案。

5.2 Agent 提出意圖

Agent 提交:

{
  "actor": "local-coding-agent",
  "operation": "cloudflare.worker.deploy",
  "resource": "evemisslab/ai-board",
  "environment": "production",
  "artifact_hash": "sha256:...",
  "requested_ttl": 60
}

5.3 Broker 驗證

Broker 驗證:

Authn(A)Policy(A,O,R)Validate(params)\operatorname{Authn}(A) \land \operatorname{Policy}(A,O,R) \land \operatorname{Validate}(params)

5.4 本地核准

本地可信介面顯示:

  • Agent;
  • 操作;
  • 資源;
  • 風險;
  • 影響;
  • 參數摘要;
  • 權杖時效;
  • 所需生物組合。

5.5 生物耦合

依政策選擇:

1-of-m1\text{-of-}m 2-of-m2\text{-of-}m k-of-mk\text{-of-}m

或指定組合:

G={LI,RT}G= \{\mathrm{LI},\mathrm{RT}\}

5.6 權杖簽發

T=Mint(u,A,G,operation,resource,params,exp,jti,cnf)T= \operatorname{Mint} ( u, A, G, operation, resource, params, exp, jti, cnf )

5.7 本地執行

Broker 使用第三方秘密完成操作,Agent 只收到去敏結果。

5.8 簽章收據

Receipti=SignskB(H(Receipti1intentiapprovaliresultiti))Receipt_i= \operatorname{Sign}_{sk_B} \left( H( Receipt_{i-1} \parallel intent_i \parallel approval_i \parallel result_i \parallel t_i ) \right)

六、形式驗證方向

可將系統抽象為狀態機:

S=(U,A,D,Bio,Policy,Token,Resource,Audit)S= ( U, A, D, Bio, Policy, Token, Resource, Audit )

主要不變量:

不變量一:無授權不得執行

¬Authorized¬Executed\neg Authorized \Rightarrow \neg Executed

不變量二:Agent 不得讀取根秘密

A,Read(A,KB)=0\forall A,\quad Read(A,K_B)=0 Read(A,Si)=0Read(A,S_i)=0 Read(A,APIKey)=0Read(A,APIKey)=0

不變量三:過期權杖無效

t>exp(T)Verify(T)=0t>exp(T) \Rightarrow Verify(T)=0

不變量四:使用次數受限

uses(T)max_uses(T)Verify(T)=0uses(T)\geq max\_uses(T) \Rightarrow Verify(T)=0

不變量五:操作不可替換

digest(O)digest(O)Verify(T,O)=0digest(O')\neq digest(O) \Rightarrow Verify(T,O')=0

後續可使用:

  • TLA+ 驗證狀態機與重播條件;
  • ProVerif 或 Tamarin 分析協議機密性與認證性;
  • Lean 建立部分核心定理;
  • Python 建立模擬與統計測試。

七、實驗計畫

實驗一:模糊區穩定性

建立模擬個人特徵分布:

zu,tN(μu,Σu)z_{u,t}\sim\mathcal N(\mu_u,\Sigma_u)

測試不同:

  • 核心半徑 α\alpha
  • 模糊半徑 β\beta
  • 維度 dd
  • 噪聲;
  • 漂移速率;
  • 樣本數。

指標:

FAR,FRR,EERFAR,\quad FRR,\quad EER

以及:

Pstable=Pr[Rep(z,P)=S]P_{\mathrm{stable}} = \Pr[ \operatorname{Rep}(z',P)=S ]

實驗二:區間不可見性

生成大量 Token,測試分類器能否預測:

  • 使用者;
  • 類型;
  • 時間窗;
  • 手指組合;
  • 核心或模糊區。

理想結果接近隨機基線。

實驗三:多指門檻容錯

測試:

k-of-mk\text{-of-}m

在不同手指失效、受傷與品質下降下的成功率與安全性。

實驗四:模板污染

模擬攻擊者以接近閾值樣本逐步偏移模板,測試:

  • 無限制更新;
  • 單次漂移限制;
  • 核心區更新;
  • 第二因素更新;
  • 凍結窗口。

比較中心偏移:

μtμ0\|\mu_t-\mu_0\|

實驗五:權杖重播與參數替換

驗證:

  • jtijti 重播;
  • 時間窗過期;
  • 資源替換;
  • 參數替換;
  • Agent 身份替換;
  • 裝置金鑰替換。

實驗六:人類可理解性

比較兩種核准介面:

  1. 「允許使用 API Token」;
  2. 「允許指定 Agent 執行具體操作」。

測量:

  • 錯誤核准率;
  • 判斷時間;
  • 對風險理解;
  • 對提示注入抵抗程度。

八、MVP 路線

第一階段:純模擬

不使用真實指紋資料,使用合成特徵向量,完成:

  • 核心區與模糊區;
  • 單指域;
  • 多指耦合;
  • k$-of-$m 分享值;
  • 類型與時間子域;
  • 權杖簽發與驗證;
  • 簽章收據;
  • 攻擊模擬。

第二階段:作業系統生物驗證

使用 Windows Hello、WebAuthn 或平台生物 API,只取得:

verified{0,1}verified\in\{0,1\}

此階段不取得原始指紋特徵,先驗證:

  • 生物核准流程;
  • 裝置綁定;
  • Action Firewall;
  • 短效能力權杖;
  • 高風險多步核准。

第三階段:研究級生物資料

在合法、知情同意與隔離研究環境中,使用研究資料集或專用感測器驗證:

  • 真實模糊區間;
  • 多指耦合;
  • 模板漂移;
  • 模糊提取器;
  • 可撤銷轉換;
  • 跨感測器穩定性。

第四階段:服務整合

先整合:

  • GitHub;
  • Cloudflare;
  • SSH;
  • 任意 Bearer Token HTTP API。

Agent 不持有原始秘密,Broker 代為執行。


九、最低安全紅線

  1. 不直接使用指紋雜湊作永久密鑰。
  2. 不將個人區間表現在權杖字串。
  3. 不將模糊區映射為較短或較弱權杖。
  4. 不提供 get_secret()export_secret()
  5. 不讓聊天框成為可信核准介面。
  6. 不把多指宣稱為完全獨立多因素。
  7. 不允許無限制模板自我更新。
  8. 不以真實生物資料作為第一版 MVP 的必要條件。
  9. 不讓權杖脫離操作、資源、時間與持有者綁定。
  10. 不忽略裝置遺失、撤銷與恢復程序。

十、後續研究方向

  1. 指紋+臉部+聲紋的跨模態耦合域;
  2. 多人共同生物授權;
  3. 組織角色與生物能力格;
  4. AI Agent 之間的能力衰減委託;
  5. 零知識證明式生物域成員證明;
  6. 同態或安全多方計算下的生物匹配;
  7. 可信執行環境內的模板與權杖生成;
  8. 形式化能力語言;
  9. 可攜式權杖域政策標準;
  10. 對 AI 提示注入的行動層防火牆。

結論

本研究的安全目標不是證明某人「擁有一根特定手指」,而是建立以下可驗證鏈:

可信生物匹配受控個人域具體行動授權短效能力權杖本地受控執行\boxed{ \text{可信生物匹配} \rightarrow \text{受控個人域} \rightarrow \text{具體行動授權} \rightarrow \text{短效能力權杖} \rightarrow \text{本地受控執行} }

其中任何一層都不應讓 AI 取得原始秘密,也不應讓外部服務藉由權杖反推出生物身份、手指組合或個人區間。