ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Internet Directory管理者ガイド
11g リリース1(11.1.1)
B55919-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

28 データ・プライバシの構成

データ・プライバシは、データの送信時と受信後の両方で重要な問題です。伝送中、データはSSLによって保護されます。この章では、Oracle Internet Directoryがデータを受信した後にどのように保護するかについて説明します。

この章の項目は次のとおりです。

28.1 表領域の暗号化の概要

Oracle Databaseの透過的データ暗号化(TDE)は、Oracle Enterprise User Securityの1コンポーネントであり、ディスクへの書込み時のデータ暗号化と認可ユーザーによる読取り時の復号化を透過的に行います。TDEは、ストレージ・メディアまたはデータ・ファイルが盗まれた場合に、メディア上に格納されたデータの保護に役立ちます。アプリケーションの変更は不要であり、ストレージ・メディア上のデータの暗号化はユーザーには透過的に行われます。

Oracle Database 11g Advanced Securityの透過的データ暗号化では、データベースの表領域の暗号化を新たにサポートしています。暗号化された表領域内に作成されたオブジェクトはすべて自動的に暗号化されます。暗号化された表領域内のデータはすべて、暗号化された形式でディスク上に格納されます。データ・ブロックは、Oracle Databaseによるアクセス時に透過的に復号化されます。表領域の暗号化によって、列の暗号化の外部キー制限が解消され、暗号化されたデータの索引レンジ・スキャンが可能になります。

28.2 表領域の暗号化の有効化と無効化

Oracle Internet Directoryで使用するOracle Databaseの表領域の暗号化を有効化または無効化する手順は、次のとおりです。


注意:

以前に表領域の暗号化を有効化または無効化したことがあり、再度有効化する場合、手順7に進みます。


  1. Oracle Internet Directoryインスタンスで使用するOracle Databaseのコールド・バックアップを作成します。

  2. データベースのOracleホームにJava VMパッケージとXML Developer's Kitパッケージがインストールされていることを確認します。

    指定のパッケージがインストールされているかどうかを確認するには、次のSQL*Plusを実行します。

    SELECT comp_id, status FROM dba_registry;
    

    次のPL/SQLプロシージャを実行します。

    sys.dbms_metadata_util.load_stylesheets
     
    
  3. SYSTEM権限のあるユーザーとしてSQL*Plusにログインし、次のコマンドを実行します。

    GRANT CREATE ANY DIRECTORY TO ods; 
    
  4. 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; 
    
  5. directory_pathlog_directory_pathをファイル・システムに作成します。

  6. データベース・ウォレットの場所をデータベースのOracleホームのsqlnet.ora内に設定します。


    注意:

    データベース・ウォレットを、第27章で説明しているOracle Internet Directoryウォレットと混同しないでください。


    表領域の暗号化専用に個別のウォレットを使用することをお薦めします。

    1. 表領域の暗号化用に個別のデータベース・ウォレットを使用するには、sqlnet.oraにパラメータENCRYPTION_WALLET_LOCATIONを設定します。次に例を示します。

      ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/install/db11g/dbs)))
      
    2. すべてのOracleコンポーネントで同じデータベース・ウォレットを共有して使用するには、sqlnet.oraにパラメータWALLET_LOCATIONを設定します。次に例を示します。

      WALLET_LOCATION= (SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/install/db11g/dbs))) 
      
  7. Oracle DatabaseのOracleホームを使用しているすべてのOracle Internet Directoryインスタンスを停止します。

  8. Oracle DatabaseのOracleホームで表領域の暗号化を初めて有効化する場合は、ALTER SYSTEM権限のあるユーザーとしてSQL*Plusにログインし、次のコマンドを実行します。

    ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY yourwalletpassword;
    
  9. Oracle Databaseを停止して再起動するたびに、ALTER SYSTEM権限のあるユーザーとしてSQL*Plusにログインし、次のコマンドを実行します。

    ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY yourwalletpassword;
    

    Oracle Internet Directoryを起動する前と、手順12に示すPerlスクリプトを実行する前に、このコマンドを必ず実行してください。

  10. 環境変数ORACLE_HOMEをOracle Databaseのホームに設定します。

  11. 環境変数NLS_LANGをOracle Databaseサーバーのキャラクタ・セットに設定します。

  12. コンピュータ上のperl5の場所と一致するようPerlスクリプトORACLE_HOME/ldap/datasecurity/oidtbltde.pl内のperl5実行可能ファイルのパスを編集します。

  13. Perl用のデータベース非依存インタフェース・モジュール(DBI)とPerl用のOracle DBDドライバがインストールされていない場合は、この2つをインストールします。

  14. Perlスクリプトoidtbltde.plを実行し、Oracle Internet DirectoryのTDEを有効化または無効化します。

28.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管理者ガイド』を参照してください。


28.4 Oracle Database Vaultの構成によるOracle Internet Directoryデータの保護

Oracle Database Vaultは、Oracle Internet Directory用に構成する前にインストールおよび登録する必要があります。Database Vaultは、Oracle Databaseインストールの一部としてインストールします。

28.4.1 Oracle Database Vaultの登録

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に登録されていない場合、次の手順を実行します。

  1. 『Oracle Fusion Middleware Oracle Identity Managementインストレーション・ガイド』の説明に従って、Oracle Internet Directoryをインストールします。

  2. 『Oracle Database Vault管理者ガイド』の説明に従って、Oracle Database Vaultを登録します。

  3. Oracle Databaseのバージョンが11.1.0.7である場合は、バグ7244497のパッチをダウンロードしてインストールします。これは、より新しいバージョンのOracle Databaseでは必要ありません。

  4. Oracle Databaseのバージョンが11.1.0.7である場合は、バグ7291157のパッチをダウンロードしてインストールします。これは、より新しいバージョンのOracle Databaseでは必要ありません。

Oracle Database VaultがOracle Databaseに登録されている場合、次の手順を実行します。

  1. Oracle Database Vaultが有効化されている場合は、無効化します。『Oracle Database Vault管理者ガイド』のOracle Database Vaultの無効化および有効化に関する付録を参照してください。

  2. 『Oracle Fusion Middleware Oracle Identity Managementインストレーション・ガイド』の説明に従って、Oracle Internet Directoryをインストールします。

  3. 『Oracle Database Vault管理者ガイド』の説明に従って、Database Vaultを有効化します。

  4. Oracle Database 11.1.0.7を使用している場合は、バグ7244497のパッチをダウンロードしてインストールします。

  5. Oracle Database 11.1.0.7を使用している場合は、バグ7291157のパッチをダウンロードしてインストールします。

28.4.2 Oracle Internet Directory用のDatabase Vaultレルムおよびポリシーの追加

Oracle Internet Directoryには、必要なDatabase Vaultポリシーを適用するためのスクリプトが用意されています。これらのスクリプトは、$ORACLE_HOME/ldap/datasecurityの下にあるOracle Internet Directoryのインストール・ディレクトリに含まれています。

Database VaultポリシーをOracle Internet Directoryデータベースに適用するには、Oracle Internet Directory用のデフォルトのDatabase Vaultレルムを次のように作成する必要があります。

  1. dbv_oid_rule.sqlをテキスト・エディタで開き、Check ods connectionsルールとCheck ods connections 2ルール内のダミーIPアドレスを次のアドレスに置き換えます。

    Oracle Internet Directoryが実行されているコンピュータのIPアドレス

  2. データベースに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データベースへの接続を許可する手順は、次のとおりです。

  1. dbv_oid_rule_sqlplus.sqlをテキスト・エディタで開きます。Check ods connections 3ルール内のダミーIPアドレスを、Oracle Internet DirectoryデータベースへのSQL*Plusアクセスを許可するホストのIPアドレスに置き換えます。

  2. データベースにDatabase Vault所有者として接続し、dbv_oid_rule_sqlplus.sqlを実行します。

ある時点でOracle Internet DirectoryデータベースへのSQL*Plusアクセスを完全にブロックする場合は、Database Vault所有者としてデータベースに接続し、dbv_oid_delete_rule_sqlplus.sqlを実行します。

28.4.3 Oracle Internet Directory用のOracle Database Vault構成の管理

データ・ディクショナリ・ビューの使用方法は、『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 connectionsCheck ods connections 2Check 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コマンド・ルールが上書きされません。

28.4.4 Oracle Internet Directory用のDatabase Vaultポリシーの削除

前述の項でインストールしたOID用のDatabase Vaultポリシーを削除するには、データベースにDatabase Vault所有者として接続している間にdbv_delete_oid_policies.sqlを実行します。

28.4.5 Oracle Internet Directoryデータベース用のOracle Database Vaultの無効化

『Oracle Database Vault管理者ガイド』の「Oracle Database Vaultの有効化および無効化」を参照してください。

28.5 Database VaultとOracle Internet Directoryの使用方法のベスト・プラクティス

Oracle Database Vaultの使用時は、次の管理タスクに特別な注意が必要です。

28.6 機密の属性の概要

Oracle Internet Directoryは、機密の属性を暗号化形式で格納します。機密の属性の例としては、orclpasswordattributeorclrevpwd、プラグイン属性orclpluginsecuredflexfieldおよびサーバー・チェーン属性orclOIDSCExtPasswordがあります。

28.6.1 機密の属性のリスト

機密の属性のリストは、DSA構成エントリ内の属性orclencryptedattributesに格納されています。このリストを表28-1に示します。

表28-1 orclencryptedattributesに格納されている機密の属性

機密の属性 属性の使用方法

orclpluginsecuredflexfield

プラグインに渡される機密の属性。第45章を参照してください。

orcloidscextpassword

プラグイン接続用のサーバー管理パスワード。

第45章を参照してください。

orcloidscwalletpassword

プラグインのsslwalletパスワード。第38章を参照してください。

orclrevpwd

可逆暗号化形式のユーザー・パスワード。第31章を参照してください。

orclunsyncrevpwd

関連するuserpasswordと同期されない可逆暗号化パスワード。第31章を参照してください。

orclodipprofileinterfaceconnectinformation

Oracle Directory Integration Platform: イベント伝播用のアプリケーションとの接続に使用される情報。

orclodipcondiraccesspassword

Oracle Directory Integration Platform: ディレクトリに接続するためにサード・パーティ・ディレクトリによって使用されます。

orclodipagentpassword

Oracle Directory Integration Platform: ディレクトリへのバインドに同期プロファイルで使用するパスワード。


最後の3エントリの詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』の「属性リファレンス」の章を参照してください。

orcldataprivacymode属性は、データの受信時にこれらの属性を暗号化するかどうかを制御します。orcldataprivacymodeが有効な場合、機密の属性は暗号化されます。プライバシ・モードが無効の場合、機密のデータはクリアテキストで返されます。


注意:

このリストは変更しないでください。機密の属性を追加しないようにしてください。


28.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に変換されます。

28.7 受信した機密の属性のプライバシの構成

プライバシ・モードはデフォルトでは無効です。つまり、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

28.8 ハッシュ属性の概要

暗号化とは異なり、ハッシングは一方向操作です。ハッシュ値から元の値を導出することはできません。Oracle Internet Directoryは、機密の属性に加えて、ハッシュ属性もサポートしています。ハッシュ属性のリストは、DSA構成エントリの複数値属性であるorclhashedattributesに含まれています。ハッシングは、ルートDSE属性orclcryptoschemeで設定されている暗号スキームを使用して実行されます。

LDAP操作およびbulkloadは、表28-2で説明している変換を自動的に実行します。ハッシュ属性を指定してbulkmodifyコマンドを使用することはできません。

表28-2 orclhashedattributesの属性に対するLDAP操作とバルク操作

操作 着信属性値がすでにハッシュされている場合 着信属性値がハッシュされていない場合

ldapadd

値をそのまま使用します。

操作を実行する前に、orclcryptoschemeを使用して着信値をハッシュします。

ldapmodify

値をそのまま使用します。

追加操作または置換操作の場合は、操作を実行する前に、orclcryptoschemeを使用して着信値をハッシュします。

削除操作の場合、操作を実行する前に、属性がディレクトリに格納されたときに使用されていた暗号スキームを使用して着信値をハッシュします。

ldapcompare

着信値を、ディレクトリに格納されている値と比較します。

属性がディレクトリに格納されたときに使用された暗号スキームを使用して着信値をハッシュし、それを格納値と比較します。

bulkload

値をそのまま使用します。

操作を実行する前に、orclcryptoschemeを使用して着信値をハッシュします。

bulkmodify

bulkmodifyは許可されていません。

bulkmodifyは許可されていません。



注意:

  • orclhashedattributesorclencryptedattributesの両方に同じ属性を含めないでください。

  • 単一値属性のみをハッシュ属性にすることができます。


28.9 ハッシュ属性の構成

Oracle Enterprise Manager Fusion Middleware Controlまたはコマンドラインを使用して、orclhashedattributesの属性のリストを管理できます。

28.9.1 Fusion Middleware Controlを使用したハッシュ属性の構成

Oracle Enterprise Manager Fusion Middleware Controlの「共有プロパティ」ページを使用して、ハッシュ属性を構成できます。

「Oracle Internet Directory」メニューから「管理」を選択し、「共有プロパティ」を選択します。

28.9.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