TPM 裝置身分
私鑰留在硬體 Provider。複製 registration.json 不足以冒充原裝置。
Python SDK · TPM-backed identity · Signed validation
這份手冊是給實際開發 Client 應用程式的工程師。你會從第一次啟用開始,理解 Machine、User、Entitlement、Usage 與長時間 Session 的差異,並把驗證放在真正需要保護的功能邊界。
with client.licensed_session(
required_entitlements=("HDL_EXPORT",),
) as session:
session.check()
export_hdl()
Recommended path
不要一開始就把所有 API 塞進主程式。先建立最小驗證,再逐步加入商業規則與長時間執行控制。
Trust model
SDK 將裝置身分、Server 決策與功能授權分開。理解這三層後,才能在正確位置阻擋未授權操作。
私鑰留在硬體 Provider。複製 registration.json 不足以冒充原裝置。
Client 固定公開信任根,只接受可驗證的授權回應。
在真正匯出、分析、燒錄或產檔之前,再次確認 License 與 Entitlement。
Scenario library
每個範例都說明什麼時候使用、為什麼採用這種設計、執行步驟與常見錯誤,而不只是貼一段程式碼。
完成第一次裝置註冊,並驗證日常啟動只使用 Device ID、一次性 Challenge 與 TPM Signature。
在真正執行受保護功能之前,同時驗證 License 與功能代碼。
對長時間開啟的 GUI、服務或自動化工具維持重新驗證與執行期席位。
在一次受限制的工作真正成功後,才累加使用量。
用可信任後端提供的 User UUID,驗證『哪一位被授權的人』正在使用軟體。
只刪除目前 Client 的 registration.json 與指定 TPM Key,不改動 Server-side Machine。
User-based licensing
User-based licensing 適合已有可信登入系統的產品。Client 必須取得後端已驗證的 User UUID;本機 username、Email 或使用者自行輸入的值都不能直接代表授權身分。
閱讀完整 User 授權指南 →限制被啟用的硬體身分。
依可信後端建立的人員身分計算。
控制並行席位,不取代 Machine。
Windows delivery
使用 Nuitka 或 PyInstaller 只是打包選擇。真正需要保留的是 Authenticode 簽章、固定 Gateway 公鑰、高價值操作前驗證,以及永不把 Server Secret 放進 Client。
Support
準備 SDK 版本、錯誤代碼、connection.log 中不含秘密的事件、作業系統版本與可重現步驟,再聯絡管理員。不要透過 Email 傳送 License Key 或任何 Token。