レベル: 初級 大川 昌弘 (mohkawa@jp.ibm.com), IM&Lotus開発, ソフトウェア開発研究所, IBM 貝嶋 創 (kaijima@jp.ibm.com), IM&Lotus開発, ソフトウェア開発研究所, IBM 中嶋 剛 (gnaka@jp.ibm.com), IM&Lotus開発, ソフトウェア開発研究所, IBM
2008年 12月 19日 IBM Database Encryption Expert (DEE) は、アプリケーションがファイル・システムに書き込むデータやデータベースのバックアップ・イメージを暗号化し、アクセス制御する機能を提供します。DEE Version 1.1 Fix Pack 3では、DB2®に加えて、新たにIDS (Informix® Dynamic Server) がサポートされ、さらに多くのプラットフォームに対応するようになりました。この連載では、DEEの機能やメカニズム、操作方法、いくつかのシナリオなどを紹介します。第1回は、主な機能とメカニズムについて解説します。
はじめに
DEEは、1つ以上の暗号化キーと、アクセス制御のためのいくつかのルールを含むポリシーによって、データを保護します。ポリシーには、オンライン・ポリシーとオフライン・ポリシーの2つの異なるポリシーがあります。
オンライン・ポリシーは、アプリケーションがファイル・システムからデータを読み書きする際に使用されます。オンライン・ポリシーをあるディレクトリに対して適用すると、そのディレクトリ下のファイルやサブ・ディレクトリへのアクセスがポリシーに従って制御されます。DEEでは、オンライン・ポリシーのディレクトリへの適用をファイル・システムのガードと呼び、適用されたディレクトリをガード・ポイントと呼びます。また、アプリケーションがファイル・システムに対して読み書きするデータをオンライン・データと呼びます。ガード・ポイント上のデータをアクセスするにあたり、OSのAPIを使っているのであれば、アプリケーションの変更は必要ありません。
オフライン・ポリシーは、データベースのバックアップ・イメージを保護する際に使用されます。オフライン・ポリシーはバックアップやリストアを行うマシンに対して適用され、バックアップやリストアの実行制御およびバックアップ・イメージの暗号化や復号が行われます。DEEでは、オフライン・ポリシーのマシンへの適用をデータベースのガードと呼びます。
図1にDEEの概念図を示します。DEEはDEE Security ServerとDEE Agentから構成されます。DEE Security Serverは、ポリシーなどの構成情報やログを保持し、それらはDB2のデータベースに格納されます。
DEE Agentは、保護するデータが存在するマシンに導入されます。DEEでは、DEE Agentが導入されるマシンをホストと呼びます。DEE Security Serverが保持しているポリシーは必要に応じてDEE Agentに送信されたり(プッシュ)、DEE Agentから取り出されたり(プル)します。DEE Agentは、DEE File System Agent (DEE FS Agent) とDEE Database Backup Agent (DEE DB Agent) から構成されます。DEE FS Agentは、オンライン・ポリシーに従ってファイル・システムをガードする処理を行い、DEE DB Agentは、オフライン・ポリシーに従ってデータベースをガードする処理を行います。アクセス違反などDEE Agentで発生したイベントのログは、設定に応じてDEE Security Serverに送信されます。
DEE Security Serverは、DEE Management Consoleと呼ばれるWebベースのインターフェースを提供し、それにより暗号化キーやポリシーなどの構成を行ったり、ログを参照したりすることができます。DEE Management Consoleは、Webブラウザより"https://hostname:8445"で使用します。DEE Management ConsoleでDEE Security Serverにログインすると、図2のようなダッシュボードが表示され、上段にあるメニューを選択して各種操作することができます。
また、複数のマシンをDEE Security Serverとして構成することができます。1つはプライマリ・サーバーで、他はフェイルオーバー・サーバーと呼ばれます。フェイルオーバー・サーバーは参照のみ可能です。DEEはレプリケーション機能も提供しており、それにより、フェイルオーバー・サーバーの構成情報をプライマリ・サーバーと同期することができます。
プライマリのDEE Security Serverは、CA(認証局)の役割も担い、それぞれのDEE Security Server、DEE FS Agent、DEE DB AgentにX.509証明書を発行します。X.509証明書には有効期限があります(CA用X.509証明書とプライマリのDEE Security Server用X.509証明書が10年、その他のX.509証明書が4年)ので、期限が切れる前に更新する必要があります。詳細は、第2回を参照してください。
図 1. IBM Database Encryption Expertの概念図
図 2. DEE Management Console
高可用性
フェイルオーバー・サーバー
フェイルオーバー・サーバーの構成情報は、DEEが提供するSQLレプリケーションの技術を用いてプライマリ・サーバーの構成情報と同期させることができます。ログは同期されません。SQLレプリケーションでは、キャプチャー・プログラム(asncap)がデータベースのログからコミット時に変更情報を取得し、ステージング・テーブルに保存します。アプライ・プログラム(asnapply)は、ステージング・テーブルから1分間隔で変更情報を取得し、フェイルオーバー・サーバーに適用します。両方のプログラムは、プライマリ・サーバーで動作します。
フェイルオーバー・サーバーがセットアップされると、DEE Agentはそれらのサーバーにアクセスすることができます。フェイルオーバー・サーバーは参照のみである点を除けば、プライマリ・サーバーと同等です。図3は、DEE Agentがどのように複数のDEE Security Serverを選択してアクセスするかを示しています。DEE FS AgentやDEE DB Agentは、それぞれ構成情報"agent.conf"ファイルを保持します。このファイルを編集して、複数のDEE Security Serverのアクセスポイントを登録します。構成方法の詳細は、第2回を参照してください。複数のDEE Security Serverを登録すると、DEE Agentは、最初に登録されたDEE Security Serverにアクセスしますが、応答がない場合、次に登録されたDEE Security Serverにアクセスします。
図 3. フェイルオーバー・サーバーのメカニズム
Cached on Host
オンライン・データの暗号化キーを作成する際、"Cached on Host"というオプションがあります。この設定にすると、暗号化キーは、適用するマシンの物理ディスクにパスワードで保護されて保管されます。それにより、DEE Security Serverが動作していない状態でも、ポリシーに従ってオンライン・データを保護することができます。詳細は、第3回を参照してください。
オンライン・データの保護
メカニズム
DEEは、オンライン・データを暗号化するアルゴリズムとして対称暗号アルゴリズム(3DES, AES128, AES256)を利用します。図4にオンライン・データの保護の概念図を示します。オンライン・ポリシーは、1つ以上の暗号化キーとアクセス制御のためのルールを保持します。ガード・ポイント下のファイルやサブ・ディレクトリに対して同じ暗号化キーを使うことも、異なる暗号化キーを使うこともできます。アクセス制御のためのルールは"Security Rules"で行い、暗号化キーの設定は"Key Selection Rules"で行います。構成方法の詳細は第3回を参照してください。DEE Management Consoleでポリシーをあるディレクトリに適用すると、そのポリシーはDEE Security ServerからDEE FS Agentに送付されます。
DEE FS Agentは、vmdプロセスとsecfsdプロセスから構成されます。vmdプロセスはDEE Security Serverとの通信をつかさどり、secfsdではポリシーを保持し、データの暗号化や復号を含めたアクセス制御を行います。これらのプロセスはシステムに常駐し、secfsdプロセスが起動すると、関連するすべてのポリシーをvmdプロセス経由でDEE Security Serverから取得し、キャッシュして利用します。その際、すべてのDEE Security Serverがダウンしていた場合、vmdプロセスは5秒おきにDEE Security Serverに問い合わせます。オンライン・ポリシーをあるホストのあるディレクトリに適用した時は、そのポリシーがそのホストのDEE FS Agentに送付され、キャッシュして利用されます。
図 4. オンライン・データの保護
Host Settings
アクセス制御のためのルールとして、ユーザーID の条件を含めることができます。ユーザーID の条件と関連する設定として"Host Settings"があります。これは、どのログイン方法を正規な方法として認めるか、どのプロセスをログイン方法にかかわらず認めるかといった設定を行います。Host Settingsの詳細は、第3回を参照してください。
もし正規な方法として認められていない方法でログインした場合、ポリシーで該当ユーザーがアクセス許可されていても、"User Not Authenticated"または"FAKED USER"エラーとなります。以下にエラー・メッセージの例を示します。
EET2604E: [SecFS, 0] [ALARM] Policy[v95inst3_online_policy1] User[v95inst3,uid=222
(User Not Authenticated)] Process[/usr/bin/ls] Action[read_dir_attr]
Res[/home/v95inst3/guard/] Effect[DENIED Code (1U,2M)]
|
dataxform
DEEはある暗号化キーで暗号化されたファイル、または暗号化されていないファイルを別の暗号化キーで暗号化する機能を提供します。この処理をdataxformと呼びます。あるディレクトリをガードする際、そのディレクトリ下に既にファイルが存在していたら、そのファイルはポリシーに従って暗号化されていなければなりませんが、暗号化されていない状態のままとなります。この問題の解決方法として、以下の方法が挙げられます。
- dataxformを利用して既存のファイルを変換する
- ディレクトリをガードする前に、ファイルをガードされていないディレクトリに移動し、ディレクトリをガードした後に、移動したファイルを元に戻す
dataxformの詳細は、第3回を参照してください。
各種コマンド
DEE Agentに関する情報を得るためのいくつかのコマンドも提供されています。例えば、一連のガード・ポイントの状況を得るには、以下のコマンドを発行します。"secfsd"や"vmd"は、オプションを指定することで各種情報を得るためのコマンドとしても利用されます。その他のコマンドについては、User's Guide を参照してください。DEE Security Serverの各種コマンドも含め、16章「Maintaining Encryption Expert」に記載されています。
データベースのバックアップ・イメージの保護
DEEは、データベースのバックアップ・イメージを暗号化するためにハイブリッド暗号方式を利用します。対称キーは動的に生成され、データベースのバックアップ・イメージを暗号化するのに使用されます。対称暗号アルゴリズムとして、AES128かAES256が指定可能です。データベースのバックアップ・イメージの暗号化に利用された対称キーは1つ以上の非対称キー(公開キー)で暗号化されます。非対称暗号アルゴリズムとしては、RSA1024, RSA2048, RSA4096が指定可能です。他のDEE Security Serverが生成した公開キーもインポートして使用することができ、そうすることで、他のDEE Security Serverの管理下にあるDEE DB Agentのマシンに暗号化されたバックアップ・イメージをリストアすることができます。
図5にデータベースのバックアップ・イメージの保護の概念図を示します。DEE DB Agentには、DB2をサポートするDEE DB2 Agentと、IDSをサポートするDEE IDS Agentがあります。両方を同一マシンで使用することはできません。1つのマシンに対して複数のバックアップ・ルールとリストア・リールから構成される1つのオフライン・ポリシーを適用することができます。
DB2のバックアップ・コマンドはオプションとして外部モジュールを指定することができます。そのオプションを使用して、DEE DB2 AgentモジュールがDB2のバックアップ・コマンドと連携し、DEE Security Serverと通信してバックアップ・イメージを暗号化します。バックアップ・イメージにはDEE DB2 Agentモジュールと復号に必要な情報が含まれて作成されます。DB2のリストア・コマンドはバックアップ・イメージに含まれるDEE DB2 Agentモジュールを起動し、DEE DB2 AgentモジュールはDEE Security Serverと通信してバックアップ・イメージを復号します。DB2のリストア・コマンドも、外部モジュールをオプションとして指定することができ、指定した場合は、指定したモジュールを使用してバックアップ・イメージが復号され、データベースにリストアされます。データベースのバックアップ後、DEE DB2 Agentがアップグレードされ、そのアップグレードされたモジュールを使用してリストアしたい場合などに、この機能を利用することができます。
IDSの場合、"onbar"あるいは"ontape"コマンドでバックアップやリストアができますが、DEEで暗号化や復号を行う場合、ONCONFIG構成ファイルにバックアップやりストア時のフィルタープログラムとしてDEE IDS Agentプログラムを登録します。DEE IDS Agentプログラムは、実行のための条件とデータをどのように処理するかが記述された属性ファイルを引数に持ちます。"ontape"の場合は、ONCONFIG構成ファイルに登録する代わりに、"ontape"で作成されたバックアップ・イメージを、パイプを使用してDEE IDS Agentプログラムに暗号化させたり、暗号化されたバックアップ・イメージをDEE IDS Agentプログラムで復号し、パイプを使用して"ontape"にリストアさせたりすることもできます。
構成方法などの詳細は、第4回を参照してください。
図 5. データベースのバックアップ・イメージの保護
DEE Agentのログ
DEE Agentで発生したイベントのログに関する設定は、DEE Management Consoleでホストごと、さらにDEE FS Agent 、DEE DB2 Agent、 DEE IDS Agentごとに設定できます。設定内容としては、ログをDEE Security Serverに送信するか、一度に何個のログを送信するか、その個数に満たない場合でも最長で何秒待って送信するか、最短で何秒待って送信するか、などがあります。ログをDEE Security Serverに送信する際、すべてのDEE Security Serverがダウンしていたら、一時ファイルに保存しておき、最長待ち時間の間隔でリトライします。これに伴うアプリケーションへの影響はありません。設定内容の詳細は、User’s Guideの15章「Setting preferences」を参照してください。
まとめ
第1回では、IBM Database Encryption Expertの主な機能とメカニズムについて述べました。DEEを用いることによって、アプリケーションがファイル・システムに対して読み書きするデータをアクセス制御のもと暗号化したり復号することができます。ガード・ポイント上のデータをアクセスするにあたり、OSのAPIを使っているのであれば、アプリケーションの変更は必要ありません。また、DEEは、DB2やIDSのバックアップやリストアの実行制御およびバックアップ・イメージの暗号化や復号を行うことができます。構成情報やログはDEE Security Serverで一括管理することができます。高可用性における機能としてDEE Security Serverが複数台設置でき、また、”Cached on Host”機能により、オンライン・ポリシーに関する構成情報をDEE FS Agentにパスワード管理のもと保存しておけば、DEE Security Serverがダウンしていても使用することができます。システムに常駐するDEE FS Agentのプロセスは、起動時に関連するすべてのオンライン・ポリシーをDEE Security Serverから取得し、キャッシュして利用するので、その後は”Cached on Host”機能にかかわらず、DEE Security Serverがダウンしても使い続けることができます。DEE DB Agentは、バックアップやリストアを行う毎に、DEE Security Serverに問い合わせて処理を行います。
参考文献
著者について  | |  | 大川 昌弘は、ソフトウェア開発研究所のIM&Lotus開発に所属するソフトウェアエンジニアで、現在は主にデータベースツール製品の開発やテストを行っています。 |
 | |  | 貝嶋 創は、ソフトウェア開発研究所のIM&Lotus開発に所属するソフトウェアエンジニアで、現在は主にデータベースツール製品の開発やテストを行っています。 |
 | |  | 中嶋 剛は、ソフトウェア開発研究所のIM&Lotus開発に所属するソフトウェアエンジニアで、現在は主にデータベースツール製品の開発やテストに従事しています。 |
記事の評価
|