概要
DuoKey は、標準の PKCS#11 インターフェイスを介して Oracle Transparent Data Encryption (TDE) と統合します。これにより、Oracle は TDE マスター暗号化キーをデータベースサーバー上のローカルウォレットファイルではなく、DuoKey に保管して使用します。Oracle から見ると、DuoKey は 外部 HSM キーストア として認識されます。マスターキーは堅牢な境界内に存在し、データベースホスト上に置かれることは決してありません。
この概要では、現行の Cockpit v2 統合について説明します。実践的な手順については はじめに を、構成リファレンスについては PKCS#11 プロバイダー構成 (pkcs11.toml) を参照してください。
Oracle TDE とは
Oracle Transparent Data Encryption は、Oracle Database のテーブルおよび表領域内の機密データを保存時に暗号化します。これにより、PCI DSS、HIPAA、GDPR などのプライバシーおよびセキュリティ要件への対応を支援します。
主な機能
- 透過的暗号化: アプリケーションを変更することなく、保存データを暗号化します
- 列暗号化: 特定の機密列を暗号化します
- 表領域暗号化: 表領域全体を透過的に暗号化します
- バックアップ保護: RMAN による暗号化バックアップ
TDE のキー管理における課題
従来のアプローチ: ローカルウォレット保管
デフォルトでは、Oracle TDE はマスター暗号化キーをデータベースサーバー上のウォレットファイルに保持します。攻撃者がホストへの特権アクセスを取得した場合、ウォレット(したがってマスターキー)が漏洩します。また、バックアップ、ローテーション、監査もサーバーごとに手動で行う必要があります。
最新のアプローチ: 外部 HSM キーストア
代わりに、Oracle は PKCS#11 経由でアクセスする外部 HSM キーストアに TDE マスターキーを保管できます。DuoKey を利用すると、次の利点が得られます。
- 物理的なキーの分離 — マスターキーがデータベースサーバー上に置かれることはありません
- セキュアな境界内での操作 — ラップ/アンラップは DuoKey 内で実行され、キーのバイト列がエクスポートされることはありません
- 多数のデータベースにわたる一元的なキー管理
- Cockpit 内でのすべてのキー操作の 完全な監査証跡
- オンラインでのキーローテーション とライフサイクル管理
マスターキーの保護方法
Oracle のキーストアタイプは HSM です。DuoKey Cockpit の背後で、マスターキーはテナントのボールト/HSM に保持されます。DuoKey の信頼の基点は マルチパーティ計算 (MPC) KMS であり、ハードウェアによるキー管理については、DuoKey はスイスのパートナーであり FIPS 140-2 Level 3 認証を取得した Securosys HSM と提携しています。Oracle から見れば、これは単なる HSM キーストア (WRL_TYPE = HSM) であり、MPC および HSM の詳細はすべて DuoKey 側で処理されます。
DuoKey のハードウェアによるキー管理は Securosys HSM によって提供されます。
統合チェーン
Oracle が Cockpit と直接通信することはありません。Oracle は DuoKey PKCS#11 プロバイダー(Linux では libdke_pkcs11.so、Windows では dke_pkcs11.dll)をロードし、各マスターキー操作を Cockpit v2 プロキシエンドポイントへの単一の HTTPS 呼び出しに変換します。プロキシはテナントのボールト/HSM に対して操作を実行します。
Oracle Database (ADMINISTER KEY MANAGEMENT …)
│ PKCS#11 — master-key path only
▼
DuoKey PKCS#11 provider (libdke_pkcs11.so / dke_pkcs11.dll)
│ HTTPS — one request per Cryptoki operation
▼
DuoKey Cockpit (v2 proxy endpoint)
│ generate / wrap / unwrap under the master key
▼
Tenant vault / HSM (Securosys HSM in production)
DuoKey が関与するのは マスターキーのパス のみです。すなわち、キーストアのオープン、SET KEY、および表領域キーのラップ/アンラップです。Oracle はすべてのバルクなテーブルおよび表領域の AES 暗号化を、ハードウェア (AES-NI) を用いて自ら実行するため、通常のワークロードのスループットは影響を受けません。
TDE のキー階層
TDEマスター暗号化キー (KEK)
DuoKey KMSに保存
Oracle Databaseに暗号化して保存
Oracle Databaseに暗号化して保存
アプリケーションデータ
データベースファイル内で保存時に暗号化されたデータ
TDE マスター暗号化キー (MEK)
- DuoKey の HSM キーストアに保持される AES-256 キーです
- テーブルおよび表領域キーのラップ/アンラップに使用されます
- セキュリティ管理者によって管理され、平文でエクスポートされることはありません
テーブルおよび表領域キー (DEK)
- 暗号化されてデータベースに保管され、暗号化されたテーブルまたは表領域ごとに 1 つずつ存在します
- Oracle によって自動的に管理されます
- DuoKey に保持される MEK によってラップ/アンラップされます
認証モデル
Cockpit v2 は、単一の access_guid ベアラートークン でプロバイダーを認証します。このトークンはプロキシの server_url に埋め込まれ、pkcs11.toml ファイルに記載されます。OAuth2、クライアント ID/シークレット、ユーザー名/パスワード、テナントヘッダーはいずれも使用されません。テナントは (app_id, access_guid) のペアからサーバー側で解決されます。PKCS#11 プロバイダー構成 (pkcs11.toml) を参照してください。
主な特長
セキュアなキー保管
- マスターキーは DuoKey の HSM キーストアに保持され、本番環境では Securosys HSM によって支えられます
- マスターキーのバイト列がバックエンドから外に出ることはなく、
CKA_VALUEは Oracle に対して拒否されます - 改ざんが検知可能なキー操作
透過的な運用
- アプリケーションの変更は不要です
- RAC、Data Guard、RMAN を含む Oracle Database の機能と互換性があります
一元的な管理
- 単一の Cockpit から多数のデータベースのキーを管理します
- キーのライフサイクルとローテーションの自動化
- アプリごとの完全な監査証跡
マスターキーのライフサイクル
マスターキーは、Cockpit で Oracle TDE アプリがプロビジョニングされる際に作成されます(初期の AES-256 アクティブキー)。ローテーションでは新しいキーがアクティブになり、以前のキーは 無効化されますが保持されます。これにより、古いマスターキーでラップされた表領域キーは引き続き復号可能です。
マスターキーを作成
定期的なローテーション
ウォレットバックアップ
メリット
セキュリティチームにとって
- 職務の分離: DBA はデータベースを管理し、セキュリティ管理者はキーを管理します
- 規制コンプライアンス: PCI DSS、HIPAA、GDPR の要件への対応を支援します
- 一元的な制御 と リスクの低減 — キーがデータベースホスト上に置かれることはありません
データベース管理者にとって
- Oracle RAC、Data Guard、RMAN との 互換性
- パフォーマンス: バルク暗号化は AES-NI を用いてローカルで完結し、DuoKey を呼び出すのはマスターキーのパスのみです
- Cockpit が生成するデプロイバンドルによる 運用の簡素化
組織にとって
- 一元管理による コスト効率
- スケーラビリティ: 新しいデータベースを個別のアプリとして追加できます
- 将来性: 標準ベースの PKCS#11 インターフェイス
サポートされる Oracle バージョン
Oracle 11g R2 では、パッチ 18948524 が適用されていることを確認してください。
デプロイメントシナリオ
エンタープライズデータベースの統合
多数の Oracle データベースの TDE キーを、統一されたポリシーと自動ローテーションによって一元的に管理します。
クラウド移行
BYOK アプローチを用いてデータベースをクラウドプロバイダーに移行する際にも、暗号化キーの制御を維持します。
規制コンプライアンス
外部 HSM キーストアと包括的な監査証跡により、厳格なコンプライアンス要件を満たします。
暗号化オプション
選択的暗号化
- 特定の列のみ
- SALT/NO SALTオプション
- 5~15%のオーバーヘッド
- インデックスの制限
推奨される方式
- 表領域全体
- より優れたパフォーマンス
- 2~5%のオーバーヘッド
- インデックスへの影響なし
暗号化されたバックアップ
- 自動暗号化
- 透過的なリストア
- キーが必要
- パフォーマンスへの影響なし
パフォーマンス特性
以下の数値は、ハードウェア、ワークロード、ネットワーク、トポロジーに依存する 参考目標値 です。キャパシティプランニングの根拠とする前に、必ずご自身の環境でベンチマークを実施してください。
- バルク暗号化: Oracle が AES-NI を用いてローカルで実行します。DuoKey へのマスターキーのパスは行レベルのデータパスには含まれません
- 列暗号化: 暗号化された列について 5〜15% のオーバーヘッド
- 表領域暗号化: 多くのワークロードで 2〜5% のオーバーヘッド
- マスターキー操作: キーストアのオープン、
SET KEY、ローテーションのみが DuoKey に到達します
システム要件
Oracle Database
- サポートされる Oracle Database のバージョン(11g R2 から 23ai まで)
- Oracle Advanced Security オプションのライセンス
- DuoKey Cockpit ホストへのネットワーク接続 (HTTPS)
DuoKey
- DuoKey Cockpit v2 へのアクセス
- Oracle Linux 8 / glibc 2.28 向けにビルドされた DuoKey PKCS#11 プロバイダーライブラリ
- Oracle TDE アプリとそのデプロイバンドル
オペレーティングシステム
- Linux: Oracle Linux 8 を推奨
- プロバイダーライブラリは、プラットフォームの glibc に一致している必要があります。はじめに を参照してください
はじめに
Oracle TDE を DuoKey と統合する準備はできましたか。
- はじめに — Cockpit v2 のクイックスタート
- インストールガイド — 概念と全体像の把握
- PKCS#11 プロバイダー構成 —
pkcs11.tomlリファレンス
セキュリティに関する考慮事項
キーの保護
- マスターキーが平文で DuoKey の外に出ることはありません
- 本番環境では Securosys HSM によって支えられます
- セキュアなキー生成
アクセス制御
- Cockpit におけるロールベースアクセス制御 (RBAC)
- DBA とセキュリティ管理者の間での職務の分離
- アプリごとの単一の
access_guidベアラートークン。サーバー側でテナントに解決されます
ネットワークセキュリティ
- すべての通信に対する TLS(デフォルトで
verify_tls = true) - Cockpit ホストへの HTTPS を許可するファイアウォールルール
サポート
- メール: [email protected]
- ドキュメント: DuoKey サポート
- ステータス: status.duokey.com