29 データ・プライバシの構成
この章の内容は次のとおりです。
29.1 表領域の暗号化の概要
Oracle Databaseの透過的データ暗号化(TDE)は、Oracle Enterprise User Securityの1コンポーネントであり、ディスクへの書込み時のデータ暗号化と認可ユーザーによる読取り時の復号化を透過的に行います。TDEは、ストレージ・メディアまたはデータ・ファイルが盗まれた場合に、メディア上に格納されたデータの保護に役立ちます。アプリケーションの変更は不要であり、ストレージ・メディア上のデータの暗号化はユーザーには透過的に行われます。
Oracle Database 11g Advanced Securityの透過的データ暗号化では、データベースの表領域の暗号化を新たにサポートしています。暗号化された表領域内に作成されたオブジェクトはすべて自動的に暗号化されます。暗号化された表領域内のデータはすべて、暗号化された形式でディスク上に格納されます。データ・ブロックは、Oracle Databaseによるアクセス時に透過的に復号化されます。表領域の暗号化によって、列の暗号化の外部キー制限が解消され、暗号化されたデータの索引レンジ・スキャンが可能になります。
29.2 表領域の暗号化の有効化と無効化
Oracle Databaseで使用するOracle Internet Directoryの表領域の暗号化を有効化または無効化できます。
次のトピックを参照してください。
29.2.1 表領域の暗号化の初回設定の構成
初めて表領域の暗号化設定を構成する場合は、ここに示されている手順に従います。
表領域の暗号化を初めて有効化する場合の手順は、次のとおりです。
-
Oracle Internet Directoryインスタンスで使用するOracle Databaseのコールド・バックアップを作成します。
-
データベースのOracleホームにJava VMパッケージとXML Developer's Kitパッケージがインストールされていることを確認します。
指定のパッケージがインストールされているかどうかを確認するには、次のSQL*Plusを実行します。
SELECT comp_id, status FROM dba_registry;
次のPL/SQLプロシージャを実行します。
sys.dbms_metadata_util.load_stylesheets
-
SYSTEM
権限のあるユーザーとしてSQL*Plusにログインし、次のコマンドを実行します。GRANT CREATE ANY DIRECTORY TO ods;
-
Oracle Data Pumpユーティリティのディレクトリ・オブジェクト、ダンプ・ファイルに使用するログ・ディレクトリ・オブジェクトおよびログ・ファイルを作成します。
ODS
ユーザーとしてSQL*Plusにログインし、次のコマンドを実行します。CREATE OR REPLACE DIRECTORY directory_object_name as directory_path; CREATE OR REPLACE DIRECTORY log_directory_object_name as log_directory_path;
-
directory_pathとlog_directory_pathをファイル・システムに作成します。
-
データベース・ウォレットの場所をデータベースのOracleホームの
sqlnet.ora
内に設定します。ノート:
データベース・ウォレットを、「Secure Sockets Layer (SSL)の構成」で説明しているOracle Internet Directoryウォレットと混同しないでください。
表領域の暗号化専用に個別のウォレットを使用することをお薦めします。
-
表領域の暗号化用に個別のデータベース・ウォレットを使用するには、
sqlnet.ora
にパラメータENCRYPTION_WALLET_LOCATIONを設定します。次に例を示します。ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/install/db11g/dbs)))
-
すべてのOracleコンポーネントで同じデータベース・ウォレットを共有して使用するには、
sqlnet.ora
にパラメータWALLET_LOCATION
を設定します。次に例を示します。WALLET_LOCATION= (SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/install/db11g/dbs)))
-
29.3 Database VaultとOracle Internet Directoryの使用方法の概要
Oracle Internet Directoryでは、LDAPプロトコル層でアクセス制御を適用します。ただし、DBA
などの特権ユーザーは通常、基礎となるデータベース内のOracle Internet DirectoryデータにSQL*Plusでアクセスできます。
Oracle Database Vaultを使用すると、特権ユーザーによるOracle Internet Directoryデータへの不正アクセスを防止できます。このためには、Oracle Database Vaultをインストールして有効化し、Oracle Internet Directoryで使用するODS
データベース・スキーマを含むDatabase Vaultレルムを設定し、ODS
データベース・アカウントのみにデータ・アクセスを許可するポリシーを設定する必要があります。
関連項目:
-
Oracle Database Vaultのインストール、有効化および無効化のクイック・ガイドは、『Oracle Database 2日でセキュリティ・ガイド』を参照してください
-
Oracle Database Vaultの管理の詳細は、『Oracle Database Vault管理者ガイド』を参照してください
29.4 Oracle Database Vaultの構成によるOracle Internet Directoryデータの保護
Oracle Database Vaultは、Oracle Internet Directory用に構成する前にインストールおよび登録する必要があります。Database Vaultは、Oracle Databaseインストールの一部としてインストールします。
次の各項では、これについてさらに詳しく説明しています。
29.4.1 Oracle Database VaultのOracle Internet Directoryへの初回登録
Oracle Database VaultがOracle Database 11gに登録されていない場合、次の手順を実行します。
- 『Oracle Identity Managementのインストールと構成』のOIDインストールの検証に関する項の説明に従って、Oracle Internet Directoryをインストールします。
- 『Oracle Database Vault管理者ガイド』のOracle DatabaseへのOracle Database Vaultの登録に関する項 の説明に従って、Oracle Database Vaultを登録します。
- Oracle Databaseのバージョンが11.1.0.7である場合は、バグ7244497のパッチをダウンロードしてインストールします。これは、より新しいバージョンのOracle Databaseでは必要ありません。
- Oracle Databaseのバージョンが11.1.0.7である場合は、バグ7291157のパッチをダウンロードしてインストールします。これは、より新しいバージョンのOracle Databaseでは必要ありません。
29.4.2 Oracle Database VaultがOracle Databaseに登録されているかどうかの確認
SQLコマンドを使用して、Oracle database VaultがOracle Databaseに登録されているかどうかを確認できます。
Oracle Database VaultがOracle Database 11gにインストールされているかどうか不明な場合は、次のように入力します。
SELECT * FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault';
入力は、SQL*Plusプロンプトで行います。この問合せにOracle Database Vault
と返された場合、Oracle Database Vaultはインストールおよび登録されています。この問合せは大/小文字が区別されることに注意してください。
29.4.3 既存のOracle Database Vault登録のバグ・パッチのインストール
既存のOracle Database Vault登録のバグ・パッチをインストールする方法を確認するには、ここに示されている手順に従います。
Oracle Database VaultがOracle Databaseに登録されている場合、次の手順を実行します。
- Oracle Database Vaultが有効化されている場合は、無効化します。『Oracle Database Vault管理者ガイド』の「Oracle Database Vaultの無効化および有効化」を参照してください。
- 『Oracle Identity Managementのインストールと構成』のOracle Internet Directoryインストールの検証に関する項の説明に従って、Oracle Internet Directoryをインストールします。
- 『Oracle Database Vault管理者ガイド』のOracle Database Vaultの有効化に関する項の説明に従って、Database Vaultを有効化します。
- Oracle Database 11.1.0.7を使用している場合は、バグ7244497のパッチをダウンロードしてインストールします。
- Oracle Database 11.1.0.7を使用している場合は、バグ7291157のパッチをダウンロードしてインストールします。
29.4.4 ポリシーを適用するDatabase Vaultレルムの追加
Oracle Internet Directoryには、必要なDatabase Vaultポリシーを適用するためのスクリプトが用意されています。これらのスクリプトは、$ORACLE_HOME/ldap/datasecurity
の下にあるOracle Internet Directoryのインストール・ディレクトリに含まれています。
Database VaultポリシーをOracle Internet Directoryデータベースに適用するには、Oracle Internet Directory用のデフォルトのDatabase Vaultレルムを次のように作成する必要があります。
29.4.5 Oracle Internet DirectoryデータベースへのSQL*Plusアクセスの有効化
dbv_create_oid_policies.sql
内のポリシーにより、Oracle Internet DirectoryデータベースへのSQL*Plusアクセスが完全に無効化されます。
一部のタスクでは、ODS
ユーザーとしてSQL*Plusでデータベースにアクセスする必要があります。この場合、Oracle Internet DirectoryデータベースへのSQL*Plusアクセスを特定のホストからのみ有効化します。
Oracle Internet Directoryデータベースへの接続を有効化するには、次のステップに従います。
dbv_oid_rule_sqlplus.sql
をテキスト・エディタで開きます。Check ods connections 3
ルール内のダミーIPアドレスを、Oracle Internet DirectoryデータベースへのSQL*Plusアクセスを許可するホストのIPアドレスに置き換えます。- データベースにDatabase Vault所有者として接続し、
dbv_oid_rule_sqlplus.sql
を実行します。
29.4.6 Oracle Internet DirectoryデータベースへのSQL*Plusアクセスのブロック
ここに示されているコマンドを実行することで、Oracle Internet DirectoryデータベースへのSQL*Plusアクセスをブロックできます。
ある時点でOracle Internet DirectoryデータベースへのSQL*Plusアクセスを完全にブロックする場合は、Database Vault所有者としてデータベースに接続し、dbv_oid_delete_rule_sqlplus.sql
を実行します。
29.4.7 Oracle Internet Directoryに定義されているDatabase Vaultルール
Oracle Internet Directory用に定義されているDatabase Vaultルールは、Check ods connections
、Check ods connections 2
、Check odssm connections
およびAllow other connections
です。
『Oracle Database Vault管理者ガイド』のコマンド・ルールの構成に関する項で、データ・ディクショナリ・ビューの使用方法について説明しています。この項では、Oracle Internet Directory関連の情報を報告するいくつかのビューについて説明します。
Oracle Internet Directoryで使用するDatabase Vaultレルムの名前はOID Realm
です。このレルムの存在は、DBA_DV_REALM
データ・ディクショナリ・ビューに問合せを実行すると確認できます。
Oracle Internet Directory用に定義されているDatabase Vaultルールは、Check ods connections
、Check ods connections 2
、Check odssm connections
およびAllow other connections
です。dbv_oid_rule_sqlplus.sql
を実行すると、ルールCheck ods connection 3
も定義されます。これらのルールは、OID App Access
という名前のルール・セットに追加されます。既存のルールの名前を確認するには、DBA_DV_RULE_SET_RULE
ビューに問合せを実行します。
CONNECT
コマンド・ルールにより、このルール・セットが起動されます。これは、DBA_DV_COMMAND_RULE
ビューに問合せを実行すると確認できます。このCONNECT
ルールでは、インストールされている既存のOracle Database VaultでOracle Internet Directoryスクリプトを実行する際、既存のCONNECT
コマンド・ルールが上書きされません。
29.4.8 Oracle Internet Directory用のDatabase Vaultポリシーの削除
次のコマンドラインを使用して、Oracle Internet Directory用のDatabase Vaultポリシーを削除できます。
前述の項でインストールしたOID用のDatabase Vaultポリシーを削除するには、データベースにDatabase Vault所有者として接続している間にdbv_delete_oid_policies.sql
を実行します。
29.4.9 Oracle Internet Directoryデータベース用のOracle Database Vaultの無効化
Oracle Internet Directoryデータベース用のOracle Database Vaultを無効化できます。
『Oracle Database Vault管理者ガイド』のOracle Database Vaultの無効化および有効化に関する項を参照してください。
29.5 Database VaultとOracle Internet Directoryの使用方法のベスト・プラクティス
Oracle Database Vaultの使用時は、次の管理タスクに特別な注意が必要です。
-
製品のアップグレードおよびパッチ・セットのインストール: Oracle Internet DirectoryまたはOracle Databaseをアップグレードする前、またはパッチ・セットをインストールする前に、Oracle Database Vaultを無効化します。アップグレードまたはインストールの完了後、Oracle Database Vaultを再度有効化します。
-
データのバルク・ロード: Oracle Database Vaultが有効化されている場合、SQL*Loaderのダイレクト・パス・モードは使用できなくなり、
bulkload
ツールのパフォーマンスが低下します。100KBを超えるデータ、または100万を超えるエントリをロードする場合は、bulkload
を使用する前にOracle Database Vaultを無効化します。操作の完了後、Oracle Database Vaultを再度有効化します。
29.6 機密の属性の概要
Oracle Internet Directoryは、機密の属性を暗号化形式で格納します。
機密の属性の例としては、orclpasswordattribute
、orclrevpwd
、プラグイン属性orclpluginsecuredflexfield
およびサーバー・チェーン属性orclOIDSCExtPassword
があります。
次の各項では、機密の属性についてさらに詳しく説明しています。
29.6.1 機密の属性のリスト
機密の属性のリストは、DSA構成エントリ内の属性orclencryptedattributes
に格納されています。
このリストを表29-1に示します。
表29-1orclencryptedattributesに格納されている機密の属性
機密の属性 | 属性の使用方法 |
---|---|
|
プラグインに渡される機密の属性。表46-1を参照してください。 |
|
プラグイン接続用のサーバー管理パスワード。 表46-1を参照してください。 |
|
プラグインのsslwalletパスワード。「ディレクトリ・サーバー・チェーンの構成」を参照してください |
|
可逆暗号化形式のユーザー・パスワード。「パスワード・ベリファイアの管理」を参照してください。 |
|
関連するuserpasswordと同期されない可逆暗号化パスワード。「パスワード・ベリファイアの管理」を参照してください。 |
|
Oracle Directory Integration Platform: イベント伝播用のアプリケーションとの接続に使用される情報。 |
|
Oracle Directory Integration Platform: ディレクトリに接続するためにサード・パーティ・ディレクトリによって使用されます。 |
|
Oracle Directory Integration Platform: ディレクトリへのバインドに同期プロファイルで使用するパスワード。 |
最後の3エントリの詳細は、『Oracle Identity Managementリファレンス』の「LDAP属性リファレンス」を参照してください。
orcldataprivacymode
属性は、データの受信時にこれらの属性を暗号化するかどうかを制御します。orcldataprivacymode
が有効な場合、機密の属性は暗号化されます。プライバシ・モードが無効の場合、機密のデータはクリアテキストで返されます。
暗号化された属性を機密の属性のリストに追加する場合、新しい属性が機密の属性の新しいリストに追加され、サーバーによって認識されるように、Oracle Internet Directoryサーバー・インスタンスを再起動する必要があります。
ノート:
表29-1の属性は、オラクル社のみが使用することを想定しています。Oracleサポートによって要求されないかぎり、この表に示される属性の追加または変更は行わないでください。
29.6.2 機密の属性の暗号化アルゴリズム
11g リリース1 (11.1.1.4.0)より前は、Oracle Internet Directoryは機密の属性の格納に3DES暗号化アルゴリズムを使用していました。11g リリース1 (11.1.1.4.0)以上では、Oracle Internet DirectoryはAES-256を使用しています。
以前のリリースの顧客は、システムにパッチを適用している場合、3DESアルゴリズムで暗号化された格納値をすでに持っている可能性があります。このような場合は、次の規則が適用されます。
-
復号化するときに、Oracle Internet Directoryは適切なアルゴリズム(3DESまたはAES-256)を使用して値を復号化します。
-
暗号化するときに、Oracle Internet Directoryは常にAES-256を使用して暗号化します。
これにより、時間の経過とともに、暗号化されたすべての値が確実にAES-256に変換されます。
29.7 機密の属性のプライバシ・モードの有効化
プライバシ・モードはデフォルトでは無効です。つまり、orcldataprivacymode
の値は0
です。
セキュリティ保護を提供するには、DSA構成エントリでorcldataprivacymode
の値を0
から1
に変更することで、プライバシ・モードを有効にする必要があります
プライバシ・モードを有効にするには、次のエントリが含まれるLDIFファイルを使用します。
dn: cn=dsaconfig,cn=configsets,cn=oracle internet directory changetype: modify replace: orcldataprivacymode orcldataprivacymode: 1
LDIFファイルを次のようなコマンド行によりロードします。
$ORACLE_HOME/bin/ldapmodify -h host -p port -D cn=orcladmin -q -v \ -f LDIF_file_name
29.8 機密の属性のプライバシ・モード・ステータスの確認
orcldataprivacymode
の値を決定するには、次の検索を実行します。
$ORACLE_HOME/bin/ldapsearch -h host -p port -D cn=orcladmin -q \
-b "cn=dsaconfig,cn=configsets,cn=oracle internet directory" -s base \
"objectclass=*" orcldataprivacymode
29.9 ハッシュ属性の概要
暗号化とは異なり、ハッシングは一方向操作です。ハッシュ値から元の値を導出することはできません。
Oracle Internet Directoryは、機密の属性に加えて、ハッシュ属性もサポートしています。ハッシュ属性のリストは、DSA構成エントリの複数値属性であるorclhashedattributes
に含まれています。ハッシングは、ルートDSE属性orclcryptoscheme
で設定されている暗号スキームを使用して実行されます。
LDAP操作およびbulkload
は、表29-2で説明している変換を自動的に実行します。ハッシュ属性を指定してbulkmodify
コマンドを使用することはできません。
表29-2 orclhashedattributesの属性に対するLDAP操作とバルク操作
操作 | 着信属性値がすでにハッシュされている場合 | 着信属性値がハッシュされていない場合 |
---|---|---|
|
値をそのまま使用します。 |
操作を実行する前に、 |
|
値をそのまま使用します。 |
追加操作または置換操作の場合は、操作を実行する前に、 削除操作の場合、操作を実行する前に、属性がディレクトリに格納されたときに使用されていた暗号スキームを使用して着信値をハッシュします。 |
|
着信値を、ディレクトリに格納されている値と比較します。 |
属性がディレクトリに格納されたときに使用された暗号スキームを使用して着信値をハッシュし、それを格納値と比較します。 |
|
値をそのまま使用します。 |
操作を実行する前に、 |
|
|
|
ノート:
-
orclhashedattributes
とorclencryptedattributes
の両方に同じ属性を含めないでください。 -
単一値属性のみをハッシュ属性にすることができます。
29.10 ハッシュ属性の構成
Oracle Enterprise Manager Fusion Middleware Controlまたはコマンド行を使用して、orclhashedattributes
の属性のリストを管理できます。
次の各項では、この構成についてさらに詳しく説明しています。
29.10.1 Fusion Middleware Controlを使用したハッシュ属性の構成
Oracle Enterprise Manager Fusion Middleware Controlの「共有プロパティ」ページを使用して、ハッシュ属性を構成できます。
「Oracle Internet Directory」メニューから「管理」を選択し、「共有プロパティ」を選択します。
29.10.2 ldapmodifyを使用したハッシュ属性の構成
コマンド行を使用してハッシュ属性を構成するには、その属性名をDSA構成エントリの複数値属性orclhashedattribute
に追加します。
たとえば、次のLDIFファイルでは、3つの属性がorclhashedattributes
に追加されます。
dn: cn=dsaconfig,cn=configsets,cn=oracle internet directory changetype:modify add: orclhashedattributes orclhashedattributes: attributeName1 orclhashedattributes: attributeName2 orclhashedattributes: attributeName3
LDIFファイルを次のようなコマンド行によりロードします。
$ORACLE_HOME/bin/ldapmodify -h host -p port -D cn=orcladmin -q -v \ -f LDIF_file_name