第10章 属性暗号化の設定

Directory Server は、権限のないユーザーがエントリー内の特定のエントリーや属性を読み取らないようにするアクセス制御ルールや、信頼できないネットワークでのデータの盗聴や改ざんからデータを保護する TLS など、機密データへのアクセスを保護するための多数のメカニズムを提供します。ただし、サーバーのデータベースファイルのコピーが権限のない人の手に渡った場合は、それらのファイルから機密情報を抽出する可能性があります。データベースの情報はプレーンテキストで保存されるため、政府の識別番号やパスワードなど、一部の機密情報が標準アクセス制御手段で保護されない可能性があります。
情報の機密性が高くなると、この情報損失の可能性は重大なセキュリティーリスクをもたらす可能性があります。このセキュリティーリスクを削除するには、Directory Server ではそのデータベースの一部を暗号化することができます。暗号化されると、攻撃者がサーバーのデータベースファイルのコピーがある場合にもデータを安全に実行できます。
データベース暗号化により、属性をデータベースで暗号化できます。暗号化と暗号化暗号の両方は、バックエンドごとの属性ごとに設定できます。これを設定すると、インデックスデータであっても、特定の属性内のすべてのインスタンスは、そのデータベースに保存されているすべてのエントリー用に暗号化されます。
属性の暗号化の利点として、暗号化された値は 1 を超える Security Strength Factor (SSF) を持つクライアントにのみ送信できます。
注記
暗号化されたデータには 1 つの例外があります。エントリーの RDN として使用される値はエントリー DN 内で暗号化されません。たとえば、uid 属性が暗号化されている場合、値はエントリーで暗号化されますが、DN に表示されます。
dn: uid=jsmith1234,ou=People,dc=example,dc=com
...
uid:: Sf04P9nJWGU1qiW9JJCGRg==
これにより、誰かが暗号化された値を検出できるようになります。
エントリー DN 内で使用される属性は常に DN に表示されるため、実質的には暗号化できません。DN を構築するのに使用される属性に注意し、それに応じて属性暗号化モデルを設計します。
インデックス化された属性は暗号化され、属性の暗号化は eq および pres のインデックスと完全に互換性があります。通常、属性値から派生するインデックスファイルの内容は、攻撃者がインデックスの分析から暗号化されたデータをすべて復旧することを防ぐためも暗号化されます。
サーバーは暗号化属性のインデックスを検索する前にすべてのインデックスキーを事前に暗号化するため、暗号化されたインデックスを使用する検索にはサーバーパフォーマンスにも影響が及ぶことはありますが、その影響はインデックスを使用する価値がなくなるほど深刻ではありません。

10.1. キーの暗号化

属性暗号化を使用するには、TLS に対してサーバーを設定し、TLS を有効にする必要があります。これは、属性暗号化がサーバーの TLS 暗号化キーと、TLS と同じ PIN 入力メソッドを使用するためです。サーバーの起動時に PIN を手動で入力するか、PIN ファイルを使用する必要があります。
無作為に生成される対称暗号キーは、属性データを暗号化および復号するために使用されます。設定された暗号には個別のキーが使用されます。これらの鍵は、サーバーの TLS 証明書から公開鍵を使用して ラップ され、生成したラップ済みキーがサーバーの設定ファイル内に保存されます。属性暗号化の効果的な強度は、ラップに使用されるサーバーの TLS キーの強度よりも高くなります。サーバーの秘密鍵にアクセスできないと、ラップ済みのコピーから対称キーを復旧することができません。
警告
失われたキーを復元するメカニズムはありません。そのため、サーバーの証明書データベースを安全にバックアップすることが特に重要です。サーバーの証明書が失われた場合は、そのデータベースに保存されている暗号化データを復号することはできません。
警告
TLS 証明書の期限で更新が必要な場合は、更新前に暗号化されたバックエンドインスタンスをエクスポートします。証明書を更新して、エクスポートした LDIF ファイルを再インポートします。