17 Oracle Databaseのネイティブ・ネットワーク暗号化とデータ整合性の構成
サーバーとクライアントの両方について、Oracle Net Services固有のデータ暗号化およびデータ整合性を構成できます。
- Oracle Databaseのネイティブ・ネットワーク暗号化とデータ整合性について
Oracle Databaseでは、ネットワークで送信されるデータを暗号化できます。 - 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がインストール済であることを前提としています。
親トピック: ネットワーク上のデータの保護
Oracle Databaseのネイティブ・ネットワーク暗号化とデータ整合性について
Oracle Databaseでは、ネットワークで送信されるデータを暗号化できます。
- Oracle Databaseのネイティブ・ネットワーク暗号化と整合性の仕組み
Oracle Databaseは、ネットワーク間を移動するデータが保護されるように、ネイティブ・データ・ネットワークの暗号化および整合性を提供します。 - Advanced Encryption Standard
Oracle Databaseでは、米国連邦情報処理標準(FIPS)暗号化アルゴリズムであるAdvanced Encryption Standard (AES)がサポートされています。 - ARIA
Oracle DatabaseはAcademia, Research Institute, and Agency (ARIA)アルゴリズムをサポートしています。 - GOST
Oracle Databaseは、GOsudarstvennyy STandart (GOST)アルゴリズムをサポートしています。 - SEED
Oracle Databaseは、韓国情報保護振興院(KISA)の暗号化アルゴリズム、SEEDをサポートしています。 - Triple-DESのサポート
Oracle Databaseでは、DESアルゴリズムにメッセージ・データを3回渡して暗号化する、Triple-DES (3DES)暗号化がサポートされています。
Oracle Databaseのネイティブ・ネットワーク暗号化と整合性の仕組み
Oracle Databaseは、ネットワーク間を移動するデータが保護されるように、ネイティブ・データ・ネットワークの暗号化および整合性を提供します。
セキュアな暗号システムの目的は、キーに基づいて、平文データを解読不能な暗号文に変換することです。正しいキーがなければ、暗号文を元の平文に変換することはきわめて困難(計算上は不可能)です。
対称暗号システムでは、同じデータの暗号化と復号化の両方に同じキーを使用します。Oracle Databaseは、Advanced Encryption Standard (AES)の対称暗号システムを提供して、Oracle Net Servicesトラフィックの機密保護を図ります。
Advanced Encryption Standard
Oracle Databaseでは、米国連邦情報処理標準(FIPS)暗号化アルゴリズムであるAdvanced Encryption Standard (AES)がサポートされています。
AESは、ネットワーク上で機密データを保護するために、あらゆる米国政府組織および企業で使用できます。この暗号化アルゴリズムでは、128ビット、192ビットおよび256ビットの3つの標準のキーの長さが定義されています。いずれのバージョンも、外部暗号ブロック連鎖(CBC)モードで稼働します。
ARIA
Oracle DatabaseはAcademia, Research Institute, and Agency (ARIA)アルゴリズムをサポートしています。
これはアルゴリズム設計に当たった韓国の研究者たちの共同の取組みを認めたものです。
ARIAでは、128ビット、192ビットおよび256ビットの3つの標準のキーの長さが定義されています。いずれのバージョンも、外部暗号暗号ブロック連鎖(CBC)モードで動作します。
GOST
Oracle Databaseは、GOsudarstvennyy STandart (GOST)アルゴリズムをサポートしています。
GOSTアルゴリズムは、Euro-Asian Council for Standardization, Metrology and Certification (EACS)によって作成されました。
GOSTでは、256ビットのキー・サイズが定義されています。Oracle Databaseでは、外部暗号ブロック連鎖(CBC)モードが使用されます。
SEED
Oracle Databaseは、韓国情報保護振興院(KISA)の暗号化アルゴリズム、SEEDをサポートしています。
SEEDでは、128ビットのキー・サイズが定義されています。標準に対する拡張として192ビットおよび256ビットの追加のキー・サイズを定義したものもありますが、Oracle Databaseではこれらの拡張はサポートされません。Oracle Databaseでは、SEEDは外部暗号ブロック連鎖(CBC)モードで動作します。
Triple-DESのサポート
Oracle Databaseでは、DESアルゴリズムにメッセージ・データを3回渡して暗号化する、Triple-DES (3DES)暗号化がサポートされています。
3DESは高度なメッセージ・セキュリティを提供しますが、パフォーマンスの低下を伴います。パフォーマンス低下の度合いは、暗号化を実行するプロセッサの速度によって異なります。3DESは、標準のDESアルゴリズムに比べ、データ・ブロックの暗号化に通常3倍の時間を要します。
3DESには2つのキーを使用するバージョンと3つのキーを使用するバージョンがあり、それぞれ有効なキーの長さは112ビットと168ビットです。いずれのバージョンも外部暗号ブロック連鎖(CBC)モードで稼働します。
Oracle DatabaseおよびSecure Network Servicesで利用可能なDES40アルゴリズムは、秘密キーを事前処理することによって有効キー・ビットを40とするDESの一種です。米国の輸出法が厳しかったときに米国およびカナダ以外の顧客を対象にDESベースの暗号化を提供する目的で設計されました。DES40、DESおよび3DESはすべて輸出のために使用できます。DES40は、海外顧客向けに下位互換性を維持するために引き続きサポートされています。
Oracle Databaseのネイティブ・ネットワーク暗号化のデータ整合性
ネットワーク・データを暗号化すると、ネットワーク上で転送される平文データを不正なユーザーが閲覧できなくなり、データのプライバシが保護されます。
また、Oracle Databaseでは、2つの形態の攻撃からデータを保護できます。
表17-1に、これらの攻撃に関する情報を示します。
表17-1 ネットワーク攻撃の2つの形態
攻撃形態 | 説明 |
---|---|
データ変更攻撃 |
データ変更攻撃とは、不正なユーザーが転送中のデータを傍受し、データを変更して再転送することです。たとえば、銀行への$100の預入れを傍受して、金額を$10,000に変更し、その水増し金額を再転送することをデータ変更攻撃といいます。 |
再生攻撃 |
再生攻撃とは、有効なデータ全体を反復的に再送することです。たとえば、銀行からの$100の払戻しを傍受し、その払戻しを10回再転送して、最終的に$1,000受け取るといった攻撃です。 |
データの整合性アルゴリズムのサポート
キーで順序付けられたMessage Digest 5 (MD5)アルゴリズムまたはSecure Hash Algorithm (SHA-1およびSHA-2)を使用して、これらの攻撃からデータを保護できます。
いずれのハッシュ・アルゴリズムでも、データがなんらかの方法で変更された場合に変わるチェックサムを作成します。この保護機能は暗号化プロセスとは独立して動作するため、暗号化の有無に関係なくデータ整合性を保つことができます。
関連トピック
Diffie-Hellmanベースのキー交換
Diffie-Hellmanキー交換アルゴリズムを使用して、マルチユーザー環境でデータを保護できます。
マルチユーザー環境では、安全なキーを配布することは困難です。Oracle Databaseでは、一般的なDiffie-Hellmanキー交換アルゴリズムを使用して、暗号化およびデータ整合性の両面において安全なキーの配布を実現します。
暗号化を使用して暗号データを保護するときは、キーを頻繁に変更して、キーの安全性が損なわれた場合の影響を最小限に抑える必要があります。そのため、Oracle Databaseのキー管理機能では、セッションごとにセッション・キーが変更されます。
認証キー・フォールドインを使用して、Diffie-Hellmanキー交換アルゴリズムによるキー交換に対する第三者の攻撃(従来の呼称は介在者攻撃)を阻止できます。この暗号化では、クライアントとサーバーのみが認識している共有秘密キーとDiffie-Hellmanによって交換される最初のセッション・キーを組み合せることによって、セッション・キーの安全性を大幅に強化しています。
クライアントとサーバーは、Diffie-Hellmanによって生成されるセッション・キーを使用して通信を開始します。サーバーに対するクライアントの認証時に、両者のみが認識する共有秘密鍵が確立されます。Oracle Databaseでは、その共有秘密キーとDiffie-Hellmanセッション・キーを組み合せることで、介在者攻撃を阻止するためのさらに強力なセッション・キーを生成します。
ノート:
認証キー・フォールドイン機能は、Oracle Databaseに組み込まれているため、システム管理者またはネットワーク管理者による構成作業は必要ありません。
データの暗号化および整合性の構成
Oracle Database固有のOracle Net Servicesによる暗号化および整合性は、Oracle Net Servicesがインストール済であることを前提としています。
- 暗号化および整合性のアクティブ化について
どのネットワーク接続でも、クライアントとサーバーの両方が複数の暗号化アルゴリズムと複数の整合性アルゴリズムをサポートできます。 - 暗号化および整合性のネゴシエーションについて
データの暗号化および整合性を使用するシステム上のsqlnet.ora
ファイルには、REJECTED
、ACCEPTED
、REQUESTED
およびREQUIRED
パラメータの一部またはすべてが含まれている必要があります。 - Oracle Net Managerを使用した暗号化および整合性パラメータの構成
Oracle Net Managerを使用して、暗号化および整合性パラメータを設定または変更できます。
暗号化および整合性のアクティブ化について
どのネットワーク接続でも、クライアントとサーバーの両方が複数の暗号化アルゴリズムと複数の整合性アルゴリズムをサポートできます。
接続が確立されるときに、sqlnet.ora
ファイルで指定されているアルゴリズムの中から、使用するアルゴリズムをサーバーが選択します。サーバーは、クライアントとサーバーの両方で使用できるアルゴリズム間で一致するものを検索し、サーバー側のリストで最初にあって、クライアント側のリストにも出現するアルゴリズムを選択します。接続の一方の側がアルゴリズム・リストを指定していない場合、その側でインストールされているすべてのアルゴリズムを使用できます。いずれかの側でインストールされていないアルゴリズムを指定すると、エラー・メッセージORA-12650
が表示され、接続が失敗します。
暗号化パラメータと整合性パラメータを定義するには、ネットワーク上のクライアントとサーバーのsqlnet.ora
ファイルを変更します。
利用可能な暗号化アルゴリズムの一部またはすべて、および利用可能な整合性アルゴリズムの一方または両方を構成できます。各接続セッションに使用できるのは、1つの暗号化アルゴリズムと1つの整合性アルゴリズムのみです。
ノート:
Oracle Databaseでは、クライアントとサーバーで利用可能なアルゴリズムのうち、最初の暗号化アルゴリズムと最初の整合性アルゴリズムが自動的に選択されます。ネゴシエーションの優先順にアルゴリズムとキーの長さを選択することをお薦めします(つまり、最も強力なキーの長さを最初に選択します)。
関連項目:
-
有効な暗号化アルゴリズムをリストする表17-3
-
使用可能な整合性アルゴリズムのリストは、『Oracle Database Advanced Securityガイド』を参照してください。
親トピック: データの暗号化および整合性の構成
暗号化および整合性のネゴシエーションについて
データの暗号化および整合性を使用するシステム上のsqlnet.ora
ファイルには、REJECTED
、ACCEPTED
、REQUESTED
、REQUIRED
パラメータの一部またはすべてが含まれている必要があります。
- 暗号化および整合性のネゴシエーションの値について
Oracle Net Managerを使用して、暗号化と整合性の構成パラメータに4つの値を指定できます。 - REJECTED構成パラメータ
REJECTED
値は、他方が要求している場合でも、セキュリティ・サービスを無効にします。 - ACCEPTED構成パラメータ
ACCEPTED
値は、他方が必要としている場合または要求している場合に、セキュリティ・サービスを有効にします。 - REQUESTED構成パラメータ
REQUESTED
値は、他方が許可している場合にセキュリティ・サービスを有効にします。 - REQUIRED構成パラメータ
REQUIRED
値は、セキュリティ・サービスを有効にする、または接続を禁止します。
親トピック: データの暗号化および整合性の構成
暗号化および整合性のネゴシエーションの値について
Oracle Net Managerを使用して、暗号化と整合性の構成パラメータに4つの値を指定できます。
次の4つの値はセキュリティの低い順で記載されています。暗号化および整合性を使用しているシステムのクライアントとサーバーのプロファイル・ファイル(sqlnet.ora
)でこれらを使用する必要があります。
値REJECTED
は、クライアントとサーバーの間の通信に最小レベルのセキュリティを提供し、値REQUIRED
は、最高レベルのネットワーク・セキュリティを提供します。
-
REJECTED
-
ACCEPTED
-
REQUESTED
-
REQUIRED
各パラメータのデフォルト値はACCEPTED
です。
Oracle Databaseサーバーおよびクライアントは、デフォルトではACCEPT
暗号化接続に設定されます。これは、接続の片側のみ(サーバー側またはクライアント側)を構成するだけで、接続ペアに対して目的の暗号化および整合性設定を有効化できることを意味します。
したがって、たとえば、数多くのOracleクライアントがOracleデータベースに接続する場合も、サーバー側でsqlnet.oraに適切な変更を加えることによって、すべての接続に対して必要な暗号化および整合性設定を構成できます。クライアントごとに個別に構成の変更を実装する必要はありません。
表17-2に、クライアントとサーバーの構成パラメータを各種組み合せたときに、セキュリティ・サービスが有効化されるかどうかを示します。サーバーまたはクライアントでREQUIRED
が指定されている場合は、共通のアルゴリズムが存在しないと、接続が失敗します 。それ以外の場合は、サービスが有効化されていて、共通のサービス・アルゴリズムが存在しないと、サービスが無効化されます。
表17-2 暗号化とデータ整合性のネゴシエーション
クライアントの設定 | サーバーの設定 | 暗号化とデータのネゴシエーション |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
接続失敗 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
接続失敗 |
|
|
|
|
|
|
|
|
|
脚注1
この値のデフォルトはOFF
です。ユーザーがOracle Net Managerを使用するか、sqlnet.ora
ファイルを変更することによってこのパラメータを変更しないかぎり、暗号化とデータ整合性は有効化されません。
親トピック: 暗号化および整合性のネゴシエーションについて
REJECTED構成パラメータ
REJECTED
値は、他方が要求している場合でも、セキュリティ・サービスを無効にします。
このシナリオでは、セキュリティ・サービスの使用が許可されないことを接続元で指定します。接続先がREQUIRED
に設定されている場合、エラー・メッセージORA-12650が表示されて接続が終了します
。接続先がREQUESTED
、ACCEPTED
またはREJECTED
に設定されている場合、エラーは発生せずに、セキュリティ・サービスが無効のまま接続が継続されます。
親トピック: 暗号化および整合性のネゴシエーションについて
ACCEPTED構成パラメータ
ACCEPTED
値は、他方が必要としている場合または要求している場合に、セキュリティ・サービスを有効にします。
このシナリオでは、接続元からはセキュリティ・サービスを要求しませんが、接続先がREQUIRED
またはREQUESTED
に設定されている場合は、セキュリティ・サービスが有効化されます。接続先がREQUIRED
またはREQUESTED
に設定されていて、該当する暗号化アルゴリズムまたは整合性アルゴリズムが見つかると、エラーは発生せずに、セキュリティ・サービスが有効のまま接続が継続されます。接続先がREQUIRED
に設定されていて、該当するアルゴリズムが見つからない場合、エラー・メッセージORA-12650
が表示されて接続が終了します。
接続先がREQUESTED
に設定されていて、該当するアルゴリズムが見つからない場合、または接続先がACCEPTED
またはREJECTED
に設定されている場合、エラーは発生せずに、セキュリティ・サービスが無効のまま接続が継続されます。
親トピック: 暗号化および整合性のネゴシエーションについて
REQUESTED構成パラメータ
REQUESTED
値は、他方が許可している場合にセキュリティ・サービスを有効にします。
このシナリオでは、接続元がセキュリティ・サービスの使用を希望します(必須ではない)。接続先でACCEPTED
、REQUESTED
またはREQUIRED
が指定されている場合、セキュリティ・サービスが有効化されます。接続先に該当するアルゴリズムがある必要があります。見つからない場合、セキュリティ・サービスは有効化されません。接続先でREQUIRED
が指定されていて、該当するアルゴリズムが見つからない場合、接続は失敗します 。
親トピック: 暗号化および整合性のネゴシエーションについて
REQUIRED構成パラメータ
REQUIRED
値は、セキュリティ・サービスを有効にする、または接続を禁止します。
このシナリオでは、接続元がセキュリティ・サービスの有効化を強制します。接続先でREJECTED
が指定されている場合、または接続先に互換性のあるアルゴリズムが見つからない場合、接続は失敗します。
親トピック: 暗号化および整合性のネゴシエーションについて
Oracle Net Managerを使用した暗号化および整合性パラメータの構成
Oracle Net Managerを使用して、暗号化および整合性パラメータを設定または変更できます。
- クライアントとサーバーでの暗号化の構成
クライアントとサーバーで暗号化を構成するには、Oracle Net Managerを使用します。 - クライアントとサーバーでの整合性の構成
Oracle Net Managerを使用して、クライアントとサーバーの両方でネットワーク整合性を構成できます。 - 異なるユーザーに対するOracleネイティブ暗号化とSSL認証の両方の同時有効化
SQLNET.ENCRYPTION_CLIENT
およびSQLNET.ENCRYPTION_SERVER
の設定に応じて、異なるユーザーに対してOracleネイティブ暗号化とSSL認証の両方を同時に許可するようにOracle Databaseを構成できます。
親トピック: データの暗号化および整合性の構成
クライアントとサーバーでの暗号化の構成
クライアントとサーバーで暗号化を構成するには、Oracle Net Managerを使用します。
表17-3に、有効な暗号化アルゴリズムと対応する有効な値を示します。
表17-3 有効な暗号化アルゴリズム
アルゴリズム名 | 有効な値 |
---|---|
AES 256ビット・キー |
AES256 |
AES 192ビット・キー |
AES192 |
AES 128ビット・キー |
AES128 |
クライアントとサーバーでの整合性の構成
Oracle Net Managerを使用して、クライアントとサーバーの両方でネットワーク整合性を構成できます。
関連項目:
サポートされる暗号化および整合性アルゴリズムのリストは、『Oracle Database Advanced Securityガイド』を参照してください。異なるユーザーに対するOracleネイティブ暗号化とSSL認証の両方の同時有効化
SQLNET.ENCRYPTION_CLIENT
およびSQLNET.ENCRYPTION_SERVER
の設定に応じて、異なるユーザーに対してOracleネイティブ暗号化とSSL認証の両方を同時に許可するようにOracle Databaseを構成できます。
- 異なるユーザーに対するOracleネイティブ暗号化とSSL認証の両方の同時有効化について
デフォルトでは、Oracle Databaseでは、異なるユーザーに対してOracleネイティブ暗号化とSecure Sockets Layer (SSL)認証の両方を同時に使用することはできません。 - 異なるユーザーに対するOracleネイティブ暗号化とSSL認証の両方の同時構成
IGNORE_ANO_ENCRYPTION_FOR_TCPS
パラメータを使用して、Oracleネイティブ暗号化とSecure Sockets Layer (SSL)認証の両方を同時に使用できるようにします。
異なるユーザーに対するOracleネイティブ暗号化とSSL認証の両方の同時有効化について
デフォルトでは、Oracle Databaseでは、異なるユーザーに対するOracleネイティブ暗号化とSecure Sockets Layer (SSL)認証の両方を同時に使用することはできません。
Oracleネイティブ暗号化(Advanced Networking Option (ANO)暗号化とも呼ばれる)とSSL認証の併用は、二重暗号化と呼ばれます。
一部のユーザーにユーザー名とパスワードの使用によるサーバーへの接続を可能にし、他のユーザーにSSL証明書の使用によるそのサーバーへの認証を可能にするように、TCPリスナーとTCPSリスナーの両方を構成する必要がある場合があります。このような場合、パスワードベースの認証とSSL認証の両方を構成する必要があります。以前のリリースの回避策では、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
に設定されていても無視できます。