テスト済みのリファレンス実装

GT.Mのデータベース暗号化には、選択された暗号化パッケージで「すぐに」動作するリファレンス実装が付属しています。これは、GT.Mデータベースの暗号化を使用した初期の開発とテストに使用できます。多くの暗号化パッケージがあります。先に論じたように、FISは特定の暗号やパッケージを保証もサポートもしていません。プロダクション環境で、あなたは希望するパッケージの選択、実装、および調達の責任を負います。選択した暗号化パッケージの誤動作により、回復不能なデータが生成され、FISがお客様をサポートできなくなる可能性があることを覚えておいてください。

以下の プラグインのアーキテクチャとインタフェース のセクションでは、リファレンス実装について詳しく説明しています。このリファレンス実装は、あなた自身の使用のために自由に変更できる完全なソースコードとともに提供されています。

GT.Mが暗号化をサポートするプラットフォームごとに、次の表は、FISがGT.Mをテストした暗号化パッケージとバージョンを示しています。FISは、これらのパッケージに対する操作のためにGT.Mをテストしました。FISは、暗号化パッケージ自体の堅牢性をテストしませんでした。

OS (HW)

libgpgme

libgpg-error

libgcrypt / libcrypto

GPG

Ubuntu 12.04 LTS (x86_64)

1.2.0-1.2

1.6-1

libgcrypt 1.4.4-5

 

RHEL 6 (x86_64)

1.1.6

1.4-2

libgcrypt 1.4.4-5

 

RHEL 6 (x86)

1.1.6

1.4-2

libgcrypt 1.4.4-5

 

AIX 6.1 と 7.1

1.1.8 + fix

1.7

OpenSSLのlibcrypto - (version >= 1.5)

OpenSSLで実装されているAES256CFB - (version >= 0.9.8)

 

Sun SPARC Solaris 10 (Update 6 以上)

1.1.4 + fix

1.6

libgcrypt 1.4.1

 

HP-UX 11V3 (11.31)

1.1.8 + fix

1.7

libgcrypt 1.4.1

 

SLES 11 (x86_64)

1.1.6-25.30

1.6-8.6

libgcrypt 1.4.4-2.2

 

表にパッケージのバージョン番号とそれに続く "+ fix" が表示されている場合は、テストの過程で修正されたパッケージに関する問題が特定されたことを意味します。アップストリームのパッケージ・メンテナに修正プログラムのソースコードを提供しました。FISとサポート契約を結んでいる場合は、要請があれば、そのソースコードをお客様と共有します。

リファレンス実装では:

GT.Mデータベース暗号化がV5.3-004で初めてリリースされたとき、AIXのリファレンス実装はBlowfish CFBでした。64ビット環境への libgcrypt の移植は、32ビット環境への移植(AIXのGT.Mは64ビットアプリケーション)よりも成熟度が低いため、libgcryptには一定の制限がありました。また、その時点でOpenSSLのlibcryptoにAESを実装するには、データが16バイトの倍数であるチャンクである必要があったため、Blowfishが使用されました。プラグインのリファレンス実装を介してV6.0-001でBlowfish CFBを引き続き使用する場合は、インストール後のシンボリックリンクを変更するか、次のように環境変数gtm_crypt_pluginを定義する必要があります。

[注意] 注意

Blowfish CFBからAES CFBにデータベースを移行するには、データを抽出して新しく作成したデータベースファイルにロードする必要があります。アプリケーションを使用できない時間を最小限に抑えるには、アプリケーションを論理マルチサイト(LMS)構成に配置し、ローリング・アップグレード・テクニックを使用して移行できます。詳しくは、第7章: “データベース・レプリケーション を参照してください。

GT.Mプロセスが最初に暗号化プラグインを提供する共有ライブラリを開くと、ライブラリは $gtm_dist/plugin またはそのサブディレクトリに存在することが保証されます。これにより、暗号化プラグインを実装しているライブラリであれば、GT.Mのインストール自体と同じアクセスコントロールがインストールされ、同じアクセスコントロールで保護されている必要があります。

GT.Mが暗号化をサポートするすべてのプラットフォームでは、共有ライブラリ libgtmcrypt_gcrypt_AES256CFB.so、libgtmcrypt_openssl_AES256CFB.so およびlibgtmcrypt_openssl_BLOWFISHCFB.so によって提供される、プラグインの3つのリファレンス実装が配布に含まれます。インストール時に、AIX以外のプラットフォーム libgtmcrypt.so は、libgtmcrypt_gcrypt_AES256CFB.so へのシンボリックリンクです; AIXのシンボリックリンクは libgtmcrypt_openssl_AESCFB.soです。Blowfish CFBをデフォルトとして使用するには、GT.Mをインストールした後にシンボリックリンクを変更する必要があります。AES CFBをデフォルトとして使用し、V6.0-000から移行されたデータベースのBlowfish CFBを保持するには、これらのデータベースを使用するときにgtm_crypt_pluginを設定します。V6.0-000とV6.0-001の間で移植できるスクリプトの場合、V6.0-000が無視するgtm_crypt_pluginの値を安全に設定することができます。

[注意] 注意
  • 暗号化されたデータベース・ファイルは、同じキーと同じ暗号を使用する限り、異なるエンディアン・プラットフォーム間で互換性があります。

  • リファレンス実装のサンプル・シェル・スクリプトは、標準シェル(/bin/sh)を使用します。

注意 注意

開発中、コアダンプで、FISは、GT.Mがライブラリを適切に呼び出してキーを破棄したにもかかわらず、libgpgme によって解放されたバッファ内の解読された対称データベースキーに気付きました。私たちは上流の開発者にこれを伝えました。これは、データベース・キーとしての強力な乱数の望ましさと、必要な場合を除いてコア・ダンプの無効化を再度強調しています。これらの強力なキーは、 “キー・マネージメント ” のセクションで説明している gen_sym_key.sh スクリプトを使用して作成できます。

inserted by FC2 system