主コンテンツへ
Oracle®Fusion Middleware Oracle GoldenGate環境の保護
12c (12.3.0.1)
E98561-01
目次へ移動
目次

前
次

8 マスター・キーとウォレット方式を使用したデータ暗号化

このデータ暗号化方式を使用するには、マスター・キー・ウォレットを作成してマスター・キーをウォレットに追加します。この方式では、データが証跡内またはTCP/IP間のどちらで暗号化されるかに応じて、次の処理を行います。

  • Oracle GoldenGateで証跡ファイルが作成されるたびに、新しい暗号化鍵が自動的に生成されます。この暗号化鍵で証跡の内容を暗号化します。マスター・キーは、暗号化鍵を暗号化します。この暗号化鍵を暗号化するプロセスは鍵ラップと呼ばれています(詳細は、米国標準委員会のANS X9.102標準を参照してください)。

  • ネットワーク間でデータを暗号化する場合、Oracle GoldenGateではマスター・キーに基づいた暗号関数を使用してセッション鍵を生成します。

Oracle GoldenGateでは、自動ログイン・ウォレット(ファイル拡張子.sso)と呼ばれる、ユーザーの操作なしで必要なパスワードを提供できる不明瞭化されたコンテナを使用します。

マスター・キーとウォレットを使用したデータ暗号化は、DB2 for i、DB2 z/OSまたはNonStopプラットフォームではサポートされていません。

トピック:

8.1 ウォレットの作成とマスター・キーの追加

ウォレットはプラットフォームに依存しない形式で作成されます。ウォレットは、Oracle GoldenGate環境内のすべてのシステムからアクセス可能な共有ファイル・システム上に格納できます。あるいは、Oracle GoldenGate環境内の各システムで同じウォレットを使用することも可能です。各システム上のウォレットを使用する場合は、1つのシステム(通常はソース・システム)でウォレットを作成し、それをOracle GoldenGate環境内の他のすべてのシステムにコピーする必要があります。マスター・キーを追加、変更または削除するたびに、これを実行する必要があります。

次の手順では、ソース・システムでウォレットを作成し、それをOracle GoldenGate環境内の他のシステムにコピーする方法を説明します。

  1. (オプション)Oracle GoldenGateインストール・ディレクトリのdirwltサブディレクトリ以外の場所にウォレットを格納するには、GLOBALSファイルでWALLETLOCATIONパラメータを使用して目的の場所を指定します。
    WALLETLOCATION directory_path
    
  2. GGSCIでCREATE WALLETコマンドを使用して、マスター・キー・ウォレットを作成します。
  3. OPEN WALLETコマンドを使用して作成された後でウォレットを開きます。
  4. ADD MASTERKEYコマンドを使用して、マスター・キーをウォレットに追加します。
  5. INFO MASTERKEYコマンドを発行して、追加した鍵が現在のバージョンであることを確認します。新規インストールの場合、バージョンは1です。
  6. VERSIONオプションを指定してINFO MASTERKEYコマンドを発行します(versionには現在のバージョン番号を指定します)。バージョン番号とそのバージョンのAESハッシュ値を記録します。
    INFO MASTERKEY VERSION version
    
  7. 他のすべてのOracle GoldenGateシステムにウォレットをコピーします。
  8. ウォレットをコピーした各システム上で、VERSIONオプションを指定してINFO MASTERKEYコマンドを発行します(versionには記録しておいたバージョン番号を指定します)。各ウォレットで、StatusCurrentになっていることを確認し、AESハッシュ値を記録しておいたコピー元の値と比較します。すべてのウォレットで、同じ鍵バージョンとハッシュ値が表示される必要があります。
    INFO MASTERKEY VERSION version

8.2 パラメータ・ファイルでの暗号化パラメータの指定

次の手順では、証跡内およびネットワーク間のデータをマスター・キーとウォレット方式で暗号化するために必要なパラメータを追加します。

  1. 次に示すパラメータ・ファイルに、次の項目を追加します。
    • 証跡データを暗号化する手順: プライマリExtractグループとデータ・ポンプのパラメータ・ファイルで、暗号化対象の証跡またはファイルを指定するパラメータの前に、ENCRYPTTRAILパラメータ文を追加します。証跡またはファイルを指定するパラメータは、EXTTRAILRMTTRAILEXTFILEおよびRMTFILEです。構文は次のとおりです。

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

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

    説明:

    • RMTHOSTOPTIONSは、パッシブExtractを含むExtractに使用されます。パッシブExtractの詳細は、「ターゲット・システムからの接続開始の使用」を参照してください。

    • オプションなしのENCRYPTTRAILは、256鍵バイト置換を指定します。このフォーマットは安全ではないため、本番環境では使用しないでください。以前のOracle GoldenGateバージョンとの下位互換性を維持するためにのみ使用します。

    • AES128の場合、AES-128暗号化アルゴリズムで暗号化されます。

    • AES192の場合、AES-192暗号化アルゴリズムで暗号化されます。

    • AES256の場合、AES-256暗号化アルゴリズムで暗号化されます。

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

  2. 証跡データを復号化してから出力証跡に書き込む場合は、データ・ポンプでDECRYPTTRAILパラメータを使用します。そうしないと、データ・ポンプで処理が必要なデータは自動的に復号化され、後で再暗号化されてから出力証跡に書き込まれます。(Replicatでは、パラメータ入力なしでデータが自動的に復号化されます。)
    DECRYPTTRAIL

注意:

受信した証跡データを復号化してから再暗号化して任意の出力証跡またはファイルに書き込むよう、明示的に指定できます。まず、データを復号化するDECRYPTTRAILを入力し、次にENCRYPTTRAILと出力証跡の指定を入力します。DECRYPTTRAILENCRYPTTRAILの前に入力されている必要があります。復号化と再暗号化を明示的に指示することにより、必要に応じてAESアルゴリズムを証跡ごとに変更できます。たとえば、ローカル証跡の暗号化にはAES 128を、リモート証跡の暗号化にはAES 256をそれぞれ使用できます。あるいは、1番目のプロセスと2番目のプロセス間の暗号化にはマスター・キーとウォレット方式を使用し、2番目のプロセスと3番目のプロセス間の暗号化にはENCKEYS方式を使用することも可能です。

8.3 マスター・キーの更新

次の手順では、暗号化鍵ウォレット内のマスター暗号化鍵を更新します。マスター・キーを更新すると、鍵の新しいバージョンが作成されます。名前は同じままですが、ビット順序が変更されます。セキュリティ・ポリシーの一環として、現在のマスター・キーを定期的に更新し、失効を回避してください。

マスター・キーの更新済バージョンはすべてウォレット内に残ります(ただし、DELETE MASTERKEYコマンドで削除対象とマークされてからPURGE WALLETコマンドでウォレットが消去されるまで)。失効したマスター・キーの削除を参照してください。

ウォレットが共有記憶域で(共有ウォレットとして)一元管理されていない場合、更新されたウォレットは、Oracle GoldenGate構成内でウォレットを使用する他のすべてのシステムにコピーする必要があります。これを行うには、Oracle GoldenGateを停止する必要があります。次の手順では、これらの作業を正しい順序で実行する方法を示します。

  1. Extractを停止します。
    STOP EXTRACT group
    
  2. ターゲット・システムで、各Replicatに対して次のコマンドを発行します(At EOFが戻されるまで)。
    SEND REPLICAT group STATUS
    
  3. ソース・システムで、データ・ポンプを停止します。
    STOP EXTRACT group
    
  4. ターゲット・システムで、Replicatグループを停止します。
    STOP REPLICAT group
    
  5. ソース・システムで、次のコマンドを発行してウォレットを開きます。
    OPEN WALLET
    
  6. ソース・システムで、次のコマンドを発行して現在の鍵のバージョンを確認します。バージョンを記録します。
    INFO MASTERKEY
    
  7. ソース・システムで、次のコマンドを発行してマスター・キーを更新します。
    RENEW MASTERKEY
    
  8. ソース・システムで、次のコマンドを発行して新しいバージョンが現在のものであることを確認します。
    INFO MASTERKEY
    

    注意:

    共有ウォレットを使用している場合は、手順12に進みます。各システム上のウォレットを使用している場合は、次の手順を続行します。

  9. ソース・システムで、次のコマンドを発行します(versionにはマスター・キーの新しいバージョンを指定します)。ハッシュ値を記録します。
    INFO MASTERKEY VERSION version
    
  10. すべてのターゲット・システム上で、以前のウォレットと同じ場所に、ソース・システムの更新されたウォレットをコピーします。
  11. 各ターゲットで、次のコマンドを発行します(versionにはマスター・キーの新しいバージョン番号を指定します)。各ウォレットで、StatusCurrentになっていることを確認し、新しいハッシュ値を記録しておいたコピー元の値と比較します。すべてのウォレットで、同じ鍵バージョンとハッシュ値が表示される必要があります。
    INFO MASTERKEY VERSION version
    
  12. Extractを再起動します。
    START EXTRACT group
    
  13. データ・ポンプを再起動します。
    START EXTRACT group
    
  14. Replicatを再起動します。
    START REPLICAT group

8.4 失効したマスター・キーの削除

次の手順では、マスター・キーの失効バージョンを削除します。セキュアなOracle GoldenGateウォレットを維持するための全体的なポリシーの一環として、失効した鍵は削除してください。ウォレット内で保持する鍵のバージョンの数とその保存期間を定めたポリシーを作成しておくことをお薦めします。

注意:

Oracle GoldenGateの共有ウォレットを使用したデプロイの場合、マスター・キーの古いバージョンは、マスター・キーが更新された後、すべてのプロセスが最新バージョンを使用するまで保持される必要があります。待機する時間は、トポロジ、レイテンシ、およびデプロイのデータ・ロードにより異なります。24時間の最小の待機時間は控えめな見積りですが、すべてのプロセスが新しい鍵の使用を開始するのにかかる時間を決定するには、テストを実行する必要がある場合があります。すべてのプロセスが最新バージョンを使用しているかどうかを判定するには、マスター・キーの更新後すぐに各Extractのレポート・ファイルを表示して、古い鍵でマイニングされた最後のSCNを確認します。次に、Replicatレポート・ファイルを監視し、このSCNがすべてのReplicatグループにより適用されたことを確認します。この時点で、マスター・キーの旧バージョンを削除できます。

ウォレットが中央の記憶域に配置され、Oracle GoldenGateインストール環境全体でそのウォレットを使用できる場合、次の手順は共有ウォレットに対して1回実行するだけで済みます。Oracle GoldenGateプロセスを停止する必要はありません。

ウォレットが中央の記憶域にない(つまり、各Oracle GoldenGateシステムにコピーが存在する)場合は、次のいずれかを実行します。

  • Oracle GoldenGateプロセスを停止できる場合は、ウォレットの変更手順を1度だけ実行して、更新されたウォレットを他のシステムにコピーしてから、Oracle GoldenGateプロセスを再起動します。

  • Oracle GoldenGateプロセスを停止できない場合は、必ず各システム上でまったく同じ方法を使用してウォレットの変更手順を実行する必要があります。

    次の手順には、両方のシナリオに対応する説明が含まれています。

  1. ソース・システムで、次のコマンドを発行して、削除対象のマスター・キーのバージョンを確認します。通常、最も古いバージョンが削除対象です。対象のバージョンを記録します。
    INFO MASTERKEY
    
  2. ソース・システムで、次のコマンドを発行してウォレットを開きます。
    OPEN WALLET
    
  3. 次のコマンドを発行して失効したマスター・キーを削除します。特定のバージョン、指定範囲のバージョン、または現在のものを含むすべてのバージョンを削除するオプションが用意されています。すべてのバージョンを削除するには、トランザクション・アクティビティとOracle GoldenGateプロセスを停止する必要があります。
    DELETE MASTERKEY {VERSION version | RANGE FROM begin_value TO end_value}

    注意:

    DELETE MASTERKEYは、削除対象の鍵のバージョンをマークするだけで、実際の削除は行いません。

  4. DELETE MASTERKEYコマンドから戻されたメッセージを確認し、正しいバージョンが削除対象としてマークされていることを確かめます。間違ってマークされたバージョンのマークを解除するには、次の手順に進む前に、UNDELETE MASTERKEY VERSION versionコマンドを使用します。必要に応じて、INFO MASTERKEYコマンドを実行すると、マークされた削除対象を確認できます。
  5. 正しいバージョンが削除対象としてマークされていることが確認できたら、次のコマンドを発行して、それらをウォレットから消去します。これは永久削除なので、元に戻せません。
    PURGE WALLET
    

    次の手順:

    • ウォレットが共有記憶域に配置されている場合、手順はこれで終了です。

    • 各システム上にウォレットが配置され、Oracle GoldenGateプロセスを停止できない場合は、Oracle GoldenGateシステムごとに前の手順を繰り返します。

    • 各システム上にウォレットが配置され、Oracle GoldenGateプロセスを停止できる場合は、次の手順を続行してプロセスを停止し、ウォレットを正しい順序で他のシステムにコピーします。

  6. Extractを停止します。
    STOP EXTRACT group
    
  7. GGSCIで、各データ・ポンプExtracに対して次のコマンドを発行します(At EOFが戻され、ローカル証跡内のすべてのデータが処理されたことが確認されるまで)。
    SEND EXTRACT group STATUS
    
  8. データ・ポンプを停止します。
    STOP EXTRACT group
    
  9. ターゲット・システムで、各Replicatに対して次のコマンドを発行します(At EOFが戻されるまで)。
    SEND REPLICAT group STATUS
    
  10. Replicatグループを停止します。
    STOP REPLICAT group
    
  11. すべてのターゲット・システム上で、以前のウォレットと同じ場所に、ソース・システムの更新されたウォレットをコピーします。
  12. Extractを再起動します。
    START EXTRACT group
    
  13. データ・ポンプを再起動します。
    START EXTRACT group
    
  14. Replicatを再起動します。
    START REPLICAT group