1. 隨報告一同傳遞的東西
三個值讓一份報告能自我驗證。它們出現在報告產物上,以及連結的公開分享入口中繼資料上。content_hash——證據的 SHA-256
content_hash——證據的 SHA-256
報告標準證據 JSON 的小寫十六進位 SHA-256 摘要。對某份報告而言這些位元組是確定性的,因此任何持有相同證據的人都會重新計算出相同的雜湊。對證據的任何編輯都會改變這個值。
signature——對雜湊的 Ed25519
signature——對雜湊的 Ed25519
對十六進位
content_hash 計算的 base64 Ed25519 簽章。它證明該雜湊由 OrcaRouter 的簽署金鑰簽署且非偽造。sig_key_id——哪把金鑰簽署了它
sig_key_id——哪把金鑰簽署了它
作用中公鑰的一個簡短、穩定的識別碼(例如
orca- 後接一個十六進位片段)。驗證者用它確認報告由目前已發佈的金鑰簽署——由未知金鑰 id 簽署的報告會失敗關閉。簽章涵蓋的是內容雜湊,而非直接渲染出的 PDF、CSV 或 JSON 位元組。相同的證據從一個雜湊渲染成全部三種格式,因此完整性保證落在底層證據上——某份報告的每次匯出共享同一個
content_hash、signature 與 sig_key_id。2. 取得公鑰
簽署公鑰發佈於一個開放端點——無需驗證、無需工作區情境。稽核師直接呼叫它。public_key 是 base64 編碼的 32 位元組 Ed25519 公鑰。此處的 key_id 必須與報告上的 sig_key_id 相符——若不相符,該報告由一把不同的(可能已輪替或較舊的)金鑰簽署,且不會對照這把已發佈的金鑰驗證通過。
3. 驗證簽章
你可以用兩種方式驗證簽章。要嘛請 OrcaRouter 為你檢查這組值,要嘛用已發佈的公鑰完全離線驗證。託管的 verify 端點
把報告中的三個值 POST 到開放的 verify 端點。它是公開的——稽核師無需任何憑證即可呼叫它。valid: true 表示簽章對照該金鑰 id 的作用中金鑰檢查通過。valid: false 表示要嘛簽章與雜湊不符、雜湊為空,要嘛 sig_key_id 與目前已發佈的金鑰不符。
用公鑰離線驗證
一位多疑的稽核師完全不需要信任 verify 端點。因為演算法是對十六進位內容雜湊的標準 Ed25519,簽章可用任何密碼學程式庫檢查:4. 簽章涵蓋什麼
簽章證明報告的content_hash 由 OrcaRouter 簽署,而雜湊證明證據未經編輯。一個細微之處:雜湊是對閘道建立的證據的標準形式計算的——而非 JSON 或 PDF 檔案的原始位元組。因此你自己重新雜湊下載的產物不會重現 content_hash。請使用 verify 端點(§2/§3),它會為你重新計算標準雜湊並檢查 Ed25519 簽章:
| 檢查 | 含義 |
|---|---|
signature_valid: true | content_hash 由 OrcaRouter 的金鑰簽署——證據真實且未經編輯。 |
| Key id 相符 | 報告 sig_key_id == 已發佈的金鑰 id → 由作用中金鑰簽署。 |
5. 驗證一份分享的報告
當你寄給稽核師一個分享入口連結而非檔案時,入口中繼資料已攜帶content_hash、signature 與 sig_key_id,外加一個伺服器計算的 signature_valid 旗標。稽核師可以信任該旗標,並且獨立對照公鑰重新執行上述檢查——分享入口無需登入,而驗證路徑相同。
6. 下一步去哪裡
簽署報告
一份簽署報告如何產生、它擷取什麼證據,以及如何鑄造一個稽核師分享連結。
匯出證據
把報告證據以 PDF、CSV 或 JSON 拉出,供你稽核師的工作底稿使用。
資料駐留地
報告上的地區戳記如何治理它儲存與提供的所在地。
共同責任
OrcaRouter 在閘道路徑上保證什麼相對於什麼仍是你的。
