為安全應用程式調整 Liberty
您可以調整 Liberty,使安全應用程式獲得最佳效能。
關於這項作業
當您維護 WebSphere® 應用程式環境安全時,請務必瞭解安全對效能所可能產生的影響。 在應用程式伺服器環境內,含有安全設定的執行中的應用程式,由於加密、鑑別和授權之類的安全作業會造成處理器用量增加,往往會導致效能欠佳。 這些服務通常拉長應用程式伺服器要求的路徑,增加每個要求所需要的資源,且減慢應用程式的傳輸量。
在大部分情況下,您可以透過效能調整來部分減少或消除這個與安全相關的效能損失。 您可以調整安全服務所用的資源,選擇只用特定應用程式或環境所需要的安全服務。 如果要實現可能的最佳效能,且不犧牲任何必要的安全,您必須瞭解網路的拓撲及應用程式的安全需求。
程序
- 選擇您想要加密的連線。
在 WebSphere Application Server 環境中,您可以將下列傳輸加密:
- 通往 Web 伺服器的 HTTP 傳輸
- 從 Web 伺服器到應用程式伺服器的 HTTP 傳輸
- SOAP/JMX 傳輸
- 檔案傳送服務
- 經由 HTTP 的 Web 服務
當您決定哪些資料流量要經由加密連線來傳輸時,請考量用來連接通訊機器的網路是專用或公用網路。 設定安全連線以及對這個連線的資料傳輸進行加密和解密,會涉及大量相關聯的資源。 比方說,在安全網路中不要求加密,可以明顯改善效能。 如果您的應用程式不要求對從用戶端到 HTTP 伺服器,以及從 HTTP 伺服器到應用程式伺服器的資料傳輸加密,您可以只在用戶端到 HTTP 伺服器這一段使用 SSL,從而減少安全所需要的資源。
- 啟用晶載「進階加密標準 (AES) 加密」。
如果您使用 IBM® SDK Java™ Technology Edition 第 7 版,Service Refresh 3 或更新的版本,且您在支援「進階加密標準 (AES) 新指令 (AES-NI)」指令集的 Intel 處理器上執行作業,您可以充分利用晶載 AES 加密來實現效能的改進。 當使用這些特性時,您可以利用硬體指令來執行 AES 加密和解密,無需額外的軟體。
如果要啟用 AES-NI,請新增下列內容到 JVM 指令行或 jvm.options 檔中:
com.ibm.crypto.provider.doAESInHardware=true
請新增下列內容到 JVM 指令行或 jvm.options 檔中,以驗證處理器是否支援 AES-NI 指令集:
com.ibm.crypto.provider.AESNITrace=true
如需相關資訊,請參閱 Intel Advanced Encryption Standard New Instructions。
- 選擇您的密碼金鑰長度。
在某些情況下,密碼金鑰的位元長度是由特定資料類型的傳送規範來控管。 在這些情況下,您可以預先決定針對特定 SSL 連線而選擇的密碼和金鑰長度。 在金鑰長度沒有規範的情況下,您必須選擇適當的資源來配置安全,以免效能欠佳超出必要的程度。 例如,256 位元密碼的加密強度高於相應的 128 位元密碼。 不過,密碼強度越高,訊息解密所需要的處理時間也更長。
當您決定要選擇的加密強度時,請考慮透過網路傳輸的資料類型。 例如,財務或醫療記錄之類的機密性資訊所需要的安全量最大。 另外,也要考慮到誰可以存取網路。 如果網路受防火牆保護,請考慮降低密碼強度,可能的話,也可以經由解密的連線來傳輸資料。
如需在 Liberty 配置 SSL 設定的相關資訊,請參閱SSL 配置屬性
- 設定連線保持作用中要求。
在 Secure Sockets Layer (SSL) 通訊協定中,起始信號交換會針對速度更快的私密金鑰密碼,利用公開金鑰密碼來交換其私密金鑰。 這個速度更快的密碼用來加密和解密起始信號交換之外的通訊。 由於後續通訊所用的密碼比起始信號交換所用的更快,從效能的角度來看,限制應用程式伺服器所執行的 SSL 信號交換次數很重要。 您可以增加階段作業親緣性來增加 SSL 連線的長度,從而得到這個結果。
增加單一 SSL 連線持續時間的方法之一,是啟用持續的 HTTP 保持作用中連線。 增加持續時間可以防止連續要求進行 SSL 信號交換。 您可以驗證 server.xml 檔中 HTTPOptions 元素的 keepAliveEnabled 屬性是否已設為 true,確認已啟用持續性連線。 預設值為 true。
另一個調整持續性連線的方法,是對單一 HTTP 連線設定連續要求的數目上限。 如果您的用戶端連續發出超過 100 個要求,請考慮增加 server.xml 檔中 HTTPOptions 元素的 maxKeepAliveRequests 屬性值。 預設值為 100。
如需保持作用中連線屬性的相關資訊,請參閱Java Servlets 3.0。
- 設定鑑別快取設定。
由於建立鑑別主體可能會增加處理器用量,Liberty 提供了鑑別快取,以便在使用者鑑別成功之後,用來儲存主體。如果要充分利用這項服務來增進效能,您必須確定它已開啟,且已根據您的使用者和應用程式進行調整。
請確定您沒有停用鑑別快取。 依預設,會啟用鑑別快取來協助改善效能。
請考慮變更鑑別快取逾時值。 增加逾時值,讓主體可以在鑑別快取中保留比較久,會減少需要重新鑑別的次數。 不過,相較於已修改的外部儲存庫,例如 LDAP,增加逾時值會增加用者許可權變成太舊的風險。 請設定鑑別快取逾時值來反映預估的用戶端階段作業長度。 您可以在 server.xml 檔的 authCache 元素中,將 timeout 屬性值設為您選擇的任何時間,以指定快取逾時值。 預設值為 600 秒。
最後,如果您發現鑑別時間超出預期,或您發現與外部鑑別儲存庫的資料流量超出預期,可能是鑑別快取已滿。 當鑑別快取已滿,會將主體收回。 已鑑別的使用者與鑑別快取項目沒有一對一的對映。 每位使用者在快取中的項目數會隨著其他安全配置而不同。 當鑑別快取的大小上限超出同時存取伺服器的不同已鑑別使用者的數目時,這是最佳作法。 依照這個方式來設定鑑別快取的大小上限,有助於防止在逾時之前從快取中收回主體。 您可以在 server.xml 檔的 authCache 元素中設定 maxSize 屬性值來變更鑑別快取的大小上限。 預設值為 25000。
如需相關資訊,請參閱在 Liberty 中配置鑑別快取。
- 配置 HTTP 階段作業親緣性設定。
在安全的應用程式環境中,起始設定是最消耗效能的作業,其中包括 SSL 信號交換和鑑別。 在叢集環境中,當 Web 用戶端存取不同的應用程式伺服器時,可能會出現效能下降的情況。如果要防止 SSL 信號交換和重新鑑別增加處理器用量,請務必確定已配置 HTTP 階段作業親緣性。
HTTP 階段作業親緣性可確保連續的用戶端要求會遞送到相同的應用程式伺服器。 HTTP 階段作業親緣性會在許多方面對效能有所助益,但具體而言,在於防止重新鑑別和 SSL 信號交換增加處理器用量。 請參閱您的 HTTP Server 或「負載平衡器」的說明文件,以取得設定 HTTP 階段作業親緣性的指示。
如需相關資訊,請參閱配置 Liberty 階段作業持續性。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_tun_sec
檔名:twlp_tun_sec.html