この章では、データ・プライバシについて説明し、Oracle Internet Directoryがデータの受信後にそれを保護する仕組みについて説明します(送信中のデータはSSLによって保護されるため)。具体的には、Oracle Databaseの透過的データ暗号化(TDE)を使用して表領域の暗号化を有効化および無効化する方法、Oracle Database Vaultを構成してOracle Internet Directoryデータを保護する方法、および機密の属性とハッシュ属性を構成する方法について説明します。
この章の内容は次のとおりです。
第28.4項「Oracle Database Vaultの構成によるOracle Internet Directoryデータの保護」
第28.5項「Database VaultとOracle Internet Directoryの使用方法のベスト・プラクティス」
Oracle Databaseの透過的データ暗号化(TDE)は、Oracle Enterprise User Securityの1コンポーネントであり、ディスクへの書込み時のデータ暗号化と認可ユーザーによる読取り時の復号化を透過的に行います。TDEは、ストレージ・メディアまたはデータ・ファイルが盗まれた場合に、メディア上に格納されたデータの保護に役立ちます。アプリケーションの変更は不要であり、ストレージ・メディア上のデータの暗号化はユーザーには透過的に行われます。
Oracle Database 11g Advanced Securityの透過的データ暗号化では、データベースの表領域の暗号化を新たにサポートしています。暗号化された表領域内に作成されたオブジェクトはすべて自動的に暗号化されます。暗号化された表領域内のデータはすべて、暗号化された形式でディスク上に格納されます。データ・ブロックは、Oracle Databaseによるアクセス時に透過的に復号化されます。表領域の暗号化によって、列の暗号化の外部キー制限が解消され、暗号化されたデータの索引レンジ・スキャンが可能になります。
Oracle Internet Directoryで使用するOracle Databaseの表領域の暗号化を有効化または無効化する手順は、次のとおりです。
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
内に設定します。
表領域の暗号化専用に個別のウォレットを使用することをお薦めします。
表領域の暗号化用に個別のデータベース・ウォレットを使用するには、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)))
Oracle DatabaseのOracleホームを使用しているすべてのOracle Internet Directoryインスタンスを停止します。
Oracle DatabaseのOracleホームで表領域の暗号化を初めて有効化する場合は、ALTER
SYSTEM
権限のあるユーザーとしてSQL*Plusにログインし、次のコマンドを実行します。
ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY yourwalletpassword;
Oracle Databaseを停止して再起動するたびに、ALTER
SYSTEM
権限のあるユーザーとしてSQL*Plusにログインし、次のコマンドを実行します。
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY yourwalletpassword;
Oracle Internet Directoryを起動する前と、手順12に示すPerlスクリプトを実行する前に、このコマンドを必ず実行してください。
環境変数ORACLE_HOME
をOracle Databaseのホームに設定します。
環境変数NLS_LANG
をOracle Databaseサーバーの文字セットに設定します。
コンピュータ上のperl5
の場所と一致するようPerlスクリプトORACLE_HOME
/ldap/datasecurity/oidtbltde.pl
内のperl5
実行可能ファイルのパスを編集します。
Perl用のデータベース非依存インタフェース・モジュール(DBI)とPerl用のOracle DBDドライバがインストールされていない場合は、この2つをインストールします。
Perlスクリプトoidtbltde.pl
を実行し、Oracle Internet DirectoryのTDEを有効化または無効化します。
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 Internet Directory用に構成する前にインストールおよび登録する必要があります。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はインストールおよび登録されています。この問合せは大/小文字が区別されることに注意してください。
Oracle Database VaultがOracle Database 11gに登録されていない場合、次の手順を実行します。
『Oracle Fusion Middleware Oracle Identity Managementインストレーション・ガイド』の説明に従って、Oracle Internet Directoryをインストールします。
『Oracle Database Vault管理者ガイド』の説明に従って、Oracle Database Vaultを登録します。
Oracle Databaseのバージョンが11.1.0.7である場合は、バグ7244497のパッチをダウンロードしてインストールします。これは、より新しいバージョンのOracle Databaseでは必要ありません。
Oracle Databaseのバージョンが11.1.0.7である場合は、バグ7291157のパッチをダウンロードしてインストールします。これは、より新しいバージョンのOracle Databaseでは必要ありません。
Oracle Database VaultがOracle Databaseに登録されている場合、次の手順を実行します。
Oracle Database Vaultが有効化されている場合は、無効化します。『Oracle Database Vault管理者ガイド』の「Oracle Database Vaultの無効化および有効化」を参照してください。
『Oracle Fusion Middleware Oracle Identity Managementインストレーション・ガイド』の説明に従って、Oracle Internet Directoryをインストールします。
『Oracle Database Vault管理者ガイド』の説明に従って、Database Vaultを有効化します。
Oracle Database 11.1.0.7を使用している場合は、バグ7244497のパッチをダウンロードしてインストールします。
Oracle Database 11.1.0.7を使用している場合は、バグ7291157のパッチをダウンロードしてインストールします。
Oracle Internet Directoryには、必要なDatabase Vaultポリシーを適用するためのスクリプトが用意されています。これらのスクリプトは、$ORACLE_HOME/ldap/datasecurity
の下にあるOracle Internet Directoryのインストール・ディレクトリに含まれています。
Database VaultポリシーをOracle Internet Directoryデータベースに適用するには、Oracle Internet Directory用のデフォルトのDatabase Vaultレルムを次のように作成する必要があります。
dbv_oid_rule.sql
をテキスト・エディタで開き、Check ods connections
ルールとCheck ods connections 2
ルール内のダミーIPアドレスを次のアドレスに置き換えます。
Oracle Internet Directoryが実行されているコンピュータのIPアドレス
データベースにDatabase Vault所有者として接続し、dbv_create_oid_policies.sql
を実行します。
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
を実行します。
ある時点でOracle Internet DirectoryデータベースへのSQL*Plusアクセスを完全にブロックする場合は、Database Vault所有者としてデータベースに接続し、dbv_oid_delete_rule_sqlplus.sql
を実行します。
データ・ディクショナリ・ビューの使用方法は、『Oracle Database Vault管理者ガイド』の「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
コマンド・ルールが上書きされません。
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を再度有効化します。
マルチマスターDRGの変更: Oracle Databaseアドバンスト・レプリケーション・ベースのマルチマスター・ディレクトリ・レプリケーション・グループ内のノードを追加または削除する前に、そのノードでOracle Database Vaultを無効化します。操作の完了後、Oracle Database Vaultを再度有効化します。
Oracle Internet Directoryは、機密の属性を暗号化形式で格納します。機密の属性の例としては、orclpasswordattribute
、orclrevpwd
、プラグイン属性orclpluginsecuredflexfield
およびサーバー・チェーン属性orclOIDSCExtPassword
があります。
機密の属性のリストは、DSA構成エントリ内の属性orclencryptedattributes
に格納されています。このリストを表28-1に示します。
表28-1orclencryptedattributesに格納されている機密の属性
機密の属性 | 属性の使用方法 |
---|---|
|
プラグインに渡される機密の属性。第45章を参照してください。 |
|
プラグイン接続用のサーバー管理パスワード。 第45章を参照してください。 |
|
プラグインのsslwalletパスワード。第38章を参照してください。 |
|
可逆暗号化形式のユーザー・パスワード。第31章を参照してください。 |
|
関連するuserpasswordと同期されない可逆暗号化パスワード。第31章を参照してください。 |
|
Oracle Directory Integration Platform: イベント伝播用のアプリケーションとの接続に使用される情報。 |
|
Oracle Directory Integration Platform: ディレクトリに接続するためにサード・パーティ・ディレクトリによって使用されます。 |
|
Oracle Directory Integration Platform: ディレクトリへのバインドに同期プロファイルで使用するパスワード。 |
最後の3エントリの詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』の「属性リファレンス」の章を参照してください。
orcldataprivacymode
属性は、データの受信時にこれらの属性を暗号化するかどうかを制御します。orcldataprivacymode
が有効な場合、機密の属性は暗号化されます。プライバシ・モードが無効の場合、機密のデータはクリアテキストで返されます。
暗号化された属性を機密の属性のリストに追加する場合、新しい属性が機密の属性の新しいリストに追加され、サーバーによって認識されるように、Oracle Internet Directoryサーバー・インスタンスを再起動する必要があります。
注意: 表28-1「orclencryptedattributesに格納されている機密の属性」の属性は、Oracleでの使用のみを目的としています。Oracleサポートによって要求されないかぎり、この表に示される属性の追加または変更は行わないでください。 |
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に変換されます。
プライバシ・モードはデフォルトでは無効です。つまり、orcldataprivacymode
の値は0
です。セキュリティ保護を提供するには、DSA構成エントリでorcldataprivacymode
の値を0
から1
に変更することで、プライバシ・モードを有効にする必要があります
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
プライバシ・モードを有効にするには、次のエントリが含まれる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
暗号化とは異なり、ハッシングは一方向操作です。ハッシュ値から元の値を導出することはできません。Oracle Internet Directoryは、機密の属性に加えて、ハッシュ属性もサポートしています。ハッシュ属性のリストは、DSA構成エントリの複数値属性であるorclhashedattributes
に含まれています。ハッシングは、ルートDSE属性orclcryptoscheme
で設定されている暗号スキームを使用して実行されます。
LDAP操作およびbulkload
は、表28-2で説明している変換を自動的に実行します。ハッシュ属性を指定してbulkmodify
コマンドを使用することはできません。
表28-2 orclhashedattributesの属性に対するLDAP操作とバルク操作
操作 | 着信属性値がすでにハッシュされている場合 | 着信属性値がハッシュされていない場合 |
---|---|---|
|
値をそのまま使用します。 |
操作を実行する前に、 |
|
値をそのまま使用します。 |
追加操作または置換操作の場合は、操作を実行する前に、 削除操作の場合、操作を実行する前に、属性がディレクトリに格納されたときに使用されていた暗号スキームを使用して着信値をハッシュします。 |
|
着信値を、ディレクトリに格納されている値と比較します。 |
属性がディレクトリに格納されたときに使用された暗号スキームを使用して着信値をハッシュし、それを格納値と比較します。 |
|
値をそのまま使用します。 |
操作を実行する前に、 |
|
|
|
注意:
|
Oracle Enterprise Manager Fusion Middleware Controlまたはコマンド行を使用して、orclhashedattributes
の属性のリストを管理できます。
Oracle Enterprise Manager Fusion Middleware Controlの「共有プロパティ」ページを使用して、ハッシュ属性を構成できます。
「Oracle Internet Directory」メニューから「管理」を選択し、「共有プロパティ」を選択します。
コマンド行を使用してハッシュ属性を構成するには、その属性名を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