若要為 BCFIPS 僅核准模式設定 JRE,請執行以下操作:
將 BCFIPS.jar 檔案新增至 Java 類別路徑。
所需的 BCFIPS 檔案如下:
bc-fips-1.0.2.5.jar
bcpkix-fips-1.0.7.jar
bctls-fips-1.0.19.jar
附註:您可以從以下 maven 儲存庫下載上述 jar 檔案:
修改 <jre-root>/conf/security 目錄下的 java.security 檔案,並設定 BCFIPS 定義的 Java 系統內容。
在文字編輯器中,從 <jre-root>/conf/security/java.security 開啟代管 Web 容器的 JRE 的上述檔案。找到安全性提供者清單,註解化所有現有提供者,然後按照以下方式取代檔案中的項目:
security.provider.1=BCFIPS
security.provider.2=BCJSSE
security.provider.3=SunJSSE
security.provider.4=SUN
security.provider.5=SunJCE
必須指定 SunJSSE 提供者 (Java 11),因為 OSP 在啟始化其可信證書儲存區時需要特定的 TrustManager 實作。除了對安全性提供者進行變更之外,還必須使用 BCFIPS JSSE KeyManager 實作。這種必要性主要是因為 Sun 實作中存在缺陷,導致無法在一定程度上做到 FIPS 在金鑰方面所需的確定性。為此,請將 java.security 中的以下一行:
ssl.KeyManagerFactory.algorithm=SunX509
取代為
ssl.KeyManagerFactory.algorithm=PKIX
另外,最好停用較舊的 SSL 和 TLS 演算法。這是因為,TLS v2.0 之前的 SSL/TLS 版本所需的演算法在 BCFIPS 已核准模式下不可用。若要停用舊演算法,請找到 jdk.tls.disabledAlgorithms 項目。
例如:
jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024, \ EC keySize < 224, DES40_CBC, RC4_40, 3DES_EDE_CBC
將 TLSv1、TLSv1.1 和 TLSv1.2 新增至清單中:
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, TLSv1.2, RC4, MD5withRSA, DH keySize < 1024, \ EC keySize < 224, DES40_CBC, RC4_40, 3DES_EDE_CBC
停用 TLSv1 和 TLSv1.1 不是強制要求,但這樣可以避免在 OSP 嘗試安全連接到僅支援 TLS v1.1 或更舊版本的服務 (例如 LDAP) 時,出現不明所以的錯誤訊息。停用舊版 TLS 後出現的錯誤訊息更容易理解,並且可以直接指明問題所在。
將以下值新增至環境變數中:
IS_FIPS_ENABLED=true
BC_FIPS_VERSION=1.0.2.5
JAVA_OPTS =" -Dorg.bouncycastle.fips.approved_only=true -Dorg.bouncycastle.rsa.allow_multi_use=true"
CLASSPATH=C:\NetIQ\Common\JRE\lib\bc-fips-1.0.2.5.jar
附註:若要透過連接埠 636 存取 dxcmd,請在 LDAP 設定中啟用 SSL EC 證書。
導覽至 C:\NetIQ\Common\JRE\lib\security 資料夾。
備份 cacerts 檔案。
為了支援安全性增強,請使用以下指令將 cacerts 檔案轉換為 bcfks 格式:
keytool -importkeystore -srckeystore cacerts -srcstorepass changeit -srcstoretype JKS -destkeystore cacerts -deststorepass changeit -deststoretype BCFKS -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providerpath $CLASSPATH
附註:OpenText eDirectory 8.8 (或更舊版本) 無法與安全 LDAP 配合使用,因為它僅支援 TLS v1.0。若要使用安全 LDAP,則必須使用 OpenText eDirectory 9 或更新版本。另一種做法是修改預設的金鑰儲存區類型。找到 keystore.type=jks 或 keystore.type=pkcs12 行,將其變更為 keystore.type=bcfks。