[IBM i]

密碼編碼和加密

密碼編碼會改變伺服器配置和內容檔中密碼的一般觀察。

依預設,在各種 WebSphere® Application Server ASCII 配置檔中,密碼會以簡式遮罩演算法自動編碼。 此外,您也可以在 Java™ 用戶端及 WebSphere Application Server的管理指令所使用的內容檔中,手動將密碼編碼。

預設編碼演算法稱為 XOR。 編碼密碼使用下列語法:
{algorithm}encoded_password
其中 {algorithm} 是一個標籤,指定用來編碼密碼的演算法。 encoded_password 變數是密碼的編碼值。 當伺服器或用戶端需要解碼密碼時,它會使用標籤來決定要使用的演算法,然後使用該演算法來解碼已編碼的密碼。

Java 用戶端使用 sas.client.props 檔案中的密碼,該檔案位於 profile_root/properties 目錄中。

若要對 Java 用戶端使用密碼編碼,必須使用 PropFilePasswordEncoder 工具在 sas.client.props 檔案中手動編碼密碼。

WebSphere Application Server 的管理指令使用 soap.client.props 檔中的密碼,該檔案也位於 SOAP 連線的 profile_root/properties 目錄中。 對於「遠端方法呼叫 (RMI)」連線,部分管理指令會選擇性地使用 profile_root/properties 中的 sas.client.props 檔中的密碼。 若要搭配使用密碼編碼與管理指令,您必須使用 PropFilePasswordEncoder 工具來手動編碼 soap.client.propssas.client.props 檔案中的密碼。

注意: 僅編碼演算法不足以完全保護密碼。 原生安全是保護 WebSphere Application Server配置檔和內容檔中所用密碼的主要機制。

使用密碼編碼演算法時要考量的問題

在決定使用密碼編碼演算法之前,您必須考量下列問題:
  • 您必須將 QRETSVRSEC 作業系統值設為 1 ,以在管理 Java 用戶端應用程式或 WebSphere Application Server的系統上使用。 使用此設定, WebSphere Application Server 可以從驗證清單中擷取加密密碼。
    注意: QRETSVRSEC 系統值會影響對作業系統上所有驗證清單中已加密資料的存取。 如果此設定與您作業系統的安全原則不一致,請勿使用密碼編碼演算法。
  • 只有當 WebSphere Application Server 管理網域內的所有伺服器實例都位於相同的 IBM® i 系統上時,才能將密碼編碼演算法與伺服器實例搭配使用。 請考量下列相關問題:
    • WebSphere Application Server 的管理網域可以延伸到多個 IBM i 系統。 只有當管理網域中的所有伺服器都位於相同的 IBM i 系統時,您才能使用密碼演算法。
    • 伺服器配置 XML 檔包含已編碼的密碼。 如果 XML 檔中包含的密碼是使用編碼演算法來編碼,則這些編碼僅適用於最初編碼密碼之相同 IBM i 系統上的應用程式伺服器設定檔。 包含使用編碼演算法編碼之密碼的配置檔副本,無法用來在其他 IBM i 系統上配置伺服器。
    • 管理網域內的所有伺服器實例都必須配置成使用相同的原生驗證清單 (*VLDL) 物件。
  • 如果在對密碼進行編碼時發生錯誤,則會使用 XOR 編碼演算法對密碼進行編碼。 如果管理者手動建立驗證清單物件,且對 IBM i QEJB 使用者設定檔的驗證清單物件授與的權限不足,則可能會發生錯誤。