(57)【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサによって実行される、第１のファイル形式のファイルから悪意のあるコードを除去するための方法であって、
前記ファイルの変換中に悪意のあるコードによって引き起こされるダメージを抑えるために、前記ファイルを開く要求に応答して前記ファイルを前記第１のファイル形式から第２のファイル形式に変換することができるコンバーターを限定的プロセスにロードすることであって、前記限定的プロセスにおける前記コンバーターは、オペレーティングシステムに対する制限されたアクセス権を有する動作と、
前記限定的プロセスにロードされた前記コンバーターを使用して悪意のあるコードを除去して、前記ファイルを前記第１のファイル形式から前記第２のファイル形式の変換済みファイルに変換する動作と、
前記変換の後に、前記変換済みファイルを開く動作と
を含むことを特徴とする方法。
【請求項２】
前記コンバーターは、前記第１のファイル形式のすべてのファイルに対するハンドラーとして指定されることを特徴とする請求項１に記載の方法。
【請求項３】
前記限定的プロセスは、オペレーティングシステムに機能を要求するための制限された特権を有することを特徴とする請求項１に記載の方法。
【請求項４】
前記限定的プロセスは、前記ファイルからのデータの読取りと前記変換済みファイルへのデータの書込みとに制限されることを特徴とする請求項３に記載の方法。
【請求項５】
前記限定的プロセスは、限定的トークン、ジョブオブジェクト、デスクトップコンテナおよびそれらの組合せからなる群のうちの１つに基づいて、制限された特権を有することを特徴とする請求項３に記載の方法。
【請求項６】
前記除去する動作の後に、前記変換済みファイルを第３のファイル形式に変換することを更に含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記変換済みファイルを前記変換することは前記コンバーターによって実行され、前記第３のファイル形式は前記第１のファイル形式と同一であることを特徴とする請求項６に記載の方法。
【請求項８】
プロセッサによってアクセスされるとファイルを開く方法を前記プロセッサに実行させるコンピューター実行可能命令を格納したコンピューター読取可能記憶媒体であって、前記方法は、
第１のファイル形式のファイルを開くことを求める要求を受信するステップと、
前記ファイルの変換中に悪意のあるコードによって引き起こされるダメージを抑えるために前記ファイルを前記第１のファイル形式から第２のファイル形式に変換することができるコンバーターを限定的プロセスにロードするステップであって、前記コンバーターにおける前記限定的プロセスは、オペレーティングシステムに対する制限されたアクセス権を有する、ステップと、
前記限定的プロセスにロードされた前記コンバーターを使用して、前記ファイルを前記第１のファイル形式から前記第２のファイル形式の変換済みファイルに変換し、前記変換により前記ファイル内に存在する悪意のあるコードを前記変換済みファイルから削除するステップと、
前記変換の後、前記変換済みファイルを開くステップと
を含むことを特徴とするコンピューター読取可能記憶媒体。
【請求項９】
前記コンバーターは、前記第１のファイル形式のすべてのファイルに対するハンドラーとして指定されることを特徴とする請求項８に記載のコンピューター読取可能記憶媒体。
【請求項１０】
前記限定的プロセスは、オペレーティングシステムに機能を要求するための制限された特権を有することを特徴とする請求項８に記載のコンピューター読取可能記憶媒体。
【請求項１１】
前記限定的プロセスは、前記ファイルからのデータの読取りと前記変換済みファイルへのデータの書込みとに制限されることを特徴とする請求項１０に記載のコンピューター読取可能記憶媒体。
【請求項１２】
前記限定的プロセスは、限定的トークン、ジョブオブジェクト、デスクトップコンテナ、およびそれらの組合せからなる群のうちの１つに基づいて、制限された特権を有することを特徴とする請求項１０に記載のコンピューター読取可能記憶媒体。
【請求項１３】
前記開くステップは、前記第２のファイル形式の前記変換済みファイルを開くことができるアプリケーションを起動することを更に含むことを特徴とする請求項８に記載のコンピューター読取可能記憶媒体。
【請求項１４】
前記開くステップは、前記変換済みファイルを第３のファイル形式に変換することを更に含むことを特徴とする請求項１３に記載のコンピューター読取可能記憶媒体。
【請求項１５】
少なくとも１つのプロセッサによって実行されるファイルを開く方法であって、
ファイルを開くことを求める要求を受信する動作と、
前記ファイルのデータの一部を検査して、前記ファイルの真のファイル形式を決定する動作と、
前記真のファイル形式が、開けることが阻止されている形式のものであるかどうかを判定する動作と、
前記ファイル形式が阻止されている形式のものではないとの判定に応答して、前記ファイルを開く動作と、
前記ファイル形式が阻止されている形式のものであるとの判定に応答して、
前記ファイルの変換中に悪意のあるコードによって引き起こされるダメージを抑えるために前記ファイルを第１のファイル形式から第２のファイル形式に変換することができるコンバーターを限定的プロセスにロードする動作であって、前記限定的プロセスにおける前記コンバーターは、オペレーティングシステムに対する制限されたアクセス権を有する、動作と、
前記限定的プロセスにロードされた前記コンバーターを使用して前記ファイルを前記第１のファイル形式から前記第２のファイル形式の変換済みファイルに変換し、前記変換によって前記ファイルに存在する悪意のあるコードを前記変換済みファイルから削除する動作と、
前記変換の後、前記変換済みファイルを開く動作と
を含むことを特徴とする方法。
【請求項１６】
前記判定する動作は、開けることが阻止されている前記形式を示すオープンブロックポリシーにアクセスすることを含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記オープンブロックポリシーは、オペレーティングシステムのレジストリーに格納されていることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記限定的プロセスは、前記オペレーティングシステムに機能を要求するための制限された特権を有することを特徴とする請求項１７に記載の方法。
【請求項１９】
前記限定的プロセスは、前記ファイルからのデータの読取りと前記変換済みファイルへのデータの書込みとに制限されることを特徴とする請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、限定的プロセスでのファイル変換に関する。
【背景技術】
【０００２】
ウイルスおよびトロイの木馬などの悪意のあるコードに対処することは、ソフトウェア開発者にとって変わらない関心事である。ハッカーは一般に、アプリケーションまたはファイル形式の脆弱性が知られるとすぐに、その脆弱性を利用する。既知の脆弱性を、その脆弱性が一般に知られるようになったその日に利用する悪意のあるコードは、ゼロデイエクスプロイト（ｚｅｒｏ  ｄａｙ  ｅｘｐｌｏｉｔ）と呼ばれる。今日まで、ゼロデイエクスプロイトに有効に対処する解決策はほとんどない。
【０００３】
ゼロデイエクスプロイトにおいて悪意のあるコードが循環されるその速さのため、開発者たちは、その脆弱性に対処するためのパッチまたはその他の解決策を実装するのに十分な時間がない。しばしば、利用可能な解決策は、不必要なサービスを止める、パッチのレベルを最新に保つ、未知の発信元からのものである、または予期しない添付物を開かないなどのセキュリティ上の最良慣行に従うようにユーザーに勧めることによって悪意のあるコードを開く可能性を低減することのみである。脆弱性が知られた後は、ユーザーは、その脆弱性の影響を受けるファイルを開かないようにすることができる。しかしながら、ユーザーがそのファイルにアクセスしなければならない場合には、これは適切な解決策にはならない。
【０００４】
更に、悪意のあるコードを探索し、削除するために使用される現在利用可能なソフトウェアアプリケーション（例えば、ウイルス対策ソフトウェア）は、悪意のあるコードまたは利用される脆弱性について何らかの事前知識を有していなければならない。例えば、いくつかのアプリケーションは、悪意のあるものとして既に識別されたコードを求めて文書を探索する。他のアプリケーションは、異常なコードを求めて探索すべき構造内の特定のフィールドなど脆弱性に関する知識を必要とする。これらの方法のぞれぞれは、（コードのまたは脆弱性の）事前知識を必要とする。ゼロデイエクスプロイトでは、脆弱性はわからないことになり、ハッカーは一般に悪意のあるものとして識別されない新たなコードを作成する。このことが、現在利用可能なソフトウェアアプリケーションを、ゼロデイエクスプロイトに対して効果のないものにしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願第１１／６７９０４８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
これらのまたその他の考慮すべき事柄に関して、本発明の実施形態は構築されている。また、比較的特定の問題が論じられているが、本発明の実施形態は、背景技術で識別された特定の問題の解決に限定されるべきではないことを理解されたい。
【課題を解決するための手段】
【０００７】
本項は、後述の「発明を実施するための形態」の項で更に詳述する、簡易化された形態の選択された概念を紹介するために提供される。本項は、特許請求されている主題の主要な特徴または本質的な特徴を特定するものではなく、また特許請求されている主題の範囲を決定する助けとして使用されるものでもない。
【０００８】
第１のファイル形式のファイルを第２のファイル形式の変換済みファイルに変換することによって、その第１のファイル形式のファイルから悪意のあるコードを除去するまたは無効にするための実施形態について述べる。実施形態では、ファイル内に含まれている悪意のあるコードを、そのファイルを変換済みファイルに変換する間に除去するまたは無効にする。その変換は、限定的コンピュータープロセス内にロードされたコンバーターによって実行される。そのコンピュータープロセスは、基礎となるオペレーティングシステムおよびコンピューターシステムへのそのアクセスを制限する限定的な特権を有する。従って、ファイルに組み込まれた悪意のあるコードが変換中にうまく実行したとしても、そのコードは限定的プロセス内でロードされるため、それが引き起こすことができる被害は制限される。
【０００９】
実施形態は、コンピュータープロセス、コンピューティングシステムとして、或いは、コンピュータープログラム製品またはコンピューター可読媒体などの製品として、実装することができる。このコンピュータープログラム製品は、コンピューターシステムによって読み取ることができ、コンピュータープロセスを実行するための命令のコンピュータープログラムを符号化するコンピューター記録媒体でもよい。また、このコンピュータープログラム製品は、コンピューティングシステムにより読み取ることができ、コンピュータープロセスを実行するための命令のコンピュータープログラムを符号化する搬送波上の伝搬信号でもよい。
【００１０】
非制限的および非網羅的な実施形態について、特別の定めのない限り様々な図全体にわたって同様の参照番号が同様の部分を参照する以下の図を参照して述べる。
【図面の簡単な説明】
【００１１】
【図１】実施形態による、ファイルから悪意のあるコードを除去するまたは無効にするために使用されるシステムの図である。
【図２】実施形態による、悪意のあるコードを含み得るファイルを安全に開くために使用することができるシステムの図である。
【図３】ファイルから悪意のあるコードを除去するまたは無効な状態にするための動作フローの図である。
【図４】悪意のあるコードを含み得るファイルを安全に開くための動作フローの図である。
【図５】悪意のあるコードを含み得るファイルを安全に開くための第２の動作フローの図である。
【図６】実施形態を実装するのに適したコンピューター環境の構成図である。
【発明を実施するための形態】
【００１２】
様々な実施形態については、本明細書の一部を成し、また本発明を実行するための具体的な実施形態を示す添付の図を参照して、更に詳しく後述する。しかしながら、実施形態は、多数の異なる形態で実装することができ、本明細書に記載された実施形態に制限されるものとして解釈されるべきではない。むしろ、これらの実施形態は、本開示が当業者に徹底したまた完全なものとなるようにまた本発明の範囲を十分に伝えるものとなるように提供される。実施形態は、方法、システム、または装置として実行されることができる。従って、実施形態は、ハードウェア実装、完全なソフトウェア実装、またはソフトウェアおよびハードウェア態様を組み合わせた実装の形態を取ることができる。従って、下記の詳細な説明は、限定的な意味で理解されるべきではない。
【００１３】
様々な実施形態の論理オペレーションは、（１）コンピューティングシステム上で動作する一連のコンピューター実装ステップとして、および／または（２）コンピューティングシステム内の相互接続された機械モジュールとして実装される。この実装は、実施形態を実装するコンピューティングシステムの性能要件次第で選択することができるものである。従って、本明細書に記載された実施形態を構成する論理オペレーションは、別法として、オペレーション、ステップ、またはモジュールと称される。
【００１４】
簡単に説明したとおり、実施形態は、第１のファイル形式のファイルを第２のファイル形式に変換することによって、その第１のファイル形式のファイルから悪意のあるコードを除去するまたは無効にすることを対象とする。悪意のあるコードは、そのコードまたはそのコードを運ぶために利用される脆弱性についての事前知識なしに、除去または無効な状態にされる。その変換は、限定的コンピュータープロセスにロードされたコンバーターによって実行される。そのコンピュータープロセスは、基礎となるオペレーティングシステムおよびコンピューターシステムへのそのアクセスを制限する限定的な特権を有する。従って、ファイルに組み込まれた悪意のあるコードが変換中にうまく実行したとしても、この限定的なアクセスのため、コードが引き起こすことができる被害は制限される。本出願において、「悪意のあるコード」は、広義であり、無許可の目的のためのファイルまたはアプリケーションに含まれるソフトウェアを含むことが意図されている。悪意のあるコードの例には、ウイルス、ワーム、トロイの木馬、その他の不要なソフトウェアが含まれる。
【００１５】
図１は、実施形態による、悪意のあるコードを含み得るファイルを安全に開くために使用されるシステム１００を示す。この実施形態では、システム１００は、レジストリー１１２を備えたオペレーティングシステム１０２、アプリケーション１０４、コンバーター１０６、およびファイル１１０を含む。ファイル１１０は、データ１１０Ａおよびファイル拡張子１１０Ｂ（例えば、ファイル名の一部として）を含む。更に、この実施形態によれば、アプリケーション１０４は、ブロックポリシー１１４を含む。いくつかの実施形態では、ブロックポリシー１１４は、どのタイプのファイル（即ち、ファイル形式）がアプリケーション１０４によって開かれるのを阻止されるかを示す。更に、ブロックポリシー１１４は、どのファイルのタイプが保存されるのを阻止されるかを示すこともできる。ブロックポリシーおよびファイルを開くことおよび／または保存することを阻止する際のその使用については、本出願の所有者が所有し本出願と同日に提出された、また、その内容全体を参照することによってここに援用する「FILE BLOCKING MITIGATION（ファイルブロッキングの軽減）」という名称の特許文献１に詳述されている。
【００１６】
コンバーター１０６は、ファイルを第１のファイル形式から第２のファイル形式に変換するために使用される。ファイルを第１のファイル形式から第２のファイル形式に変換することにより、ファイル内に組み込まれている可能性がある悪意のあるコードが除去または無効にされる。コンバーター１０６は、オペレーティングシステムの機能にアクセスするなどの目的でオペレーティングシステム１０２と通信することができる。図１に示す実施形態では、コンバーター１０６は限定的プロセス１２０にロードされ、第１のファイル形式から第２のファイル形式へのファイルの変換は限定的プロセス１２０内で実行される。限定的プロセス１２０は、オペレーティングシステム１０２とオペレーティングシステム１０２が実行される基礎となるコンピューターシステムとに対して制限されたアクセス特権を有する。言い換えれば、プロセス１２０は、オペレーティングシステムの機能を要求するための制限された特権を有する。
【００１７】
ここでアプリケーション１０４を参照すると、それは、オペレーティングシステムの機能にアクセスするなどの目的のためにオペレーティングシステム１０２と通信することができる。図１に示す実施形態では、アプリケーション１０４は、コンバーター１０６のように限定的プロセス内にはなく、従って、オペレーティングシステムの機能を要求するためのより大きな特権を有する。更に、アプリケーション１０４は、ファイルを開く、編集する、保存する、および／または作成することができる。図１に示す実施形態では、アプリケーション１０４は、ファイル１１０と対話している。一例として、アプリケーション１０４は、ワードプロセッシングアプリケーションでもよい。ユーザーは、アプリケーション１０４を起動し、次にアプリケーション１０４でファイル（例えば、ファイル１１０）を開き、アプリケーション１０４がファイル１１０をメモリにロードし、ファイルへのアクセスを提供する。ユーザーは次に、ファイル１１０のデータ（例えば、データ１１０Ａ）を追加および編集することができる。アプリケーション１０４は、特定のタイプのアプリケーションに限られず、ワードプロセッシング、表計算、グラフィックプレゼンテーションなど、任意の種類のアプリケーションでよい。
【００１８】
実施形態において、アプリケーション１０４は、ファイル１１０が特定のタイプであることを示すために、ファイル拡張子１１０Ｂも設定する。例えば、この実施形態において、ファイル拡張子１１０Ｂは、そのファイルが「保存」されるまたは「名前を付けて保存」されるときにそのファイルに割り当てられるファイル１１０のファイル名の一部である。例えば、ワードプロセッシングアプリケーションは、そのファイルがバイナリファイル形式であることを示すためのファイル拡張子「．ｄｏｃ」をファイル（例えば、テキスト文書）に持たせることができる。
【００１９】
１１０Ｂなどのファイル拡張子は、ファイルがネットワークによって受信される前に潜在的な悪意のあるファイル（悪意のあるコードを持ち込むために不当に利用される可能性のある既知の脆弱性を持つファイル）を検出または阻止するために管理者によって度々使用される。例えば、電子メールサーバは、特定のファイル拡張子を有するファイルを伴うすべての電子メールを検出および阻止し、一方でその他のファイル拡張子を有するファイルを伴う電子メールが電子メールのクライアントネットワークに入ることを許すように構成することができる。しかしながら、ファイル拡張子は、単に異なる拡張子でファイル名を付け直すことによって簡単に操作することができるため、ファイル拡張子の使用は、ネットワークに持ち込まれようとしている悪意のあるコードを伴うファイルを識別するための信頼できる機構ではない。更に、ネットワークに入る前にファイルを阻止することにより、そのファイルを期待しているユーザーは、ファイルが阻止されたことおよび／またはそのファイルにセキュリティ上の問題があることを知ることができない。
【００２０】
図１に示す実施形態では、アプリケーション１０４は、タイプインスペクターモジュール１２４を含む。タイプインスペクターモジュール１２４は、ファイルデータ（例えば、１１０Ａ）を検査し、ファイルの真のファイル形式を判定する。本出願では、ファイルの実際の形式を表すために「真のファイル形式」という表現が使用される。一例では、ワードプロセッシング文書は、ファイル形式「＊．ｄｏｃ」、「＊．ｄｏｔ」、または「＊．ｗｉｚ」を有することができる。図１に示す実施形態では、ファイルの真のファイル形式は、拡張子１１０Ｂなどのファイル拡張子を調べることによっては判定されないことを理解されたい。そうではなくて、タイプインスペクターモジュール１１４は、ファイルデータの一部、例えば１１０Ａを検査し、その検査に基づいてそのファイルの真のファイル形式を判定する。
【００２１】
一実施形態では、タイプインスペクターモジュール１２４は、ファイルからデータの最初の数バイトを読み取り（ファイルを傍受し）、検査されたデータ内のヘッダ情報およびデータ構造などの特徴に基づいて、ファイルの真のファイル形式を判定することができる。本出願では、真のファイル形式は、ファイル拡張子を使用して記載される。例えば、ファイル形式は、「＊．ｄｏｃ」、「＊．ｄｏｔ」、および／または「＊．ｗｉｚ」として記載することができる。しかしながら、真のファイル形式をファイル拡張子として記載することは、ファイル拡張子の検査を含まない真のファイル形式の判定と混同されるべきではない。
【００２２】
動作時には、システム１００は先ず、アプリケーション１０４などのアプリケーションを起動する。アプリケーション１０４の起動は、例えばアプリケーション１０４を表すアイコンをダブルクリックすることによって、ユーザーがアプリケーション１０４の起動を要求することにより起こり得る。別法として、ユーザーは、例えばファイル１１０のアイコンをダブルクリックすることによって、ファイル１１０を開くことを要求することができる。この場合、オペレーティングシステム１０２は、ファイル拡張子１１０Ｂをアプリケーション１０４と関連付け、アプリケーション１０４の起動を開始する。
【００２３】
アプリケーション１０４は、起動されると、設定情報をロードする。いくつかの実施形態では、設定情報はオペレーティングシステム１０２のレジストリー１１２に格納されている。これらの実施形態では、アプリケーション１０４は、起動すると、オペレーティングシステム１０２に設定情報を要求し、オペレーティングシステム１０２はレジストリー１１２から情報を取り出すことになる。一実施形態では、ブロックポリシー１１４は、オペレーティングシステム１０２のレジストリー内に、例えばレジストリー鍵の形態で、設定情報として格納される。従って、アプリケーション１０４は起動すると、レジストリー１１２からブロックポリシー１１４を取り出すことになる。
【００２４】
いくつかの実施形態では、ブロックポリシー１１４へのアクセスは、レジストリー１１２を書き込む／修正する特権を有するユーザー、例えば管理特権を有するユーザーに制限される。従って、管理者は、アプリケーション１０４を使用して開かれるまたは保存されるのを阻止されるファイル形式を実際に制御することができる。
【００２５】
起動された後、アプリケーション１０４は、ファイルを開く、編集する、また保存するために使用することができる。第１の例として、アプリケーション１０４がファイル１１０を開こうとするとき、タイプインスペクターモジュール１２４が先ずデータ１１０Ａの一部を検査してファイル１１０の真のファイル形式を判定する。前述のとおり、一実施形態では、タイプインスペクターモジュール１２４は、データ１１０Ａの最初の数バイトを検査することによって、その真のファイル形式を判定する。タイプインスペクターモジュール１２４は、データ１１０Ａ内のヘッダ情報またはデータ構造を利用してファイル１１０の真のファイル形式に関する判定を行うことができる。ファイル１１０の真のファイル形式が判定されると、アプリケーション１０４は、真のファイル形式をブロックポリシー１１４と比較する。ファイル１１０の真のファイル形式が、ブロックポリシー１１４によって、開かれることを阻止されるものとして識別されなかった場合、アプリケーション１０４は、そのファイルをメモリにロードし、ファイル１１０内のデータを追加、編集および保存するためのファイルへのアクセスをユーザーに与えることによってファイル１１０を開く。
【００２６】
ファイル１１０の真のファイル形式が、ブロックポリシー１１４によって、開かれることが阻止されるものとして識別された場合、アプリケーション１０４はファイル１１０が開かれることを阻止する。一実施形態では、アプリケーション１０４は、そのファイルが開かれることを阻止されるファイル形式であることを示すメッセージをユーザーに対して表示する。
【００２７】
別の実施形態では、ファイル１１０が開かれることを阻止されると判定されたことに応答して、ファイル１１０をその真のファイルタイプから開かれることを阻止されない第２のファイルタイプに変換するために、コンバーター１０６を起動することができる。この実施形態では、コンバーター１０６は、限定的プロセス１２０にロードされ、アプリケーション１０４によって開かれることを阻止されない第２のファイルにファイル１１０を変換するために使用される。
【００２８】
システム１００のいくつかの実施形態では、管理者は、特定のファイル形式のファイルに対するデフォルトのハンドラーとしてコンバーター１０６を設定することができる。特定のファイル形式が脆弱であると識別されたゼロデイエクスプロイトが発生した場合、管理者は、コンバーター１０６を脆弱な形式のファイルに対するデフォルトのハンドラーとして設定することによって、コンピューターシステムまたはネットワークへの起こり得る被害を軽減することができる。これにより、ユーザーが脆弱なファイル形式で格納されたファイルを開こうとするといつでもコンバーター１０６が起動されてそのファイルを別の形式に変換するため、ゼロデイエクスプロイトの被害の可能性を低減する。前述のとおり、この変換は、悪意のあるコードが変換済みファイルに移される／格納されることをなくす。更に、コンバーター１０６は、限定的プロセス１２０にロードされるため、実行した悪意のあるコードがコンピューターシステムまたはネットワークに及ぼす影響も制限される。
【００２９】
いくつかの実施形態では、管理者は、脆弱な形式のファイルを阻止するようにアプリケーション１０４のブロックポリシーを設定することにより、ゼロデイエクスプロイトへの追加予防措置を講じることができる。従って、コンバーター１０６をデフォルトのハンドラーとして設定することと組み合わせて、コンピューターシステムまたはネットワークは、脆弱な形式のファイルに含まれる悪意のあるコードによって起こされ得る被害に対する堅固な防衛を有する。
【００３０】
図２は、システム２００を示し、コンバーター１０６をより詳細に示す。システム２００は、第１のファイル形式（ファイル形式１）のファイル２０２Ａ、コンバーター１０６、第２のファイル形式（ファイル形式２）の変換済みファイル２０２Ｂ、ならびに、レジストリー１１２を有するオペレーティングシステム１０２を含む。図２に示す実施形態では、コンバーター１０６は、限定的プロセス１２０にロードされ、ファイル形式１からファイル形式２への変換が限定的プロセス１２０内で実行される。限定的プロセス１２０は、オペレーティングシステム１０２とオペレーティングシステム１０２が実行される基礎となるコンピューターシステムとに対する制限されたアクセス特権を有する。これにより、悪意のあるコード２０４などの悪意のあるコードが実行された場合でも、それがオペレーティングシステム１０２および基礎となるコンピューターシステムに与える被害は確実に制限されるようにする。図２は、第１のファイル形式のファイル２０２Ａを第２のファイル形式の変換済みファイル２０２Ｂに変換し、そのプロセスで変換済みファイルのデータから悪意のあるコード２０４を除去するまたは無効にするコンバーター１０６の実施形態の詳細を示す。
【００３１】
動作中、システム２００は先ず、コンバーター１０６を起動する。コンバーター１０６の起動は、例えばコンバーター１０６を表すアイコンをダブルクリックすることによって、ユーザーがコンバーター１０６の起動を要求するよって起こり得る。別法として、ユーザーは、例えばファイル２０２Ａのアイコンをダブルクリックすることによって、ファイル２０２Ａが開かれることを要求することができる。この場合、オペレーティングシステム１０２は、ファイル２０２Ａ（またはそのファイル拡張子）をコンバーター１０６と関連付け、コンバーター１０６の起動を開始することができる。
【００３２】
コンバーター１０６は、起動されると、限定的プロセス１２０にロードされる。起動されたコンバーター１０６は、レジストリー１１２から設定情報をロードすることができる。設定情報は、プロセス１２０がそれにより限定される特定の機構を示す情報を含むことができる。プロセス１２０は、オペレーティングシステム１０２とオペレーティングシステム１０２が実行する基礎となるコンピューターシステムとに対する制限されたアクセス特権を有する。当業者には理解されるように、プロセス１２０に課される特定の制限ならびにプロセス１２０がそれにより限定される機構は、具体的なオペレーティングシステム１０２によって、またファイル２０２Ａに帰されたリスクのレベルなどの他の設計考慮事項によって異なる。
【００３３】
いくつかの実施形態で、プロセス１２０は、特定の動作を実行するためのおよび／またはオペレーティングシステム１０２の特定の機能をコールするための許可を拒否される。例えば、レジストリー１１２は様々なアプリケーションで感知可能な設定情報を格納するため、プロセス１２０は、オペレーティングシステム１０２のレジストリー１１２の情報の読取りまたは書込みのための許可を拒否される。しかしながら、プロセス１２０は、他の記憶位置でデータを読み取るまたは書き込むことを許容される。他の実施形態では、プロセス１２０は、ファイル形式１からファイル形式２へのファイルの変換に必要な機能だけを実行するように限定される。例えば、プロセス１２０は、変換途中のファイル（例えば、ファイル２０２Ａ）からデータを読み取ることだけを許容され、ファイル形式２の変換済みの情報を有する変換済みファイル（例えばファイル２０２Ｂ）にデータを書き込むことだけを許容される。
【００３４】
前述のとおり、プロセス１２０がそれにより限定される機構は、特定のオペレーティングシステム１０２によって決まる。一実施形態では、オペレーティングシステム１０２は、１つのプロセスのアクセス特権を制限するためにいくつかの方法を提供する「WINDOWS（登録商標）」オペレーティングシステムの１つのバージョンである。例えば、「WINDOWS（登録商標）」オペレーティングシステムの複数のバージョンにおいては、各プロセスは、プロセスのシステム規模の特権の一覧を含む、そのプロセスのセキュリティコンテキストを記述した、関連付けられたアクセストークンを有する。限定的なセキュリティコンテキストを一般に記述するアクセストークンは、限定的トークンと呼ばれる。限定的トークンは、システム規模の特権の制限されたセットを記述する。一実施形態では、プロセス１２０は、システム規模の特権の制限されたセットを記述する限定的トークンに関連付けられることによって限定される。
【００３５】
「WINDOWS（登録商標）」オペレーティングシステムの１つのバージョンを使用するシステム２００の他の実施形態では、プロセス１２０は、ジョブオブジェクトと関連付けられることによって限定されることがある。１つのジョブオブジェクトは、プロセスの１群を１つの単位として管理できるようにする。ジョブオブジェクトは、それらに関連付けられたプロセスの属性を制御する。ジョブオブジェクトは、ワーキングセットのサイズ、プロセスのプライオリティおよびエンドオブジョブ時間制限などの関連付けられたプロセスへの制限を実施するために使用することができる。一実施形態では、プロセス１２０は、プロセス１２０の事前定義の制限を実施するジョブオブジェクトと関連付けられることによって限定される。
【００３６】
他の実施形態では、プロセス１２０は、デスクトップコンテナまたはウィンドウステーションを使用して限定されることがある。「WINDOWS（登録商標）」オペレーティングシステムの複数のバージョンは、数人のユーザーが１つのウィンドウステーションにログオンできるようにするために、デスクトップコンテナを提供する。デスクトップコンテナは、ウィンドウステーション内に含まれる保護されたコンテナオブジェクトである。デスクトップコンテナは、「WINDOWS（登録商標）」オペレーティングシステムの複数のバージョンによって実装されるように、ユーザーインタフェース要素の論理的集まりであり、この集まりが、ウィンドウステーションによって収容される。「WINDOWS（登録商標）」オペレーティングシステムのバージョン内で動作するプロセス間の通信のある特定の態様は、それらのプロセスが同一デスクトップに割り当てられているかどうかに基づいて統制され、ある場合において、通信は、それらのプロセスが同一のウィンドウステーションを共用しているかどうかによって統制される。プロセス間の通信は、セキュリティインプリケーションを有し、このために、いくつかの実施形態では、限定的プロセス１２０は別のウィンドウステーション（すべてのデスクトップはコンテナとしてウィンドウステーションを１つだけ有するので、別のデスクトップを暗に示す）で動作する。
【００３７】
「WINDOWS（登録商標）」オペレーティングシステムを使用して実装されるシステム２００の実施形態では、プロセス１２０は、限定的トークン、ジョブオブジェクト、およびウィンドウステーション／デスクトップコンテナの組合せを使用して限定される。これらの機構のうちの２つ以上を使用することによって、ファイル２０２Ａをファイル形式１からファイル形式２の変換済みファイル２０２Ｂに変換する間に、プロセス１２０で実行する悪意のあるコードによって引き起こされ得る被害を制限する堅固なセキュリティを提供する。１つの特定の実施形態では、プロセス１２０は、限定的トークン、ジョブオブジェクト、およびデスクトップコンテナの３つのすべてを使用して限定される。
【００３８】
コンバーター１０６は、限定的プロセス１２０にロードされた後、ファイル２０２Ａをファイル形式１からファイル形式２の変換済みファイル２０２Ｂに変換する。前述のとおり、コンバーターはファイル２０２Ａ内に存在し得る悪意のあるコード２０４の知識を有さず、その脆弱性の知識も有さない。実施形態では、コンバーター１０６は、パーサーおよびエンジンを使用してファイル２０２Ａを変換する。パーサーは、ファイルを構文解析して、異なるファイル形式、即ちファイル形式２でエンジンによって表されるデータを抽出する。新たに表されたデータは、変換済みファイル２０２Ｂに格納される。一実施形態では、ファイル２０２Ａを構文解析するプロセス中、パーサーは、ファイル２０２Ａのヘッダ情報およびデータ構造などのファイル２０２Ａ内の特徴を識別し、それを使用して、どのデータを変換済みファイル２０２Ｂに移すかを決定する。悪意のあるコード２０４は、変換済みファイル２０２Ｂに格納するデータを決定するためにコンバーター１０６によって使用される特徴を含まず、従って、変換済みファイル２０２Ｂには含まれない。コンバーター１０６のパーサーは、悪意のあるコード１０４を構文解析するときに、ファイル２０２Ｂにそのデータを移すために必要な特徴を認識しない。従って、悪意のあるコード２０４は、変換済みファイル２０２Ｂに移されるファイルデータから削除されることになる。その後、変換済みファイル２０２Ｂは安全に開かれ、限定的プロセス１２０の外部からアクセスすることができる。
【００３９】
他の実施形態では、悪意のあるコード２０４は、変換済みファイル２０２Ｂへと渡されることがある。アプリケーションは通常、ファイルを開く前にファイルをスキャンするためにパーサーを使用する。しばしば、悪意のあるコード２０４などの悪意のあるコードは、特定のファイル形式のファイルを開くように設計されたパーサーを狙う。即ち、悪意のあるコード２０４が、ファイル形式１のファイルを開くために使用されるパーサーを狙うことがある。従って、悪意のあるコード２０４が、変換済みファイル２０２Ｂに含まれていても、変換済みファイル２０２Ｂはファイル形式２のファイルを開くように設計されたパーサーによって開かれることになるので、大きなセキュリティ脅威をもたらすことにはならない。従って、実施形態では、ファイル形式１のファイル２０２Ａをファイル形式２の変換済みファイル２０２Ｂにただ変換することにより、たとえ変換済みファイル２０２Ｂに悪意のあるコード２０４が含まれていても、その悪意のあるコードの脅威をなくす。
【００４０】
状況によっては、悪意のあるコード２０４は、コンバーター１０６がファイル２０２Ａを変換しようとしているときにコンバーター１０６を攻撃することがある。詳述したように、コンバーター１０６は、限定的特権を有する限定的プロセス１２０内で動作する。従って、ファイル２０２Ａの変換中に悪意のあるコード２０４がうまく実行したとしても、それが引き起こすことができる被害は制限されることになる。
【００４１】
実施形態では、コンバーター１０６によって実行される変換は、具体的にファイルから悪意のあるコードを除去するように設計されるソフトウェアアプリケーションに対する優位性を提供する。通常は、悪意のあるコードを除去するように設計されるアプリケーションは、悪意のあるコードまたは悪意のあるペイロードの格納に脆弱である場合がある検査すべき構造を識別するために探すべき特徴などの何らかの知識を有することを必要とする。一方、コンバーター１０６は、悪意のあるコード２０４の知識を有さず、むしろ、悪意のあるコード２０４が、そのデータをファイル形式１からファイル形式２に変換するのに必要な特徴を含まないという事実だけにより、変換済みファイル２０２Ｂに移されるデータから悪意のあるコード２０４が除去される。更に、悪意のあるコード２０４が変換済みファイル２０２Ｂに移された場合でも、変換済みファイル２０２Ｂの新しいファイル形式（例えば、ファイル形式２）のため、それは深刻なセキュリティ脅威をもたらさない。
【００４２】
いくつかの実施形態では、コンバーター１０６は、ファイル形式１をファイル形式２に変換することもまたファイル形式２をファイル形式１に変換し戻すこともできることを意味する両方向のコンバーターである。一実施形態では、コンバーター１０６は、変換済みファイル２０２Ｂを生成し、悪意のあるコード２０４を変換済みファイル２０２Ｂに移されることから取り除いた後、ファイル２０２Ｂをファイル形式１に変換し戻す。一例では、ファイル２０２Ａは、セキュリティの脆弱性を有するものとして識別されたバイナリファイル形式（ファイル形式１）であることもある。結果として、ファイル２０２Ａは、コンバーター１０６によって、悪意のあるコード２０４を除去または無効にしたＸＭＬファイル形式（ファイル形式２）の変換済みファイル２０２Ｂに変換される。しかしながら、ユーザーは、ＸＭＬ形式のファイルを開くことができるアプリケーションを有さないことがある。そのため、次にファイル２０２Ｂは、ユーザーがそのファイルデータを開いてアクセスできるようにするために、バイナリファイル形式（ファイル形式１）に変換し戻される。
【００４３】
図３〜５は、実施形態による動作フロー３００、４００、および５００を示す。動作フロー３００、４００、および５００は、任意の適切なコンピューティング環境で実行されることができる。例えば、動作フローは、悪意のあるコードをファイルから除去し、ファイルを安全に開くために、システム１００および２００（図１および図２）などのシステムによって実行されることができる。従って、動作フロー３００、４００、および５００の説明は、図１および図２のコンポーネントのうちの少なくとも１つを参照することができる。しかしながら、図１および図２のコンポーネントの参照は、説明のみを目的としたものであり、図１および図２の実装は、動作フロー３００、４００、および５００のための非制限的な環境であることは理解されよう。
【００４４】
更に、動作フロー３００、４００、および５００は、順次に特定の順番で示され、記載されているが、他の実施形態では、これらのオペレーションは、異なる順番で、複数回、および／または並行して実行することができる。更に、いくつかの実施形態では、１つまたは複数のオペレーションが省略または組み合わされることもある。
【００４５】
図３は、一実施形態による、ファイルから悪意のあるコードを除去するための動作フロー３００を示す。オペレーション３０２では、ファイルを第１の形式から第２の形式に変換することができるコンバーターが限定的プロセスにロードされる。実施形態では、コンバーターは限定的プロセス１２０（図１および図２）にロードされるコンバーター１０６（図１および図２）である。限定的プロセス１２０は、例えばオペレーティングシステム１０２などのオペレーティングシステムにアクセスするための制限された特権を有する。このプロセスに設定された限定が、コンバーターによるファイルの変換中に実行された悪意のあるコードによって生み出される被害の可能性を制限する。
【００４６】
オペレーション３０２は、例えばコンバーターを表すアイコンをダブルクリックすることによって、コンバーターの起動をユーザーが要求した結果として開始されることができる。別法として、ユーザーは、例えばファイルのアイコンをダブルクリックすることによって特定のファイルが開かれることを要求することができ、それに応答して、オペレーション３０２でコンバーターを限定的プロセスにロードすることによってコンバーターの起動が開始する。
【００４７】
コンバーターが限定的プロセスにロードされた後、動作フローはオペレーション３０４に移り、ファイルを第１の形式から第２の形式に変換することによって悪意のあるコードが除去される。オペレーション３０４は、限定的プロセス内で実行される。一実施形態では、変換は、限定的プロセス１２０内でコンバーター１０６によって実行される。前述のとおり、コンバーター１０６は第１のファイル形式のファイルを構文解析し、そのファイルからデータを抽出するために使用されるファイル内の特徴を識別する。抽出されたデータは次に、第２のファイル形式の変換済みファイルに格納される。変換済みファイルは、第１のファイルに組み込まれている可能性がある悪意のあるコードを含まない。変換済みファイルは次に、ファイルを変換する際に使用された限定的プロセスよりも限定の少ないプロセスで安全に開くことができる。
【００４８】
図４は、一実施形態による、ファイル内のデータにアクセスために安全にファイルを開くための動作フロー４００を示す。オペレーション４０２で、ファイルを開くことを求める要求が受信される。一実施形態では、その要求はコンバーター１０６（図１および図２）などのコンバーターによって受信される。例えば、ユーザーは、コンバーターを起動し、次にコンバーターを介してファイルを選択することによってファイルを開こうとすることができる。別の実施形態では、要求はアプリケーション１０４（図１）などのアプリケーションによって受信される。ユーザーは、アプリケーションを起動し、次にファイルを選択することによって、ファイルを開こうとすることができる。いくつかの実施形態では、ファイルのアイコンをダブルクリックすることなどによって、ユーザーがファイルを選択するときに、要求が受信される。
【００４９】
動作フローは次にオペレーション４０４へと移り、ファイルを第１の形式から第２の形式に変換することができるコンバーターが限定的プロセスにロードされる。実施形態では、コンバーターは、限定的プロセス１２０（図１および図２）にロードされる、コンバーター１０６（図１および図２）である。限定的プロセスは、オペレーティングシステムに機能を要求するための、また基礎となるコンピューターシステム内のリソースにアクセスするための制限された特権を有する。これにより、プロセス１２０内で実行する悪意のあるコードによってもたらされ得る被害を軽減する。
【００５０】
オペレーション４０６で、コンバーターはファイルを第１のファイル形式から変換して第２のファイル形式の第２のファイルを生成する。実施形態では、ファイルを変換するプロセスで、ファイル内に組み込まれている可能性がある悪意のあるコードを第２のファイルに格納されないように削除する。悪意のあるコードの削除は、悪意のあるコードの知識または悪意のあるコードによって利用される脆弱性の知識なしに行われる。他の実施形態では、ファイルを第１のファイル形式から第２のファイル形式に単に変換することによって、ファイル内の悪意のあるコードを無効にすることができる。実施形態では、コンバーターは、ファイルを構文分析してそのファイルからデータを抽出し、第２のファイルに格納するコンバーター１０６（図１および図２）である。
【００５１】
オペレーション４０６の後、フローはオペレーション４０８に移り、ファイルが開かれる。実施形態では、オペレーション４０８は、第２のファイル形式の変換済みファイルを開き、そこへのアクセスを提供することができるアプリケーションの起動を含む。他の実施形態では、オペレーション４０８は、変換済みファイルを再度変換するなどのいくつかの追加オペレーションを含むことがある。例えば、オペレーション４０６で使用されるコンバーターは、ファイルを第１のファイル形式から第２のファイル形式に変換することができ、また第２のファイル形式のファイルを第１のファイル形式に変換することもできる両方向のコンバーターでもよい。一実施形態では、オペレーション４０８は、コンバーターを使用して、第２のファイル形式のファイルを元の第１のファイル形式に変換し戻すことを含む。このオペレーションに、第１のファイル形式でファイルを開くことができるアプリケーションの起動を続けることができる。
【００５２】
他の実施形態では、ファイルを第２のファイル形式から第３のファイル形式に変換するために別のコンバーターが使用されることがある。この実施形態では、オペレーション４０８は、第２のファイル形式のファイルを第３のファイル形式に変換する第２のコンバーターの起動を含む。このオペレーションに、第３のファイル形式のファイルを開き、そこへのアクセスを提供することができるアプリケーションの起動を続けることができる。
【００５３】
図５は、一実施形態による、ファイルを安全に開くための動作フロー５００を示す。オペレーション５０２で、ファイルを開くことを求める要求が受信される。一実施形態では、その要求はアプリケーション１０４（図１）などのアプリケーションによって受信される。例えば、ユーザーは、アプリケーションを起動し次に、ファイルを選択することができる。いくつかの実施形態では、ユーザーはファイルを選択し、それがファイルを開くための適切なアプリケーションを自動的に起動する（またはファイルを開くためのアプリケーションを選択するようにユーザーに促す）ことができる。
【００５４】
オペレーション５０４では、ファイルからのファイルデータが検査されて、真のファイル形式を判定する。一実施形態では、タイプインスペクターモジュール１２４（図１）などのタイプインスペクターモジュールを有するアプリケーションが、ファイルがメモリにロードされる前にファイルデータを検査するために使用される。タイプインスペクターモジュールによって検査されるファイルデータは、ファイル内のデータのほんの一部分だけである。ヘッダ情報およびデータ構造などのデータ内の特徴を識別することによって、タイプインスペクターモジュールは、ファイル内のデータのすべてまたは大部分を検査する必要なしに、真のファイル形式について判定を行うことができる。
【００５５】
オペレーション５０６では、そのファイルの真のファイルタイプが開かれることを阻止されるものかどうかについて判定が行われる。実施形態では、この判定は、どのファイル形式が開くのを阻止されているかを示す、ブロックポリシー１１４Ａ（図１）などのブロックポリシーにアクセスすることによって行われる。オペレーション５０６で、その真のファイル形式は阻止されないと判定された場合、次にフローはオペレーション５０８へ移り、そこでファイルをメモリにロードし、ファイルへのアクセスを提供することによって、ファイルが開かれる。例えば、一実施形態では、アプリケーション１０４などのアプリケーションは、ユーザーがファイル内のデータを編集、追加、および保存することができるようにするために、ファイルをメモリにロードし、アプリケーションを介してユーザーにアクセスを提供することによって、オペレーション５０８を実行する。
【００５６】
オペレーション５０６で、ファイルの真のファイル形式が開くことを阻止されると判定された場合、フローはオペレーション５１０に移る。オペレーション５１０で、ファイルを第１の形式から第２の形式に変換することができるコンバーターが、限定的プロセスにロードされる。実施形態で、コンバーターは、限定的プロセス１２０（図１および図２）にロードされるコンバーター１０６（図１および図２）である。限定的プロセスは、オペレーティングシステムに機能を要求するための、また基礎となるコンピューターシステム内のリソースにアクセスするための制限された特権を有する。制限された特権は、プロセス１２０内で実行する悪意のあるコードによってもたらされ得る被害を軽減する。
【００５７】
オペレーション５１２で、限定的プロセスにロードされたコンバーターは、ファイルを第１のファイル形式から変換して第２のファイル形式の第２のファイルを生成する。いくつかの実施形態では、ファイルを変換するプロセスは、第１のファイル内に組み込まれている可能性がある悪意のあるコードが第２のファイルに含まれないように削除する。悪意のあるコードの削除は、悪意のあるコードの知識または悪意のあるコードによって利用される脆弱性の知識なしに行われる。他の実施形態では、ファイルを第１のファイル形式から第２のファイル形式に単に変換することによって、第１のファイル形式のファイルを開くために使用されるパーサーを狙う悪意のあるコードのリスクが解消される。実施形態では、コンバーターは、第１のファイル形式のファイルを構文解析し、ファイルからデータを抽出するために使用されるファイル内の特徴を識別する、コンバーター１０６（図１および図２）である。抽出されたデータは次に、第２のファイル形式の第２のファイルに格納される。第２のファイルは、第１のファイルに組み込まれている可能性がある悪意のあるコードを含まない。
【００５８】
オペレーション５１２の後、フローはオペレーション５０８に移り、変換済みファイルが開かれる。実施形態では、オペレーション５０８は、第２のファイル形式の変換済みファイルを開き、そこへのアクセスを提供することができるアプリケーションの起動を含む。他の実施形態では、オペレーション５０８は、変換済みファイルを再度変換するなどのいくつかの追加オペレーションを含むことがある。
【００５９】
図６は、本明細書に記載された実施形態を実施するために使用することができる一般的なコンピューター環境６００を図示する。コンピューター環境６００は、コンピューター環境の一例にすぎず、コンピューターおよびネットワークのアーキテクチャの使用または機能の範囲に関する制限を示唆するものではない。また、コンピューター環境６００は、コンピューター環境６００の例に図示されたコンポーネントのうちの１つまたはその組合せに関する依存または要件を有するものとして解釈されるべきでない。
【００６０】
最も基本的な構成では、システム６００は通常は少なくとも１つの処理装置６０２およびメモリ６０４を含む。コンピューターデバイスの厳密な構成およびタイプによって、メモリ６０４は、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリなど）または、これら２つの何らかの組合せでもよい。この最も基本的な構成は、図６に点線６０６で図示されている。図６に示すとおり、ブロックポリシー１１４およびタイプインスペクターモジュール１２４を含むアプリケーション１０４（図１）などのアプリケーションは、システムメモリ６０４にロードされてシステム６００のユーザーによって使用されることができる。図６はまた、ファイルに組み込まれている可能性がある悪意のあるコードを除去するために、ファイルを第１の形式から第２の形式の変換済みファイルに変換するためにコンバーター１０６がそこにロードされる限定的プロセス１２０を示す。
【００６１】
更に、システム６００は、追加機構／機能も有することができる。例えば、システム６００は、磁気または光学式のディスクまたはテープを含むがこれらに限定されない追加記憶装置（取外し可能なおよび／または固定の）も含むことができる。かかる追加記憶装置は、取外し可能記憶装置６０８および固定記憶装置６１０により図６に示されている。コンピューター記録媒体は、コンピューター可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報の格納のための任意の方法または技術で実装される、揮発性および不揮発性の、取外し可能なおよび固定の媒体を含む。メモリ６０４、取外し可能な記憶装置６０８、および固定記憶装置６１０は、すべてコンピューター記録媒体の例である。コンピューター記録媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）またはその他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶装置、或いは、所望の情報を格納するために使用することができ、およびシステム６００によってアクセスすることができるその他の媒体を含むが、これらに限定されない。かかるコンピューター記録媒体は、システム６００の一部であってもよい。
【００６２】
システム６００は、システムが他の装置と通信できるようにする通信接続６１２も含むことができる。通信接続６１２は、通信媒体の一例である。通信媒体は通常は、コンピューター可読の命令、データ構造、プログラムモジュール、または、搬送波などの変調されたデータ信号または他の移送機構内にあるその他のデータを実施し、任意の情報配信媒体を含む。「変調されたデータ信号」とは、その特性のうちの１つまたは複数が、信号内で情報を符号化するように設定または変更された信号を表す。限定ではなく、例として、通信媒体は、有線ネットワークまたは直接配線式の接続などの有線媒体と、音響、ＲＦ、赤外線およびその他の無線媒体などの無線媒体を含む。本明細書において、コンピューター可読媒体は、記録媒体と通信媒体の両方を含む。
【００６３】
システム６００は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置６１４も有することができる。表示装置、スピーカー、プリンターなどの出力装置６１６もまた含まれ得る。これらすべての装置は、当業者には周知であり、本明細書において詳述される必要はない。
【００６４】
本明細書全体において、「実施形態」、「一実施形態」、「別の実施形態」および「いくつかの実施形態」は、特定の記載された特徴、構造、または特性が本発明の少なくとも１つの実施形態に含まれることを意味する。従って、かかる言葉の使用は単に１つの実施形態より多くの実施形態を参照することがある。更に、本明細書に記載された特徴、構造、または特性は、１つまたは複数の実施形態において任意の適切な形式で結合され得る。
【００６５】
しかしながら、本発明は、１つまたは複数の特定の詳細なしで、或いは他の方法、リソース、材料などにより、実施され得ることが、当業者には理解されよう。他の例では、本発明の態様を分かり難くすることを単に避けるために、周知の構造、リソース、またはオペレーションは詳細には示されていないか又は記載されていない。
【００６６】
本発明の実施形態およびアプリケーションの例が示され、記載されているが、一方で前述の正確な構成およびリソースに本発明は限定されないことを理解されたい。当業者には明らかな様々な修正、変更、および変形形態が、本発明の特許請求の範囲を逸脱することなく本明細書において開示された本発明の方法およびシステムの構成、オペレーションおよび詳細で行われ得る。
【図１】
0004629796.tif 000002
【図２】
0004629796.tif 000003
【図３】
0004629796.tif 000004
【図４】
0004629796.tif 000005
【図５】
0004629796.tif 000006
【図６】
0004629796.tif 000007