RWA KMS數位資產金鑰管理系統
私鑰留在 HSM 裡,每一次簽章與金鑰操作都要第二個人核准,事後能由外部驗證沒有人改過稽核記錄。
HSM 之上,還缺一層治理
私鑰放進 HSM 只解決了「金鑰不會被拿走」。誰有權叫 HSM 簽章、簽的是什麼、需不需要第二個人在場、事後能不能證明記錄沒被動過,HSM 本身不回答這些問題。
RWA KMS 補上這一層。它接在 Luna Network HSM(FIPS 140-3 Level 3)之上,把金鑰操作變成需要多人在場、留下可驗證記錄的流程。適用於黃金代幣等現實資產上鏈後的簽章與金鑰保管。
四層責任分工
私鑰只存在最底層,上層只取得金鑰的 handle

核心功能
從錢包到電文簽章的完整金鑰操作
錢包
在 HSM 內產生 secp256k1 金鑰對,輸出公鑰與位址。簽章支援單筆與批次,私鑰不會匯出。
HD 錢包(BIP32)
一把 master 衍生整棵金鑰樹。衍生位址與匯出 xpub 只回傳公開資料,建立與簽章才需要覆核。
MK 匯入儀式
A、B 兩位保管人各自提交分量,經第二人核准後在 HSM 內合成並匯入。伺服器拒絕同一人提交兩個分量。
JOSE 簽章與加密
提供 JWS 簽章驗章、JWE 加解密,對應金融聯盟鏈訊息閘道規格的電文處理。
服務帳號
後端系統以 client_id 與 secret 換取短效 token,權限以 scope 限定,停用後所有 token 立即失效。
HSM 狀態探測
每 30 秒對 HSM 做一次實際探測,連續失敗會降級為 degraded 或 down,不只回報連線數。
治理設計
把高權限操作變成需要多人在場的事
雙人覆核(Maker-Checker)
建立錢包、簽章、刪除與 MK 儀式確認,都要由另一位 KeyManager 核准才會執行。發起人不能覆核自己的操作,逾時未覆核的請求自動作廢。
拆分知識由伺服器強制
伺服器記錄每個 MK 分量的提交者,同一人提交兩份直接拒絕。這個限制不依賴操作手冊的要求。
以 CKA_ID 識別金鑰
金鑰身分來自 HSM 自己產生的隨機 ID,而非標籤。刪除、匯出等操作前先驗身分,避免 handle 被回收後誤動別人的金鑰。
不可改的稽核鏈
每筆狀態變更都寫入 HMAC 串鏈的稽核記錄,資料庫層阻擋 UPDATE 與 DELETE。稽核寫入失敗,該請求就失敗。稽核記錄不含金鑰材料與密碼。
三種角色,職責分離
管人的不碰金鑰,看稽核的不能操作
| 角色 | 可以 | 不可以 |
|---|---|---|
| KeyManager | 發起與覆核金鑰操作、發起 MK 儀式、使用 JOSE | 管理使用者、查閱稽核 |
| SystemAdmin | 管理使用者與服務帳號 | 發起或覆核任何金鑰操作、查閱稽核 |
| Auditor | 查詢稽核記錄、驗證稽核鏈 | 接觸任何金鑰,包含唯讀的 verify 與 encrypt |
管理介面
依角色顯示對應的功能,沒有權限的畫面不會出現
Dashboard
待覆核動作與逾時筆數、HSM 連線狀態、錢包數量。

雙人核准
第二位 KeyManager 在現場輸入帳密核准或拒絕。

HD 錢包
依路徑衍生位址、匯出 xpub 供外部系統離線推導收款位址。

稽核記錄與鏈驗證
Auditor 重算每筆 HMAC 並比對前後串接是否吻合,確認記錄未被改動。

服務帳號與 scope
後端系統以最小權限的 scope 呼叫 API,沒有勾選 scope 的 token 什麼都不能做。

部署與整合
兩種封裝行為一致,同一份驗證腳本都能跑
獨立執行檔
單一可執行檔,內建 Web 伺服器,適合快速部署與測試。
企業應用伺服器
部署到既有的企業應用伺服器,沿用現有的維運與監控流程。
OCI 容器映像
提供容器映像與部署設定,可納入既有的容器平台。
API 與驗證工具
附 OpenAPI 規格、API 說明文件與 Postman 測試套件。
評估前請先知道
目前的限制,我們直接寫在這裡
- •HD 錢包的 seed 在 HSM 內產生後即銷毀,沒有備份與還原機制。HSM partition 遺失,整棵金鑰樹無法重建。
- •HD 錢包目前沒有刪除端點。
- •服務帳號停用後無法重新啟用,也沒有 secret 輪替機制,需要時只能建立新帳號。
設計取捨的完整說明,見〈HSM 之上:資產金鑰治理的四個設計取捨〉。