8 Oracle Fusion MiddlewareでのFIPS 140のサポート
- FIPS標準について
FIPS (Federal Information Processing Standards)は、米国商務省の標準技術局(National Institute of Standards and Technology: NIST)によって発行されている一連の標準で、コンピュータ・システムおよびネットワークのセキュリティを評価するのに使用されます。 - Oracle Fusion Middlewareリリース12cでのFIPS 140-2について
Oracle Fusion Middleware Release 12c (12.2.1.2)では、FIPS 140-2対応の暗号化ライブラリを使用できます。 - FIPS 140によりサポートされているコンポーネント
Oracle Fusion MiddlewareでFIPS 140を取り扱う場合は、特定の機能がFIPS 140モードで動作できるようなミドルウェア・スタックの様々なレイヤーにある個別のコンポーネントに注意してください。スタック内のいずれかのコンポーネントが非FIPS 140モードで動作している場合、トランザクションがFIPS 140に準拠していない可能性があります。このため、関連コンポーネントがすべてFIPS 140モードで動作していることを確認することが重要になります。 - 業務系FIPS 140-2環境の一般的なシナリオ
機能の実装およびクライアントとサーバー間の接続の確立は、FIPS 140–2環境での操作中に使用または発生する可能性があるシナリオです。各コンポーネントのシナリオでは、対応する通信プロトコルおよび署名アルゴリズムを使用します。 - FIPS 140問題のトラブルシューティング
Oracle Fusion Middlewareの様々なコンポーネントについてFIPS 140を構成しているときに問題が発生し、そのトラブルシューティング方法についての情報が必要となる場合があります。
親トピック: セキュアな通信
FIPS標準について
FIPS (Federal Information Processing Standards)は、米国商務省の標準技術局(National Institute of Standards and Technology: NIST)によって発行されている一連の標準で、コンピュータ・システムおよびネットワークのセキュリティを評価するのに使用されます。
FIPS標準の1つであるFIPS 140-2は、機密情報を保護するために暗号化モジュールが満たしている必要があるセキュリティ要件を規定しています。この標準では、暗号化モジュールを使用する可能性のある幅広いアプリケーションおよび環境に対応するために、質的に拡張された4段階のセキュリティレベルが指定されています。
ノート:
この章では以降、用語「FIPS 140」はFIPS 140-2標準のことを意味しています。
Oracle Fusion Middlewareリリース12cでのFIPS 140-2について
Oracle Fusion Middlewareリリース12c (12.2.1.2)では、FIPS 140-2対応の暗号化ライブラリを使用できます。
FIPS 140モードで動作する機能は、汎用的で製品スイート全体にわたる要求ではありません。それよりはむしろ、関連するOracle Fusion Middleware 12c (12.2.1.2)製品コンポーネントによってサポートされているシナリオおよびトランザクションの定義済セットに固有のものです。また、認証、許可、機密保護、整合性など、セキュリティの影響を受けるタスクをサポートまたは実行するために検証済の暗号化が使用される箇所に適用されます。
セキュリティの影響を受けない他のタスクで暗号化サービスを使用する場合は、FIPS 140コンプライアンスに従う必要はありません。Oracle Fusion Middleware 12c (12.2.1.2)では、セキュリティの影響を受けるシナリオでFIPS 140モードを有効化できると同時に、このモードで動作する必要がない製品機能にも対応して共存することが可能です。
- FIPS 140-2検証済ライブラリについて
Oracle Fusion Middleware 12c (12.2.1.2)には、FIPS 140動作をサポートするために、RSA (EMCのセキュリティ部門)のFIPS 140検証済RSAライブラリが組み込まれています。FIPS 140の下で承認されていないアルゴリズムは、RSAライブラリでは無効化されています。 - プロバイダおよびアルゴリズムの選択について
FIPS 140は、JavaプラットフォームのJava暗号化アーキテクチャ(JCA)のコンテキストに従ってOracle Fusion Middlewareに実装されます。セキュリティの影響を受けるタスク用のFIPS 140検証済アルゴリズムと、その他のタスク用のアルゴリズムを共存させるために、FIPS 140検証済RSAライブラリでサポートされていない機能、およびFIPS 140検証済RSAライブラリでは無効化されている特定の非準拠暗号化機能(MD5など)にも対応するように、追加の暗号化プロバイダ・サービスを構成します。
FIPS 140-2検証済ライブラリについて
Oracle Fusion Middleware 12c (12.2.1.2)には、FIPS 140動作をサポートするために、RSA (EMCのセキュリティ部門)のFIPS 140検証済RSAライブラリが組み込まれています。FIPS 140の下で承認されていないアルゴリズムは、RSAライブラリでは無効化されています。
このライブラリは、RSAバージョン6.2 BSAFEおよびJCEソフトウェアを基本にしており、次のモジュールが含まれています。
-
Crypto-J V6.2.0.1
-
SSL-J V6.2
-
Cert-J V6.2
FIPS 140-2のサポートにはJDK 8が必要です。Fusion Middleware 12cでは、Oracle JDK 1.7.0_80以降を使用します。
RSAキーを引き続きサポートすることに加え、Oracle Fusion Middleware 12c (12.2.1.2)では楕円曲線暗号方式(ECC)もサポートします。ECCは、より小さいキー・サイズで同等のセキュリティを提供し、結果的に高速計算と、低電力消費、およびメモリーと帯域の節約が得られる魅力的な公開キー暗号化として新たに使用されるようになったものです。
ノート:
これらは、発行時点におけるFIPS 140認証済ライブラリおよびモジュール・バージョンです。ただし、動作保証時から製品の実際の出荷時までの間にベンダーによりパッチが発行されている場合があるため、インストール時に実際に有効なバージョンは、ここで示されているバージョンとは多少異なることがあります。この場合、実際のバージョンは、動作保証されたバージョンのドット・リリースになります。
バージョン番号は単なる参考情報であり、アルゴリズムの動作保証とセキュリティ強度について別個検証を行う必要があります。
FIPS 140標準およびアルゴリズムのバックグラウンドの詳細は、FIPS 140-2ドキュメントを参照してください。
http://csrc.nist.gov/publications/PubsFIPS.html
プロバイダおよびアルゴリズムの選択について
FIPS 140は、JavaプラットフォームのJava暗号化アーキテクチャ(JCA)のコンテキストに従ってOracle Fusion Middlewareに実装されます。セキュリティの影響を受けるタスク用のFIPS 140検証済アルゴリズムと、その他のタスク用のアルゴリズムを共存させるために、FIPS 140検証済RSAライブラリでサポートされていない機能、およびFIPS 140検証済RSAライブラリでは無効化されている特定の非準拠暗号化機能(MD5など)にも対応するように、追加の暗号化プロバイダ・サービスを構成します。
基本的なフローは次のとおりです。
-
アプリケーション(たとえば、外部Webクライアント、Oracle HTTP Serverなど)が、WebLogic Serverなどのサーバーに対してサービスまたは接続をリクエストします。このリクエストには通常、転送されるデータ・パケットなどの「ペイロード」が含まれています。
-
JCAがこのリクエストを評価し、FIPS 140コンプライアンスが必要であるかどうかを判別します。
-
このリクエストはJCAの「プロバイダ」フレームワークにルーティングされますが、ここには、デジタル署名、メッセージ・ダイジェスト(ハッシュ)、証明書、証明書検証、暗号化およびその他の暗号化サービス用の一連の(FIPS 140準拠および非準拠の)プロバイダが含まれています。
-
このプロバイダは優先順位に従って検索され、正しいアルゴリズムを提供している最初のプロバイダの実装が返されます。セキュリティの影響を受ける状況の場合、暗号化操作を実行するのに使用されるのはFIPS 140準拠のアルゴリズムのみです。
図8-1に、このフローを示します。
-
左側の最初のリクエストは、セキュリティの影響を受けるシナリオで実行されます。JCAは、RSA暗号化ライブラリのSHA-256プロバイダを使用してこのリクエストを処理し、FIPS 140ペイロードを配信します。
-
右側の2番目のリクエストは、セキュリティの影響を受けないシナリオで実行されます。JCAは、非暗号化ライブラリのMD5プロバイダを使用して、非FIPS 140ペイロードが含まれたこのリクエストを処理します。
このように、FIPS 140に準拠することを目的としたHTTPS/TLSインバウンドおよびアウトバウンド通信などの、セキュリティの影響を受けるシナリオでは、FIPS 140検証済RSAライブラリで使用可能な暗号化機能のみを使用して、HTTPS/TLSネットワーク・ペイロードを暗号化して署名します。
FIPS 140によりサポートされているコンポーネント
Oracle Fusion MiddlewareでFIPS 140を取り扱う場合は、特定の機能がFIPS 140モードで動作できるようなミドルウェア・スタックの様々なレイヤーにある個別のコンポーネントに注意してください。スタック内のいずれかのコンポーネントが非FIPS 140モードで動作している場合、トランザクションがFIPS 140に準拠していない可能性があります。このため、関連コンポーネントがすべてFIPS 140モードで動作していることを確認することが重要になります。
表8-1に、FIPS 140を有効化できるコンポーネントを一覧表示し、その詳細について説明します。
-
コンポーネントが存在するOracle Fusion Middlewareレイヤー
-
コンポーネント名
-
FIPS 140対応が可能なシナリオ
-
詳細の製品ドキュメントに対する相互参照(FIPS 140を有効化または無効化する方法、その他の関連する構成の詳細、FIPS 140検証済暗号化を使用できる製品機能を含む)
ノート:
一覧表示されている各コンポーネントのすべての機能がFIPS 140に準拠しているとはかぎりません。FIPS 140をサポートしているのは指定された機能のみです。
表8-1 Oracle Fusion MiddlewareでFIPS 140-2がサポートされているコンポーネント
コンポーネント・レイヤー | コンポーネント | 機能 | 詳細 |
---|---|---|---|
Fusion Middlewareコア |
Oracle HTTP Server |
ノート: OHSからWLSへのアウトバウンド接続の場合、FIPSをWebLogic (インバウンド接続用)で有効にし、OHSとWLS間のFIPS通信を有効にする必要があります。 |
『Oracle HTTP Serverの管理』の次の各項目:
|
Fusion Middlewareコア |
Oracle WebLogic Server |
|
『Oracle WebLogic Serverセキュリティの管理』のFIPSモードの有効化に関する項 『Oracle WebLogic Server WebLogic Webサービスの保護』のSHA-256セキュア・ハッシュ・アルゴリズムの使用に関する項 『Oracle WebLogic Server JDBCデータ・ソースの管理』の暗号化済接続プロパティの使用に関する項 |
Fusion Middlewareコア |
Oracle Platform Security Services |
|
『Oracle Platform Security Servicesによるアプリケーションの保護』のOPSSでのFIPSのサポートに関する項 |
Fusion Middlewareコア |
Oracle Web Services Manager。 |
|
『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のサポートされているアルゴリズム・スイートに関する項 |
Fusion Middlewareコア |
Oracle SOA Suite |
|
『Oracle Service Busでのサービスの開発』のSFTPトランスポートのFIPS準拠に関する項 『テクノロジ・アダプタの理解』のOracleファイルおよびFTPアダプタのFIPS準拠の有効化に関する項 |
Fusion Middlewareコア |
Oracle Traffic Director |
|
『Oracle Traffic Directorの管理』の「セキュリティの管理」 |
データベース |
Oracleデータベース |
|
『Oracle Databaseセキュリティ・ガイド』の「Oracle DatabaseのFIPS 140–2設定」 |
ノート:
データベースは参照用です。サポートされているバージョンおよびその他の詳細は、動作保証マトリックスを参照してください。
OHS、OWLS、OPSSおよびOWSMのSSL FIPS 140-2の詳細は、My Oracle Supportのサポート・ドキュメント2115681.1を参照してください。My Oracle Supportにはhttps://support.oracle.com/からアクセスできます。
業務系FIPS 140-2環境の一般的なシナリオ
機能の実装およびクライアントとサーバー間の接続の確立は、FIPS 140–2環境での操作中に使用または発生する可能性があるシナリオです。各コンポーネントのシナリオでは、対応する通信プロトコルおよび署名アルゴリズムを使用します。
表8-1に、FIPS 140-2機能を備えたOracle Fusion Middlewareのコンポーネントを示します。表8-2に、コンポーネント・シナリオごとの一般的なプロトコルを一覧表示します。
ノート:
これらは代表的なシナリオであり、この表は使用可能なすべてのシナリオの包括的なリストを提供することが目的ではありません。
表8-2 FIPS 140-2のシナリオ
機能または接続 | 通信プロトコル | 署名アルゴリズムおよびプロトコルの詳細 |
---|---|---|
外部WebクライアントまたはアプリケーションからOracle HTTP Serverへのインバウンド接続 |
|
HTTPSサーバー(TLS、相互認証、SHA-256 X.509証明書を備えたRSA-2048、AES-256バルク・データ暗号化、ECDSA署名アルゴリズムおよびECDHキー合意) |
Oracle HTTP ServerからOracle WebLogic Serverへのアウトバウンド接続 |
|
HTTPSクライアント(TLS、相互認証、SHA-256 X.509証明書を備えたRSA-2048、AES-256バルク・データ暗号化、ECDSA署名アルゴリズムおよびECDHキー合意) |
外部WebクライアントまたはアプリケーションからOracle WebLogic Serverへのインバウンド接続 |
|
HTTPSサーバー(TLS、相互認証、SHA-256 X.509証明書を備えたRSA-2048、AES-256バルク・データ暗号化) |
Oracle WebLogic Serverから外部Webサーバー、プロキシ・サーバーまたはアプリケーション・サーバーへのアウトバウンド接続 |
|
HTTPSクライアント(TLS、相互認証、SHA-256 X.509証明書を備えたRSA-2048、AES-256バルク・データ暗号化) |
Oracle WebLogic ServerからOracle Database 11gR2へのアウトバウンド接続 |
|
JDBC (TLS、相互認証、SHA-256 X.509証明書を備えたRSA-2048、AES-256バルク・データ暗号化) |
Oracle Web Services Managerを使用したSOAPメッセージ用のXMLメッセージ保護(XML署名) |
|
XML署名(RSA-SHA256、HMAC-SHA256)、全文、SwAアタッチメントを含める |
Oracle Web Services Managerを使用したSOAPメッセージ用のXMLメッセージ保護(XML暗号化) |
|
XML署名(RSA-SHA256、HMAC-SHA256)、全文、SwAアタッチメントを含める |
Oracle WebLogic ServerへのインバウンドJMS接続 |
|
JMS/TLS |
Oracle WebLogic ServerからのアウトバウンドJMS接続 |
|
JMS/TLS |
デプロイ済コンポーネントからのセキュアなJNDI参照 |
|
T3S |
サーバーへのセキュアな管理者アクセス |
|
T3S |
キーストアおよび証明書の生成 |
|
RSA 2048、AES 256、SHA-2 |
ハッシング・アルゴリズム、パスワードベースの暗号化 |
|
SHA-2 |
SOAサービスベースのコンポーネント用のOracle Service Bus |
サービス・タイプ用のSFTPトランスポート:
|
公開キー・アルゴリズム(diffie-hellman-group14-sha1) キー交換アルゴリズム(ssh-rsa) |
Managed File Transfer (MFT)
|
ファイル・トランスポート:
|
一般的なアルゴリズム
|
JCAアダプタ |
ファイル転送プロトコル |
|
ノート:
特に指示のないかぎり、すべてのコンポーネント・サーバーはリリース12c (12.2.1.2).です。
FIPS 140問題のトラブルシューティング
Oracle Fusion Middlewareの様々なコンポーネントについてFIPS 140を構成しているときに問題が発生し、そのトラブルシューティング方法についての情報が必要となる場合があります。
この項では、FIPS 140構成で発生した問題をトラブルシューティングする方法について説明します。この項の内容は、次のとおりです。
- スタンドアロンWebLogic ServerにおけるFIPS 140のトラブルシューティング
WebLogic Serverおよびデータ・ソースのプロパティの構成時に、スタンドアロンOracle WebLogic ServerのFIPS 140モードをトラブルシューティングするには、次のステップを実行します。 - Oracle Platform Security ServicesにおけるFIPS 140のトラブルシューティング
Oracle Platform Security Services (OPSS)におけるFIPS構成の様々な段階で発生する問題をトラブルシューティングする方法について説明します。 - Oracle Web Services ManagerにおけるFIPS 140のトラブルシューティング
メッセージ保護ポリシー実行時にOracle Web Services Managerで発生する問題をトラブルシューティングする方法について説明します。 - データベースおよびJDBCドライバにおけるFIPS 140のトラブルシューティング
このトピックでは、データベースに関連するデータ・ソースの問題を含め、データベースおよびJDBCドライバのセキュリティ構成に関する情報を示します。
スタンドアロンWebLogic ServerにおけるFIPS 140のトラブルシューティング
WebLogic Serverおよびデータ・ソースのプロパティの構成時に、スタンドアロンOracle WebLogic ServerのFIPS 140モードをトラブルシューティングするには、次のステップを実行します。
WebLogic Serverの構成時
-
jcmFIPS.jarおよびsslj.jarの先頭にサーバーのCLASSPATHが付加されていることを確認します。
-
*
AES_256*
暗号スイートを明示的に検証するために、JAVA_HOME/jre/lib/securityディレクトリにあるlocal_policy.jarおよびUS_export_policy.jarを、セキュリティ強度制限のない対応するファイルで更新します。 -
リストの上部にsecurity.provider.1=com.rsa.jsafe.provider.JsafeJCEおよびsecurity.provider.2=com.rsa.jsse.JsseProviderを追加して、JAVA_HOME/jre/lib/security/java.securityを変更します。
Oracle WebLogic ServerのFIPSモードの詳細は、『Oracle WebLogic Serverセキュリティの管理』のFIPSモードの有効化を参照してください。
データ・ソースの構成時
DataSourceプロパティoracle.net.ssl_version
の値が1.0に設定されていることを確認します。
ノート:
oracle.net.ssl_version
は、オプションのOracle WebLogic Server DataSource構成プロパティです。値1.0は、TLS v1.0プロトコルを介して接続されていることを示します。
親トピック: FIPS 140問題のトラブルシューティング
Oracle Platform Security ServicesにおけるFIPS 140のトラブルシューティング
Oracle Platform Security Services (OPSS)におけるFIPS構成の様々な段階で発生する問題をトラブルシューティングする方法について説明します。
WebLogicドメインの作成時
FIPS 140モードでのドメインの作成時に、wlsconfig_xxxxx.log
に次の例外が表示される場合があります。
"CFGFWK-60455: The password must be at least 8 alphanumeric characters with at least one number or special character." "Caused by: java.lang.NoSuchMethodError: com.rsa.jsafe.JSAFE_SecretKey.generateInit([ILjava/security/SecureRandom;)"
この例外は、cryptoJ 5 jarを使用している場合に発生することがあります。このエラーを回避するために、cryptoJ 6 jarを使用してOracle WebLogic Serverがインストールされていることを確認してください。
ドメイン・キーストアからのエクスポート時
FIPS 140対応のドメインでJKSおよびJCEKSタイプのキーストアを使用している場合は、次のエラーが表示されます。
Command FAILED, Reason: oracle.security.jps.service.keystore.KeyStoreServiceException: Failed to export the keystore
この場合は、java.security
ファイルで次のプロバイダが構成されていることを確認してください。
sun.security.provider.Sun com.sun.crypto.provider.SunJCE
キーまたは証明書の生成時
パスワードによる保護でキーまたは証明書を生成するときに、次のエラーが表示される場合があります。
javax.management.MBeanException: javax.management.MBeanException: oracle.security.jps.service.keystore.KeyStoreServiceException: Failed to generate CA signed certificate.
権限による保護を必ず使用してください。
親トピック: FIPS 140問題のトラブルシューティング
Oracle Web Services ManagerにおけるFIPS 140のトラブルシューティング
メッセージ保護ポリシー実行時にOracle Web Services Managerで発生する問題をトラブルシューティングする方法について説明します。
メッセージ保護ポリシー実行時
Oracle Web Services Managerでメッセージ保護ポリシー実行時にこのエラーが表示される場合があります。
Caused by: java.lang.SecurityException: Algorithm not allowable in FIPS140 mode: MD5 at com.rsa.cryptoj.o.cc.b(Unknown Source) at com.rsa.cryptoj.o.cc.f(Unknown Source)
この場合は、メッセージ保護実行時に使用されている証明書が、SHA1WithRSAやSHA256WithRSAなどのFIPS 140に準拠したアルゴリズムを使用して生成されていることを確認してください。
メッセージ保護ポリシー実行時に、JKSキーストアに対してこのエラーが表示される場合があります。
oracle.fabric.common.PolicyEnforcementException: WSM-00143 : Failure creating Java Keystore instance for type JKS.
この場合は、JDKでsun.security.provider.Sun
が構成されていることを確認してください。
親トピック: FIPS 140問題のトラブルシューティング
データベースおよびJDBCドライバにおけるFIPS 140のトラブルシューティング
このトピックでは、データベースに関連するデータ・ソースの問題を含め、データベースおよびJDBCドライバのセキュリティ構成に関する情報を示します。
詳細は、Oracle Technology Networkでホワイト・ペーパー『Oracle JDBCシン・ドライバを使用したSSL』を参照してください。
http://www.oracle.com/technetwork/middleware/id-mgmt/documentation/index.html
親トピック: FIPS 140問題のトラブルシューティング