透過的データ暗号化を使用すると、データを暗号化できます。通常、クレジット・カード番号や社会保障番号などの機密データを暗号化します。
内容は次のとおりです。
透過的データ暗号化(TDE)を使用すると、表および表領域に格納する機密データを暗号化できます。
暗号化されたデータは、アクセス時に、許可されているユーザーまたはアプリケーションに対して自動的に復号化されます。TDEは、記憶域メディアまたはデータ・ファイルが盗まれた場合に、メディアに格納されているデータ(保存データとも呼ぶ)を保護するために役立ちます。
Oracle Databaseの認証、認可および監査メカニズムは、データベース内のデータを保護するためのものであり、オペレーティング・システムのデータ・ファイルに格納されているデータの保護には使用されません。このようなデータ・ファイルを保護する目的では、透過的データ暗号化(TDE)を使用します。TDEを使用すると、データ・ファイルに格納されている機密データを暗号化できます。許可なく復号化されるのを防止するため、TDEにより暗号化鍵はデータベース外部のキーストアと呼ばれるセキュリティ・モジュールに格納されます。
Oracle Key VaultをTDE実装の一部として構成できます。これにより、企業内でTDEキーストア(Oracle Key VaultではTDEウォレットと呼ばれます)を集中管理できます。たとえば、ソフトウェア・キーストアをOracle Key Vaultにアップロードし、このキーストアの内容を他のTDE対応データベースで利用可能にすることができます。詳細は、Oracle Key Vault管理者ガイドを参照してください。
透過的データ暗号化(TDE)によって、機密データの暗号化とコンプライアンスの順守が保証され、暗号化操作を簡略化する機能が提供されます。
利点は次のとおりです。
セキュリティ管理者としては、機密データが暗号化されるため、記憶域メディアまたはデータ・ファイルが盗まれた場合でも安全であることを確信できます。
TDEを使用すると、セキュリティに関連した規制コンプライアンスの問題への対応に役立ちます。
許可されたユーザーまたはアプリケーションに対してデータを復号化するための補助表、トリガーまたはビューを作成する必要はありません。表内のデータは、データベース・ユーザーやアプリケーションに対して透過的に復号化されます。機密データを処理するアプリケーションでTDEを使用すると、アプリケーションをほとんどあるいはまったく変更せずに、強力なデータ暗号化を実現できます。
データは、このデータにアクセスするデータベース・ユーザーおよびアプリケーションに対して透過的に復号化されます。データベース・ユーザーおよびアプリケーションは、アクセスするデータが暗号化された形式で格納されていることを認識する必要がありません。
本番システムでは表のオンライン再定義を使用して停止時間ゼロでデータを暗号化することができ、メンテナンス期間中にはデータをオフラインで暗号化することができます。(表のオンライン再定義の詳細は、Oracle Database管理者ガイドを参照してください。)
暗号化されたデータを処理するためにアプリケーションを変更する必要がありません。データベースは、データの暗号化および復号化を管理します。
Oracle Databaseによって、TDEマスター暗号化鍵とキーストアの管理操作が自動化されます。ユーザーやアプリケーションがTDEマスター暗号化鍵を管理する必要はありません。
透過的データ暗号化(TDE)を構成するには、ADMINISTER KEY MANAGEMENT
システム権限が付与されている必要があります。
マウント段階でキーストアを開く必要がある場合は、SYSKM
管理権限が付与されている必要があり、この権限には、ADMINISTER KEY MANAGEMENT
システム権限および必要な他の権限が含まれています。
ユーザーにSYSKM
管理権限を付与する場合、ユーザーがパスワードを使用してSYSKM
としてデータベースに接続できるように、これに対するパスワード・ファイルを確実に作成してください。これにより、ユーザーはV$DATABASE
ビューの問合せなどの操作を実行できます。
TDEの列または表領域の暗号化を構成するには、SYSKM
またはADMINISTER KEY MANAGEMENT
権限は必要ありません。表および表領域に対してTDEポリシーを作成するには、次の追加の権限が必要になります。
CREATE TABLE
ALTER TABLE
CREATE TABLESPACE
透過的データ暗号化は、個々の列または表領域全体に適用できます。
内容は次のとおりです。
機密データを列レベルまたは表領域レベルで暗号化できます。
列レベルでは、選択した表の列を使用してデータを暗号化できます。TDE表領域暗号化を使用すると、表領域に格納されているすべてのデータを暗号化できます。
TDE列暗号化とTDE表領域暗号化では、どちらも2層の鍵ベース・アーキテクチャを使用します。セキュリティ攻撃を試みている侵入者など、許可されていないユーザーは、データを復号化するTDEマスター暗号化鍵を持っていないかぎり、ストレージおよびバックアップ・メディアのデータを読み取れません。
透過的データ暗号化(TDE)列暗号化は、表の列に格納されている、クレジット・カード番号や社会保障番号などの機密データを保護します。
TDE列暗号化では、2層の鍵ベース・アーキテクチャを使用して、機密の表の列を透過的に暗号化および復号化します。TDEマスター暗号化鍵は、外部セキュリティ・モジュールに格納され、このモジュールは、Oracleソフトウェア・キーストアまたはハードウェア・キーストアにすることができます。このTDEマスター暗号化鍵はTDE表キーを暗号化および復号化し、TDE表キーは表の列のデータの暗号化および復号化を行います。
図2-1に、TDE列暗号化プロセスの概要を示します。
図2-1に示すように、TDEマスター暗号化鍵は、データベースの外側にあって、適切な権限を付与されたユーザーのみがアクセスできる外部セキュリティ・モジュールに格納されます。この外部セキュリティ・モジュールの場合、Oracle Databaseは、Oracleソフトウェア・キーストア(以前のリリースではウォレット)またはハードウェア・セキュリティ・モジュール(HSM)・キーストアを使用します。このようにTDEマスター暗号化鍵を格納することで、不正使用を防止できます。
外部セキュリティ・モジュールを使用すると、通常のプログラム機能と暗号化操作が分離されるため、データベース管理者およびセキュリティ管理者に別個の責務を割り当てることができます。データベース管理者にはキーストア・パスワードを知らせずに、セキュリティ管理者にパスワードの提供を要求できるため、セキュリティが強化されます。
表に暗号化列が含まれる場合、暗号化列の数に関係なく、TDEは単一のTDE表キーを使用します。各TDE表キーは、TDEマスター暗号化鍵によって個別に暗号化されます。TDE表キーはすべて、ENC$
データ・ディクショナリの表のcolklc
列に置かれます。鍵は平文には格納されません。
透過的データ暗号化(TDE)表領域暗号化を使用すると、表領域全体を暗号化できます。
暗号化されている表領域に作成されるオブジェクトはすべて自動的に暗号化されます。TDE表領域暗号化は、表の複数の列に機密データが含まれている場合、または個々の列だけでなく表全体を保護する場合に有用です。暗号化が必要な列を判断するために、各表の列を詳細に分析する必要はありません。
また、TDE表領域暗号化は、バルク暗号化とキャッシュを利用して、高度なパフォーマンスを実現します。アプリケーションに対する実際のパフォーマンスの影響は異なることがあります。
TDE表領域暗号化では、暗号化された表領域内に格納されているデータ(REDOデータなど)がすべて暗号化されます。TDE表領域暗号化では、表領域の外部に格納されているデータは暗号化されません。たとえば、BFILE
データは、データベース外部に格納されるため暗号化されません。暗号化された表領域内でBFILE
列を含む表を作成した場合、この特別な列は暗号化されません。
暗号化された表領域内のデータはすべて、暗号化された形式でディスク上に格納されます。データの表示または変更に必要な権限を付与されているユーザーに対しては、データが透過的に復号化されます。データベース・ユーザーやアプリケーションは、特定の表がディスク上で暗号化されているかどうかを認識する必要はありません。ディスク上のデータ・ファイルまたはバックアップ・メディアが盗まれた場合でも、データの安全性は損なわれません。
TDE表領域暗号化では、2層の鍵ベース・アーキテクチャを使用して、表領域を透過的に暗号化(および復号化)します。TDEマスター暗号化鍵は、外部セキュリティ・モジュール(ソフトウェア・キーストアまたはハードウェア・キーストア)に格納されます。このTDEマスター暗号化鍵はTDE表領域暗号化鍵の暗号化に使用され、TDE表領域暗号化鍵は表領域のデータの暗号化と復号化に使用されます。
図2-2に、TDE表領域暗号化プロセスの概要を示します。
注意:
暗号化データは、JOIN
やSORT
などの操作中も保護されます。これは、データを一時表領域に移動しても安全であることを意味します。UNDOログとREDOログのデータも保護されます。
TDE表領域暗号化を使用すると、暗号化された表領域のデータに対して索引レンジ・スキャンを実行することもできます。索引レンジ・スキャンは、TDE列暗号化では実行できません。
Oracle Databaseは、TDE表領域暗号化の次の機能を実装しています。
TDE列暗号化とTDE表領域暗号化の両方に対して統合TDEマスター暗号化鍵を使用します。
統合TDEマスター暗号化鍵は再設定できます。これによってセキュリティが強化され、セキュリティ要件やコンプライアンス要件への対応が促進されます。
暗号化を制御するには、キーストアおよびTDEマスター暗号化鍵を使用します。
内容は次のとおりです。
Oracle Databaseは、鍵および資格証明を格納および管理する透過的データ暗号化用のキー管理フレームワークを提供します。
キー管理フレームワークには、TDEマスター暗号化鍵を安全に格納するキーストア、および様々なデータベース・コンポーネント用のキーストアおよびキー操作を安全かつ効率的に管理する管理フレームワークが含まれています。
Oracleキーストアにはそれまで使用されたTDEマスター暗号化鍵の履歴が格納されますが、これにより、TDEマスター暗号化鍵を変更したり、以前のTDEマスター暗号化鍵で暗号化されたデータを復号化することができます。
キー管理フレームワークは、透過的データ暗号化にとって次の利点があります。
データベース管理者と鍵を管理するセキュリティ管理者の間で責務を分離できます。キーストアおよび鍵操作の管理の責任を負うユーザーにADMINISTER KEY MANAGEMENT
またはSYSKM
権限を付与できます。
コンプライアンスを容易にします(暗号化鍵の追跡、およびキーストア・パスワード・ローテーションやTDEマスター暗号化鍵の再設定または更新操作などの要件の実装に役立つためです)。
キーストア・バックアップ要件を容易にし、これの実施に役立ちます。バックアップとは、すべての重要なキーストア操作用に作成されたパスワードベースのソフトウェア・キーストアのコピーです。
すべての重要なキーストア操作用にキーストアのバックアップを作成する必要があります。このTDEマスター暗号化鍵の再設定またはキー更新を行う前に、TDEマスター暗号化鍵のバックアップを作成する必要もあります。
ASMファイル・システムにキーストアを格納できるようにします。これは、データベース・インスタンスが統一ファイル・システム・ビューを共有するOracle Real Application Clusters (Oracle RAC)環境にとって特に有用です。
ハードウェア・セキュリティ・モジュール(HSM)・キーストアからファイルシステム・ベースのソフトウェア・キーストアへの逆移行を可能にします。このオプションは、ソフトウェア・キーストアに移行する必要がある場合に有用です。
Oracle Databaseは、ソフトウェア・キーストアとハードウェア(HSMベースの)キーストアをサポートしています。
次のタイプのソフトウェア・キーストアを構成できます。
パスワードベースのソフトウェア・キーストア: パスワードベースのソフトウェア・キーストアは、作成したパスワードを使用することで保護されます。鍵が取得または使用される前にこのタイプのキーストアを開く必要があります。
自動ログイン・ソフトウェア・キーストア: 自動ログイン・ソフトウェア・キーストアはシステム生成のパスワードによって保護されます。セキュリティ・マネージャによって明示的に開かれる必要はありません。自動ログイン・ソフトウェア・キーストアは、アクセスすると自動的に開きます。自動ログイン・ソフトウェア・キーストアは異なるシステム間で使用できます。使用する際、明示的に開く必要のあるキーストアで提供される特別なセキュリティが不要な環境の場合、自動ログイン・ソフトウェア・キーストアを使用できます。自動ログイン・ソフトウェア・キーストアは、無人シナリオに最適です。
ローカル自動ログイン・ソフトウェア・キーストア: ローカル自動ログイン・ソフトウェア・キーストアは、作成されたコンピュータに対してローカルな自動ログイン・ソフトウェア・キーストアです。ローカル自動ログイン・キーストアは、作成されたコンピュータ以外では開けません。このタイプのキーストアは、無人操作をサポートしながら、追加のセキュリティが必要なシナリオ(つまり、このコンピュータに対する自動ログインの使用を制限すること)に対して通常使用されます。
ソフトウェア・キーストアは、ASMディスク・グループまたは通常のファイル・システムに格納できます。
ハードウェア・セキュリティ・モジュールとは、ハードウェア・キーストアに暗号化鍵を安全に格納する物理デバイスです。HSMはまた、暗号化と復号化の操作を実行するための計算領域(メモリー)も保護します。
HSMを使用する場合、TDEマスター暗号化鍵を使用する暗号化および復号化操作はすべて、HSMの内部で実行されます。これは、安全性の低いメモリーにTDEマスター暗号化鍵がさらされないことを意味します。
デフォルトでは、透過的データ暗号化(TDE)列暗号化では、192ビット長の暗号化鍵を使用するAdvanced Encryption Standard (AES192)が使用されます。
また、特に指定しないかぎり、暗号化の前に平文にsaltがデフォルトで追加されます。暗号化の対象となる索引付けされた列にはsaltを追加できません。索引付けされた列に対しては、SQL ENCRYPT
句でNO SALT
パラメータを選択します。
透過的データ暗号化(TDE)表領域暗号化の場合、128ビット長の暗号化鍵を使用するAdvanced Encryption Standard (AES128)がデフォルトで使用されます。また、常に、暗号化の前に平文にsaltが追加されます。
既存の暗号化列の暗号化アルゴリズムおよび暗号化鍵を変更するには、SQL ENCRYPT
句で別のアルゴリズムを設定します。
表2-1に、サポートされる暗号化アルゴリズムを示します。
表2-1 透過的データ暗号化でサポートされる暗号化アルゴリズム
アルゴリズム | 鍵サイズ | パラメータ名 |
---|---|---|
Triple Encryption Standard (DES) |
168ビット |
|
Advanced Encryption Standard(AES) |
128ビット |
|
AES |
|
|
AES |
256ビット |
|
TDE列暗号化の整合性保護のために、SHA-1
ハッシュ・アルゴリズムが使用されます。格納に制限がある場合、NOMAC
オプションを使用します。
関連項目:
SQL ENCRYPT
句にNO SALT
パラメータを選択する際の正しい構文の詳細は、アルゴリズムを使用しないまたは非デフォルト・アルゴリズムを使用する暗号化列を含む表の作成を参照してください。
CREATE TABLE
文でのNOMAC
オプションの詳細は、「ディスク領域の節約およびパフォーマンスの向上のためのNOMACパラメータの使用」を参照してください
SQL ENCRYPT
句で別のアルゴリズムを設定する場合の構文例は、暗号化列を含む表に対する暗号化鍵またはアルゴリズムの変更を参照してください。