2 透過的データ暗号化の概要

透過的データ暗号化を使用して、クレジット・カード番号や社会保障番号などの機密データを暗号化できます。

2.1 透過的データ暗号化とは

透過的データ暗号化(TDE)を使用すると、表および表領域に格納する機密データを暗号化できます。

暗号化されたデータは、アクセス時に、許可されているユーザーまたはアプリケーションに対して自動的に復号化されます。TDEは、記憶域メディアまたはデータ・ファイルが盗まれた場合に、メディアに格納されているデータ(保存データとも呼ぶ)を保護するために役立ちます。

Oracle Databaseの認証、認可および監査メカニズムは、データベース内のデータを保護するためのものであり、オペレーティング・システムのデータ・ファイルに格納されているデータの保護には使用されません。このようなデータ・ファイルを保護する目的では、透過的データ暗号化(TDE)を使用します。TDEを使用すると、データ・ファイルに格納されている機密データを暗号化できます。許可なく復号化されるのを防止するため、TDEにより暗号化キーはデータベース外部のキーストアと呼ばれるセキュリティ・モジュールに格納されます。

Oracle Key VaultをTDE実装の一部として構成できます。これにより、企業内でTDEキーストア(Oracle Key Vaultでは仮想ウォレットと呼ばれます)を集中管理できます。たとえば、Oracle Key Vaultにソフトウェア・キーストアをアップロードし、データベースを移行してOracle Key Vaultをデフォルト・キーストアとして使用し、このキーストアの内容を、そのデータベースの他のプライマリおよびスタンバイOracle Real Application Clusters (Oracle RAC)ノードと共有して、暗号化されたデータベースによる日次データベース管理操作を合理化できます。

2.2 透過的データ暗号化を使用する利点

透過的データ暗号化(TDE)によって、機密データの暗号化とコンプライアンス要件の達成が保証され、暗号化操作を簡略化する機能が提供されます。

利点は次のとおりです。

  • セキュリティ管理者としては、機密データが暗号化されるため、記憶域メディアまたはデータ・ファイルが盗まれた場合でも安全であることを確信できます。

  • TDEを使用すると、セキュリティに関連した規制コンプライアンスの問題への対応に役立ちます。

  • 許可されたユーザーまたはアプリケーションに対してデータを復号化するための補助表、トリガーまたはビューを作成する必要はありません。表内のデータは、データベース・ユーザーやアプリケーションに対して透過的に復号化されます。機密データを処理するアプリケーションでTDEを使用すると、アプリケーションをほとんどあるいはまったく変更せずに、強力なデータ暗号化を実現できます。

  • データは、このデータにアクセスするデータベース・ユーザーおよびアプリケーションに対して透過的に復号化されます。データベース・ユーザーおよびアプリケーションは、アクセスするデータが暗号化された形式で格納されていることを認識する必要がありません。

  • 暗号化されていない既存の表領域のオンラインまたはオフライン暗号化を使用すると、停止時間がほとんどまたはまったくなく、透過的データ暗号化を実装できます。

  • 暗号化されたデータを処理するためにアプリケーションを変更する必要がありません。データベースは、データの暗号化および復号化を管理します。

  • Oracle Databaseによって、TDEマスター暗号化キーとキーストアの管理操作が自動化されます。ユーザーやアプリケーションがTDEマスター暗号化キーを管理する必要はありません。

2.3 透過的データ暗号化を構成できる者

透過的データ暗号化(TDE)を構成するには、ADMINISTER KEY MANAGEMENTシステム権限が付与されている必要があります。

マウント段階でキーストアを開く必要がある場合は、SYSKM管理権限が付与されている必要があり、この権限には、ADMINISTER KEY MANAGEMENTシステム権限および必要な他の権限が含まれています。

ユーザーにSYSKM管理権限を付与する場合、ユーザーがパスワードを使用してSYSKMとしてデータベースに接続できるように、これに対するパスワード・ファイルを確実に作成してください。これにより、ユーザーはV$DATABASEビューの問合せなどの操作を実行できます。

TDEの列または表領域の暗号化を構成するには、SYSKMまたはADMINISTER KEY MANAGEMENT権限は必要ありません。表の列と表領域を暗号化するには、次の権限がさらに必要になります。

  • CREATE TABLE

  • ALTER TABLE

  • CREATE TABLESPACE

  • ALTER TABLESPACE (オンラインおよびオフライン表領域の暗号化の場合)

  • ALTER DATABASE (オフライン表領域の高速暗号化の場合)

2.4 透過的データ暗号化のタイプおよびコンポーネント

透過的データ暗号化は、個々の列または表領域全体に適用できます。

2.4.1 透過的データ暗号化のタイプおよびコンポーネントについて

機密データを列レベルまたは表領域レベルで暗号化できます。

列レベルでは、アプリケーション表の列内の機密データを暗号化できます。TDE表領域暗号化を使用すると、表領域に格納されているすべてのデータを暗号化できます。

TDE列暗号化とTDE表領域暗号化では、どちらも2層のキー・ベース・アーキテクチャを使用します。セキュリティ攻撃を試みている侵入者など、許可されていないユーザーは、データを復号化するTDEマスター暗号化キーを持っていないかぎり、ストレージおよびバックアップ・メディアのデータを読み取れません。

2.4.2 透過的データ暗号化列暗号化の動作

透過的データ暗号化(TDE)列暗号化は、表の列に格納されている、クレジット・カード番号や社会保障番号などの機密データを保護します。

TDE列暗号化では、2層のキー・ベース・アーキテクチャを使用して、機密の表の列を透過的に暗号化および復号化します。TDEマスター暗号化キーは、外部キーストアに格納されます。このキーストアとしては、Oracleウォレット、Oracle Key VaultまたはOracle Cloud Infrastructureキー管理サービス(KMS)を使用できます。このTDEマスター暗号化キーはTDE表キーを暗号化および復号化し、TDE表キーは表の列のデータの暗号化および復号化を行います。

図2-1に、TDE列暗号化プロセスの概要を示します。

図2-1 TDE列暗号化の概要

図2-1の説明が続きます
「図2-1 TDE列暗号化の概要」の説明

図2-1に示すように、TDEマスター暗号化キーは、データベースの外側にあって、適切な権限を付与されたユーザーのみがアクセスできる外部セキュリティ・モジュールに格納されます。この外部セキュリティ・モジュールの場合、Oracle Databaseは、Oracleソフトウェア・キーストア(以前のリリースではウォレット)または外部キー・マネージャ・キーストアを使用します。このようにTDEマスター暗号化キーを格納することで、不正使用を防止できます。

外部セキュリティ・モジュールを使用すると、通常のプログラム機能と暗号化操作が分離されるため、データベース管理者およびセキュリティ管理者に別個の責務を割り当てることができます。データベース管理者にはキーストア・パスワードを知らせずに、セキュリティ管理者にパスワードの提供を要求できるため、セキュリティが強化されます。

表に暗号化列が含まれる場合、暗号化列の数に関係なく、TDEは単一のTDE表キーを使用します。各TDE表キーは、TDEマスター暗号化キーによって個別に暗号化されます。キーは平文には格納されません。

2.4.3 透過的データ暗号化表領域暗号化の動作

透過的データ暗号化(TDE)表領域暗号化を使用すると、表領域全体を暗号化できます。

暗号化されている表領域に作成されるオブジェクトはすべて自動的に暗号化されます。TDE表領域暗号化は、表の複数の列に機密データが含まれている場合、または個々の列だけでなく表全体を保護する場合に有用です。暗号化が必要な列を判断するために、各表の列を詳細に分析する必要はありません。

また、TDE表領域暗号化は、バルク暗号化とキャッシュを利用して、高度なパフォーマンスを実現します。アプリケーションに対する実際のパフォーマンスの影響は異なることがあります。

TDE表領域暗号化では、暗号化された表領域内に格納されているデータ(REDOデータなど)がすべて暗号化されます。TDE表領域暗号化では、表領域の外部に格納されているデータは暗号化されません。たとえば、BFILEデータは、データベース外部に格納されるため暗号化されません。暗号化された表領域内でBFILE列を含む表を作成した場合、この特別な列は暗号化されません。

暗号化された表領域内のデータはすべて、暗号化された形式でディスク上に格納されます。データの表示または変更に必要な権限を付与されているユーザーに対しては、データが透過的に復号化されます。データベース・ユーザーやアプリケーションは、特定の表がディスク上で暗号化されているかどうかを認識する必要はありません。ディスク上のデータ・ファイルまたはバックアップ・メディアが盗まれた場合でも、データの安全性は損なわれません。

TDE表領域暗号化では、2層のキー・ベース・アーキテクチャを使用して、表領域を透過的に暗号化(および復号化)します。TDEマスター暗号化キーは、セキュリティ・モジュール(Oracleウォレット、Oracle Key VaultまたはOracle Cloud Infrastructure (OCI)キー管理サービス(KMS))に格納されます。このTDEマスター暗号化キーはTDE表領域暗号化キーの暗号化に使用され、TDE表領域暗号化キーは表領域のデータの暗号化と復号化に使用されます。

図2-2に、TDE表領域暗号化プロセスの概要を示します。

図2-2 TDE表領域暗号化

図2-2の説明が続きます
「図2-2 TDE表領域暗号化」の説明

ノート:

暗号化データは、JOINSORTなどの操作中も保護されます。これは、データを一時表領域に移動しても安全であることを意味します。UNDOログとREDOログのデータも保護されます。

TDE表領域暗号化を使用すると、暗号化された表領域のデータに対して索引レンジ・スキャンを実行することもできます。これにより、Exadataハイブリッド列圧縮(EHCC)、Oracle Advanced CompressionまたはOracle Recovery Manager (Oracle RMAN)の圧縮が妨げられることはありません。索引レンジ・スキャンは、TDE列暗号化では実行できません。

2.4.4 TDEマスター暗号化キーの格納用のキーストアの動作

暗号化を制御するには、キーストアおよびTDEマスター暗号化キーを使用します。

2.4.4.1 TDEマスター暗号化キーのキーストア格納について

Oracle Databaseは、キーおよび資格証明を格納および管理する透過的データ暗号化(TDE)用のキー管理フレームワークを提供します。

キー管理フレームワークには、TDEマスター暗号化キーを安全に格納するキーストア、および様々なデータベース・コンポーネント用のキーストアおよびキー操作を安全かつ効率的に管理する管理フレームワークが含まれています。

Oracleキーストアにはそれまで使用されたTDEマスター暗号化キーの履歴が格納されますが、これにより、TDEマスター暗号化キーをローテーションしたり、以前のTDEマスター暗号化キーで暗号化されたデータ(受信したOracle Recovery Manager (Oracle RMAN)バックアップの場合など)を復号化できます。

2.4.4.2 キーストア格納フレームワークの利点

キー管理フレームワークは、透過的データ暗号化にとって次の利点があります。

  • データベース管理者とキーを管理するセキュリティ管理者の間で責務を分離できます。キーストアおよびキー操作の管理の責任を負うユーザーにADMINISTER KEY MANAGEMENTまたはSYSKM権限を付与できます。

  • コンプライアンスを容易にします(暗号化キーの追跡、およびキーストア・パスワード・ローテーションやTDEマスター暗号化キーの更新操作などの要件の実装に役立つためです)。ウォレット・パスワードのローテーションおよびTDEマスター・キーの更新操作のどちらにおいても、データベースまたはアプリケーションの停止時間は不要です。

  • キーストア・バックアップ要件を容易にし、これの実施に役立ちます。バックアップとは、すべての重要なキーストア操作用に作成される、パスワード保護されたソフトウェア・キーストアのコピーです。

    ADMINISTER KEY MANAGEMENT文の必須のWITH BACKUP句では、パスワードで保護されたウォレットのバックアップが作成されてから、元のパスワードで保護されたウォレットに変更が適用されます。

  • キーストアをOracle Automatic Storage Management (Oracle ASM)ファイル・システムに格納できるようにします。これは、データベース・インスタンスが統一ファイル・システム・ビューを共有するOracle Real Application Clusters (Oracle RAC)環境にとって特に有用です。Oracle RACでは、1つのデータベースに属するすべてのOracle RACインスタンスがアクセス権を持つ共有の場所(Oracle ASMまたはOracle Advanced Cluster File System (ACFS))にOracleウォレットを格納する必要があります。各Oracle RACインスタンスの個別のTDEウォレットはサポートされていません。

  • 外部キーストアからファイルシステムベースのソフトウェア・キーストアへの逆移行を可能にします。このオプションは、ソフトウェア・キーストアに移行する必要がある場合に有用です。

2.4.4.3 キーストアのタイプ

Oracle Databaseは、TDEウォレット、Oracle Key VaultおよびOracle Cloud Infrastructure (OCI)キー管理システム(KMS)をサポートしています。

図2-3は、Oracle Databaseでサポートされているキーストアのタイプを示しています。

図2-3 Oracle Databaseでサポートされているキーストア

図2-3の説明が続きます
「図2-3 Oracle Databaseでサポートされているキーストア」の説明

これらのキーストアは次のとおりです。

  • 自動ログインTDEウォレット: 自動ログインTDEウォレットはシステム生成のパスワードによって保護されており、セキュリティ管理者が明示的に開く必要はありません。自動ログインTDEウォレットは、データベースの起動時にアクセスされると自動的に開かれます。自動ログインTDEウォレットは異なるシステム間で使用できます。使用の際に明示的に開く必要のあるウォレットで提供される特別なセキュリティが不要な環境の場合は、自動ログインTDEウォレットを使用できます。自動ログインTDEウォレットは、無人シナリオ(Oracle Data Guardスタンバイ・データベースなど)に最適です。

  • ローカル自動ログインTDEウォレット:ローカル自動ログインTDEウォレットは、作成されたコンピュータに対してローカルな自動ログインTDEウォレットです。ローカル自動ログイン・キーストアは、作成されたコンピュータ以外では開けません。このタイプのキーストアは、無人操作をサポートしながら、追加のセキュリティが必要なシナリオ(つまり、このコンピュータに対する自動ログインの使用を制限すること)に対して通常使用されます。ACFSまたはASMの共有ウォレットのみがサポートされているため、Oracle RAC対応データベースではローカルの自動オープン・ウォレットを使用できません。

  • パスワード保護TDEウォレット: パスワード保護TDEウォレットは、作成したパスワードを使用して保護されます。このタイプのキーストアは、キーが取得または使用される前に開く必要があり、パスワードを使用してこのタイプのキーストアを開く必要があります。

TDEウォレットは、Oracle Automatic Storage Management (Oracle ASM)、Oracle Automatic Storage Management Cluster File System (Oracle ACFS)または通常のファイル・システムに格納できます。

外部キーストア・マネージャには、次のカテゴリがあります。

  • Oracle Key Vault (OKV): Oracle Key Vaultは、地理的に分散されたデータ・センターにデプロイされる可能性がある最大16個のOracle Key Vaultノードを使用したクラスタリングによって、継続的なキー可用性およびスケーラブルなキー管理を提供するソフトウェア・アプライアンスです。これは、Oracle Databaseおよびその多くのデプロイメント・モデル(Oracle RAC、Oracle Data Guard、Exadata、マルチテナント環境)用に構築されます。また、Oracle Key Vaultでは、Oracle GoldenGate暗号化証跡ファイルおよび暗号化ACFSのオンライン・キー管理が提供されます。ExaDB-C@Cおよび自律型データベース (専用) (ADB-C@C)についても動作保証されています。Oracle Key Vaultは、専用ハードウェアにインストールするためのフルスタック・ソフトウェア・アプライアンスとして配布されます。これはOCIマーケットプレイスでも使用でき、OCIテナンシに迅速かつ簡単にデプロイできます。ビデオ(OCIへのOracle Key Vaultのデプロイ)を参照してください。

  • OCI Vault - Key Management: Oracle Cloud Infrastructure (OCI) Key Management Service (KMS)は、OCIに格納されているデータの暗号化キーを一元管理および制御できるクラウドベースのサービスです。ストレージ、データベース、Fusion Applicationsなどの他のOCIサービスと暗号化を統合して、これらのサービスに格納されているデータを保護できます。

2.4.5 サポートされる暗号化と整合性のアルゴリズム

サポートされているAdvanced Encryption Standard暗号キー(表領域およびデータベース暗号化キーなど)は、128、192または256ビット長のいずれかにできます。表領域およびデータベースの暗号化では、128ビット長の暗号キーが使用されます。

TDE列暗号化の場合は、特に指定しないかぎり、デフォルトで暗号化の前に平文にsaltが追加されます。暗号化の対象となる索引付けされた列にはsaltを追加できません。索引付けされた列に対しては、SQL ENCRYPT句でNO SALTパラメータを選択します。

TDE表領域暗号化およびデータベース暗号化の場合、128ビット長の暗号化キーを使用するAdvanced Encryption Standard (AES128)がデフォルトで使用されます。デフォルトでは、透過的データ暗号化(TDE)列暗号化では、192ビット長の暗号化キーを使用するAdvanced Encryption Standard (AES192)が使用されます。

既存の暗号化列の暗号化アルゴリズムおよび暗号化キーを変更するには、SQL ENCRYPT句で別のアルゴリズムを設定します。

表2-1に、サポートされる暗号化アルゴリズムを示します。

表2-1 透過的データ暗号化でサポートされる暗号化アルゴリズム

アルゴリズム キー・サイズ パラメータ名

Advanced Encryption Standard(AES)

  • 128ビット(表領域暗号化のデフォルト)

  • 192ビット(列暗号化のデフォルト)

  • 256ビット

  • AES128

  • AES192

  • AES256

ARIA

  • 128ビット

  • 192ビット

  • 256ビット

  • ARIA128

  • ARIA192

  • ARIA256

GOST

256ビット

GOST256

SEED

128ビット

SEED128

Triple Encryption Standard (DES)

168ビット

3DES168

TDE列暗号化の整合性保護のために、SHA-1ハッシュ・アルゴリズムが使用されます。格納に制限がある場合、NOMACオプションを使用します。

2.5 マルチテナント・オプションによる透過的データ暗号化への影響

マルチテナント環境では、コンテナ・データベース(CDB)全体または個々のプラガブル・データベース(PDB)用のキーストアを構成できます。

Oracle Databaseでは、キーストアの管理に関する次のマルチテナント・モードがサポートされています。

  • 統一モードでは、CDBルートおよび関連する統一モードPDBのために1つのキーストアを構成できます。統一モードでは、以前のリリースのマルチテナント環境で行われていた方法と同じ方法でTDEの管理が行われます。

  • 分離モードでは、個別のPDB内でキーストアおよびTDEマスター暗号化キーの両方を作成および管理できます。分離モードの個々のPDBでは、それぞれ異なるタイプのキーストアを使用できます。

Oracle Databaseでは、TDEウォレット(ウォレット)およびOracle Key Vaultを使用した分離PDBがサポートされています。Oracle Cloud Infrastructure (OCI)およびOCIキー管理サービス(KMS)のクラウド・ツールは、分離されたPDBをサポートしていません。これには、Oracle Exadata Cloud@Customer (ExaDB-C@C)、Autonomous Database Cloud@Customer (ADB-C@C)およびOracle Exadata Database Service (ExaDB-DおよびExaDB-D@Azure)が含まれています。

サイトの要件によっては、統一モードと分離モードの両方を組み合せて使用できます。たとえば、ほとんどのPDBで1つのタイプのキーストアを使用する場合は、CDBルートでキーストア・タイプを構成できます(統一モード)。このCDB内に別のタイプのキーストアを使用する必要があるPDBが存在する場合は、そのPDB自体に対して必要なキーストアを使用するように構成できます(分離モード)。PDBに対して分離モードを設定すると、CDBに対する統一モードの設定がオーバーライドされます。

キーストアを統合モードまたは分離モードで使用するよう構成するには、事前に初期化パラメータを使用してワンタイム構成を実行する必要があります。統一モードおよび分離モードのキーストアを構成するには、ADMINISTER KEY MANAGEMENT文を使用します。