この付録の内容は次のとおりです。
この付録では、米国連邦情報処理標準(FIPS)の現在の標準である140-2および140-1用にOracle Databaseを構成する方法について説明します。現在の動作保証のステータスの情報は、米国標準技術局(National Institute of Standards and Technology)のコンピュータ・セキュリティ・リソース・センター(Computer Security Resource Center: CSRC)のWebサイトの次のアドレスで確認できます。
FIPS固有の情報は、Validated FIPS 140 Cryptographic Modules
を検索してください。このサイトで証明書の検証に成功すると使用できるようになるセキュリティ・ポリシーには、ホスト・オペレーティング・システムのセキュアな構成に関する要件が含まれています。
この項の内容は次のとおりです。
Oracle Database 10gに含まれるSSLの暗号ライブラリは、FIPS 140-2 Level 2の証明書に準拠するように設計されています。Oracle Advanced Securityでは、SSL認証にこれらの暗号ライブラリが使用されます。
この付録に示す手順は、Oracle Databaseリリース11.2.0.4以降に適用されます。リリース11.2.0.4へのアップグレードの詳細は、Oracle Technology Networkのサイトを参照してください。
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index-092322.html
Oracle Advanced SecurityのSSLアダプタは、fips.ora
ファイルのSSLFIPS_140
パラメータをTRUE
に設定することによって、FIPSモードで実行するように構成できます。
SSLFIPS_140=TRUE
このパラメータは、デフォルトでFALSE
に設定されています。FIPSモードで操作するには、クライアントとサーバーの両方でTRUE
に設定する必要があります。
fips.ora
ファイルが$ORACLE_HOME
/ldap/admin
ディレクトリにあるか、またはFIPS_HOME
環境変数によって指定されていることを確認します。この手順は、任意のデータベース・サーバーまたはクライアントの任意のOracleホームで繰り返すことができます。
注意: Oracle Database 10g リリース2 (10.2)で使用されたSQLNET.SSLFIPS_140 パラメータは、SSLFIPS_140パラメータに置換されます。このパラメータは、sqlnet.ora ファイルではなくfips.ora ファイルで設定する必要があります。 |
暗号スイートは、ネットワーク・ノード間でメッセージを交換するために使用される認証、暗号化およびデータ整合性のアルゴリズムのセットです。たとえば、SSLハンドシェイク時に、メッセージを送受信するときに使用する暗号スイートを確認するために2つのノード間でネゴシエーションが行われます。
FIPS検証では、次の暗号スイートのみが承認されます。
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA
SSL_RSA_WITH_AES_256_CBC_SHA
SSL_RSA_WITH_AES_128_CBC_SHA
SSL_RSA_WITH_3DES_EDE_CBC_SHA
Oracle Advanced SecurityのSSL暗号スイートは、FIPS認定の暗号スイートに自動的に設定されます。特定の暗号スイートを設定する場合は、sqlnet.ora
またはlistener.ora
ファイルでSSL_CIPHER_SUITES
パラメータを編集します。
SSL_CIPHER_SUITES=(SSL_cipher_suite1[,SSL_cipher_suite2[,..]])
このパラメータは、Oracle Net Managerを使用してサーバーおよびクライアントで設定することもできます。
関連項目: 暗号スイートの設定の詳細は、「手順2C: サーバーでのSecure Sockets Layer暗号スイートの設定(オプション)」および「手順3D: クライアントのSecure Sockets Layer暗号スイートの設定(オプション)」を参照してください。 |
インストール後に、オペレーティング・システムで次の権限を確認する必要があります。
システムのセキュリティ・ポリシーに従って、権限のないユーザーがOracle Cryptographic Librariesを実行できないようにするには、すべてのOracle実行可能ファイルに対して実行権限を設定する必要があります。
ユーザーが誤ってまたは故意にOracle Cryptographic Librariesのファイルを読み取ったり変更しないようにするには、すべてのOracle実行可能ファイルに対して読取りおよび書込み権限を設定する必要があります。
FIPS 140-2 Level 2要件に準拠するには、権限のないユーザーが、オペレーティング・システムで使用しているOracle Cryptographic Librariesのプロセスおよびメモリーの読取り、変更または実行を行えないようにする手順をセキュリティ・ポリシーに含める必要があります。
FIPSモードが有効かどうかを確認するために、sqlnet.ora
ファイルにトレースを追加できます。FIPSの自己テスト・メッセージはトレース・ファイルにあります。トレースを有効にするには、sqlnet.ora
に次の行を追加します。
trace_directory_server=trace_dir trace_file_server=trace_file trace_level_server=trace_level
例:
trace_directory=/private/oracle/owm trace_file_server=fips_trace.trc trace_level_server=6
トレース・レベル6は、FIPSの自己テストの結果を確認するために必要な最低限のトレース・レベルです。
この項の内容は次のとおりです。
Oracle Database FIP 140-1実装は、米国連邦情報処理標準(FIPS) 140-1 Level 2セキュリティ・レベルで検証されています。この付録では、FIPS 140-1標準に準拠するために必要となる正式な構成について説明します。次のWebサイトで、NIST Cryptographic Modules Validationのリストを参照してください。
http://csrc.nist.gov/cryptval/140-1/1401val.htm
この付録には、クライアントとサーバー間で作成されるすべての接続をサーバーの制御下で暗号化するために、sqlnet.ora
ファイル内に指定する必要があるOracle Advanced Securityパラメータに関する情報が含まれています。
構成パラメータは、クライアントおよびサーバーのプロセスごとにローカルに保持されるsqlnet.ora
ファイルに格納されています。これらのファイルは、DBAのレベルと同等のレベルで保護する必要があります。
この付録では、次の構成パラメータについて説明します。
ENCRYPTION_SERVER
ENCRYPTION_CLIENT
ENCRYPTION_TYPES_SERVER
ENCRYPTION_TYPES_CLIENT
FIPS_140
サーバー側のネゴシエーションにより、概念上、接続の設定が制御されます。サーバー・ファイル内の次のパラメータは必須です。
SQLNET.ENCRYPTION_SERVER=REQUIRED
接続のサーバー側で暗号化をREQUIRED
に設定すると、クライアントのパラメータ値に関係なく、暗号化が使用される場合にのみ接続が許可されます。
ENCRYPTION_CLIENT
パラメータは、クライアントの接続動作を指定します。クライアント・ファイル内の次のパラメータ設定のいずれかが必須です。
SQLNET.ENCRYPTION_CLIENT=(ACCEPTED|REQUESTED|REQUIRED)
サーバーへの接続は、接続の暗号化についてクライアントとサーバー間に合意がある場合にのみ可能です。サーバーで値がREQUIRED
に設定されているため、有効な接続を確立するためにはクライアントは暗号化を拒否できません。これらの値のいずれかを指定しないと、FIPS 140-1準拠のサーバーに接続するときにエラーが発生します。
ENCRYPTION_TYPES_SERVER
パラメータは、サーバーが、サーバーとして動作するときに使用できる暗号化アルゴリズムのリストを、必要な使用順序で指定します。指定したアルゴリズムがインストールされていないと、接続が終了します。FIPS 140-1に準拠するためには、DES暗号化のみが許可されることから、次のパラメータ設定が必須となります。
SQLNET.ENCRYPTION_TYPES_SERVER=(DES,DES40)
ENCRYPTION_TYPES_CLIENT
パラメータでは、クライアントがサーバーとの接続に使用する準備ができている暗号化アルゴリズムのリストを指定します。正常に接続するには、まずアルゴリズムがインストールされている必要があり、暗号化タイプがサーバーに対して相互に使用可能である必要があります。
FIPS 140-1用に構成されたサーバーとの接続を作成するには、次のパラメータ設定が必須です。
SQLNET.ENCRYPTION_TYPES_CLIENT=(DES,DES40)
インストール後に、オペレーティング・システムで次の権限を確認する必要があります。
システムのセキュリティ・ポリシーに従って、権限のないユーザーがOracle Advanced Securityを実行できないようにするには、すべてのOracle Advanced Security実行可能ファイルに対して実行権限を設定する必要があります。
ユーザーが誤ってまたは故意にOracle Advanced Securityのファイルを読み取ったり変更しないようにするには、すべての実行可能ファイルに対して読取りおよび書込み権限を設定する必要があります。
FIPS 140-1 Level 2要件に準拠するには、権限のないユーザーが、オペレーティング・システムで使用しているOracle Advanced Securityのプロセスおよびメモリーの読取りや変更を行えないようにする手順をセキュリティ・ポリシーに含める必要があります。
Oracle Advanced Securityのステータス情報は、接続の確立後に使用できます。この情報は、RDBMS仮想表v$session_connect_info
に格納されています。
問合せSELECT * from V$SESSION_CONNECT_INFO
を実行すると、アクティブな接続のすべての製品バナー情報が表示されます。表D-1に、DES暗号化データ整合性が定義された接続構成の例を示します。
表D-1 v$session_connect_infoからの出力例
SID | AUTHENTICATION | OSUSER | NETWORK_SERVICE_BANNER |
---|---|---|---|
7 |
|
|
Oracle Bequeath operating system adapter for Solaris, v8.1.6.0.0 |
7 |
|
|
Oracle Advanced Security: encryption service for Solaris |
7 |
|
|
Oracle Advanced Security: DES encryption service adapter |
7 |
|
|
Oracle Advanced Security: crypto-checksumming service |
7 |
|
|
Oracle Advanced Security: SHA-1 crypto-checksumming service adapter |
FIPS 140-1 Level 2要件に準拠するには、カバーが外されたことを発見できるように、各コンピュータのカバーに不正開封防止シールを貼る必要があります。