Oracle Enterprise Manager FIPS140-2の設定

13cリリース5更新21以降、Oracle Enterprise Managerは、米国連邦情報処理規格140-2 (FIPS 140-2)に準拠して実行できます。次の各項のステップに従って、すべてのEMコンポーネントがFIPSモードで実行されていることを確認します:

前提条件:

前提条件として、最新のOMSパッチがインストールされていることを確認してください。詳細な手順は、MOSドキュメントID 2776765.1を参照してください。

FIPSモードのOracle HTTP Server

  1. AES暗号化ウォレットを使用してOMSを保護します

    すべてのウォレットは、キー・サイズ2048でAES暗号化する必要があります(orapkiは12.1以降、AESを使用してewallet.p12を暗号化します、MOSドキュメントID 2198551.1)。

    FIPSモードのWebLogicでは、2048ビット・キーのエージェント証明書のみを生成できます。エージェント証明書は、OMS CA証明書と同じキー・サイズで作成されます。次のステップに従って、2048ビット・キーで新しいOMS CA証明書を作成し、すべてのエージェントを再保護します:

    1. OMS CA証明書が2048ビットより長いかどうかを確認します:

      <OMS_HOME>/bin/emcli login -username=sysman
      <OMS_HOME>/bin/emcli sync
      emcli get_ca_info

      出力例:

      Info about CA with ID: 1
      CA is not configured
      Signature algorithm : sha512
      Key strength : 1024
      DN: CN=example.com,C=US,ST=CA,L=EnterpriseManager on example.com,OU=EnterpriseManager on example.com,O=EnterpriseManager on example.com
      Serial# : -4357905706800919315
      Valid From: Tue Apr 14 07:43:33 PDT 2020
      Valid Till: Sat Apr 13 07:43:33 PDT 2030
      Number of Agents registered with CA ID CA ID 1 is 1

      OMS CA証明書のキーが2048ビットより短い場合は、次のステップ4の手順に従って新しいOMS CAを作成します。

    2. OMSウォレットを作成します:

      OMSがサード・パーティ証明書(2048ビットのキー・サイズ)ですでにセキュアである場合、新しいAESウォレットを同じ秘密キーおよび証明書を使用して変換または作成できます。

      • ウォレットをAESに変換するには:
        orapki wallet convert -wallet <wallet_path> -compat_v12 -pwd <wallet_password>

      証明書キー・サイズが1024の場合、OMSコンソール用に新しいウォレットを作成します:

      • OMSコンソールからOMSアップロードに移動し、WebLogicで-compat_v12オプションを指定してorapkiツールを使用します

      ノート:

      SSL証明書を使用してOMSを構成する方法の詳細は、ドキュメントID 2202569.1を参照してください。
    3. ウォレットが新しく作成された場合は、ルートCA証明書をトラスト・ストアに追加します:

      <OMS_HOME>/bin/emctl secure oms -trust_certs_loc $WALLET_BASE/rootCA/cert.pem

      SLBが構成されている場合は、かわりに次のコマンドを実行します:

      <OMS_HOME>/bin/emctl secure oms -host <SLB hostname> -secure_port <port> -slb_port <port> -slb_console_port <port> -trust_certs_loc $WALLET_BASE/rootCA/cert.pem

      ノート:

      次のステップを完了するまで、OMSをバウンスしないでください。
    4. OMS CA証明書のキーの強度が2048ビット未満(ステップ1)の場合は、新しいCAを作成します:

      <OMS_HOME>/bin/emctl secure createca -key_strength 2048

      出力例:

      Oracle Enterprise Manager 24ai Release 1  
      
      Copyright (c) 1996, 2024 Oracle Corporation.  All rights reserved.
      
      Creating CA... Started.
      
      Enter Enterprise Manager Root (SYSMAN) Password :
      
      Successfully created CA with ID 2
    5. すべてのエージェントを保護します

      OMS CAは2048ビット・サイズで再生成されているため、OMSウォレットが新しく作成されているかどうかに関係なく、すべてのエージェントを保護します。

      emcliコマンドを使用して、複数のエージェントをまとめて保護することもできます。

      <AGENT_HOME>/bin/emctl secure_agents
              [-agt_names="agt1;agt2;..."] [-agt_names_file="<file>"]
    6. AES暗号化を使用してOMSを保護します

      <OMS_HOME>/bin/emctl secure oms -wallet $WALLET_BASE/em_cert -trust_certs_loc $WALLET_BASE/rootCA/cert.pem

      SLBが構成されている場合は、かわりに次のコマンドを実行します:

      <OMS_HOME>/bin/emctl secure oms -host <SLB hostname> -wallet $WALLET_BASE/slb_cert -secure_port <port> -slb_port <port> -slb_console_port <port> -trust_certs_loc $WALLET_BASE/rootCA/cert.pem
    7. AES暗号化を使用してOMSコンソールを保護します

      <OMS_HOME>/bin/emctl secure console -wallet $WALLET_BASE/em_cert

      SLBが構成されている場合は、かわりに次のコマンドを実行します:

      <OMS_HOME>/bin/emctl secure console -wallet $WALLET_BASE/slb_cert -host <SLB HostName>
    8. AES暗号化ウォレットを使用してWeblogicを保護します

      <OMS_HOME>/bin>emctl secure wls -wallet $WALLET_BASE/em_cert
    9. すべてのOMSでステップgからhを繰り返します

    10. OMSを再起動します

      最初にプライマリ、次にセカンダリを一度に1つずつ行います:

      emctl stop oms -all
      emctl start oms
  2. FIPSモード・フラグを有効にします

    次のファイルの<IfModule ossl_module>内にSSLFIPS ONを追加します:

    ノート:

    <VirtualHost>のファイル内にSSLFIPS ONを追加しないでください

    プライマリOMS:

    $DOMAIN_HOME/config/fmwconfig/components/OHS/ohs1/ssl.conf
    $DOMAIN_HOME/config/fmwconfig/components/OHS/instances/ohs1/ssl.conf

    その他のOMS (ohs2を該当するohsインスタンスに置換):

    $DOMAIN_HOME/config/fmwconfig/components/OHS/instances/ohs2/ssl.conf
    $DOMAIN_HOME/config/fmwconfig/components/OHS/instances/ohs2/ssl.conf.emctl_secure (if exists)

    例:

    次の場所に移動します:

     $INSTANCE_HOME/user_projects/domains/GCDomain/config/fmwconfig/components/OHS/ohs1/ssl.conf

    ssl.confファイルを次のように更新します:

    # Some MIME-types for downloading Certificates and CRLs SSLFIPS ON

FIPSモードのEMリポジトリ・データベース

  1. 透過的データ暗号化(TDE)およびDBMS_CRYPTO PL/SQLパッケージ・プログラム
    1. 構成します:

      透過的データ暗号化およびDBMS_CRYPTO PL/SQLパッケージ・プログラム・ユニットをFIPSモードで実行するよう構成するには、DBFIPS_140初期化パラメータをTRUEに設定します。

      sqlplus / as sysdba
      
      SQL>SELECT name,value FROM SYS.V$PARAMETER WHERE NAME = 'DBFIPS_140';
      
      DBFIPS_140
      
      FALSE
      
      SQL>ALTER SYSTEM SET DBFIPS_140 = TRUE SCOPE=SPFILE ;
      
      SQL> shutdown immediate
      
      SQL> startup
      
      SQL> SELECT name,value FROM SYS.V$PARAMETER WHERE NAME = 'DBFIPS_140';
      
      DBFIPS_140
      
      TRUE
      
      SQL> exit
    2. テストします

      select DBMS_CRYPTO.hash(UTL_RAW.CAST_TO_RAW ('TestString'), 2) from dual;
      
      second param is Hash algorithm
      
      HASH_MD4 (128 bit hash)     1
      
      HASH_MD5 (128 bit hash)     2
      
      HASH_SH1 (160 bit hash)     3
      
      HASH_SH256                      4
      
      HASH_SH384                     5
      
      HASH_SH512                     6
      
      Above query (MD4, MD5 hash) works in  non FIPS mode (DBFIPS_140=FALSE) and fails in FIPS mode (DBFIPS_140=TRUE)
  2. SSLトランスポートのセキュリティ

    1. DBウォレットを作成します

      新しいウォレットを作成するには、OMSコンソールからOMSアップロードに移動し、Weblogicでorapkiツールを使用します。

    2. SSL通信を構成します

      次にSSLFIPS_140=TRUEフラグを追加します
      $DB_HOME/ldap/admin/fips.ora

      SSL通信の構成の詳細は、「Enterprise ManagerリポジトリにTLSv1.2を構成する」を参照してください

    3. リスナーを再起動します

      $DB_HOME/bin/lsnrctl stop
      $DB_HOME/bin/lsnrctl start
  3. TCPSリスナーを使用するようにEMを構成します

    TCPSリスナーを使用するようにEMを構成する方法の詳細は、TLSv1.2対応のEnterprise Managerリポジトリに接続するようにOracle Management Serviceを構成するを参照してください。

Oracle WebLogic Server

  1. RSA JSSEおよびRSA JCEプロバイダを追加します

    <OMS_HOME>/oracle_common/jdk/jre/lib/security/java.securityファイルで、RSAプロバイダを一番上に追加し、他の既存のプロバイダを適宜下に移動します:

    security.provider.1=com.rsa.jsafe.provider.JsafeJCE
    security.provider.2=com.rsa.jsse.JsseProvider
    security.provider.3=sun.security.provider.Sun
    security.provider.4=sun.security.rsa.SunRsaSign
    security.provider.5=sun.security.ec.SunEC
    security.provider.6=com.sun.net.ssl.internal.ssl.Provider
    security.provider.7=com.sun.crypto.provider.SunJCE
    security.provider.8=sun.security.jgss.SunProvider
    security.provider.9=com.sun.security.sasl.Provider
    security.provider.10=org.jcp.xml.dsig.internal.dom.XMLDSigRI
    security.provider.11=sun.security.smartcardio.SunPCSC
  2. クラス・パスにFIPS準拠のトラストストアおよびプロバイダJarを追加します

    次のステップに従って、2つの.jarファイルをWebロジックおよびノード・マネージャに$ORACLE_HOME/wlserver/server/libから追加します:

    <OMS_HOME>/wlserver/server/lib/jcmFIPS.jar
    <OMS_HOME>/wlserver/server/lib/sslj.jar
    1. <EM_INSTANCE_BASE/user_projects/domains/GCDomain/bin/startEMServer.shEXT_POST_CLASSPATH="<omshome>/sysman/jlib/emagentPermissions.jar" export EXT_POST_CLASSPATH行の後にFIPS構成を追加します:

      JAVA_OPTIONS="-Doracle.net.isFipsMode=true -Dcom.sun.net.ssl.enableECC=false ${JAVA_OPTIONS} "
      export JAVA_OPTIONS
      PRE_CLASSPATH="<OMS_HOME>/wlserver/server/lib/jcmFIPS.jar:<OMS_HOME>/wlserver/server/lib/sslj.jar:${PRE_CLASSPATH}"

      ドメイン・ホームの例:

      /u01/app/Oracle/gc_inst/user_projects/domains/GCDomain/bin/startEMServer.sh
    2. $DOMAIN_HOME/bin/startNodeManager.sh# start node manager ...行の上にFIPS構成を追加します:

      JAVA_OPTIONS=" -Dcom.sun.net.ssl.enableECC=false ${JAVA_OPTIONS} "
      PRE_CLASSPATH="<OMS_HOME>/wlserver/server/lib/jcmFIPS.jar:<OMS_HOME>/wlserver/server/lib/sslj.jar"
      export JAVA_OPTIONS
      export PRE_CLASSPATH
    3. ノード・マネージャを起動します:

      $DOMAIN_HOME/bin/startNodeManager.sh
    4. opensslを使用して、aes-256-cbcなどのFIPS準拠のアルゴリズムによるパスワード・ベースの暗号化を使用してトラスト・ストアおよびキーストアを再作成します。
    5. <EM_INSTANCE_BASE/em/omrWallets/<trustStore>および<EM_INSTANCE_BASE/em/omrWallets/<keyStore>の下のPKCS12ウォレットを、新しく更新されたPKCS12ウォレットのトラストおよびキーで更新します。

      openssl pkcs12 -in ewallet.p12 -out cert.pem <genrate pem file from already generated wallet under trsuststore and keystore >
      openssl pkcs12 -keypbe aes-256-cbc -certpbe aes-256-cbc -export -in <path to .pem file and file name> -out <path to .pfx file and file name>

      ドメイン・ホームの例:

      /u01/app/Oracle/gc_inst/em/omrWallets
    6. すべてのコンポーネントをバウンスします:
      emctl stop oms -all
      emctl start oms

FIPSモードのOracle EMエージェント

エージェントの通信

この表は、Oracle EMエージェントでサポートされるデフォルトの暗号を示しています。一部の暗号はFIPS準拠ではないため、エージェントのemd.propertiesファイルに暗号を明示的に追加し、エージェントをバウンスしてFIPS準拠にします:

SSLCipherSuites=ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:ECDHE_RSA_WITH_AES_128_GCM_SHA256:AES_128_CCM_8_SHA256:AES_128_CCM_SHA256:AES_128_GCM_SHA256:AES_256_GCM_SHA384:DHE_DSS_WITH_AES_:28_GCM_SHA256:DHE_DSS_WITH_AES_256_GCM_SHA384:DHE_RSA_WITH_AES_128_GCM_SHA256:DHE_RSA_WITH_AES_256_GCM_S:A384:ECDHE_RSA_WITH_AES_256_GCM_SHA384:DH_DSS_WITH_AES_128_GCM_SHA256:DH_DSS_WITH_AES_256_GCM_SHA384:TLS:DH_RSA_WITH_AES_128_GCM_SHA256:DH_RSA_WITH_AES_256_GCM_SHA384:ECDH_ECDSA_WITH_AES_128_GCM_SHA256:ECDH_EC:SA_WITH_AES_256_GCM_SHA384:ECDH_RSA_WITH_AES_128_GCM_SHA256:ECDH_RSA_WITH_AES_256_GCM_SHA384:DHE_DSS_WITH_AES_128_CB:_SHA:DHE_DSS_WITH_AES_128_CBC_SHA256:DHE_DSS_WITH_AES_256_CBC_SHA:DHE_DSS_WITH_AES_256_CBC_SHA256:DHE_:SA_WITH_AES_128_CBC_SHA:DHE_RSA_WITH_AES_128_CBC_SHA256:DHE_RSA_WITH_AES_256_CBC_SHA:DHE_RSA_WITH_AES_256_:BC_SHA256:ECDH_ECDSA_WITH_AES_128_CBC_SHA:ECDH_ECDSA_WITH_AES_128_CBC_SHA256:ECDH_ECDSA_WITH_AES_256_CBC_S:A:ECDH_ECDSA_WITH_AES_256_CBC_SHA384:ECDH_RSA_WITH_AES_128_CBC_SHA:ECDH_RSA_WITH_AES_128_CBC_SHA256:EC:H_RSA_WITH_AES_256_CBC_SHA:ECDH_RSA_WITH_AES_256_CBC_SHA384:ECDHE_ECDSA_WITH_AES_128_CBC_SHA:ECDHE_ECDSA_W:TH_AES_128_CBC_SHA256:ECDHE_ECDSA_WITH_AES_256_CBC_SHA:ECDHE_ECDSA_WITH_AES_256_CBC_SHA384:ECDHE_RSA_WITH_:ES_128_CBC_SHA:ECDHE_RSA_WITH_AES_128_CBC_SHA256:ECDHE_RSA_WITH_AES_256_CBC_SHA:ECDHE_RSA_WITH_AES_256_CBC:SHA384:RSA_WITH_AES_128_CBC_SHA:RSA_WITH_AES_128_CBC_SHA256:RSA_WITH_AES_128_GCM_SHA256:RSA_WITH_AES_2:6_CBC_SHA:RSA_WITH_AES_256_CBC_SHA256:RSA_WITH_AES_256_GCM_SHA384
暗号 FIPS
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 はい
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 はい
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 はい
TLS_AES_128_CCM_8_SHA256 はい
TLS_AES_128_CCM_SHA256 はい
TLS_AES_128_GCM_SHA256 はい
TLS_AES_256_GCM_SHA384 はい
TLS_CHACHA20_POLY1305_SHA256 いいえ
TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 はい
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 はい
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 はい
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 はい
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 いいえ
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 はい
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 いいえ
TLS_DH_DSS_WITH_AES_128_GCM_SHA256 はい
TLS_DH_DSS_WITH_AES_256_GCM_SHA384 はい
TLS_DH_RSA_WITH_AES_128_GCM_SHA256 はい
TLS_DH_RSA_WITH_AES_256_GCM_SHA384 はい
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 はい
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 はい
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 はい
TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 はい
TLS_DH_DSS_WITH_AES_128_CBC_SHA いいえ
TLS_DH_DSS_WITH_AES_128_CBC_SHA256 いいえ
TLS_DH_DSS_WITH_AES_256_CBC_SHA いいえ
TLS_DH_DSS_WITH_AES_256_CBC_SHA256 いいえ
TLS_DH_RSA_WITH_AES_128_CBC_SHA いいえ
TLS_DH_RSA_WITH_AES_128_CBC_SHA256 いいえ
TLS_DH_RSA_WITH_AES_256_CBC_SHA いいえ
TLS_DH_RSA_WITH_AES_256_CBC_SHA256 いいえ
TLS_DHE_DSS_WITH_AES_128_CBC_SHA はい
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 はい
TLS_DHE_DSS_WITH_AES_256_CBC_SHA はい
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 はい
TLS_DHE_RSA_WITH_AES_128_CBC_SHA はい
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 はい
TLS_DHE_RSA_WITH_AES_256_CBC_SHA はい
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 はい
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA はい
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 はい
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA はい
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 はい
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA はい
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 はい
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA はい
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 はい
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA はい
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 はい
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA はい
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 はい
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA はい
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 はい
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA はい
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 はい
TLS_RSA_WITH_AES_128_CBC_SHA はい
TLS_RSA_WITH_AES_128_CBC_SHA256 はい
TLS_RSA_WITH_AES_128_GCM_SHA256 はい
TLS_RSA_WITH_AES_256_CBC_SHA はい
TLS_RSA_WITH_AES_256_CBC_SHA256 はい
TLS_RSA_WITH_AES_256_GCM_SHA384 はい
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA いいえ
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA いいえ

AgentCryptoの対称キー・アルゴリズムは、AES-128 (FIPS準拠)です

FIPSモードで新しいOMSをさらに追加するステップ

  1. プライマリOMSでのみwls証明書に戻します:

    • emctl secure wls -use_demo_cert
    • プライマリOMSをバウンスします
  2. 新しいマシンにOMSソフトウェアをインストールします

  3. 新しいOMSマシンにウォレットをコピーします

  4. RootCAをjavaトラストストアに追加します

    export ORACLE_HOME=<OMS_HOME>
    keytool -importcert -file <WalletPath ROOTCA>/cert.pem -alias emreprootca -keystore 
    $ORACLE_HOME/oracle_common/jdk/jre/lib/security/cacerts -storepass "changeit"
  5. 最初のOMSから構成の詳細をエクスポートし、bkaファイルを新しいOMSマシンにコピーします

    $<ORACLE_HOME>/bin/emctl exportconfig oms -dir <absolute_path_to_directory>
  6. OMSCAコマンドを実行します

    $<ORACLE_HOME>/bin/omsca recover -ms -backup_file <absolute_path_to_bka_file> [-AS_HTTPS_PORT <port> -MSPORT <port> -MS_HTTPS_PORT <port> -EM_NODEMGR_PORT <port> -EM_UPLOAD_PORT <port> -EM_UPLOAD_HTTPS_PORT <port> -EM_CONSOLE_PORT <port> -EM_CONSOLE_HTTPS_PORT <port> -config_home <absolute_path_to_instance_dir> -EM_INSTANCE_HOST <second_oms_host_name>] -nostart

    このコマンドは、追加の-nostartフラグを指定した「サイレント・モードでの追加のOracle Management Serviceのインストール」ステップ8のコマンドと同じです

  7. 新しいOMSで、前述のOracle HTTP Serverセクションの起動以外のすべてのステップを繰り返します。

  8. 新しいOMSで、前述のOracle Web-Logicサーバーセクションの起動以外のすべてのステップを繰り返します。

  9. 次のステップを使用して、新しいOMSを起動します:

    emctl stop oms -all
    emctl start oms
  10. カスタム証明書を使用するためにプライマリOMSを再保護します