2. Directory Serverのインスタンスと接尾辞
ldapmodifyおよびldapdeleteを使用したエントリの管理
ldapmodifyを使用してエントリを移動または名前変更するには:
7. Directory Serverのパスワード・ポリシー
8. Directory Serverのバックアップとリストア
9. Directory Serverのグループ、ロールおよびCoS
16. Directory Proxy Serverのツール
17. Directory Proxy Serverのインスタンス
19. Directory Proxy Serverの証明書
20. Directory Proxy Serverのロード・バランシングとクライアント・アフィニティ
22. Directory Proxy Serverによる仮想化
24. Directory Proxy ServerとバックエンドLDAPサーバーの接続
25. クライアントとDirectory Proxy Serverの接続
26. Directory Proxy Serverのクライアント認証
27. Directory Proxy Serverのロギング
28. Directory Proxy Serverの監視とアラート
第3部 Directory Service Control Centerの管理
属性値の暗号化により、機密データはディレクトリに格納されている間保護されます。属性の暗号化により、エントリの特定の属性を暗号化されたフォーマットで保存するように指定できます。そうすることで、データベース・ファイル、バックアップ・ファイル、およびエクスポートされたLDIFファイルに格納されている間は、データが読めなくなります。
ディスク上に保存されたデータのみが暗号化されます。コンソールのエントリ管理パネルに表示されるデータ、またはldapsearchコマンドの出力として表示されるデータがすべて暗号化されるわけではありません。
この機能により、属性値はDirectory Serverデータベースに保存される前に暗号化され、クライアントに返される前に元の値に復号化されます。アクセス制御を使用してしてクライアントが許可なくこれらの属性にアクセスすることを防ぎ、SSLによってクライアントとDirectory Server間のすべての通信を暗号化する必要があります。データ・セキュリティの一般的なアーキテクチャ上の概要(特に属性の暗号化)については、Oracle Directory Server Enterprise Editionリファレンスを参照してください。
属性の暗号化は、SSLが構成されてサーバー上で有効な場合にのみ有効です。ただしデフォルトでは、属性は暗号化されません。属性の暗号化は、接尾辞レベルで構成されます。つまり、接尾辞内でその属性が現れるエントリごとに属性が暗号化されます。ディレクトリ全体で属性を暗号化する場合は、それぞれの接尾辞でその属性の暗号化を有効にする必要があります。
注意: 属性の暗号化は、接尾辞に関連付けられたすべてのデータおよび索引ファイルに影響を与えます。属性の暗号化が有効になった後に変更された属性のみが暗号化されます。既存の属性は、そのまま変更されません。 すべてのデータに暗号化を適用するには、まずその内容をエクスポートしてから、構成の変更を行い、その内容をインポートしなおす必要があります。これらの手順の実行には、DSCCを使用できます。DSCCの使用方法の詳細は、「Directory Service Control Centerのインタフェース」を参照してください。 さらにセキュリティを高めるために、任意の属性の暗号化を有効にする際に、暗号化されてない値が含まれている可能性があるデータベース・キャッシュ・ファイルおよびデータベース・ログ・ファイルを手動で削除する必要があります。これらのファイルの削除方法は、「属性の暗号化を構成するには:」に説明があります。 新しい接尾辞にデータをロードまたは作成する前に、暗号化された任意の属性を有効にする必要があります。 |
一部のエントリでネーミング属性として使用する属性を暗号化する場合、DNに表示される値は暗号化されません。エントリに格納される値は暗号化されます。
userPassword属性を暗号化するように選択しても、パスワードをクリアテキストで保存する必要がなければ、実際のセキュリティ上の利点がもたらされません。これは、DIGEST-MD5 SASL認証などの場合です。パスワード・ポリシーにパスワードの暗号化メカニズムが定義されている場合、それをさらに暗号化してもセキュリティの強化にはならず、各バインド操作のパフォーマンスが低下する結果になるのみです。
暗号化された上で格納されている属性には、使用された暗号化アルゴリズムを示す暗号化方式タグが最初に付けられます。DES暗号化アルゴリズムを使用して暗号化された属性は、次のように表示されます。
{CKM_DES_CBC}3hakc&jla+=snda%
データを暗号化するためにオンラインでインポートする場合、サーバーへの認証に使用される鍵データベースのパスワードはすでに指定されているため、2回目には要求されなくなります。データをオフラインでインポートする場合、インポートするデータの暗号化を許可する前に、Directory Serverはパスワードの入力を求めます。より機密性の高い操作であるデータの復号化では、エクスポートをオンライン、オフラインのどちらで操作するかに関係なく、Directory Serverは常に鍵データベースのパスワードを要求します。これにより、セキュリティはさらに高まります。
注意: 証明書や秘密鍵を変更しないかぎり、サーバーにより引き続き同じ鍵が生成されます。そのため、両方のサーバー・インスタンスで同じ証明書を使用していれば、あるサーバー・インスタンスから別のサーバー・インスタンスへデータを転送できます。つまりエクスポートしてからトランスポートできます。
属性を暗号化することでデータのセキュリティが向上しますが、システムのパフォーマンスにも影響を及ぼします。暗号化が必要な属性について注意深く検討し、特に機密にする必要があると判断された属性のみを暗号化します。
機密データは索引ファイルより直接アクセスできるため、暗号化された属性に対応する索引キーは属性が完全に保護されるように暗号化する必要があります。索引付け自体がすでにDirectory Serverのパフォーマンスに影響しているため(索引キーの暗号化による負荷は含まれない)、データをインポートする、またはデータベースに初めて追加する前に属性の暗号化を構成してください。こうすることで、暗号化された属性には最初から索引が付けられます。
属性の暗号化機能を実装する場合、次の点を考慮してください。
一般的には、属性の暗号化構成を変更する場合、データをエクスポートして、構成に変更を加えた上で、新しく構成されたデータをインポートします。
これにより、いずれの機能も失われることなく、すべての構成変更が全体として適用されます。このような方法で行わなかった場合、一部の機能が喪失し、データのセキュリティが危険にさらされる可能性があります。
既存のデータベースで属性の暗号化構成を変更すると、システムのパフォーマンスに多大な影響を及ぼす場合があります。
たとえば、既存のデータが格納されたデータベース・インスタンスがあるとします。データベースには、mySensitiveAttributeという属性を持つエントリがあらかじめ格納されています。この属性の値は、データベースおよび索引ファイルにクリアテキストで保存されています。この状態で、後からmySensitiveAttribute属性を暗号化しようとすると、データベース・インスタンス内のすべてのデータはエクスポートしてからデータベースにインポートしなおし、属性暗号化の構成を適用するためにサーバーがデータベースおよび索引ファイルを更新する必要があります。この結果生じるパフォーマンスの問題は、この属性が最初から暗号化されていたとすると、回避できた可能性があります。
暗号化されたフォーマットでデータをエクスポートするときに、不正なパスワードが使用されると、エクスポートは拒否されます。
-yまたは-–decrypt-attrオプションを指定してdsconfコマンドを使用できるようにするには、set password promptモードをonに設定して、「証明書データベース・パスワードの構成」の説明にあるように、証明書データベース・パスワードを選択します。
データを復号化されたフォーマットでエクスポートする場合、サーバーはセキュリティ対策としてユーザーにパスワード入力を求めます。ユーザーが不正なパスワードを入力すると、サーバーは復号化されたデータのエクスポート処理を拒否します。パスワードは直接入力するか、パスワードが格納されたファイルへのパスを指定します。このファイルは、SSLパスワード・ファイルと同じ構文を持ちます。「証明書データベース・パスワードの構成」を参照してください。
アルゴリズムの変更はサポートされますが、正しく実行しないと、索引機能が失われることになります。
データの暗号化に使用されるアルゴリズムを変更するには、データをエクスポートし、属性の暗号化構成を変更してから、データをインポートします。この手順に従わないと、最初の暗号化アルゴリズムに基づいて作成された索引は機能しなくなります。
暗号化された属性は、使用された暗号化アルゴリズムを示す暗号化方式タグが最初に付けられるため、データのインポートは内部サーバー操作が処理します。そのため、Directory Serverでは、アルゴリズムを変更する前に、暗号化された形式でデータをエクスポートできます。
サーバーのSSL証明書を変更すると、暗号化されたデータの復号化ができなくななります。
サーバーのSSL証明書は、属性の暗号化機能で独自の鍵を生成するために使用されます。その鍵は、暗号化および復号化操作の実行に使用されます。このため、SSL証明書は暗号化されたデータの復号化に必要です。あらかじめデータを復号化せずに証明書を変更すると、データを復号化できなくなります。これを回避するには、復号化されたフォーマットのデータをエクスポートして、証明書を変更してから、データをインポートしなおします。
暗号化されたフォーマットでデータを転送するには(あるサーバー・インスタンスから別のサーバー・インスタンスにデータをエクスポートおよびインポートするには)、両方のサーバー・インスタンスで同じ証明書を使用する必要があります。
詳細は、『Oracle Directory Server Enterprise Edition管理ガイド』の「属性値の暗号化」を参照してください。
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
その接尾辞に暗号化された属性が含まれており、エクスポートされたLDIFファイルを使用して接尾辞を再度初期化する予定がある場合、その属性はエクスポートされたLDIFファイル内で暗号化されたままにできます。
$ dsconf create-encrypted-attr -h host -p port suffix-DN attr-name cipher-name
ここで、cipher-nameは次のいずれかです。
des - DESブロック暗号方式
des3 - トリプルDESブロック暗号方式
rc2 - RC2ブロック暗号方式
rc4 - RC4ストリーム暗号方式
たとえば、次のようになります。
$ dsconf create-encrypted-attr -h host1 -p 1389 dc=example,dc=com uid rc4
注意: dsadm importコマンドを使用してLDIFファイルをインポートする場合、-yオプションを使用する必要があります。dsconf importコマンドは、-yオプションを使用する必要がありません。
ファイルがロードされて対応する索引が作成されると、指定された属性のすべての値が暗号化されます。