> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 靜態加密

> 知行之橋如何使用 AES-256 加密靜態訊息資料，包括 EncryptionAtRestMode 設定、各模式及運維注意事項。

export const siteNameShort = "知行之橋";

export const siteName = "知行之橋";

{siteNameShort} 支援對[訊息資料](../activity#訊息索引標籤)進行應用程式級靜態加密。啟用後，{siteNameShort} 內部儲存目錄中的所有資料檔案都會使用流式 AES-256-GCM 自動加密，無需更改現有工作流程。靜態加密有助於滿足 PCI DSS、HIPAA、GDPR 和 SOX 等標準的資料保護要求。

加密適用於所有端口內部儲存位置（Send、Receive、Logs、Pending 和臨時目錄）中的訊息資料。

<Warning>
  靜態加密的訊息資料只能使用主要金鑰解密。如果配置了[自定義主要金鑰](../../installation/custom-master-key)但丟失了該金鑰，加密的訊息資料將**無法恢復**。啟用前請實施安全的金鑰備份和恢復流程。
</Warning>

以下物件不受此功能加密：

* 配置檔案：敏感配置值由 {siteNameShort} 的現有機制單獨加密。
* 應用程式資料庫。

在**系統設定 > 安全**的**附加設定**部分配置加密。預設停用。可選擇以下模式：

| 模式                | 寫入行為   | 讀取行為              |
| ----------------- | ------ | ----------------- |
| **Disabled**      | 僅寫入明文  | 僅讀取明文             |
| **Compatibility** | 寫入明文   | 可讀取加密檔案和明文檔案      |
| **Standard**      | 寫入加密檔案 | 可讀取加密檔案和明文檔案      |
| **Strict**        | 寫入加密檔案 | 僅讀取加密檔案；遇到明文檔案時報錯 |

* **Disabled** 是預設值，必須顯式啟用加密。
* **Standard** 適合大多數使用者：加密新檔案，同時繼續接受現有明文檔案。
* **Compatibility** 寫入明文但可以讀取加密檔案和明文檔案，是在其他模式之間安全切換的過渡模式。它不會主動加密；要開始加密，請使用 **Standard**。
* **Strict** 適用於絕不允許接受明文檔案的高安全性或合規環境。

<Note>更改加密模式後必須重新啟動 {siteNameShort} 才會生效。</Note>

## 移轉現有資料

啟用加密不會追溯加密磁碟上的現有檔案。在 **Compatibility** 和 **Standard** 模式下，{siteNameShort} 會自動識別檔案是否加密，並讀取現有明文檔案而不做修改；只有在下次寫入檔案時才會加密。

**Strict** 會拒絕所有明文檔案，因此在儲存目錄中仍有明文訊息檔案時不要切換到該模式。典型移轉路徑如下：

1. 選擇 **Standard**，使新檔案以加密形式寫入，同時接受現有明文檔案。
2. 透過正常執行，讓 Send、Receive、Pending、Logs 和臨時目錄中的現有明文檔案被處理並清除。
3. 只剩加密檔案後，切換到 **Strict** 強制只讀取加密檔案。

叢集部署請遵循[在叢集環境中切換模式](#在叢集環境中切換模式)。

<Note>
  如果仍存在明文檔案，或外部系統仍在向 FTP/SFTP Server 根目錄寫入明文，就切換到 **Strict**，這些檔案將報錯。請參閱 [FTP Server 和 SFTP Server 注意事項](#ftp-server-和-sftp-server-注意事項)。
</Note>

## 在叢集環境中切換模式

在[叢集](../clustering)部署中，所有節點共享配置和訊息儲存。模式更改僅在重新啟動後生效，因此滾動重啟期間各節點會短暫執行不同模式。若節點遇到當前模式無法讀取的檔案（Disabled 節點讀取加密檔案，或 Strict 節點讀取明文檔案），會產生硬錯誤。

請按 **Disabled → Compatibility → Standard → Strict** 的順序逐級切換，並在每一步完成所有節點的完整重啟，不要跳過中間模式。

**啟用加密：**

1. 設定為 **Compatibility** 並重啟所有節點。所有節點均可讀取加密檔案，但仍寫入明文。
2. 設定為 **Standard** 並重啟所有節點。節點開始寫入加密檔案，而所有節點已經能夠讀取。
3. 等待所有明文檔案清除。
4. 設定為 **Strict** 並重啟所有節點。

**停用加密：**

1. 設定為 **Standard** 並重啟所有節點。
2. 設定為 **Compatibility** 並重啟所有節點。節點重新寫入明文，同時繼續讀取積壓的加密檔案。
3. 等待所有加密檔案清除。
4. 設定為 **Disabled** 並重啟所有節點。

<Note>單節點部署沒有滾動視窗，可以直接切換到目標模式，但仍不能在存在明文檔案時選擇 **Strict**，或在存在加密檔案時選擇 **Disabled**。</Note>

## 透明執行

* 加密和解密自動進行，使用者和現有工作流程無需更改。
* 檔案在 {siteNameShort} 內部靜態儲存時加密，傳遞給下游端口和交易夥伴時為明文。
* 加密使用 {siteNameShort} 現有的[主要金鑰](../../installation/custom-master-key)機制，無需額外配置金鑰。
* 啟用加密可能影響效能，但檔案大小開銷可忽略不計。

## FTP Server 和 SFTP Server 注意事項

靜態加密適用於 [FTP Server](../../../connectors/ftp-server) 和 [SFTP Server](../../../connectors/sftp-server) 端口使用的根目錄。

* 在 **Compatibility** 或 **Standard** 模式下，外部 SFTP 和 FTP 用戶端仍可向根目錄寫入明文檔案，{siteNameShort} 會正常接受並處理。
* 在 **Strict** 模式下，僅接受加密檔案；直接寫入明文的外部系統會遇到錯誤。

如果外部系統直接寫入 FTP 或 SFTP Server 根目錄，請避免使用 **Strict**。

## 金鑰管理

靜態加密使用 {siteNameShort} 現有的主要金鑰（該金鑰也用於保護敏感設定值），無需單獨設定。有關詳情，請參閱[自定義主要金鑰](../../installation/custom-master-key)。

### 輪換主要金鑰

輪換主要金鑰不會重新加密訊息資料，也不會使現有加密檔案無法讀取。靜態加密採用金鑰層次結構：主要金鑰保護內部資料金鑰，內部資料金鑰再保護每個檔案的加密金鑰。因此，輪換隻會重新封裝內部金鑰，不會重寫所有檔案。輪換前加密的檔案仍可讀取，無需批次重新加密。

請按照[自定義主要金鑰](../../installation/custom-master-key)中的流程輪換主要金鑰。
