9 ENCKEYS方式を使用したデータ暗号化

このデータ暗号化方式を使用するには、暗号化鍵を生成してローカルのENCKEYSファイルに格納するよう、Oracle GoldenGateを構成します。

この方式では永久鍵を使用します。永久鍵を変更するには、ENCKEYSファイルへの暗号化鍵の移入を参照してください。

ENCKEYSファイルは、オペレーティング・システムの一般的なファイル権限の割当て方法で保護されている必要があります。

次の手順では、AES暗号化鍵を生成し、それをENCKEYSファイルに格納する方法について説明します。

トピック:

ENCKEYS方式を使用したデータ暗号化

  1. 暗号化鍵を生成してENCKEYSファイルに格納します。ENCKEYSファイルへの暗号化鍵の移入を参照してください。作成したENCKEYSファイルを、中間システムとすべてのターゲット・システムのOracle GoldenGateインストール・ディレクトリに必ずコピーしてください。
  2. 次に示すパラメータ・ファイルに、次の項目を追加します。
    • 証跡データを暗号化する手順: プライマリExtractグループとデータ・ポンプのパラメータ・ファイルで、暗号化対象の証跡またはファイルを指定するパラメータの前に、ENCRYPTTRAILパラメータを追加します。証跡またはファイルを指定するパラメータは、EXTTRAILRMTTRAILEXTFILEおよびRMTFILEです。構文は次のいずれかです。

      ENCRYPTTRAIL {AES128 | AES192 | AES256 | BLOWFISH}  
      
      ENCRYPTTRAIL AES192, KEYNAME keyname
    • TCP/IP間のデータを暗号化する手順: データ・ポンプ(ポンプが使用されていない場合はプライマリExtract)のパラメータ・ファイルで、RMTHOSTOPTIONSパラメータに、ENCRYPTオプションとKEYWORD句を追加します。構文は次のいずれかです。

      RMTHOSTOPTIONS host, MGRPORT port, ENCRYPT {AES128 | AES192 | AES256 | BLOWFISH} KEYNAME keyname
      
      RMTHOSTOPTIONS ENCRYPT {AES128 | AES192 | AES256 | BLOWFISH} KEYNAME keyname
      

    説明:

    • RMTHOSTOPTIONSは、パッシブExtractに使用されます。ENCKEYSファイルへの暗号化鍵の移入を参照してください。

    • ENCRYPTTRAILでオプションを指定しない場合、すべてのデータベース・タイプでAES128がデフォルトとして使用されます(ただし、iSeries、z/OSおよびNonStopプラットフォームではBLOWFISHがデフォルトです)。

    • AES128の場合、AES-128暗号化アルゴリズムで暗号化されます。iSeries、z/OSおよびNonStopプラットフォームではサポートされていません。

    • AES192の場合、AES-192暗号化アルゴリズムで暗号化されます。iSeries、z/OSおよびNonStopプラットフォームではサポートされていません。

    • AES256の場合、AES-256暗号化アルゴリズムで暗号化されます。iSeries、z/OSおよびNonStopプラットフォームではサポートされていません。

    • BLOWFISHの場合、Blowfish暗号化が使用されます(ブロック・サイズは64ビット、鍵サイズは32から128ビットの可変長です)。プラットフォームでサポートされている場合には、AESを使用します。BLOWFISHは、以前のOracle GoldenGateバージョンとの下位互換性を維持するために使用する他、DB2 z/OSおよびDB2 for iで使用します。これらのプラットフォームでは、AESはサポートされていません。

    • KEYNAME keynameでは、ENCKEYSファイルにある暗号化鍵の論理参照名を指定します。ENCRYPTTRAILのオプションではありません。

      注意:

      RMTHOSTは、Extractがパッシブ構成でない場合に使用します。

  3. TCP/IPを通じて暗号化されるデータで静的Collectorを使用する場合、Collectorの起動文字列に次のパラメータを挿入します。
    -KEYNAME keyname
    -ENCRYPT algorithm
    

    指定した鍵名とアルゴリズムは、RMTHOSTKEYNAMEおよびENCRYPTオプションで指定されたものと一致する必要があります。

ENCKEYS方式を使用したデータ復号化

TCP/IP接続を通じて暗号化されたデータは、送信先で証跡に書き込まれる前に自動的に復号化されます(証跡暗号化が指定されていない場合)。

証跡内で暗号化されたデータは暗号化されたままです(DECRYPTTRAILパラメータが使用されていない場合)。Replicatで暗号化データをターゲットに適用できるようにするには、あらかじめDECRYPTTRAILが必要です。データ・ポンプでは、暗号化データをそのまま出力証跡に渡します(DECRYPTTRAILおよびENCRYPTTRAILパラメータが使用されていない場合)。データ・ポンプでデータを処理する必要がある場合は、次のようにデータの復号化と暗号化を行います。

データ・ポンプで処理するためにデータを復号化する手順

データ・ポンプのパラメータ・ファイルにDECRYPTTRAILパラメータを追加します。復号化アルゴリズムと鍵は、証跡の暗号化に使用したものと一致している必要があります。ENCKEYS方式を使用したデータ暗号化を参照してください。

DECRYPTTRAIL {AES128 | AES192 | AES256 | BLOWFISH}

データ・ポンプで処理した後にデータを暗号化する手順

データ・ポンプが出力証跡またはファイルにデータを書き込む前にそのデータを暗号化するには、対象の証跡またはファイルを指定するパラメータの前にENCRYPTTRAILパラメータを使用します。証跡またはファイルを指定するパラメータは、EXTTRAILRMTTRAILEXTFILEおよびRMTFILEです。ENCRYPTTRAILパラメータと証跡またはファイルの指定は、DECRYPTTRAILパラメータの後に配置する必要があります。

注意:

ENCRYPTTRAILで指定するアルゴリズムは、証跡ごとに変更できます。たとえば、ローカル証跡の暗号化にはAES 128を、リモート証跡の暗号化にはAES 256をそれぞれ使用できます。

Replicatで処理するためにデータを復号化する手順

Replicatの読み取る証跡が暗号化されている場合は、Replicatのパラメータ・ファイルにDECRYPTTRAILパラメータ文を追加します。復号化アルゴリズムと鍵は、証跡の暗号化に使用したものと一致している必要があります。

ENCKEYS方式を使用したデータ暗号化の例

次の例では、様々な証跡またはファイルに対して暗号化を有効化/無効化する方法を示しています。この例では、Extractで2つのローカル証跡に書き込みますが、暗号化する必要があるのはそのうちの1つのみです。

Extract構成で、証跡bbは暗号化されない証跡なので、そのEXTTRAILパラメータは、証跡aaを暗号化するENCRYPTTRAILパラメータの前に配置されます。あるいは、証跡bbを指定するEXTTRAILパラメータの前にNOENCRYPTTRAILパラメータを使用し、次に、証跡aaを指定するEXTTRAILパラメータの前にENCRYPTTRAILパラメータを使用することもできます。

この例では、データ・ポンプ1pumpでデータを処理できるよう、暗号化データを復号化する必要があります。そのため、データ・ポンプのパラメータ・ファイルでDECRYPTTRAILパラメータが使用されています。データを再暗号化して出力するには、ENCRYPTTRAILパラメータをDECRYPTTRAILの後(ただし出力証跡の指定の前)に使用する必要があります。データ・ポンプでデータを処理する必要がない場合は、DECRYPTTRAILおよびENCRYPTTRAILパラメータを省略して、暗号化された状態のままReplicatに渡すことができます。

例9-1 Extractのパラメータ・ファイル

EXTRACT capt
USERIDALIAS ogg
DISCARDFILE /ogg/capt.dsc, PURGE
-- Do not encrypt this trail.
EXTTRAIL /ogg/dirdat/bb
TABLE SALES.*;
-- Encrypt this trail with AES-192.
ENCRYPTTRAIL AES192
EXTTRAIL /ogg/dirdat/aa
TABLE FIN.*;

例9-2 データ・ポンプ1のパラメータ・ファイル

EXTRACT 1pump
USERIDALIAS ogg
DISCARDFILE /ogg/1pmp.dsc, PURGE
-- Decrypt the trail this pump reads. Use encryption key mykey1.
DECRYPTTRAIL AES192
-- Encrypt the trail this pump writes to, using AES-192.
RMTHOSTOPTIONS myhost1, MGRPORT 7809
ENCRYPTTRAIL AES192
RMTTRAIL /ogg/dirdat/cc
TABLE FIN.*;

例9-3 データ・ポンプ2のパラメータ・ファイル

EXTRACT 2pump
USERIDALIAS ogg
DISCARDFILE /ogg/2pmp.dsc, PURGE
RMTHOST myhost2, MGRPORT 7809
RMTTRAIL /ogg/dirdat/dd
TABLE SALES.*;

例9-4 Replicat1(myhost1上)のパラメータ・ファイル

REPLICAT 1deliv
USERIDALIAS ogg
ASSUMETARGETDEFS
DISCARDFILE /ogg/1deliv.dsc, PURGE
-- Decrypt the trail this Replicat reads. Use encryption key mykey2.
DECRYPTTRAIL AES192
MAP FIN.*, TARGET FIN.*;

例9-5 Replicat 2(myhost2上)のパラメータ・ファイル

REPLICAT 2deliv
USERIDALIAS ogg
ASSUMETARGETDEFS
DISCARDFILE /ogg/2deliv.dsc, PURGE
MAP SALES.*, TARGET SALES.*;