説明

プロセス分離実行を通じたDRMクライアント衝突防止システム及び方法

一つのPCで複数のDRMクライアントが使われる場合に、プロセス分離実行を通じてDRMクライアント相互間の衝突を防止するシステム及び方法に関するものであって、該プロセス分離実行を通じたDRMクライアント衝突防止システムは、異なる複数のDRMクライアントが設置されたPC内で、DRMクライアント間の相互衝突を防止するためのシステムにおいて、PCに設置された実際運用体制のカーネルを分けて、仮想運用体制を生成して管理する仮想運用体制管理部と、ユーザが閲覧しようとする文書種類による分岐処理情報を管理する分岐処理情報管理部と、分岐処理情報を分析して、ユーザが閲覧しようとする文書の種類によって、該当応用プログラムを指定された運用体制領域で実行させて、文書を閲覧可能にする応用プログラム分岐部と、を備えることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロセス分離実行を通じたDRMクライアント衝突防止システム及び方法に係り、特に一つのPCで複数のDRMクライアントが使われる場合に、運用体制仮想化を利用してプロセスを分離して実行させることによって、DRMクライアント相互間の衝突を防止するシステム及び方法に関する。
【背景技術】
【0002】
企業の内部には、情報及び知識の共有のために多くのシステムが構築されており、その結果、文書の流通が活発に行われている。インターネット活動が普遍化し始めた90年代後半から、企業は、外部のハッカーによる企業の重要情報の外部への流出を防止するために、保安に巨大な投資を行ってきている。
【0003】
しかし、企業の情報流出事故は、外部のハッカーよりは内部者の不注意や故意によって発生する場合がほとんどである。したがって、内部者による情報流出を防止するために、内部者危険管理(Insider Threat Management:ITM)が必要である。
【0004】
内部者危険管理のための技術的方案として、Blocking、Content Filtering及びLoggingのような方法が試みられているが、Blockingの場合には、意図的な流出を防止し難いという問題があり、Content Filteringの場合には、システムの性能を低下させ、正確なフィルタリングが困難であるという問題があり、Loggingの場合には、事故を防止できず、事後措置という限界点がある。
【0005】
最近には、コンテンツの著作権保護のために開発されたDRM(Digital Right Management)を利用したEDRM(Enterprise DRM)が企業内部の文書保安方法についての適切な解決策として注目されており、多くの先進企業に導入されている。
【0006】
DRMの基本概念は、コンテンツ、文書、ファイルなどの使用を著作権者の意図通りに制限しようとするものであって、コンテンツなどを暗号化して伝達し、そのコンテンツなどがどのように使われねばならないか明確に規定する。
【0007】
DRMは、その応用によって、Consumer DRM(CDRM)及びEnterprise DRM(EDRM)に区分でき、CDRMは、コンテンツなどの著作権保護が主目的である一方、EDRMは、企業の文書保安をその目的とする。
【0008】
EDRMは、企業内部文書の使用に対して、ユーザ、使用環境、機能などを持続的に制御することによって、文書の保安を維持する。
【0009】
EDRM製品のサブモジュールは、保安政策を決定する政策サーバ、ライセンスを発給するライセンスサーバ及びDRMクライアントから構成される。DRMクライアントは、暗号化されたファイルを復号化してレンダリングアプリケーションにファイルを伝達し、レンダリングアプリケーションでファイルを所定の範囲内でのみ使わせ、情報流出経路を遮断する重要な機能を行う。
【0010】
DRMクライアントを具現する技術は、Embedding、Plug−in、Overridingの三つの方式に区分できる。
【0011】
Embeddingは、レンダリングアプリケーションのソースコードに直接DRM機能を具現するものであって、最も容易であり、保安レベルが高い方式であるが、ソースコードを直す場合にのみ適用可能であるという制約がある。
【0012】
Plug−inは、レンダリングアプリケーションで提供するAPIを利用して、レンダリングアプリケーションの使用を制限する方法である。レンダリングアプリケーション中には、APIを提供しない場合も多いので、適用に限界があり、公開されたAPIを使用するため、保安に脆弱点がありうる。
【0013】
Overridingは、レンダリングアプリケーションの実行コードをランタイムにメモリでレンダリングアプリケーションを変更する方法であって、HookingまたはAPI Hooking技術と呼ばれる。具現に多くの困難さがあるが、いかなるレンダリングアプリケーションも制御可能であるという長所があり、保安性も高いので、多くのDRMベンダーが部分的にあるいは全面的に使用している方法である。
【0014】
前記API Hooking技術は、運用体制のユーザレベル及びカーネルレベルでいずれも適用可能であり、そのうち、ユーザレベルの技術が主に使われている。ユーザレベルのAPI Hooking技術には色々な方式があるが、実行バイナリのIAT(Import Address Table)を変調するIAT変調方式、及び実行バイナリコードを変調するコードオーバーライト方式の二つの種類が、DRMクライアントモジュールに要求される機能を最も効果的に支援できるため、最も多く使われている。
【0015】
しかし、EDRMが企業に拡散されるにつれて、一つの企業に多くのDRMベンダーのEDRMが適用される場合が発生した。この場合、API Hooking技術を使用して開発された多くのDRMベンダーのDRMクライアントモジュールを一つのPCに設置して使用する場合に衝突が発生し、この衝突により、暗号化されたEDRM文書の閲覧不可、応用プログラムの誤動作または非正常終了、運用体制の誤動作または速度低下などの問題が引き起こされる。
【0016】
前記したような衝突が発生する理由は、次の通りである。
【0017】
IAT変調方式及びコードオーバーライト方式のようなAPI Hooking技術は、いずれもAPI呼び出し経路の変更に基づく技術である。すなわち、応用プログラムに属するモジュール間の呼び出し関係で、特定のAPI呼び出し経路を変更して迂回させ、DRMクライアントモジュールを迂回された経路内に配置して、呼び出されるAPIのパラメータ及びリターン値を操作することによって、応用プログラムの動作を制御するものである。
【0018】
API呼び出し経路を変更するためには、呼び出されるAPIのアドレス値を変更せねばならない。しかし、二つ以上の異なるDRMベンダーのDRMクライアントモジュールが設置されて動作すれば、制御対象応用プログラムプロセスのローディング過程で次のような一連の作業が起こる。
(1)応用プログラムプロセスの起動
(2)応用プログラムで必要とするシステムDLL及びカスタムDLLのローディング
(3)DRMクライアントモジュールのローディングまたは挿入
(4)DRMクライアントモジュールが該当応用プログラムプロセス領域にローディングされたモジュールのAPI呼び出し経路の変更
【0019】
前記した作業のうち(4)で、各DRMベンダーのDRMクライアントモジュールが同じ特定のモジュールのAPI呼び出しアドレス値を互いに自身の特定の関数アドレスに変更する作業が起こり、この作業は、各DRMベンダーのDRMクライアントモジュール別に応用プログラムプロセス領域にローディングされる順序で順次に進められる。(4)での作業結果として変更されたAPI呼び出しアドレス値は、各DRMベンダーのDRMクライアントモジュールがローディングされる順序と、各DRMクライアントモジュールのAPI呼び出しアドレス変更及び管理方法とによって変わり、その結果によって、次の表1のように色々な形態の問題が発生する。
【0020】
【表1】

【0021】
前記した衝突発生の場合のうち、表1の(3)の場合は、最も深刻な問題を引き起こすが、かかる問題が発生する原因は次の通りである。
【0022】
応用プログラムが‘文書閲覧’のような一つの動作を行うのには、数十種のAPIが使われ、API呼び出し回数は、場合によって異なるが、数百ないし数千回が発生する。かかる一連の呼び出し過程で、既定の順序によって予想されるパラメータ及びリターン値の伝達が行われることによって、一つの動作が正常に処理される。
【0023】
しかし、表1の(3)の場合は、応用プログラムで使用する複数のAPI呼び出しアドレス値がそれぞれ異なるベンダーのDRMクライアントモジュールの関数アドレス値に混在して変更された状態であるため、一つの動作に伴う一連のAPI呼び出しが異なる方式及びロジックで具現された他のベンダーのDRMクライアントモジュール間で発生して、一部のAPI呼び出しに失敗するか、または期待しないアドレスへの進入、または予想しないパラメータ及び結果値のリターンが起こり、かかる場合、これに対する例外処理装置がよく備えられていない応用プログラムは、誤動作を行うか、または非正常終了を起こす。また、応用プログラムの誤動作がIPC(Inter−process Communication)を通じた運用体制とのインターフェース過程で発生する場合には、運用体制の機能に影響を及ぼして、システムの誤動作や速度低下を誘発する。
【0024】
結局、複数のDRMベンダーのDRMクライアントが一つのPCで同時に動作する時に発生する衝突は、結局、各DRMクライアントモジュールが同時に同じ応用プログラムプロセスを制御するために、同じ技術を使用するところに起因していることが分かる。
【0025】
かかる衝突を回避するための方案として最も容易に考えられるのは、一つの応用プログラムプロセスが動作するとき、一つのDRMクライアントのみを動作させることである。すなわち、DRMクライアントを駆動して管理するDRMクライアントエージェントプログラムを一時点に一つのみ動作させるのである。このためには、各DRMベンダーのDRMクライアントエージェントプログラムを、ユーザGUI(Graphical User Interface)を通じて起動して終了させる方法がありうる。
【0026】
世界で最初にDRMソリューションが商用化されて活性化された国内情報保安業界で、DRMクライアント間の衝突問題が最初に持ち上がった2〜3年前に試みられた方法がこれであり、これは、いわゆる‘DRMエージェント手動スイッチ’という名称と呼ばれた。該方法は、他の付随的な逆効果や問題現象なしに適用される方法であるが、特定のDRMベンダーフォーマットの暗号化文書を閲覧するために、ユーザがあらかじめ該当ベンダーのDRMクライアントエージェントを選択して駆動させねばならず、複数のDRMベンダーの暗号化文書を同時に閲覧できないという使用上の大きい不都合のためにエンドユーザーから歓迎されず、これによって、EDRMシステム使用率を低下させて、さらに発展した方式の衝突回避方法についての要求が発生した。
【0027】
かかる要求がさらに発展した形態の衝突回避方案を作り出したが、該方法は、複数のDRMベンダーのDRMクライアントエージェントが同時に動作している状態で既定のActive DRMベンダーを設定しておき、ユーザが文書を閲覧する時点で文書のフォーマットを確認して処理する方法であって、文書閲覧前にユーザの付加的な作業が不要であるため、使用上の不都合を除去したところに意味がある。
【0028】
該方法は、ユーザが閲覧を試みた文書のフォーマットが現在のActive DRMベンダーのフォーマットであれば、Active DRMクライアントが動作しつつ他の付加的な作業なしに直ちに文書を閲覧できる。閲覧を試みた文書がActive DRMベンダーではない他のDRMベンダーフォーマットの文書である場合には、Active DRMベンダーのDRMクライアントモジュールが他のDRMベンダーをActive状態に変更した後に、ユーザに適切なメッセージを示して該当文書の閲覧を再び試みるように誘導する。このとき、ユーザが該当文書の閲覧を再び試みれば、文書のフォーマット及びActive DRMベンダーが一致して文書を閲覧できる。該方法は、‘DRMエージェント半自動スイッチ’という名称と呼ばれる。
【0029】
しかし、前記した方法は、使用している各DRMベンダーの協調下で該当機能を追加して、各ベンダーのDRMクライアントを再配布せねばならず、閲覧を試みた文書のフォーマット及び設定されたActive DRMベンダーが一致しない場合、該当応用プログラムを終了した後で再び閲覧を試みねばならず、以前の方法と同様に、依然として複数のDRMベンダーの暗号化文書を同時に閲覧できないという不都合が存在する。
【0030】
かかる色々な問題点及び不都合を解消するために、さらに他の色々な方法が考案されて試みられもしたが、そのうち一つが応用プログラムのプロセスを分離して実行させる方法である。このプロセス分離方式は、文書を閲覧する時点で文書のフォーマットを確認して、DRMベンダー別にプロセスインスタンスを別に分離して生成する方式であって、複数のDRMベンダーの文書を同時に閲覧できるなど既存のスイッチ方式より進歩した方法と評価されたが、プロセスインスタンスを二つ以上生成できない応用プログラムに対しては適用できず、相異なるDRMベンダーの文書を開いた応用プログラムプロセス間に、IPCを利用した色々な機能(コピー&ペースト、OLE個体挿入など)が動作する時に対する処理が困難であり、安定性に対して保証できないので、商用化されないものと知られている。
【発明の概要】
【発明が解決しようとする課題】
【0031】
本発明の目的は、API Hooking技術を使用して開発された相異なるDRMベンダーのDRMクライアントモジュールを一つのPCに設置して使用する場合に発生する衝突を防止するためのものであって、運用体制仮想化を利用してプロセスを分離して実行させることによって、DRMクライアントモジュールに対する変更及び再配布なしに直ちに適用でき、ユーザの付加的な作業が不要なDRMクライアント衝突防止システム及び方法を提供するためのものである。
【0032】
また、本発明は、従来の方式では不可能であった相異なるDRMベンダーフォーマットの文書を同時に閲覧して使用でき、一つの運用体制でプロセスインスタンスを二つ以上生成できない応用プログラムに対しても適用できるDRMクライアント衝突防止システム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0033】
前記目的を達成するための本発明のシステムは、異なる複数のDRMクライアントが設置されたPC内でDRMクライアント間の相互衝突を防止するためのシステムにおいて、前記PCに設置された実際運用体制のカーネルを分けて、仮想運用体制を生成して管理する仮想運用体制管理部と、ユーザが閲覧しようとする文書の種類による分岐処理情報を管理する分岐処理情報管理部と、前記分岐処理情報を分析してユーザが閲覧しようとする文書の種類によって、該当応用プログラムを指定された運用体制領域で実行させて、文書を閲覧可能にする応用プログラム分岐部と、を備えることを特徴とする。
【0034】
また、前記システムは、前記文書の種類によって、実際運用体制領域及び仮想運用体制領域でそれぞれ実行された応用プログラムプロセス間の通信のためのIPCインターフェースをさらに備えることを特徴とする。
【0035】
このとき、前記IPCインターフェースは、クリップボード、共有メモリ、ウィンドウソケット、及び同期化客体のうち選択されたいずれか一つ以上により具現されることを特徴とする。
【0036】
前記分岐処理情報は、分岐対象応用プログラム、文書種類、実行運用体制領域を含むことを特徴とする。
【0037】
また、前記分岐処理情報は、XMLで定義され、暗号化して管理されることを特徴とする。
【0038】
一方、前記応用プログラム分岐部は、Shell execute hook extensionモジュール及びAPI Hookingモジュールを含むことを特徴とする。
【0039】
前記目的を達成するための本発明の方法は、異なる複数のDRMクライアントが設置されたPC内でDRMクライアント間の相互衝突を防止するための方法において、前記PCの実際運用体制のカーネルを分けて、仮想運用体制を生成する運用体制仮想化ステップと、前記運用体制仮想化が行われたPCで、文書ファイルについての閲覧を試みる文書閲覧試みイベント発生ステップと、前記文書閲覧試みイベントによって、該当文書の経路及び実行しようとする応用プログラムの情報が応用プログラム分岐部に伝達されるステップと、前記応用プログラム分岐部が前記該当文書の分岐処理情報を照会して、該当文書の種類を判断するステップと、前記判断によって、前記応用プログラム分岐部が、文書の種類による該当応用プログラムを指定された運用体制領域で実行させて、該当文書を開くステップと、を含むことを特徴とする。
【0040】
また、文書の種類によって、指定された運用体制領域での該当応用プログラム実行後、実際運用体制領域及び仮想運用体制領域でそれぞれ実行された応用プログラムプロセス間に、IPCインターフェースを通じた通信が行われるステップをさらに含むことを特徴とする。
【0041】
このとき、前記IPCインターフェースは、クリップボード、共有メモリ、ウィンドウソケット、及び同期化客体のうち選択されたいずれか一つ以上により具現されることを特徴とする。
【0042】
前記分岐処理情報は、分岐対象応用プログラム、文書種類、実行運用体制領域を含むことを特徴とする。
【0043】
また、前記分岐処理情報は、XMLで定義され、暗号化して管理されることを特徴とする。
【0044】
一方、前記応用プログラム分岐部は、Shell execute hook interface(IShellExecuteHook)を利用して、拡張モジュールとして具現されることを特徴とする。
【0045】
前記目的を達成するための本発明の他の方法は、異なる複数のDRMクライアントが設置されたPC内でDRMクライアント間の相互衝突を防止するための方法において、前記PCの実際運用体制のカーネルを分けて、仮想運用体制を生成する運用体制仮想化ステップと、前記運用体制仮想化が行われたPCでウェブページに添付されている文書を、ウェブブラウザを通じて閲覧を試みる閲覧試みイベント発生ステップと、前記閲覧試みイベントによって、応用プログラム分岐部が前記ウェブページに添付された文書の経路及び実行しようとする応用プログラムの情報を探知するステップと、前記応用プログラム分岐部が前記該当文書の分岐処理情報を照会して、文書の種類を判断するステップと、前記判断によって、前記応用プログラム分岐部が文書の種類による該当応用プログラムを指定された運用体制領域で実行させて、該当文書を開くステップと、を含むことを特徴とする。
【0046】
また、文書の種類によって、指定された運用体制領域での該当応用プログラム実行後、実際運用体制領域及び仮想運用体制領域でそれぞれ実行された応用プログラムプロセス間に、IPCインターフェースを通じた通信が行われるステップをさらに含むことを特徴とする。
【0047】
一方、前記IPCインターフェースは、クリップボード、共有メモリ、ウィンドウソケット、及び同期化客体のうち選択されたいずれか一つ以上により具現されることを特徴とする。
【0048】
前記分岐処理情報は、分岐対象応用プログラム、文書種類、実行運用体制領域を含むことを特徴とする。
【0049】
また、前記分岐処理情報は、XMLで定義され、暗号化して管理されることを特徴とする。
【0050】
一方、前記応用プログラム分岐部は、API Hooking技術を利用したモジュールとして具現されることを特徴とする。
【発明の効果】
【0051】
本発明によれば、DRMクライアントモジュールに対する変更及び再配布なしに直ちに適用できるため、既存の方式に比べてはるかに経済的であるだけでなく、従来の方式のように相異なるDRMベンダーの文書を閲覧するために、ユーザの付加的な作業が不要であるので、便利に使用できる。
【0052】
また、従来の方式では不可能であった相異なるDRMベンダーフォーマットの文書を同時に閲覧して使用でき、一つの運用体制でプロセスインスタンスを二つ以上生成できない応用プログラムに対しても適用可能である。
【0053】
また、実際運用体制領域及び仮想運用体制領域が互いに完全に隔離されているため、制御対象応用プログラム間のデータ交換及びIPCを利用した色々な機能の動作に影響を受けないので、安定的に運用できる。
【図面の簡単な説明】
【0054】
【図1】運用体制仮想化方式による構造図である。
【図2】本発明の望ましい一実施形態によるシステム構成図である。
【図3】本発明の望ましい一実施形態による探索器を通じた文書閲覧時でのDRMクライアントの衝突防止方法を示すフローチャートである。
【図4】本発明の望ましい一実施形態によるウェブブラウザを通じた文書閲覧時でのDRMクライアントの衝突防止方法を示すフローチャートである。
【発明を実施するための形態】
【0055】
本発明は、運用体制(Operating System:OS)仮想化を利用して、一つのPCに設置された二つ以上の異なるDRMベンダーのDRMクライアントが互いに衝突することを防止するシステム及び方法を提案する。
【0056】
運用体制仮想化は、一般的にハードウェアエミュレーション方法及びOSパーティショニング方法に分けられる。
【0057】
図1は、ハードウェアエミュレーション方式及びOSパーティショニング方式のシステム構造図である。図1を参照すれば、ハードウェアエミュレーション方式は、ベースとなるHost OS上にVMウェア及びGuest OSが位置する構造であり、OSパーティショニング方式は、Host OSと同じ線上で仮想化空間が位置しており、カーネル実行部が分けられている構造である。したがって、OSパーティショニング方式によれば、File、Registry及び各種のObjectは、既存のHost OS空間とは分離された新たなFile、Registry、Objectが存在する。
【0058】
すなわち、ハードウェアエミュレーションは、一つの物理的なハードウェアで複数の異なるOS環境を提供する方法であり、OSパーティショニングは、一つの物理的なハードウェアで複数の同じOS環境を独立的に生成する方法である。
【0059】
前記したような構造的な差によって、ハードウェアエミュレーション方式及びOSパーティショニング方式は、次の表2のような差がある。
【0060】
【表2】

【0061】
本発明は、前記したような運用体制仮想化方式のうちOSパーティショニング方式により、一つのPC上でサンドボックス形態の安全に隔離された複数の仮想運用体制領域を生成し、二つ以上の異なるDRMベンダーのDRMクライアントモジュールを異なる運用体制領域で独立的に実行させることによって、相互間の干渉と衝突を基本的に防止できる。
【0062】
以下、本発明の望ましい実施形態による詳細な説明を、添付された図面を参照して説明する。下記には、本発明を説明するにあたって、関連した公知機能または構成についての具体的な説明が本発明の要旨を不明瞭にすると判断される場合には、その詳細な説明を省略する。
【0063】
図2は、本発明の望ましい一実施形態によるDRMクライアントシステム構成図である。前記図2では、一つのPCに二つの異なるDRMベンダー(DRMベンダーA及びDRMベンダーB)のDRMクライアントが設置されて運用される環境を仮定してシステムを構成したが、少なくとも二つ以上の異なるDRMベンダーのDRMクライアントが設置されて運用される場合にも適用可能であることは、当業者に自明であるといえる。
【0064】
一方、前記図2による本発明の望ましい一実施形態において、応用プログラム、DRMベンダーA及びDRMベンダーBのDRMクライアント110,120は、いずれも前記PCの実際運用体制100の領域に設置される。
【0065】
前記図2を参照すれば、本発明の運用体制仮想化を利用したDRMクライアント衝突防止システムは、仮想運用体制管理部130、分岐処理情報管理部160及び応用プログラム分岐部150を備え、IPCインターフェース170をさらに備える。
【0066】
前記仮想運用体制管理部130は、前述したOSパーティショニング方式によりPCに設置された実際運用体制100のカーネルを分けて、仮想運用体制200を生成して管理する。このとき、前記仮想運用体制200は、前記PCのブーティング時、またはこれに準ずる適切な時点に生成されることが望ましい。
【0067】
また、生成される前記仮想運用体制200の数は特別な制限がないが、前記PCにさらに設置されたDRMクライアントの数に対応することが望ましい。例えば、三つの異なるDRMクライアントがPCに設置されているならば、二つの仮想運用体制を生成して実際運用体制及び二つの仮想運用体制に分けることが望ましい。
【0068】
一方、前記仮想運用体制管理部130は、前記仮想運用体制200で動作中である応用プログラムを終了させる機能を有する。
【0069】
前記分岐処理情報管理部160は、ユーザが閲覧しようとする文書の種類によって、前記応用プログラム分岐部150が該当応用プログラムの実行領域を分岐処理するための分岐処理情報161を管理する。
【0070】
前記分岐処理情報161は、分岐対象応用プログラム、文書種類及び実行運用体制領域情報を含む。また、前記分岐処理情報161は、XMLで定義し、暗号化して管理される。
【0071】
前記分岐対象応用プログラム情報は、分岐対象応用プログラム名及び実行ファイル名(例えば、Winword.exe)を含み、前記文書種類は、例えば、1=一般文書、2=DRMベンダーAの暗号化文書、3=DRMベンダーBの暗号化文書のように定義されて構成され、前記実行運用体制領域情報は、例えば、実際運用体制領域の場合にはROS、仮想運用体制領域の場合に生成される仮想運用体制の数によって、VOS#1,VOS#2のように定義されて構成される。
【0072】
一例として、前記分岐対象応用プログラムがマイクロソフト社のMS Office Wordであり、前記文書種類がDRMベンダーBの暗号化文書であり、前記実行運用体制領域が仮想運用体制領域#1である場合に、前記分岐処理情報161は、次のように定義される。
<APPLICATION name=“winword.exe”>
<DISPLAY_NAME>MS Office Word</DISPLAY_NAME>
<MACHINE_TYPE>VOS#1</MACHINE_TYPE>
<EXECUTE_TYPE>3</EXECUTE_TYPE>
</APPLICATION>
【0073】
前記応用プログラム分岐部150は、ユーザが文書を閲覧しようとする時、文書種類(例えば、一般文書、DRMベンダーAの暗号化文書、DRMベンダーBの暗号化文書)によって前記分岐処理情報161を照会して、該当応用プログラムを指定された運用体制領域(実際運用体制領域または仮想運用体制領域)で実行させて、文書を閲覧可能にする応用プログラム実行分岐処理モジュールである。
【0074】
例えば、前記図2に示したように、DRMベンダーBの暗号化文書を閲覧しようとする場合、前記応用プログラム分岐部150は、DRMクライアントを駆動して管理するDRMベンダーBのDRMクライアントエージェント121を前記仮想運用体制200の領域で駆動させることによって、該当応用プログラムを前記仮想運用体制200の領域で実行させる。
【0075】
前記PCの探索器を通じて文書を閲覧しようとする場合に、前記応用プログラム分岐部150は、MS Windowsで提供するShell interfaceのうちShell execute hook interface(IShellExecuteHook)を利用して拡張モジュールとして具現される。
【0076】
前記Shell execute hook interfaceは、Windows Shell(探索器、初期画面など)を通じてプログラムが実行される時、これについてのイベントを発生させて、開発者が機能を追加できるように提供されたインターフェースであって、探索器や初期画面またはシステムメニューを通じてプログラム実行要請がある時、プログラム実行命令の詳細な情報をIShellExecuteHookを具現した拡張モジュールに伝達し、拡張モジュールでは、この実行命令情報を目的によって照会、変更または取り消すことによって、開発者の意図の通りにプログラムが実行されるか、または実行を取り消すWindows Shell拡張機能のうち一つである。
【0077】
一方、ウェブブラウザを通じてウェブページに添付されている文書を閲覧しようとする場合に、前記応用プログラム分岐部150は、API Hooking技術を利用してウェブブラウザのファイル入出力(I/O)を監視して、ウェブページに添付されている文書(ファイル)を閲覧しようとするイベントが発生すれば、該当文書種類を判断して、該当応用プログラムを指定された運用体制領域で実行させるようにモジュールを具現する。
【0078】
したがって、前記応用プログラム分岐部150は、前記PCの探索器を通じた文書閲覧のためのShell execute hook extensionモジュール151、及びウェブブラウザを通じた文書閲覧のためのAPI Hookingモジュール152を含む。
【0079】
前記IPCインターフェース170は、前記文書種類によって、実際運用体制領域及び仮想運用体制領域でそれぞれ実行された応用プログラムプロセス間で通信を行う。したがって、前記IPCインターフェース170を通じて実際運用体制領域及び仮想運用体制領域でそれぞれ実行された応用プログラムプロセス間で、文書編集のためのコピー/ペーストなどの機能を使用できる。
【0080】
前記IPCインターフェース170は、クリップボード171、共有メモリ172、ウィンドウソケット173、及び同期化客体174などを通じて具現される。
【0081】
図3は、前記PCの探索器を通じて前記PC内の文書を閲覧しようとする場合、本発明の望ましい一実施形態によるDRMクライアントの衝突防止方法を示すフローチャートであり、図4は、ウェブブラウザを通じて文書を閲覧しようとする場合、本発明の望ましい一実施形態によるDRMクライアントの衝突防止方法を示すフローチャートである。
【0082】
前記図3及び図4では、分岐対象でない応用プログラムのみは実行され、一般文書、DRMベンダーAの暗号化文書の場合には、実際運用体制領域でそのまま実行され、DRMベンダーBの暗号化文書の場合には、仮想運用体制領域で実行されるものと仮定したが、前記分岐処理情報161によって、それぞれの場合に実行される運用体制領域は任意に変更される。
【0083】
前記図3を参照すれば、まず、前記仮想運用体制管理部130がOSパーティショニング方式により、前記PCの実際運用体制100のカーネルを分けて、仮想運用体制200を生成する(S310)。このとき、前記仮想運用体制200は、前記PCのブーティング時、またはこれに準ずる適切な時点に生成されることが望ましい。
【0084】
一方、生成される前記仮想運用体制200の数は特別な制限がないが、前記PCにさらに設置されたDRMクライアントの数に対応することが望ましい。例えば、三つの異なるDRMクライアントがPCに設置されているならば、二つの仮想運用体制を生成して、実際運用体制及び二つの仮想運用体制に分けることが望ましい。
【0085】
前記仮想運用体制200の生成後、探索器を通じて文書を閲覧しようとするイベントが発生すれば(S320)(例えば、文書をダブルクリックするか、または文書選択後にエンターキー)、該当文書の経路及び実行される応用プログラムが前記応用プログラム分岐部150のShell execute hook extensionモジュール151に伝達される(S330)。
【0086】
前記Shell execute hook extensionモジュール151は、前記該当文書の分岐処理情報161を照会して、文書種類(例えば、一般文書、DRMベンダーAの暗号化文書、DRMベンダーBの暗号化文書)を判断する(S340)。
【0087】
前記分岐処理情報161は、前記分岐処理情報管理部160により管理され、分岐対象応用プログラム、文書種類及び実行運用体制領域情報を含む。また、前記分岐処理情報161は、XMLで定義し、暗号化して管理される。
【0088】
前記判断結果、分岐対象でない応用プログラムは実行され、一般文書、DRMベンダーAの暗号化文書である場合には、実際運用体制100の領域でそのまま実行させる(S350)。したがって、実際運用体制領域で該当応用プログラムが実行されて、該当文書が開かれる。
【0089】
前記判断結果、DRMベンダーBの暗号化文書である場合には、前記Shell execute hook extensionモジュール151で実際運用体制100の領域での実行は遮断し、仮想運用体制200の領域で該当応用プログラムを通じて該当文書を開くように命令を実行し、したがって、仮想運用体制200の領域で該当応用プログラムが実行されて、該当文書が開かれる(S360)。
【0090】
一方、前記文書種類によって、実際運用体制領域及び仮想運用体制領域でそれぞれ実行された該当応用プログラムプロセス間で、前記IPCインターフェース170を通じた通信が行われる(S370)。したがって、実際運用体制領域及び仮想運用体制領域でそれぞれ実行された応用プログラムプロセス間で、文書編集のためのコピー/ペーストなどの機能を使用できる。
【0091】
前記IPCインターフェース170は、クリップボード171、共有メモリ172、ウィンドウソケット173、及び同期化客体174などを通じて具現される。
【0092】
前記図4を参照すれば、まず、前記仮想運用体制管理部130がOSパーティショニング方式により、前記PCの実際運用体制100のカーネルを分けて、仮想運用体制200を生成する(S410)。このとき、前記仮想運用体制200は、前記PCのブーティング時、またはこれに準ずる適切な時点に生成されることが望ましい。
【0093】
一方、生成される前記仮想運用体制200の数は特別な制限がないが、前記PCにさらに設置されたDRMクライアントの数に対応することが望ましい。例えば、三つの異なるDRMクライアントがPCに設置されているならば、二つの仮想運用体制を生成して、実際運用体制及び二つの仮想運用体制に分けることが望ましい。
【0094】
前記仮想運用体制200の生成後、ウェブブラウザを通じてウェブページに添付されている文書を閲覧しようとするイベントが発生すれば(S420)、前記ウェブブラウザで作動する前記応用プログラム分岐部150のAPI Hookingモジュール152が該当文書の経路及び実行される応用プログラムを探知する(S430)。
【0095】
前記API Hookingモジュール152は、前記該当文書の分岐処理情報161を照会して、文書種類(例えば、一般文書、DRMベンダーAの暗号化文書、DRMベンダーBの暗号化文書)を判断する(S440)。
【0096】
前記分岐処理情報161は、前記分岐処理情報管理部160により管理され、分岐対象応用プログラム、文書種類及び実行運用体制領域情報を含む。また、前記分岐処理情報161は、XMLで定義し、暗号化して管理される。
【0097】
前記判断結果、分岐対象でない応用プログラムは実行され、一般文書、DRMベンダーAの暗号化文書である場合には、実際運用体制100の領域でそのまま実行させる(S450)。したがって、実際運用体制領域で該当応用プログラムが実行されて、該当文書が開かれる。
【0098】
前記判断結果、DRMベンダーBの暗号化文書である場合には、前記API Hookingモジュール152で実際運用体制100の領域での実行は遮断し、仮想運用体制200の領域で、該当応用プログラムを通じて該当文書を開くように命令を実行する。したがって、仮想運用体制200の領域で該当応用プログラムが実行されて、該当文書が開かれる(S460)。
【0099】
一方、前記文書種類によって、実際運用体制領域及び仮想運用体制領域でそれぞれ実行された該当応用プログラムプロセス間で、前記IPCインターフェース170を通じた通信が行われる(S470)。したがって、実際運用体制領域及び仮想運用体制領域でそれぞれ実行された応用プログラムプロセス間で、文書編集のためのコピー/ペーストなどの機能を使用できる。
【0100】
前記IPCインターフェース170は、クリップボード171、共有メモリ172、ウィンドウソケット173、及び同期化客体174などを通じて具現される。
【符号の説明】
【0101】
100:実際運用体制
200:仮想運用体制
110:A社のDRMクライアント
120:B社のDRMクライアント
130:仮想運用体制管理部
150:応用プログラム分岐部
151:Shell execute hook extensionモジュール
152:API Hookingモジュール
160:分岐処理情報管理部
161:分岐処理情報
170:IPCインターフェース

【特許請求の範囲】
【請求項1】
異なる複数のDRMクライアントが設置されたPC内で、DRMクライアント間の相互衝突を防止するためのシステムにおいて、
前記PCに設置された実際運用体制のカーネルを分けて、仮想運用体制を生成して管理する仮想運用体制管理部と、
ユーザが閲覧しようとする文書の種類による分岐処理情報を管理する分岐処理情報管理部と、
前記分岐処理情報を分析して、ユーザが閲覧しようとする文書の種類によって、該当応用プログラムを指定された運用体制領域で実行させて、文書を閲覧可能にする応用プログラム分岐部と、を備えることを特徴とするプロセス分離実行を通じたDRMクライアント衝突防止システム。
【請求項2】
前記システムは、前記文書の種類によって、実際運用体制領域及び仮想運用体制領域でそれぞれ実行された応用プログラムプロセス間の通信のためのIPCインターフェースをさらに備えることを特徴とする請求項1に記載のプロセス分離実行を通じたDRMクライアント衝突防止システム。
【請求項3】
前記IPCインターフェースは、クリップボード、共有メモリ、ウィンドウソケット、及び同期化客体のうち選択されたいずれか一つ以上により具現されることを特徴とする請求項2に記載のプロセス分離実行を通じたDRMクライアント衝突防止システム。
【請求項4】
前記分岐処理情報は、分岐対象応用プログラム、文書種類、及び実行運用体制領域を含むことを特徴とする請求項1に記載のプロセス分離実行を通じたDRMクライアント衝突防止システム。
【請求項5】
前記分岐処理情報は、XMLで定義され、暗号化して管理されることを特徴とする請求項4に記載のプロセス分離実行を通じたDRMクライアント衝突防止システム。
【請求項6】
前記応用プログラム分岐部は、Shell execute hook extensionモジュール及びAPI Hookingモジュールを含むことを特徴とする請求項1に記載のプロセス分離実行を通じたDRMクライアント衝突防止システム。
【請求項7】
異なる複数のDRMクライアントが設置されたPC内で、DRMクライアント間の相互衝突を防止するための方法において、
前記PCの実際運用体制のカーネルを分けて、仮想運用体制を生成する運用体制仮想化ステップと、
前記運用体制仮想化が行われたPCで文書ファイルについての閲覧を試みる文書閲覧試みイベント発生ステップと、
前記文書閲覧試みイベントによって、該当文書の経路及び実行しようとする応用プログラムの情報が応用プログラム分岐部に伝達されるステップと、
前記応用プログラム分岐部が前記該当文書の分岐処理情報を照会して、該当文書の種類を判断するステップと、
前記判断によって、前記応用プログラム分岐部が、文書の種類による該当応用プログラムを指定された運用体制領域で実行させて、該当文書を開かせるステップと、を含むことを特徴とするプロセス分離実行を通じたDRMクライアント衝突防止方法。
【請求項8】
文書の種類によって、指定された運用体制領域での該当応用プログラム実行後、実際運用体制領域及び仮想運用体制領域でそれぞれ実行された応用プログラムプロセス間で、IPCインターフェースを通じた通信が行われるステップをさらに含むことを特徴とする請求項7に記載のプロセス分離実行を通じたDRMクライアント衝突防止方法。
【請求項9】
前記IPCインターフェースは、クリップボード、共有メモリ、ウィンドウソケット、及び同期化客体のうち選択されたいずれか一つ以上により具現されることを特徴とする請求項8に記載のプロセス分離実行を通じたDRMクライアント衝突防止方法。
【請求項10】
前記分岐処理情報は、分岐対象応用プログラム、文書種類、及び実行運用体制領域を含むことを特徴とする請求項7に記載のプロセス分離実行を通じたDRMクライアント衝突防止方法。
【請求項11】
前記分岐処理情報は、XMLで定義され、暗号化して管理されることを特徴とする請求項10に記載のプロセス分離実行を通じたDRMクライアント衝突防止方法。
【請求項12】
前記応用プログラム分岐部は、Shell execute hook interface(IShellExecuteHook)を利用して、拡張モジュールとして具現されることを特徴とする請求項7に記載のプロセス分離実行を通じたDRMクライアント衝突防止方法。
【請求項13】
異なる複数のDRMクライアントが設置されたPC内で、DRMクライアント間の相互衝突を防止するための方法において、
前記PCの実際運用体制のカーネルを分けて、仮想運用体制を生成する運用体制仮想化ステップと、
前記運用体制仮想化が行われたPCで、ウェブページに添付されている文書に対して、ウェブブラウザを通じて閲覧を試みる閲覧試みイベント発生ステップと、
前記閲覧試みイベントによって、応用プログラム分岐部が、前記ウェブページに添付された文書の経路、及び実行しようとする応用プログラムの情報を探知するステップと、
前記応用プログラム分岐部が前記該当文書の分岐処理情報を照会して、文書の種類を判断するステップと、
前記判断によって、前記応用プログラム分岐部が文書の種類による該当応用プログラムを指定された運用体制領域で実行させて、該当文書を開かせるステップと、を含むことを特徴とするプロセス分離実行を通じたDRMクライアント衝突防止方法。
【請求項14】
文書の種類によって、指定された運用体制領域での該当応用プログラム実行後、実際運用体制領域及び仮想運用体制領域でそれぞれ実行された応用プログラムプロセス間で、IPCインターフェースを通じた通信が行われるステップをさらに含むことを特徴とする請求項13に記載のプロセス分離実行を通じたDRMクライアント衝突防止方法。
【請求項15】
前記IPCインターフェースは、クリップボード、共有メモリ、ウィンドウソケット、及び同期化客体のうち選択されたいずれか一つ以上により具現されることを特徴とする請求項14に記載のプロセス分離実行を通じたDRMクライアント衝突防止方法。
【請求項16】
前記分岐処理情報は、分岐対象応用プログラム、文書種類、及び実行運用体制領域を含むことを特徴とする請求項13に記載のプロセス分離実行を通じたDRMクライアント衝突防止方法。
【請求項17】
前記分岐処理情報は、XMLで定義され、暗号化して管理されることを特徴とする請求項16に記載のプロセス分離実行を通じたDRMクライアント衝突防止システム。
【請求項18】
前記応用プログラム分岐部は、API Hooking技術を利用したモジュールとして具現されることを特徴とする請求項13に記載のプロセス分離実行を通じたDRMクライアント衝突防止方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2011−510417(P2011−510417A)
【公表日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2010−544211(P2010−544211)
【出願日】平成20年1月25日(2008.1.25)
【国際出願番号】PCT/KR2008/000469
【国際公開番号】WO2009/093768
【国際公開日】平成21年7月30日(2009.7.30)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WINDOWS
【出願人】(510055367)ファソー.コム カンパニー リミテッド (5)
【Fターム(参考)】