20 Oracle Databaseのネイティブ・ネットワーク暗号化とデータ整合性の構成
サーバーとクライアントの両方について、Oracle Net Services固有のデータ暗号化およびデータ整合性を構成できます。
- Oracle Databaseのネイティブ・ネットワーク暗号化とデータ整合性について
Oracle Databaseでは、ネットワークで送信されるデータを暗号化できます。 - Oracle Databaseのネイティブ・ネットワーク暗号化のデータ整合性
ネットワーク・データを暗号化すると、ネットワーク上で転送される平文データを不正なユーザーが閲覧できなくなり、データのプライバシが保護されます。 - データ暗号化と整合性のsqlnet.oraパラメータ
Oracleは、データの暗号化と整合性のためにsqlnet.ora
ファイルで設定できる多くのパラメータを用意しています。 - ネイティブ・ネットワーク暗号化のセキュリティの向上
Oracleでは、Oracle Databaseサーバーとクライアントの両方のネイティブ・ネットワーク暗号化のセキュリティを強化するパッチを提供しています。 - データの整合性アルゴリズムのサポート
データ整合性アルゴリズムは、サード・パーティ攻撃およびメッセージ・リプレイ攻撃から保護します。SHA-2をお薦めしますが、SHA-1 (非推奨)およびMD5は下位互換性のために維持されています。 - Diffie-Hellmanベースのキー交換
Diffie-Hellmanキー交換アルゴリズムを使用して、マルチユーザー環境でデータを保護できます。 - データの暗号化および整合性の構成
Oracle Database固有のOracle Net Servicesによる暗号化および整合性は、Oracle Net Servicesがインストール済であることを前提としています。 - ネイティブ・ネットワーク暗号化構成のトラブルシューティング
Oracleは、一般的なネイティブ・ネットワーク暗号化構成の問題に関するガイダンスを提供します。
親トピック: ネットワーク上のデータの保護
20.1 Oracle Databaseのネイティブ・ネットワーク暗号化とデータ整合性について
Oracle Databaseでは、ネットワークで送信されるデータを暗号化できます。
- Oracle Databaseのネイティブ・ネットワーク暗号化と整合性の仕組み
Oracle Databaseは、ネットワーク間を移動するデータが保護されるように、ネイティブ・データ・ネットワークの暗号化および整合性を提供します。 - Advanced Encryption Standard
Oracle Databaseでは、米国連邦情報処理標準(FIPS)暗号化アルゴリズムであるAdvanced Encryption Standard (AES)がサポートされています。 - Triple-DES暗号化
Triple-DES (3DES)暗号化は、DESアルゴリズムにメッセージ・データを3回渡して暗号化します。 - ネイティブ・ネットワーク暗号化とTransport Layer Securityの間の選択
Oracleには、ネットワーク上のデータを暗号化する方法として、ネイティブ・ネットワーク暗号化とTransport Layer Security (TLS)の2つがあります。
20.1.1 Oracle Databaseのネイティブ・ネットワーク暗号化と整合性の仕組み
Oracle Databaseは、ネットワーク間を移動するデータが保護されるように、ネイティブ・データ・ネットワークの暗号化および整合性を提供します。
セキュアな暗号システムの目的は、キーに基づいて、平文データ(暗号化されていないテキスト)を解読不能な暗号文(暗号化されたテキスト)に変換することです。正しいキーがなければ、暗号文を元の平文に変換することはきわめて困難(計算上は不可能)です。
対称暗号システムでは、同じデータの暗号化と復号化の両方に同じキーを使用します。Oracle Databaseは、Advanced Encryption Standard (AES)の対称暗号システムを提供して、Oracle Net Servicesトラフィックの機密保護を図ります。
20.1.2 Advanced Encryption Standard
Oracle Databaseでは、米国連邦情報処理標準(FIPS)暗号化アルゴリズムであるAdvanced Encryption Standard (AES)がサポートされています。
AESは、ネットワーク上で機密データを保護するために、あらゆる米国政府組織および企業で使用できます。この暗号化アルゴリズムでは、128ビット、192ビットおよび256ビットの3つの標準のキーの長さが定義されています。いずれのバージョンも、外部暗号ブロック連鎖(CBC)モードで稼働します。暗号化メソッドの1つ。先行するすべてのブロックに依存する暗号ブロックの暗号化を行い、ブロック再生攻撃からデータを保護します。無許可の復号化が段階的に困難になるように設計されています。Oracle Databaseでは、外部暗号ブロック連鎖が使用されています。これは、内部暗号ブロックよりも安全性が高く、実質的なパフォーマンスの低下を伴わないためです。
ノート:
AESアルゴリズムが改善されました。より強力なアルゴリズムを使用するようにOracle Database環境を移行するには、My Oracle Supportノート2118136.2で説明されているパッチをダウンロードしてインストールします。20.1.3 Triple-DES暗号化
Triple-DES (3DES)暗号化は、DESアルゴリズムにメッセージ・データを3回渡して暗号化します。
ノート:
このリリースでは、DES、DES40、3DES112および3DES168アルゴリズムは非推奨です。より強力なアルゴリズムを使用するようにOracle Database環境を移行するには、My Oracle Supportノート2118136.2で説明されているパッチをダウンロードしてインストールします。
3DESは高度なメッセージ・セキュリティを提供しますが、パフォーマンスの低下を伴います。パフォーマンス低下の度合いは、暗号化を実行するプロセッサの速度によって異なります。3DESは、標準のDESアルゴリズムに比べ、データ・ブロックの暗号化に通常3倍の時間を要します。
3DESには2つのキーを使用するバージョンと3つのキーを使用するバージョンがあり、それぞれ有効なキーの長さは112ビットと168ビットです。どちらのバージョンも、外部暗号ブロック連鎖(CDC)モードで動作します。
Oracle DatabaseおよびSecure Network Servicesで利用可能なDES40アルゴリズムは、秘密キーを事前処理することによって有効キー・ビットを40とするDESの一種です。米国の輸出法が厳しかったときに米国およびカナダ以外の顧客を対象にDESベースの暗号化を提供する目的で設計されました。DES40、DESおよび3DESはすべて輸出のために使用できます。DES40は、海外顧客向けに下位互換性を維持するために引き続きサポートされています。
20.1.4 ネイティブ・ネットワーク暗号化とTransport Layer Securityの間の選択
Oracleには、ネットワーク上のデータを暗号化する方法として、ネイティブ・ネットワーク暗号化とTransport Layer Security (TLS)の2つがあります。
どちらの方法にもメリットとデメリットがあります。
表20-1 ネイティブ・ネットワーク暗号化とTransport Layer Securityの比較
- | ネイティブ・ネットワーク暗号化 | Transport Layer Security |
---|---|---|
メリット |
|
|
デメリット |
|
|
20.2 Oracle Databaseのネイティブ・ネットワーク暗号化のデータ整合性
ネットワーク・データを暗号化すると、ネットワーク上で転送される平文データを不正なユーザーが閲覧できなくなり、データのプライバシが保護されます。
また、Oracle Databaseでは、2つの形態の攻撃からデータを保護できます。
表20-2に、これらの攻撃についての情報を示します。
表20-2 ネットワーク攻撃の2つの形態
攻撃形態 | 説明 |
---|---|
データ変更攻撃 |
データ変更攻撃とは、不正なユーザーが転送中のデータを傍受し、データを変更して再転送することです。たとえば、銀行への$100の預入れを傍受して、金額を$10,000に変更し、その水増し金額を再転送することをデータ変更攻撃といいます。 |
再生攻撃 |
再生攻撃とは、有効なデータ全体を反復的に再送することです。たとえば、銀行からの$100の払戻しを傍受し、その払戻しを10回再転送して、最終的に$1,000受け取るといった攻撃です。 |
20.3 データ暗号化と整合性のsqlnet.oraパラメータ
Oracleは、データの暗号化と整合性のためにsqlnet.ora
ファイルで設定できる多くのパラメータを用意しています。
- データ暗号化および整合性パラメータについて
データ暗号化および整合性パラメータは、使用する暗号化アルゴリズムのタイプを制御します。 - サンプルsqlnet.oraファイル
sqlnet.ora
構成ファイルのサンプルは、似た特性を持つ一連のクライアントと似た特性を持つ一連のサーバーに基づいています。
20.3.1 データ暗号化および整合性パラメータについて
データ暗号化および整合性パラメータは、使用する暗号化アルゴリズムのタイプを制御します。
こうしたパラメータを設定するsqlnet.ora
ファイルは、ネットワーク構成の実行時に生成されます。このプロセスでは、暗号化およびデータ整合性パラメータも提供されます。データの暗号化および整合性を構成するためのガイドラインとして、デフォルト・パラメータ設定を使用できます。
次の表に、データの暗号化と整合性のパラメータを示します。
表20-3 データの暗号化と整合性のパラメータ
パラメータ | 説明 |
---|---|
|
クライアントのチェックサム動作を指定します |
|
サーバーのチェックサム動作を指定します |
|
クライアントが使用する暗号チェックサム・アルゴリズムのリストを指定します |
|
サーバーが使用する暗号チェックサム・アルゴリズムのリストを指定します |
|
クライアントに対する暗号化を有効にします |
|
サーバーに対する暗号化を有効にします |
|
クライアントが使用する暗号化アルゴリズムをリストします |
|
サーバーが使用する暗号化アルゴリズムをリストします |
サーバー暗号化、クライアント暗号化、サーバー・チェックサムまたはクライアント・チェックサムの値を指定しない場合、対応する構成パラメータはsqlnet.ora
ファイルに含まれません。ただし、デフォルトはACCEPTED
です。
データ暗号化と整合性の両方のアルゴリズムでは、サーバーは、そのサーバーのsqlnet.ora
ファイル内のアルゴリズムのうち、クライアントのsqlnet.ora
ファイル、またはクライアントのsqlnet.ora
ファイルにアルゴリズムがリストされていない場合はクライアントのインストール済リストにリストされているアルゴリズムに、最初に一致するものを選択します。サーバーのsqlnet.ora
ファイルにエントリがない場合、サーバーはそのインストール済リストを順に検索して、クライアント側(クライアントのsqlnet.ora
ファイルまたはクライアントのインストール済リスト)の項目と照合します。一致するアルゴリズムが見つからず、接続の一方でアルゴリズムのタイプ(データ暗号化または整合性)がREQUIREDである場合、接続は失敗します。 それ以外の場合、接続はアルゴリズムのタイプinactive
で成功します。
データ暗号化と整合性のアルゴリズムは、互いに独立して選択されます。暗号化は整合性なしでアクティブにできます。また、整合性は暗号化なしでアクティブにできます。表20-4を参照してください。
表20-4 アルゴリズムのタイプの選択
暗号化の選択 | 整合性の選択 |
---|---|
はい |
いいえ |
はい |
はい |
いいえ |
はい |
いいえ |
いいえ |
20.3.2 サンプルsqlnet.oraファイル
sqlnet.ora
構成ファイルのサンプルは、似た特性を持つ一連のクライアントと似た特性を持つ一連のサーバーに基づいています。
このファイルには、Oracle Databaseの暗号化とデータ整合性のパラメータの例が含まれています。
デフォルトでは、sqlnet.ora
ファイルは、ORACLE_HOME
/network/admin
ディレクトリ、またはTNS_ADMIN
環境変数によって設定されている場所にあります。TNS_ADMIN
変数が正しいsqlnet.ora
ファイルを指定するように適切に設定されていることを確認します。
トレース・ファイルの設定
#Trace file setup trace_level_server=16 trace_level_client=16 trace_directory_server=/orant/network/trace trace_directory_client=/orant/network/trace trace_file_client=cli trace_file_server=srv trace_unique_client=true
Oracle Databaseのネイティブ・ネットワーク暗号化
sqlnet.encryption_server=accepted sqlnet.encryption_client=requested sqlnet.encryption_types_server=(AES256) sqlnet.encryption_types_client=(AES256)
ノート:
RC4_40アルゴリズムは、このリリースでは非推奨です。より強力なアルゴリズムを使用するようにOracle Database環境を移行するには、My Oracle Supportノート2118136.2で説明されているパッチをダウンロードしてインストールします。
Oracle Databaseのネットワーク・データ整合性
#ASO Checksum sqlnet.crypto_checksum_server=requested sqlnet.crypto_checksum_client=requested sqlnet.crypto_checksum_types_server = (SHA256) sqlnet.crypto_checksum_types_client = (SHA256)
Transport Layer Security
#SSL WALLET_LOCATION = (SOURCE= (METHOD = FILE) (METHOD_DATA = DIRECTORY=/wallet) SSL_CIPHER_SUITES=(TLS_AES_128_CCM_SHA256) SSL_VERSION= TLSv1.3 SSL_CLIENT_AUTHENTICATION=FALSE
共通
#Common automatic_ipc = off sqlnet.authentication_services = (beq) names.directory_path = (TNSNAMES)
Kerberos
#Kerberos sqlnet.authentication_services = (beq, kerberos5) sqlnet.authentication_kerberos5_service = oracle sqlnet.kerberos5_conf= /krb5/krb.conf sqlnet.kerberos5_keytab= /krb5/v5srvtab sqlnet.kerberos5_realms= /krb5/krb.realm sqlnet.kerberos5_cc_name = /krb5/krb5.cc sqlnet.kerberos5_clockskew=900 sqlnet.kerberos5_conf_mit=false
RADIUS
#Radius sqlnet.authentication_services = (beq, RADIUS ) sqlnet.radius_authentication_timeout = (10) sqlnet.radius_authentication_retries = (2) sqlnet.radius_authentication_port = (1645) sqlnet.radius_send_accounting = OFF sqlnet.radius_secret = /orant/network/admin/radius.key sqlnet.radius_authentication = radius.us.example.com sqlnet.radius_challenge_response = OFF sqlnet.radius_challenge_keyword = challenge sqlnet.radius_challenge_interface = oracle/net/radius/DefaultRadiusInterface sqlnet.radius_classpath = /jre1.1/
親トピック: データ暗号化と整合性のsqlnet.oraパラメータ
20.4 ネイティブ・ネットワーク暗号化のセキュリティの向上
Oracleでは、Oracle Databaseサーバーとクライアントの両方のネイティブ・ネットワーク暗号化のセキュリティを強化するパッチを提供しています。
- ネイティブ・ネットワーク暗号化のセキュリティの向上について
Oracleのこのパッチは、暗号化アルゴリズムおよびチェックサム・アルゴリズムを更新し、脆弱な暗号化アルゴリズムおよびチェックサム・アルゴリズムを非推奨にします。 - ネイティブ・ネットワーク暗号化へのセキュリティ改善更新の適用
Oracle Databaseサーバーおよびクライアントにパッチを適用することに加え、サーバーおよびクライアントのsqlnet.ora
のパラメータを設定する必要があります。
20.4.1 ネイティブ・ネットワーク暗号化のセキュリティの向上について
Oracleのこのパッチは、暗号化アルゴリズムおよびチェックサム・アルゴリズムを更新し、脆弱な暗号化アルゴリズムおよびチェックサム・アルゴリズムを非推奨にします。
このパッチは、My Oracle Supportノート2118136.2からダウンロードでき、サーバーとクライアントとの接続を強化し、ネイティブ・ネットワーク暗号化アルゴリズムおよびチェックサム・アルゴリズムの脆弱性を修正します。これにより、安全性の低い古い暗号化アルゴリズムおよびチェックサム・アルゴリズムの無効化が容易になる2つのパラメータが追加されます。このパッチをOracle Databaseサーバーおよびクライアントに適用することをお薦めします。
このパッチは、Oracle Databaseリリース11.2以降に適用されます。このパッチは、スタンドアロン、マルチテナント、プライマリ・スタンバイ、Oracle Real Application Clusters (Oracle RAC)、およびデータベース・リンクを使用する環境に適用できます。
改善されたサポート対象アルゴリズムは次のとおりです。
- 暗号化アルゴリズム: AES128、AES192およびAES256
- チェックサム・アルゴリズム: SHA1、SHA256、SHA384およびSHA512
非推奨であり、パッチ適用後に使用をお薦めしていない脆弱なアルゴリズムは、次のとおりです。
- 暗号化アルゴリズム: DES、DES40、3DES112、3DES168、RC4_40、RC4_56、RC4_128およびRC4_256
- チェックサム・アルゴリズム: MD5
実行する一般的な手順としては、まず、Oracle Database環境におけるサポート対象外アルゴリズムへの参照をサポート対象アルゴリズムに置換し、サーバーにパッチを適用し、クライアントにパッチを適用し、最後に、サーバーとクライアントとの正しい接続が再度有効になるようにsqlnet.ora
のパラメータを設定します。
このパッチは次の領域に影響を与えますが、これらに限定されるわけではありません。
- JDBCネットワーク暗号化関連の構成設定
- Oracle Net Managerを使用して構成した暗号化パラメータおよび整合性パラメータ
- Transport Layer Security (TLS)の
SSL_CIPHER_SUITE
パラメータ設定 - SecureFiles LOBの暗号化列
- データベース常駐接続プーリング(DRCP)の構成
- Oracle Call Interface (Oracle OCI)、
ODP.NET
の構成に使用される暗号化設定
20.4.2 ネイティブ・ネットワーク暗号化へのセキュリティ改善更新の適用
Oracle Databaseサーバーおよびクライアントにパッチを適用することに加え、サーバーおよびクライアントのsqlnet.ora
のパラメータを設定する必要があります。
親トピック: ネイティブ・ネットワーク暗号化のセキュリティの向上
20.5 データの整合性アルゴリズムのサポート
データ整合性アルゴリズムは、サード・パーティ攻撃およびメッセージ・リプレイ攻撃から保護します。SHA-2をお薦めしますが、SHA-1 (非推奨)およびMD5は下位互換性のために維持されています。
ノート:
MD5は、このリリースでは非推奨です。より強力なアルゴリズムを使用するようにOracle Database環境を移行するには、My Oracle Supportノート2118136.2で説明されているパッチをダウンロードしてインストールします。
これらのハッシュ・アルゴリズムは、データがなんらかの方法で変更された場合に変更されるチェックサムを作成します。この保護機能は暗号化プロセスとは独立して動作するため、暗号化の有無に関係なくデータ整合性を保つことができます。
関連トピック
20.6 Diffie-Hellmanベースのキー交換
Diffie-Hellmanキー交換アルゴリズムを使用して、マルチユーザー環境でデータを保護できます。
マルチユーザー環境では、安全なキーを配布することは困難です。Oracle Databaseでは、一般的なDiffie-Hellmanキー交換アルゴリズムを使用して、暗号化およびデータ整合性の両面において安全なキーの配布を実現します。
暗号化を使用して暗号データを保護するときは、キーを頻繁に変更して、キーの安全性が損なわれた場合の影響を最小限に抑える必要があります。そのため、Oracle Databaseのキー管理機能では、セッションごとにセッション・キーが変更されます。
Diffie-Hellmanキー交換アルゴリズムは、セキュアでないチャネルを介して通信する2つのパーティが、それらのパーティのみが知っているランダムな数字を合意させる方法です。Oracle Databaseでは、セッション・キーの生成にDiffie-Hellmanキー交換アルゴリズムが使用されています。
クライアントとサーバーは、Diffie-Hellmanによって生成されるセッション・キーを使用して通信を開始します。サーバーに対するクライアントの認証時に、両者のみが認識する共有秘密鍵が確立されます。Oracle Databaseでは、その共有秘密キーとDiffie-Hellmanセッション・キーを組み合せることで、中間者攻撃を阻止するためのさらに強力なセッション・キーを生成します。
ノート:
認証されていないTLS接続に対する匿名RC4暗号スイートの使用は、Oracle Database 21c (SSL_DH_anon_WITH_RC4_128_MD5
)でサポート対象外となりました。Oracle Databaseで使用可能なよりセキュアな認証接続を使用することをお薦めします。Oracle Enterprise User Securityに対して、Oracle Internet Directoryに接続するためにRC4とともに匿名Diffie-Hellmanを使用する場合は、別のアルゴリズム接続を使用するように移行する必要があります。TLS一方向または証明書を使用した相互認証のいずれかを使用することをお薦めします。Oracle Database 23c以降、Oracle Enterprise User Securityは非推奨です。
20.7 データの暗号化および整合性の構成
Oracle Database固有のOracle Net Servicesによる暗号化および整合性は、Oracle Net Servicesがインストール済であることを前提としています。
- 暗号化および整合性のアクティブ化について
どのネットワーク接続でも、クライアントとサーバーの両方が複数の暗号化アルゴリズムと複数の整合性アルゴリズムをサポートできます。 - 暗号化および整合性のネゴシエーションについて
データの暗号化および整合性を使用するシステム上のsqlnet.ora
ファイルには、REJECTED
、ACCEPTED
、REQUESTED
およびREQUIRED
パラメータの一部またはすべてが含まれている必要があります。 - Oracle Net Managerを使用した暗号化および整合性パラメータの構成
Oracle Net Managerを使用して、暗号化および整合性パラメータを設定または変更できます。
20.7.1 暗号化および整合性のアクティブ化について
どのネットワーク接続でも、クライアントとサーバーの両方が複数の暗号化アルゴリズムと複数の整合性アルゴリズムをサポートできます。
接続が確立されるときに、sqlnet.ora
ファイルで指定されているアルゴリズムの中から、使用するアルゴリズムをサーバーが選択します。サーバーは、クライアントとサーバーの両方で使用できるアルゴリズム間で一致するものを検索し、サーバー側のリストで最初にあって、クライアント側のリストにも出現するアルゴリズムを選択します。接続の一方の側がアルゴリズム・リストを指定していない場合、その側でインストールされているすべてのアルゴリズムを使用できます。いずれかの側でインストールされていないアルゴリズムを指定すると、エラー・メッセージORA-12650
が表示され、接続が失敗します。
暗号化パラメータと整合性パラメータを定義するには、ネットワーク上のクライアントとサーバーのsqlnet.ora
ファイルを変更します。
利用可能な暗号化アルゴリズムの一部またはすべて、および利用可能な整合性アルゴリズムの一方または両方を構成できます。各接続セッションに使用できるのは、1つの暗号化アルゴリズムと1つの整合性アルゴリズムのみです。
ノート:
Oracle Databaseでは、クライアントとサーバーで利用可能なアルゴリズムのうち、最初の暗号化アルゴリズムと最初の整合性アルゴリズムが自動的に選択されます。ネゴシエーションの優先順にアルゴリズムとキーの長さを選択することをお薦めします(つまり、最も強力なキーの長さを最初に選択します)。
20.7.2 暗号化および整合性のネゴシエーションについて
データの暗号化および整合性を使用するシステム上のsqlnet.ora
ファイルには、REJECTED
、ACCEPTED
、REQUESTED
、REQUIRED
パラメータの一部またはすべてが含まれている必要があります。
- 暗号化および整合性のネゴシエーションの値について
Oracle Net Managerを使用して、暗号化と整合性の構成パラメータに4つの値を指定できます。 - REJECTED構成パラメータ
REJECTED
値は、他方が要求している場合でも、セキュリティ・サービスを無効にします。 - ACCEPTED構成パラメータ
ACCEPTED
値は、他方が必要としている場合または要求している場合に、セキュリティ・サービスを有効にします。 - REQUESTED構成パラメータ
REQUESTED
値は、他方が許可している場合にセキュリティ・サービスを有効にします。 - REQUIRED構成パラメータ
REQUIRED
値は、セキュリティ・サービスを有効にする、または接続を禁止します。
親トピック: データの暗号化および整合性の構成
20.7.2.1 暗号化および整合性のネゴシエーションの値について
Oracle Net Managerを使用して、暗号化と整合性の構成パラメータに4つの値を指定できます。
次の4つの値はセキュリティの低い順で記載されています。暗号化および整合性を使用しているシステムのクライアントとサーバーのプロファイル・ファイル(sqlnet.ora
)でこれらを使用する必要があります。
値REJECTED
は、クライアントとサーバーの間の通信に最小レベルのセキュリティを提供し、値REQUIRED
は、最高レベルのネットワーク・セキュリティを提供します。
-
REJECTED
-
ACCEPTED
-
REQUESTED
-
REQUIRED
各パラメータのデフォルト値はACCEPTED
です。
Oracle Databaseサーバーおよびクライアントは、デフォルトではACCEPT
暗号化接続に設定されます。これは、接続の片側のみ(サーバー側またはクライアント側)を構成するだけで、接続ペアに対して目的の暗号化および整合性設定を有効化できることを意味します。
したがって、たとえば、数多くのOracleクライアントがOracleデータベースに接続する場合も、サーバー側でsqlnet.oraに適切な変更を加えることによって、すべての接続に対して必要な暗号化および整合性設定を構成できます。クライアントごとに個別に構成の変更を実装する必要はありません。
表20-5に、クライアントとサーバーの構成パラメータを各種組み合せたときに、セキュリティ・サービスが有効になるかどうかを示します。サーバーまたはクライアントでREQUIRED
が指定されている場合は、共通のアルゴリズムが存在しないと、接続が失敗します 。それ以外の場合は、サービスが有効化されていて、共通のサービス・アルゴリズムが存在しないと、サービスが無効化されます。
表20-5 暗号化とデータ整合性のネゴシエーション
クライアントの設定 | サーバーの設定 | 暗号化とデータのネゴシエーション |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
接続失敗 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
接続失敗 |
|
|
|
|
|
|
|
|
|
脚注1
この値のデフォルトはOFF
です。ユーザーがOracle Net Managerを使用するか、sqlnet.ora
ファイルを変更することによってこのパラメータを変更しないかぎり、暗号化とデータ整合性は有効化されません。
親トピック: 暗号化および整合性のネゴシエーションについて
20.7.2.2 REJECTED構成パラメータ
REJECTED
値は、他方が要求している場合でも、セキュリティ・サービスを無効にします。
このシナリオでは、セキュリティ・サービスの使用が許可されないことを接続元で指定します。接続先がREQUIRED
に設定されている場合、エラー・メッセージORA-12650が表示されて接続が終了します
。接続先がREQUESTED
、ACCEPTED
またはREJECTED
に設定されている場合、エラーは発生せずに、セキュリティ・サービスが無効のまま接続が継続されます。
親トピック: 暗号化および整合性のネゴシエーションについて
20.7.2.3 ACCEPTED構成パラメータ
ACCEPTED
値は、他方が必要としている場合または要求している場合に、セキュリティ・サービスを有効にします。
このシナリオでは、接続元からはセキュリティ・サービスを要求しませんが、接続先がREQUIRED
またはREQUESTED
に設定されている場合は、セキュリティ・サービスが有効化されます。接続先がREQUIRED
またはREQUESTED
に設定されていて、該当する暗号化アルゴリズムまたは整合性アルゴリズムが見つかると、エラーは発生せずに、セキュリティ・サービスが有効のまま接続が継続されます。接続先がREQUIRED
に設定されていて、該当するアルゴリズムが見つからない場合、エラー・メッセージORA-12650
が表示されて接続が終了します。
接続先がREQUESTED
に設定されていて、該当するアルゴリズムが見つからない場合、または接続先がACCEPTED
またはREJECTED
に設定されている場合、エラーは発生せずに、セキュリティ・サービスが無効のまま接続が継続されます。
親トピック: 暗号化および整合性のネゴシエーションについて
20.7.2.4 REQUESTED構成パラメータ
REQUESTED
値は、他方が許可している場合にセキュリティ・サービスを有効にします。
このシナリオでは、接続元がセキュリティ・サービスの使用を希望します(必須ではない)。接続先でACCEPTED
、REQUESTED
またはREQUIRED
が指定されている場合、セキュリティ・サービスが有効化されます。接続先に該当するアルゴリズムがある必要があります。見つからない場合、セキュリティ・サービスは有効化されません。接続先でREQUIRED
が指定されていて、該当するアルゴリズムが見つからない場合、接続は失敗します 。
親トピック: 暗号化および整合性のネゴシエーションについて
20.7.2.5 REQUIRED構成パラメータ
REQUIRED
値は、セキュリティ・サービスを有効にする、または接続を禁止します。
このシナリオでは、接続元がセキュリティ・サービスの有効化を強制します。接続先でREJECTED
が指定されている場合、または接続先に互換性のあるアルゴリズムが見つからない場合、接続は失敗します。
親トピック: 暗号化および整合性のネゴシエーションについて
20.7.3 Oracle Net Managerを使用した暗号化および整合性パラメータの構成
Oracle Net Managerを使用して、暗号化および整合性パラメータを設定または変更できます。
- クライアントとサーバーでの暗号化の構成
クライアントとサーバーで暗号化を構成するには、Oracle Net Managerを使用します。 - クライアントとサーバーでの整合性の構成
Oracle Net Managerを使用して、クライアントとサーバーの両方でネットワーク整合性を構成できます。 - 異なるユーザーに対するOracleネイティブ暗号化とSSL認証の両方の同時有効化
SQLNET.ENCRYPTION_CLIENT
およびSQLNET.ENCRYPTION_SERVER
の設定に応じて、異なるユーザーに対してOracleネイティブ暗号化とSSL認証の両方を同時に許可するようにOracle Databaseを構成できます。
親トピック: データの暗号化および整合性の構成
20.7.3.1 クライアントとサーバーでの暗号化の構成
クライアントとサーバーで暗号化を構成するには、Oracle Net Managerを使用します。
表20-6に、有効な暗号化アルゴリズムと対応する有効な値を示します。
表20-6 有効な暗号化アルゴリズム
アルゴリズム名 | 有効な値 |
---|---|
AES 256ビット・キー |
AES256 |
AES 192ビット・キー |
AES192 |
AES 128ビット・キー |
AES128 |
20.7.3.2 クライアントとサーバーでの整合性の構成
Oracle Net Managerを使用して、クライアントとサーバーの両方でネットワーク整合性を構成できます。
ユーザーが使用できる有効な整合性/チェックサムのアルゴリズムは次のとおりです。
- SHA1
- SHA256
- SHA384
- SHA512
20.7.3.3 異なるユーザーに対するOracleネイティブ暗号化とSSL認証の両方の同時有効化
SQLNET.ENCRYPTION_CLIENT
およびSQLNET.ENCRYPTION_SERVER
の設定に応じて、異なるユーザーに対してOracleネイティブ暗号化とSSL認証の両方を同時に許可するようにOracle Databaseを構成できます。
- 異なるユーザーに対するOracleネイティブ暗号化とSSL認証の両方の同時有効化について
デフォルトでは、Oracle Databaseでは、異なるユーザーに対するOracleネイティブ暗号化とTransport Layer Security (SSL)認証の両方を同時に使用することはできません。 - 異なるユーザーに対するOracleネイティブ暗号化とSSL認証の両方の同時構成
IGNORE_ANO_ENCRYPTION_FOR_TCPS
パラメータを使用して、Oracleネイティブ暗号化とTransport Layer Security (SSL)認証の両方を同時に使用できるようにします。
20.7.3.3.1 異なるユーザーに対するOracleネイティブ暗号化とSSL認証の両方の同時有効化について
デフォルトでは、Oracle Databaseでは、異なるユーザーに対するOracleネイティブ暗号化とTransport Layer Security (SSL)認証の両方を同時に使用することはできません。
Oracleネイティブ暗号化(Advanced Networking Option (ANO)暗号化とも呼ばれる)とTLS認証の併用は、二重暗号化と呼ばれます。
一部のユーザーにユーザー名とパスワードの使用によるサーバーへの接続を可能にし、他のユーザーにTLS証明書の使用によるそのサーバーへの認証を可能にするように、TCPリスナーとTCPSリスナーの両方を構成する必要がある場合があります。このような場合、パスワードベースの認証とTLS認証の両方を構成する必要があります。以前のリリースの回避策では、SQLNET.ENCRYPTION_SERVER
パラメータをrequested
に設定していました。SQLNET.ENCRYPTION_SERVER
がrequired
に設定されている必要がある場合、SQLNET.ENCRYPTION_CLIENT
とSQLNET.ENCRYPTION_SERVER
の両方のIGNORE_ANO_ENCRYPTION_FOR_TCPS
パラメータをTRUE
に設定できます。デフォルトでは、これはFALSE
に設定されています。
IGNORE_ANO_ENCRYPTION_FOR_TCPS
をTRUE
に設定すると、クライアントはすべての発信TCPS接続のSQLNET.ENCRYPTION_CLIENT
パラメータに設定されている値を無視します。このパラメータを使用すると、TCPSクライアントの使用に矛盾がある場合に、データベースでSQLNET.ENCRYPTION_CLIENT
またはSQLNET.ENCRYPTION_SERVER
の設定を、これら2つのパラメータがrequired
に設定されていても無視できます。
20.8 ネイティブ・ネットワーク暗号化構成のトラブルシューティング
Oracleは、一般的なネイティブ・ネットワーク暗号化構成の問題に関するガイダンスを提供します。
- 現在のセッションでネイティブ・ネットワーク暗号化が有効かどうかの確認
サーバーおよびクライアントのsqlnet.ora
ファイルでの暗号化パラメータの設定方法に応じて、現在のセッションでネイティブ・ネットワーク暗号化が有効になっているかどうかを確認できます。 - ネイティブ・ネットワーク暗号化構成のORA-12650およびORA-12660エラー
Oracleは、ネイティブ・ネットワーク暗号化構成で発生する可能性のあるORA-12650
およびORA-12660
エラーに対するいくつかのソリューションを提供しています。
20.8.1 現在のセッションでネイティブ・ネットワーク暗号化が有効かどうかの確認
サーバーおよびクライアントのsqlnet.ora
ファイルでの暗号化パラメータの設定方法に応じて、現在のセッションでネイティブ・ネットワーク暗号化が有効になっているかどうかを確認できます。
20.8.2 ネイティブ・ネットワーク暗号化構成のORA-12650およびORA-12660エラー
Oracleは、ネイティブ・ネットワーク暗号化構成で発生する可能性のあるORA-12650
およびORA-12660
エラーに対するいくつかのソリューションを提供しています。
ORA-12650: 共通の暗号化またはデータ整合性アルゴリズムがありません。
エラーとORA-12660: 暗号化または暗号チェックサム・パラメータに互換性がありません。
エラーは、両側(クライアントとサーバー)でSQLNET.ENCRYPTION_CLIENT
とSQLNET.ENCRYPTION_SERVER
をrejected
に設定した場合にのみ発生します。また、sqlnet.ora
ファイルに構成の誤りがある場合にも発生する可能性があります。
この問題を修正するには、次のようにします。
- クライアントとサーバーの両方で、
sqlnet.ora
ファイルの設定を確認します。 sqlnet.ora
の設定が正しい場合は、環境変数のPATH
とTNS_ADMIN
を確認します。- クライアントとサーバーのディレクトリ・ツリーに、追加の
sqlnet.ora
ファイルがあるかどうかを調べます。 sqlnet.ora
の設定と実際の動作が異なる場合や、sqlnet.ora
ファイルに特定の矛盾点が見つからない場合は、サーバー側とクライアント側の両方でネット・トレース・レベル16を実行します。