15 Oracle Databaseのネイティブ・ネットワーク暗号化とデータ整合性の構成
サーバーとクライアントの両方について、Oracle Net Services固有のデータ暗号化およびデータ整合性を構成できます。
- Oracle Databaseのネイティブ・ネットワーク暗号化とデータ整合性について
Oracle Databaseでは、ネットワークで送信されるデータを暗号化できます。 - Oracle Databaseのネイティブ・ネットワーク暗号化のデータ整合性
ネットワーク・データを暗号化すると、ネットワーク上で転送される平文データを不正なユーザーが閲覧できなくなり、データのプライバシが保護されます。 - ネイティブ・ネットワーク暗号化のセキュリティの向上
Oracleでは、Oracle Databaseサーバーとクライアントの両方のネイティブ・ネットワーク暗号化のセキュリティを強化するパッチを提供しています。 - データの整合性アルゴリズムのサポート
キーで順序付けられたMessage Digest 5 (MD5)アルゴリズムまたはSecure Hash Algorithm (SHA-1およびSHA-2)を使用して、これらの攻撃からデータを保護できます。 - Diffie-Hellmanベースのキー交換
Diffie-Hellmanキー交換アルゴリズムを使用して、マルチユーザー環境でデータを保護できます。 - データの暗号化および整合性の構成
Oracle Database固有のOracle Net Servicesによる暗号化および整合性は、Oracle Net Servicesがインストール済であることを前提としています。
親トピック: ネットワーク上のデータの保護
15.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つがあります。
15.1.1 Oracle Databaseのネイティブ・ネットワーク暗号化と整合性の仕組み
Oracle Databaseは、ネットワーク間を移動するデータが保護されるように、ネイティブ・データ・ネットワークの暗号化および整合性を提供します。
セキュアな暗号システムの目的は、キーに基づいて、平文データを解読不能な暗号文に変換することです。正しいキーがなければ、暗号文を元の平文に変換することはきわめて困難(計算上は不可能)です。
対称暗号システムでは、同じデータの暗号化と復号化の両方に同じキーを使用します。Oracle Databaseは、Advanced Encryption Standard (AES)の対称暗号システムを提供して、Oracle Net Servicesトラフィックの機密保護を図ります。
15.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で説明されているパッチをダウンロードしてインストールします。15.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ビットです。いずれのバージョンも外部暗号ブロック連鎖(CBC)モードで稼働します。
Oracle DatabaseおよびSecure Network Servicesで利用可能なDES40アルゴリズムは、秘密キーを事前処理することによって有効キー・ビットを40とするDESの一種です。米国の輸出法が厳しかったときに米国およびカナダ以外の顧客を対象にDESベースの暗号化を提供する目的で設計されました。DES40、DESおよび3DESはすべて輸出のために使用できます。DES40は、海外顧客向けに下位互換性を維持するために引き続きサポートされています。
15.1.4 ネイティブ・ネットワーク暗号化とTransport Layer Securityの間の選択
Oracleには、ネットワーク上のデータを暗号化する方法として、ネイティブ・ネットワーク暗号化とTransport Layer Security (TLS)の2つがあります。
どちらの方法にもメリットとデメリットがあります。
表15-1 ネイティブ・ネットワーク暗号化とTransport Layer Securityの比較
- | ネイティブ・ネットワーク暗号化 | Transport Layer Security |
---|---|---|
メリット |
|
|
デメリット |
|
|
15.2 Oracle Databaseのネイティブ・ネットワーク暗号化のデータ整合性
ネットワーク・データを暗号化すると、ネットワーク上で転送される平文データを不正なユーザーが閲覧できなくなり、データのプライバシが保護されます。
また、Oracle Databaseでは、2つの形態の攻撃からデータを保護できます。
表15-2に、これらの攻撃についての情報を示します。
表15-2 ネットワーク攻撃の2つの形態
攻撃形態 | 説明 |
---|---|
データ変更攻撃 |
データ変更攻撃とは、不正なユーザーが転送中のデータを傍受し、データを変更して再転送することです。たとえば、銀行への$100の預入れを傍受して、金額を$10,000に変更し、その水増し金額を再転送することをデータ変更攻撃といいます。 |
再生攻撃 |
再生攻撃とは、有効なデータ全体を反復的に再送することです。たとえば、銀行からの$100の払戻しを傍受し、その払戻しを10回再転送して、最終的に$1,000受け取るといった攻撃です。 |
15.3 ネイティブ・ネットワーク暗号化のセキュリティの向上
Oracleでは、Oracle Databaseサーバーとクライアントの両方のネイティブ・ネットワーク暗号化のセキュリティを強化するパッチを提供しています。
- ネイティブ・ネットワーク暗号化のセキュリティの向上について
Oracleのこのパッチは、暗号化アルゴリズムおよびチェックサム・アルゴリズムを更新し、脆弱な暗号化アルゴリズムおよびチェックサム・アルゴリズムを非推奨にします。 - ネイティブ・ネットワーク暗号化へのセキュリティ改善更新の適用
Oracle Databaseサーバーおよびクライアントにパッチを適用することに加え、サーバーおよびクライアントのsqlnet.ora
のパラメータを設定する必要があります。
15.3.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を使用して構成した暗号化パラメータおよび整合性パラメータ
- Secure Sockets Layer (SSL)の
SSL_CIPHER_SUITE
パラメータ設定 - SecureFiles LOBの暗号化列
- データベース常駐接続プーリング(DRCP)の構成
- Oracle Call Interface (Oracle OCI)、
ODP.NET
の構成に使用される暗号化設定
15.3.2 ネイティブ・ネットワーク暗号化へのセキュリティ改善更新の適用
Oracle Databaseサーバーおよびクライアントにパッチを適用することに加え、サーバーおよびクライアントのsqlnet.ora
のパラメータを設定する必要があります。
親トピック: ネイティブ・ネットワーク暗号化のセキュリティの向上
15.4 データの整合性アルゴリズムのサポート
キーで順序付けられたMessage Digest 5 (MD5)アルゴリズムまたはSecure Hash Algorithm (SHA-1およびSHA-2)を使用して、これらの攻撃からデータを保護できます。
ノート:
MD5は、このリリースでは非推奨です。より強力なアルゴリズムを使用するようにOracle Database環境を移行するには、My Oracle Supportノート2118136.2で説明されているパッチをダウンロードしてインストールします。
いずれのハッシュ・アルゴリズムでも、データがなんらかの方法で変更された場合に変わるチェックサムを作成します。この保護機能は暗号化プロセスとは独立して動作するため、暗号化の有無に関係なくデータ整合性を保つことができます。
関連トピック
15.5 Diffie-Hellmanベースのキー交換
Diffie-Hellmanキー交換アルゴリズムを使用して、マルチユーザー環境でデータを保護できます。
マルチユーザー環境では、安全なキーを配布することは困難です。Oracle Databaseでは、一般的なDiffie-Hellmanキー交換アルゴリズムを使用して、暗号化およびデータ整合性の両面において安全なキーの配布を実現します。
暗号化を使用して暗号データを保護するときは、キーを頻繁に変更して、キーの安全性が損なわれた場合の影響を最小限に抑える必要があります。そのため、Oracle Databaseのキー管理機能では、セッションごとにセッション・キーが変更されます。
クライアントとサーバーは、Diffie-Hellmanによって生成されるセッション・キーを使用して通信を開始します。サーバーに対するクライアントの認証時に、両者のみが認識する共有秘密鍵が確立されます。Oracle Databaseでは、その共有秘密キーとDiffie-Hellmanセッション・キーを組み合せることで、介在者攻撃を阻止するためのさらに強力なセッション・キーを生成します。
15.6 データの暗号化および整合性の構成
Oracle Database固有のOracle Net Servicesによる暗号化および整合性は、Oracle Net Servicesがインストール済であることを前提としています。
- 暗号化および整合性のアクティブ化について
どのネットワーク接続でも、クライアントとサーバーの両方が複数の暗号化アルゴリズムと複数の整合性アルゴリズムをサポートできます。 - 暗号化および整合性のネゴシエーションについて
データの暗号化および整合性を使用するシステム上のsqlnet.ora
ファイルには、REJECTED
、ACCEPTED
、REQUESTED
およびREQUIRED
パラメータの一部またはすべてが含まれている必要があります。 - Oracle Net Managerを使用した暗号化および整合性パラメータの構成
Oracle Net Managerを使用して、暗号化および整合性パラメータを設定または変更できます。
15.6.1 暗号化および整合性のアクティブ化について
どのネットワーク接続でも、クライアントとサーバーの両方が複数の暗号化アルゴリズムと複数の整合性アルゴリズムをサポートできます。
接続が確立されるときに、sqlnet.ora
ファイルで指定されているアルゴリズムの中から、使用するアルゴリズムをサーバーが選択します。サーバーは、クライアントとサーバーの両方で使用できるアルゴリズム間で一致するものを検索し、サーバー側のリストで最初にあって、クライアント側のリストにも出現するアルゴリズムを選択します。接続の一方の側がアルゴリズム・リストを指定していない場合、その側でインストールされているすべてのアルゴリズムを使用できます。いずれかの側でインストールされていないアルゴリズムを指定すると、エラー・メッセージORA-12650
が表示され、接続が失敗します。
暗号化パラメータと整合性パラメータを定義するには、ネットワーク上のクライアントとサーバーのsqlnet.ora
ファイルを変更します。
利用可能な暗号化アルゴリズムの一部またはすべて、および利用可能な整合性アルゴリズムの一方または両方を構成できます。各接続セッションに使用できるのは、1つの暗号化アルゴリズムと1つの整合性アルゴリズムのみです。
ノート:
Oracle Databaseでは、クライアントとサーバーで利用可能なアルゴリズムのうち、最初の暗号化アルゴリズムと最初の整合性アルゴリズムが自動的に選択されます。ネゴシエーションの優先順にアルゴリズムとキーの長さを選択することをお薦めします(つまり、最も強力なキーの長さを最初に選択します)。
関連項目:
-
有効な暗号化アルゴリズムをリストする表15-4
-
使用可能な整合性アルゴリズムのリストは、『Oracle Database Advanced Securityガイド』を参照してください。
親トピック: データの暗号化および整合性の構成
15.6.2 暗号化および整合性のネゴシエーションについて
データの暗号化および整合性を使用するシステム上のsqlnet.ora
ファイルには、REJECTED
、ACCEPTED
、REQUESTED
、REQUIRED
パラメータの一部またはすべてが含まれている必要があります。
- 暗号化および整合性のネゴシエーションの値について
Oracle Net Managerを使用して、暗号化と整合性の構成パラメータに4つの値を指定できます。 - REJECTED構成パラメータ
REJECTED
値は、他方が要求している場合でも、セキュリティ・サービスを無効にします。 - ACCEPTED構成パラメータ
ACCEPTED
値は、他方が必要としている場合または要求している場合に、セキュリティ・サービスを有効にします。 - REQUESTED構成パラメータ
REQUESTED
値は、他方が許可している場合にセキュリティ・サービスを有効にします。 - REQUIRED構成パラメータ
REQUIRED
値は、セキュリティ・サービスを有効にする、または接続を禁止します。
親トピック: データの暗号化および整合性の構成
15.6.2.1 暗号化および整合性のネゴシエーションの値について
Oracle Net Managerを使用して、暗号化と整合性の構成パラメータに4つの値を指定できます。
次の4つの値はセキュリティの低い順で記載されています。暗号化および整合性を使用しているシステムのクライアントとサーバーのプロファイル・ファイル(sqlnet.ora
)でこれらを使用する必要があります。
値REJECTED
は、クライアントとサーバーの間の通信に最小レベルのセキュリティを提供し、値REQUIRED
は、最高レベルのネットワーク・セキュリティを提供します。
-
REJECTED
-
ACCEPTED
-
REQUESTED
-
REQUIRED
各パラメータのデフォルト値はACCEPTED
です。
Oracle Databaseサーバーおよびクライアントは、デフォルトではACCEPT
暗号化接続に設定されます。これは、接続の片側のみ(サーバー側またはクライアント側)を構成するだけで、接続ペアに対して目的の暗号化および整合性設定を有効化できることを意味します。
したがって、たとえば、数多くのOracleクライアントがOracleデータベースに接続する場合も、サーバー側でsqlnet.oraに適切な変更を加えることによって、すべての接続に対して必要な暗号化および整合性設定を構成できます。クライアントごとに個別に構成の変更を実装する必要はありません。
表15-3に、クライアントとサーバーの構成パラメータを各種組み合せたときに、セキュリティ・サービスが有効化されるかどうかを示します。サーバーまたはクライアントでREQUIRED
が指定されている場合は、共通のアルゴリズムが存在しないと、接続が失敗します 。それ以外の場合は、サービスが有効化されていて、共通のサービス・アルゴリズムが存在しないと、サービスが無効化されます。
表15-3 暗号化とデータ整合性のネゴシエーション
クライアントの設定 | サーバーの設定 | 暗号化とデータのネゴシエーション |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
接続失敗 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
接続失敗 |
|
|
|
|
|
|
|
|
|
脚注1
この値のデフォルトはOFF
です。ユーザーがOracle Net Managerを使用するか、sqlnet.ora
ファイルを変更することによってこのパラメータを変更しないかぎり、暗号化とデータ整合性は有効化されません。
親トピック: 暗号化および整合性のネゴシエーションについて
15.6.2.2 REJECTED構成パラメータ
REJECTED
値は、他方が要求している場合でも、セキュリティ・サービスを無効にします。
このシナリオでは、セキュリティ・サービスの使用が許可されないことを接続元で指定します。接続先がREQUIRED
に設定されている場合、エラー・メッセージORA-12650が表示されて接続が終了します
。接続先がREQUESTED
、ACCEPTED
またはREJECTED
に設定されている場合、エラーは発生せずに、セキュリティ・サービスが無効のまま接続が継続されます。
親トピック: 暗号化および整合性のネゴシエーションについて
15.6.2.3 ACCEPTED構成パラメータ
ACCEPTED
値は、他方が必要としている場合または要求している場合に、セキュリティ・サービスを有効にします。
このシナリオでは、接続元からはセキュリティ・サービスを要求しませんが、接続先がREQUIRED
またはREQUESTED
に設定されている場合は、セキュリティ・サービスが有効化されます。接続先がREQUIRED
またはREQUESTED
に設定されていて、該当する暗号化アルゴリズムまたは整合性アルゴリズムが見つかると、エラーは発生せずに、セキュリティ・サービスが有効のまま接続が継続されます。接続先がREQUIRED
に設定されていて、該当するアルゴリズムが見つからない場合、エラー・メッセージORA-12650
が表示されて接続が終了します。
接続先がREQUESTED
に設定されていて、該当するアルゴリズムが見つからない場合、または接続先がACCEPTED
またはREJECTED
に設定されている場合、エラーは発生せずに、セキュリティ・サービスが無効のまま接続が継続されます。
親トピック: 暗号化および整合性のネゴシエーションについて
15.6.2.4 REQUESTED構成パラメータ
REQUESTED
値は、他方が許可している場合にセキュリティ・サービスを有効にします。
このシナリオでは、接続元がセキュリティ・サービスの使用を希望します(必須ではない)。接続先でACCEPTED
、REQUESTED
またはREQUIRED
が指定されている場合、セキュリティ・サービスが有効化されます。接続先に該当するアルゴリズムがある必要があります。見つからない場合、セキュリティ・サービスは有効化されません。接続先でREQUIRED
が指定されていて、該当するアルゴリズムが見つからない場合、接続は失敗します 。
親トピック: 暗号化および整合性のネゴシエーションについて
15.6.2.5 REQUIRED構成パラメータ
REQUIRED
値は、セキュリティ・サービスを有効にする、または接続を禁止します。
このシナリオでは、接続元がセキュリティ・サービスの有効化を強制します。接続先でREJECTED
が指定されている場合、または接続先に互換性のあるアルゴリズムが見つからない場合、接続は失敗します。
親トピック: 暗号化および整合性のネゴシエーションについて
15.6.3 Oracle Net Managerを使用した暗号化および整合性パラメータの構成
Oracle Net Managerを使用して、暗号化および整合性パラメータを設定または変更できます。
- クライアントとサーバーでの暗号化の構成
クライアントとサーバーで暗号化を構成するには、Oracle Net Managerを使用します。 - クライアントとサーバーでの整合性の構成
Oracle Net Managerを使用して、クライアントとサーバーの両方でネットワーク整合性を構成できます。
親トピック: データの暗号化および整合性の構成
15.6.3.1 クライアントとサーバーでの暗号化の構成
クライアントとサーバーで暗号化を構成するには、Oracle Net Managerを使用します。
表15-4に、有効な暗号化アルゴリズムと対応する有効な値を示します。
表15-4 有効な暗号化アルゴリズム
アルゴリズム名 | 有効な値 |
---|---|
AES 256ビット・キー |
AES256 |
AES 192ビット・キー |
AES192 |
AES 128ビット・キー |
AES128 |