密碼加密保護的限制
Liberty 支援對 server.xml 檔所儲存的密碼進行「進階加密標準 (AES)」加密。當您利用這個選項來保護 Liberty 配置中的系統密碼時,您需要瞭解它提供之保護的限制。
將 Liberty 配置中的密碼加密,無法保證密碼是安全或受到保護;它只意味著人員能夠看到加密密碼,但不知道加密金鑰,因此無法輕易地回復密碼。應用程式伺服器程序需要存取加密密碼和解密金鑰兩者,因此,這兩個資料項目都必須儲存在伺服器執行時期環境能夠存取的檔案系統中。 任何將放在伺服器配置中的密碼加密的人,也都需要加密金鑰。 如果攻擊者有能力存取與 Liberty 伺服器實例完全相同的一組檔案,在密碼上套用 AES 加密,並不會在 "exclusive or" (XOR) 編碼之上提供額外的安全。
儘管如此,仍有理由考慮在 Liberty 配置中進行密碼加密。Liberty 配置設計成高度可組合且可共用。WebSphere Application Server 傳統版的管理子系統
(管理主控台和 wsadmin Scripting)會防止管理者取得 XOR 編碼密碼的存取權。Liberty 設計成配置無需包含管理子系統,因此,所有管理者都能看到任何以 XOR 編碼的密碼。在這些設計特性之下,請考量下列實務:
- 密碼不是機密,因此將密碼編碼的價值不大。
- 密碼是機密,因此包含密碼的配置檔具有安全敏感性,需要進行存取控制,或對密碼進行加密,然後將加密金鑰當作具有安全敏感性來進行保護。
設定 wlp.password.encryption.key 內容,以便能夠置換用來解密的預設加密金鑰。 這個內容不得設在儲存密碼的 server.xml 檔中,而是設在 server.xml 檔所包含的個別配置檔中。 這個個別的配置檔只能包含單一內容宣告,且必須儲存在伺服器的一般配置目錄之外。 這可以確保在執行 server dump 或 package 指令時,不會併入包含金鑰的檔案。 加密金鑰內容也可以指定為引導內容。 如果您選擇這個選項,請將加密金鑰放在伺服器 bootstrap.properties 檔所包含的個別內容檔中。
如需利用 XOR 或 AES 來保護密碼的相關資訊,請參閱相關鏈結,尤其是securityUtility 指令。