跳至主要内容

Trust Boundary

信任邊界的意義是明確定義不同區域之間的責任與信任條件,並規定每一次邊界跨越所需出示的通行證等級。首先排除「內網就是安全」的思維,系統的安全模型應該怎麼規劃。

邊界等級

如果粗略的分割,大概有三個等級:

信任等級定義適用對象
L0 : Public任何可連線的外部來源使用者瀏覽器、第三方 Webhook。
L1 : Restricted授權的外部系統或商業夥伴合作平台、外部遊戲供應商伺服器。
L2 : Isolated存放高價值資產的內部系統內部的特殊服務、內部系統才能查看的資料庫

這樣的分級,確保系統不會因為「位置相近」或「網路可達」而自動提升信任等級。

身分與環境

除了公共網路、私有網路,也依賴「身分來源」與「執行環境」。

開發環境與正式環境在身分體系上完全分離,不同環境的認證服務使用不同的簽章金鑰匙與憑證鏈,開發模式的 Token 會在產品環境被拒絕。避免了測試憑證、開發工具或誤用設定滲入上線的系統。

系統中的每一個客戶都被視為一個獨立的邏輯信任邊界。即使多個遊戲或服務部署於同一組基礎設施,其資料存取與操作權限,仍被嚴格限制在所屬客戶範圍內。客戶邊界的優先級高於角色與服務類型,用以防止橫向影響與資料外洩。

越界行為與身分提升

當請求從低信任等級進入高信任等級時,系統不允許直接通行,而必須經過身分轉換與再驗證。

以反向代理為例子,客戶端永遠沒辦法直接觸碰到內部服務,網頁要先經過反向代理才能存取 REST API,然後 REST API 在幫忙查詢資料庫。但這還是「同一個身分,跨越多個網路區段」,因此要進一步導入身分提升的概念:

  • Client 只帶 Session / Cookie
  • 反向代理驗證後,轉換為 內部 JWT 或 Service Token
  • 內部 API 只信任代理簽發的 Token

代理程式把「外部使用者身分」轉成「內部的身分」,或者說內部系統只接受 JWT 而不接受 Cookie,而 JWT 必須要有特定的簽章才能發放,把外部的 Cookie 轉換成內部可使用的 JWT,該過程也是身分提升。