E Oracle Database FIPS 140-2の設定
Oracleでは、米国連邦情報処理標準(FIPS)の標準である140-2がサポートされます。
- Oracle Database FIPS 140-2の設定について
連邦情報処理標準(FIPS)とは、米国商務省国立標準技術研究所(NIST)によって開発された連邦政府のコンピュータ・システムの標準およびガイドラインです。 - 透過的データ暗号化およびDBMS_CRYPTO用のFIPS 140-2の構成
DBFIPS_140
初期化パラメータで、FIPSモードを構成します。 - Transport Layer Securityに対するFIPS 140-2の構成
SSLFIPS_140
パラメータで、Transport Layer Security (TLS)のFIPSモードを構成します。 - ネイティブ・ネットワーク暗号化のためのFIPS 140-2の構成
サーバーとクライアントの両方に対して、sqlnet.ora
ファイルでパラメータを設定することで、ネイティブ・ネットワーク暗号化用にFIPS 140-2を構成できます。 - FIPS 140-2のインストール後のチェック
FIPS 140-2設定の構成後に、オペレーティング・システムで権限を確認する必要があります。 - FIPS 140-2接続の検証
トレース・ファイルおよびその他の方法を使用して、FIPS 140-2接続を検証できます。
親トピック: 付録
E.1 Oracle Database FIPS 140-2の設定について
連邦情報処理標準(FIPS)とは、米国商務省国立標準技術研究所(NIST)によって開発された連邦政府のコンピュータ・システムの標準およびガイドラインです。
FIPSは、連邦情報セキュリティ・マネジメント法(FISMA)に従って開発されました。FIPSは連邦政府で使用するために開発されましたが、多くの民間団体が自主的にこれらの基準を使用しています。
FIPS 140-2には、暗号化モジュールによって満たされるセキュリティ要件が規定されており、幅広い潜在的なアプリケーションと環境をカバーするための、4つの拡大する定性的なレベルが示されています。セキュリティ・レベル1は、FIPS 140-2アルゴリズム、キー・サイズ、整合性チェックおよび規制によって課せられるその他の要件に準拠します。FIPS 140-2のセキュリティ・レベル1では、本番グレードの設備の要件を超える、モジュールの物理的なセキュリティ・メカニズムは必要ありません。そのため、このレベルでは、指定したオペレーティング環境で実行されている汎用コンピュータでソフトウェア暗号化機能を実行できます。
FIPS 140-2設定がOracle Database用に構成されている場合、データベースはFIPS 140-2レベル1の検証済の暗号ライブラリを使用して、保存されているデータとネットワークで転送中のデータを保護します。Oracle Databaseでは、ネイティブ・ネットワーク暗号化、列および表領域の透過的データ暗号化(TDE) (Oracle SecureFilesを含む)、Transport Layer Security (TLS)、およびDBMS_CRYPTO
PL/SQLパッケージに、これらの暗号ライブラリを使用します。
Oracle Databaseでは現在、FIPS 140-2レベル1の検証済の暗号ライブラリとして、以前はRSA BSAFEと呼ばれていたDell BSAFEが使用されています。現在のFIPS認定のステータスの情報は、米国商務省国立標準技術研究所のコンピュータ・セキュリティ・リソース・センター(CSRC)のWebサイトの次のアドレスで確認できます。
http://csrc.nist.gov/groups/STM/cmvp/validation.html
検証済の暗号化モジュールでベンダー「RSA」およびモジュール名「BSAFE」を検索して、FIPS固有の情報を確認できます。
Oracle Database FIPS設定では、Oracleデータベースのみに対してFIPS承認済アルゴリズムが使用されます。FIPSモードで実行されているOracle Databaseで使用されるサード・パーティ・ベンダーのソフトウェアでは、これらのFIPS承認済アルゴリズムのみを使用する必要があります。そうしないと、ベンダーのソフトウェアに障害が発生します。
E.2 透過的データ暗号化およびDBMS_CRYPTO用のFIPS 140-2の構成
DBFIPS_140
初期化パラメータで、FIPSモードを構成します。
表E-1に、DBFIPS_140
パラメータの各プラットフォームへの作用について説明します。
表E-1 DBFIPS_140初期化パラメータのプラットフォームへの作用
プラットフォーム | DBFIPS_140をTRUEまたはFALSEに設定した場合の効果 |
---|---|
Intel x86_64上のLinuxまたはWindows |
|
SPARC TシリーズまたはIntel x86_64上のSolaris 11.1+ |
|
他のオペレーティング・システムまたはハードウェア |
|
DBFIPS_140
をTRUE
に設定し、基礎となるライブラリをFIPSモードで使用すると、各プロセスで初めてライブラリをロードする際、一定のオーバーヘッドが生じることに注意してください。これは、署名の検証およびライブラリに対する自己テストの実行によるものです。ライブラリのロード後は、パフォーマンスへの影響はありません。
関連トピック
E.3 Transport Layer Securityに対するFIPS 140-2の構成
SSLFIPS_140
パラメータで、Transport Layer Security (TLS)のFIPSモードを構成します。
- Transport Layer Security用のSSLFIPS_140およびSSLFIPS_LIBパラメータの構成
TLS用にFIPS 140-2を構成するには、SSLFIPS_140
パラメータを設定する必要があります。Oracle Instant Clientを使用している場合は、SSLFIPS_LIB
パラメータも設定する必要があります。 - FIPS 140-2用に承認されているTLS暗号スイート
暗号スイートは、ネットワーク・ノード間でメッセージを交換する認証、暗号化およびデータ整合性アルゴリズムのセットです。
E.3.1 Transport Layer Security用のSSLFIPS_140およびSSLFIPS_LIBパラメータの構成
TLS用にFIPS 140-2を構成するには、SSLFIPS_140
パラメータを設定する必要があります。Oracle Instant Clientを使用している場合は、SSLFIPS_LIB
パラメータも設定する必要があります。
SSLFIPS_140
パラメータで、Transport Layer Security (TLS)アダプタをFIPSモードで実行するように構成します。SSLFIPS_LIB
で、FIPSライブラリの場所を設定します。
fips.ora
ファイルが$ORACLE_HOME
/ldap/admin
ディレクトリにあるか、またはFIPS_HOME
環境変数で指定された場所にあることを確認します。fips.ora
ファイルで、SSLFIPS_140
およびSSLFIPS_LIB
パラメータを設定します。SSLFIPS_140
をTRUE
に設定し、TLSアダプタをFIPSモードで実行できるようにします。たとえば:SSLFIPS_140=TRUE
このパラメータは、デフォルトでは
FALSE
です。- Oracle Instant Clientを使用している場合は、
SSLFIPS_LIB
をFIPSライブラリの場所に設定します。たとえば:SSLFIPS_LIB=$ORACLE_HOME/lib
- 任意のデータベース・サーバーまたはクライアントの任意のOracle Databaseホームでこの手順を繰り返します。
SSLFIPS_140
をTRUE
に設定した場合、Transport Layer Security暗号操作はFIPSモードの埋込みRSA/Micro Edition Suite (MES)ライブラリで行われます。ハードウェア・アクセラレーションが使用可能でホスト・ハードウェアおよびソフトウェアで適切に構成されている場合、これらの暗号操作はCPUによって高速化されます。
SSLFIPS_140
をFALSE
に設定した場合、Transport Layer Security暗号操作は、非FIPSモードの埋込みRSA/Micro Edition Suite (MES)ライブラリで行われ、TRUE
に設定した場合と同様に、可能な場合は操作が高速化されます。
ノート:
Oracle Database 10g リリース2 (10.2)で使用されたSQLNET.SSLFIPS_140
パラメータは、SSLFIPS_140
パラメータに置換されます。このパラメータは、sqlnet.ora
ファイルではなくfips.ora
ファイルで設定する必要があります。
E.3.2 FIPS 140-2用に承認されているTLS暗号スイート
暗号スイートは、ネットワーク・ノード間でメッセージを交換する認証、暗号化およびデータ整合性アルゴリズムのセットです。
たとえば、TLSハンドシェイク時に、メッセージを送受信するときに使用する暗号スイートを確認するために2つのノード間でネゴシエーションが行われます。
特定の暗号スイートの構成
Oracle DatabaseのTLS暗号スイートは、FIPS認定の暗号スイートに自動的に設定されます。特定の暗号スイートを構成する必要がある場合は、sqlnet.ora
またはlistener.ora
ファイルでSSL_CIPHER_SUITES
パラメータを設定します。
SSL_CIPHER_SUITES=(SSL_cipher_suite1[,SSL_cipher_suite2[,..]])
このパラメータは、Oracle Net Managerを使用してサーバーおよびクライアントで設定することもできます。
特定の暗号スイートを指定しなかった場合、Oracle Databaseでは、データベース・サーバーとクライアントの両方に共通の、最も強力な暗号スイートが使用されます。選択される暗号スイートの優先順位は、次の優先暗号リストおよび低優先暗号リストに示されている順となります。3DES暗号スイートには脆弱性があるため、Oracle Databaseでは、それらは自動的には選択されません。それらは明示的に構成する必要があります。
優先暗号スイート
トランスポート層セキュリティ(TLS)バージョン1.2を使用している場合は、次の暗号スイートがFIPS検証用に承認されています。
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
トランスポート層セキュリティ(TLS)バージョン1、1.1または1.2を使用している場合は、次の暗号スイートがFIPS検証用に承認されています。
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
3DESベース暗号スイート
3DESベース暗号スイートは設計に脆弱性があるため、Oracleではそれらは推奨されていません。Oracle Databaseリリース21c以上では、次の3DESベース暗号スイートがサポートされています。ただし、それらはデフォルトでは有効になっておらず、sqlnet.ora
またはlistener.ora
ファイル内のSSL_CIPHER_SUITES
パラメータを使用して明示的に構成する必要があります。
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
E.4 ネイティブ・ネットワーク暗号化のためのFIPS 140-2の構成
サーバーとクライアントの両方に対して、sqlnet.ora
ファイルでパラメータを設定することで、ネイティブ・ネットワーク暗号化用にFIPS 140-2を構成できます。
- ネイティブ・ネットワーク暗号化のためのFIPS 140-2の構成について
ネイティブ・ネットワーク暗号化のためのFIPS 140-2の構成は、Transport Layer Security (TLS)の構成に似ています。 - ネイティブ・ネットワーク暗号化のためのFIPS_140パラメータの構成
ネイティブ・ネットワーク暗号化用にFIPS 140-2を構成するには、sqlnet.ora
ファイルでFIPS_140
パラメータを設定する必要があります。
E.4.1 ネイティブ・ネットワーク暗号化のためのFIPS 140-2の構成について
ネイティブ・ネットワーク暗号化のためのFIPS 140-2の構成は、Transport Layer Security (TLS)の構成に似ています。
ネットワーク・ネイティブ暗号化の場合は、fips.ora
のSSL_FIPS140
設定ではなく、sqlnet.ora
構成ファイルでSSL_FIPS140
を設定してFIPSモードを有効にします。
ネイティブ・ネットワーク暗号化向けにFIPSライブラリでサポートされているアルゴリズムは、次のとおりです。
- 暗号化: AES128、AES192およびAES256
- チェックサム: SHA1、SHA256、SHA384およびSHA512
E.4.2 ネイティブ・ネットワーク暗号化のためのFIPS_140パラメータの構成
ネイティブ・ネットワーク暗号化用にFIPS 140-2を構成するには、sqlnet.ora
ファイルでFIPS_140
パラメータを設定する必要があります。
FIPS_140
パラメータで、FIPSモードで実行するようにネイティブ・ネットワーク暗号化アダプタを構成します。
FIPS_140
がTRUE
に設定されている場合、ネイティブ・ネットワーク暗号化の暗号操作は、FIPSモードの埋込みBSAFE Micro Edition Suite (MES)ライブラリで行われます。ハードウェア・アクセラレーションが使用可能でホスト・ハードウェアおよびソフトウェアで適切に構成されている場合、これらの暗号操作はCPUによって高速化されます。
E.5 FIPS 140-2のインストール後のチェック
FIPS 140-2設定の構成後に、オペレーティング・システムで次の権限を確認する必要があります。
その権限を次に示します。
-
システムのセキュリティ・ポリシーに従って、権限のないユーザーがOracle Cryptographic Librariesを実行できないようにするには、すべてのOracle実行可能ファイルに対して実行権限を設定する必要があります。
-
ユーザーが誤ってまたは故意にOracle Cryptographic Librariesのファイルを読み取ったり変更しないようにするには、すべてのOracle実行可能ファイルに対して読取りおよび書込み権限を設定する必要があります。
FIPS 140-2 Level 2要件に準拠するには、権限のないユーザーが、オペレーティング・システムで使用しているOracle Cryptographic Librariesのプロセスおよびメモリーの読取り、変更または実行を行えないようにする手順をセキュリティ・ポリシーに含めます。
E.6 FIPS 140-2接続の検証
トレース・ファイルおよびその他の方法を使用して、FIPS 140-2接続を検証できます。
- Transport Layer Securityに対するFIPS 140-2接続の検証
トレース・ファイルを使用して、Transport Layer Security (TLS)に対するFIPS 140-2接続を確認できます。 - ネットワーク・ネイティブ暗号化に対するFIPS 140-2接続の検証
トレース・ファイルを使用して、ネットワーク・ネイティブ暗号化に対するFIPS 140-2接続を確認できます。 - 透過的データ暗号化およびDBMS_CRYPTOに対するFIPS 140-2接続の検証
SQL*Plusを使用して、FIPSモードが有効になっているかどうかを確認できます。
E.6.1 Transport Layer Securityに対するFIPS 140-2接続の検証
トレース・ファイルを使用して、Transport Layer Security (TLS)に対するFIPS 140-2接続を確認できます。
親トピック: FIPS 140-2接続の検証
E.6.2 ネットワーク・ネイティブ暗号化に対するFIPS 140-2接続の検証
トレース・ファイルを使用して、ネットワーク・ネイティブ暗号化に対するFIPS 140-2接続を確認できます。
親トピック: FIPS 140-2接続の検証
E.6.3 透過的データ暗号化およびDBMS_CRYPTOに対するFIPS 140-2接続の検証
SQL*Plusを使用して、FIPSモードが有効になっているかどうかを確認できます。
親トピック: FIPS 140-2接続の検証