Skip to main content
使用主要金鑰來保護儲存在端口配置中的敏感加密資料,如密碼、API 金鑰和連線憑據。預設情況下, 提供內建主要金鑰,但具有嚴格安全要求的組織可以定義自定義主要金鑰,以保持對其加密基礎設施的完全控制。這使你能夠輕鬆輪換使用者定義的主要金鑰。 主要金鑰可以有兩種格式:AES 金鑰檔案中的隨機字串,或帶有可選密碼保護的 PFX (PKCS#12) 憑證檔案。自定義主要金鑰使企業能夠將 的加密實踐與其內部安全策略對齊、符合監管要求,並與現有的金鑰管理系統整合。
失去對自定義主要金鑰的存取權限會導致 無法解密儲存的憑據和配置資料。在配置自定義主要金鑰之前,應實施安全的金鑰備份和恢復程式。

瞭解資料加密金鑰和主要金鑰

加密是使用金鑰(一段資料)將明文轉換為密文。當你首次使用應用程式時, 會生成一個隨機金鑰,該金鑰不會以明文形式儲存在任何位置。這就是資料加密金鑰(DEK)。所有資料都使用此金鑰進行加密。 主要金鑰(也稱為金鑰加密金鑰或 KEK)不直接加密資料。相反,它是一個用於加密其他金鑰的包裝器。 也提供了內建主要金鑰,但如上所述,你也可以改為定義自己的主要金鑰。本主題的其餘部分介紹如何建立或更新使用者定義的主要金鑰。

定義自定義主要金鑰

定義主要金鑰的方式因 版本型別而異。
  • **跨平臺版:**在 arc.properties 配置檔案中使用 cdata.encryption.key 屬性定義金鑰。如果要定義 PFX 金鑰且需要密碼,請在 cdata.encryption.key.password 屬性中進行設定。或者,如果使用 AES 金鑰,可以使用 APP_KEY 環境變數來提供金鑰檔案路徑。
  • **.NET 版:**如果在 Web.Config 檔案的 appSettings 元素中找不到 AppKey 設定,則主要金鑰加密處於停用狀態。要啟用它,請在 Web.Config 檔案的 AppKey 設定元素中設定檔案路徑。如果要定義 PFX 金鑰且需要密碼,請在 AppKeyPassword 設定中進行設定。以下是需要新增到 Web.Config 中的 XML 片段:

更改主要金鑰

如有必要,可以更換主要金鑰檔案。 始終使用你提供的金鑰進行加密。金鑰檔案由系統安全地管理和備份,該過程旨在為使用者降低風險和複雜度。要更改主要金鑰,請確保已停止伺服器,然後使用以下選項之一:
  • **跨平臺版:**管理員可以使用 arc.jar -ChangeMasterKey <new-master-key-file-path> 命令輪換加密金鑰,而不會中斷操作。如果要將主要金鑰更改為 PFX 檔案且需要密碼,請使用 arc.jar -ChangeMasterKey <new-master-key-file-path> <new-master-key-password> 命令。
  • **.NET 版:**管理員必須使用 CData.exe appChangeMasterKey -NewKey <new-master-key-file-path> -@libdir "www\bin" 命令(不要直接修改 Web.Config 檔案)。如果要將主要金鑰更改為 PFX 檔案且需要密碼,請使用 CData.exe appChangeMasterKey -NewKey <new-master-key-file-path> -NewKeyPassword <new-PFX-password> -@libdir "www\bin" 命令。
在 PFX 憑證檔案中僅支援 RSA 演算法。其他 DSA 或 ECC 憑證將被拒絕。

使用安全模式

如果丟失了自定義主要金鑰,並且需要從其他記錄源重新儲存配置中的敏感值,可以在安全模式下啟動 。這會停用所有後端自動化服務,並啟用非常有限的功能,以便你嘗試恢復設定和執行其他任務。要啟用安全模式:
  • **跨平臺版:**執行 java -jar arc.jar -safemode
  • **.NET 版:**在 Web.Config 檔案的 appSettings 元素中新增 <add key="SafeMode" value="true" />