(57)【要約】本発明と一致するシステムおよび方法は、プロセッサ（３０４）、ＲＡＭ（３０６）、ＲＯＭ（３０８）およびローカルネットワーク（３２２）に接続された記憶装置（３１０）と、リソースコントローラおよびバス（３０２）とを有するコンピュータシステムのリソースリクエストを認証する。そのようなシステムおよび方法は、リソースコントローラに対して作成されたリソースリクエストに関してバス（３０２）を監視し、インターセプトされたリソースリクエストが本物であるか判定し、リソースリクエストが本物である場合、インターセプトされたリソースリクエストがリソースコントローラにより完了されるのを許可し、さもなければ、リクエストのタイムアウトを許可する。
2005508059.tif 000002
【特許請求の範囲】
【請求項１】
リソースコントローラとバスとを備えるデータ処理システムで作成されたリクエストを認証するための方法であって、
前記リソースコントローラに対して作成されたリクエストに関して前記バスを監視することと、
前記リソースコントローラに対して作成された少なくとも１つのリクエストをインターセプトすることと、
前記インターセプトされたリクエストを認証することと、
前記リクエストが認証された場合、前記インターセプトされたリクエストを前記リソースコントローラによって実行させ、さもなければ、前記リクエストをタイムアウトさせることと
を含むことを特徴とするリクエスト認証方法。
【請求項２】
前記インターセプトする際、前記リソースコントローラに、前記インターセプトされたリクエストの処理を終了するリクエストをブロードキャストすることを特徴とする請求項１記載のリクエスト認証方法。
【請求項３】
前記インターセプトする際、少なくとも１つのリクエストを送信したシステム実体に応答を送信することを特徴とする請求項１記載のリクエスト認証方法。
【請求項４】
前記応答は、リクエストの受け取りに応じて、前記リソースコントローラによって送信されたであろう応答を模倣することを特徴とする請求項３記載のリクエスト認証方法。
【請求項５】
前記決定する際、コンピュータユーザがリクエストにおいて識別されたリソースをリクエストするための許可を有しているかを許可リストに対して確認することを特徴とする請求項１記載のリクエスト認証方法。
【請求項６】
前記決定する際、コンピュータユーザがリクエストにおいて識別されたリソースをリクエストするための許可を有しているかを許可リストに対して確認することを特徴とする請求項１記載のリクエスト認証方法。
【請求項７】
リソースをリクエストしているシステム実体は、ソフトウェアアプリケーションであり、前記決定する際、リクエストしているアプリケーションのデジタル捺印を確認することを特徴とする請求項１記載のリクエスト認証方法。
【請求項８】
前記インターセプトされたリクエストを実行させる際、前記インターセプトされたリクエストを前記リソースコントローラに再送信することを特徴とする請求項１記載のリクエスト認証方法。
【請求項９】
リソースコントローラとバスとを備えるデータ処理システムで作成されたリソースリクエストを認証する方法を実行するための命令を備えるコンピュータ可読媒体であって、前記方法が、
前記リソースコントローラに対して作成されたリクエストに関して前記バスを監視することと、
前記リソースコントローラに対して作成された少なくとも１つのリクエストをインターセプトすることと、
前記インターセプトされたリクエストを認証することと、
前記リクエストが認証された場合、前記インターセプトされたリクエストを前記リソースコントローラによって実行させ、さもなければ、前記リクエストをタイムアウトさせることと
を含むことを特徴とするコンピュータ可読媒体。
【請求項１０】
前記インターセプトする際、前記リソースコントローラに、前記インターセプトされたリクエストの処理を終了するリクエストをブロードキャストすることを特徴とする請求項９記載のコンピュータ可読媒体。
【請求項１１】
前記インターセプトする際、少なくとも１つのリクエストを送信したシステム実体に応答を送信することを特徴とする請求項９記載のコンピュータ可読媒体。
【請求項１２】
前記応答は、リクエストの受け取りに応じて、前記リソースコントローラによって送信されたであろう応答を模倣することを特徴とする請求項１１記載のコンピュータ可読媒体。
【請求項１３】
前記決定する際、コンピュータユーザがリクエストにおいて識別されたリソースをリクエストするための許可を有しているかを許可リストに対して確認することを特徴とする請求項９記載のコンピュータ可読媒体。
【請求項１４】
リソースをリクエストしているシステム実体は、ソフトウェアアプリケーションであり、前記決定する際、リクエストしているアプリケーションのデジタル捺印を確認することを特徴とする請求項９記載のコンピュータ可読媒体。
【請求項１５】
前記インターセプトされたリクエストを実行させる際、前記インターセプトされたリクエストを前記リソースコントローラに再送信することを特徴とする請求項９記載のコンピュータ可読媒体。
【請求項１６】
前記データ処理システムが前記方法の処理をキャッシングするのを防止することをさらに含むことを特徴とする請求項９記載のコンピュータ可読媒体。
【請求項１７】
前記方法は、Ｗｉｎｄｏｗｓ（登録商標）ベースのコンピュータで実施され、前記防止することは、シェル拡張として登録することを備えることを特徴とする請求項１６記載のコンピュータ可読媒体。
【請求項１８】
前記データ処理システムの全ての処理を終了することなく、前記方法が早期に終了されるのを防止することをさらに含むことを特徴とする請求項９記載のコンピュータ可読媒体。
【請求項１９】
前記防止することは、前記方法を終了する試みに応じて、オペレーティングシステムに再起動リクエストを送信することを含むことを特徴とする請求項１８記載のコンピュータ可読媒体。
【請求項２０】
リソースコントローラとバスとを備えるデータ処理システムで作成されたリソースリクエストを認証するためのシステムであって、
前記リソースコントローラに対して作成されたリクエストに関して前記バスを監視するルーチンと、
前記リソースコントローラに対して作成された少なくとも１つのリクエストをインターセプトする手段と、
前記インターセプトされたリクエストを認証する手段と、
前記リクエストが認証された場合、前記インターセプトされたリクエストを前記リソースコントローラによって実行させ、さもなければ、前記リクエストをタイムアウトさせる手段と
を具備することを特徴とする認証システム。
【請求項２１】
前記インターセプトする手段は、前記リソースコントローラに、前記インターセプトされたリクエストの処理を終了するリクエストをブロードキャストする手段を具備することを特徴とする請求項２０記載の認証システム。
【請求項２２】
前記インターセプトする手段は、少なくとも１つのリクエストを送信したシステム実体に応答を送信する手段を具備することを特徴とする請求項２０記載の認証システム。
【請求項２３】
前記応答は、リクエストの受け取りに応じて、前記リソースコントローラによって送信されたであろう応答を模倣することを特徴とする請求項２２記載の認証システム。
【請求項２４】
前記決定する手段は、コンピュータユーザがリクエストにおいて識別されたリソースをリクエストするための許可を有しているかを許可リストに対して確認する手段を具備することを特徴とする請求項２０記載の認証システム。
【請求項２５】
前記決定する手段は、コンピュータユーザがリクエストにおいて識別されたリソースをリクエストするための許可を有しているかを許可リストに対して確認する手段を具備することを特徴とする請求項２０記載の認証システム。
【請求項２６】
リソースをリクエストしているシステム実体は、ソフトウェアアプリケーションであり、前記決定する手段は、リクエストしているアプリケーションのデジタル捺印を確認する手段を具備することを特徴とする請求項２０記載の認証システム。
【請求項２７】
前記インターセプトされたリクエストを実行させる手段は、前記インターセプトされたリクエストを前記リソースコントローラに再送信する手段を具備することを特徴とする請求項２０記載の認証システム。
【請求項２８】
前記データ処理システムが前記方法の処理をキャッシングするのを防止する手段をさらに具備することを特徴とする請求項２０記載の認証システム。
【請求項２９】
前記方法は、Ｗｉｎｄｏｗｓ（登録商標）ベースのコンピュータで実施され、前記防止する手段は、シェル拡張として登録する手段を具備することを特徴とする請求項２８記載の認証システム。
【請求項３０】
前記データ処理システムの全ての処理を終了することなく、前記方法が早期に終了されるのを防止する手段をさらに具備することを特徴とする請求項２０記載の認証システム。
【請求項３１】
前記防止する手段は、前記方法を終了する試みに応じて、オペレーティングシステムに再起動リクエストを送信する手段を具備することを特徴とする請求項２０記載の認証システム。
【請求項３２】
システムバスを備えるデータ処理システムにおいてメッセージをインターセプトする方法であって、
前記システムバスを介して、第１のシステム実体によりブロードキャストされ、第２のシステム実体宛てに送信されるメッセージを受信することと、
前記第２のシステム実体以外のシステム実体によって前記第１のシステム実体に応答を送信することと、
前記第１のシステム実体以外のシステム実体によって、前記第２のシステム実体がメッセージを無視するようにするリクエストを送信することと
を含むことを特徴とするインターセプト方法。
【請求項３３】
応答を送信することは、メッセージの受け取り時に、前記第１のシステム実体によって予想される応答を模倣する応答を、第２のシステム実体から送信することを含むことを特徴とする請求項３２記載のインタセプト方法。
【請求項３４】
前記メッセージは、リソースリクエストであり、前記第２のシステム実体は、前記データ処理システムのオペレーティングシステムであることを特徴とする請求項３２記載のインタセプト方法。
【請求項３５】
リクエストを送信することは、オペレーティングシステムに前記リソースリクエストの実行を終了するリクエストを送信することを含むことを特徴とする請求項３４記載のインタセプト方法。
【請求項３６】
データ処理システムにおいて、受信する実体に向けて送信する実体によって送信されたメッセージを認証する方法であって、
前記メッセージを受信することと、
送信する実体以外のシステム実体によって、受信する実体がブロードキャストメッセージを無視することを要求するリクエストを、受信する実体に送信することと、
前記送信する実体が受信されたメッセージを送信する許可を与えられた実体であることを確認することと、
前記送信する実体がメッセージを送信する許可を与えられた実体であるならば、受信されたメッセージを再ブロードキャストすることと
を含むことを特徴とする認証方法。
【請求項３７】
前記方法は、さらに、前記受信する実体以外のシステム実体によって、前記受信する実体がブロードキャストメッセージを受信したことを前記送信する実体に示す応答を、前記送信する実体に送信することを含むことを特徴とする請求項３６記載の認証方法。
【請求項３８】
前記メッセージは、システムバスを介してブロードキャストされることを特徴とする請求項３７記載の認証方法。
【請求項３９】
データ処理システム内でメッセージをインターセプトする方法を実行するための命令を収容しているコンピュータ可読媒体であって、前記方法は、
第１のシステム実体により第２のシステム実体にブロードキャストされたメッセージを受信することと、
前記第２のシステム実体以外のシステム実体によって、前記第１のシステム実体に応答を送信することと、
前記第１のシステム実体以外のシステム実体によって、前記第２のシステム実体がメッセージを無視するようにするリクエストを送信することを特徴とするコンピュータ可読媒体。
【請求項４０】
データ処理システムのバス全体にブロードキャストされたメッセージを認証する方法を実行するための命令を収容しているコンピュータ可読媒体であって、前記メッセージは、第１のシステム実体によって第２のシステム実体に送信されることと、前記方法は、
前記メッセージを受信することと、
第１のシステム実体以外のシステム実体によって、前記第２のシステム実体がブロードキャストメッセージを無視することを要求するリクエストを、前記第２のシステム実体に送信することと、
第１のシステム実体が、受信されたメッセージを送信する許可を与えられたシステム実体であることを確認することと、
前記第２のシステム実体以外のシステム実体によって、前記第２のシステム実体がブロードキャストメッセージを受信したことを前記第１のシステム実体に示す応答を、前記第１のシステム実体に送信することと、
前記第１のシステム実体がメッセージを送信する許可を与えられたシステム実体であるならば、受信されたメッセージをブロードキャストすることと
を含むこととを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、米国特許法§１１９（ｅ）の下で２００１年１２月１３日に出願された米国仮特許出願Ｎｏ．６０／３３９，１６３号、および２００１年１０月２９日に出願された米国仮特許出願Ｎｏ．６０／３３０，７２１号の利益を主張する。それぞれは、参照によりここに組み込まれる。
本発明は、コンピュータリソースセキュリティの分野に関する。特に、本発明は、コンピュータシステムのオペレーティングシステムに対して作成されたリソースリクエストを認証する方法および装置に関する。
【背景技術】
【０００２】
リソースリクエストは、例えば、ソフトウェアアプリケーションまたはハードウェア機器のようなコンピュータシステム実体により生成されたリクエストであり、該リクエストにより、コンピュータシステムは、特定のシステムリソースの使用をリクエストする。そのようなリソースは、画面に文字を書くためのディスプレイ画面のようなハードウェアリソース、Ｗｉｎｄｏｗｓ（登録商標）ベースのシステムにおける新たなウインドウを開いたり、インターネットアドレスなどのネットワークリソースにアクセスするようなソフトウェアリソース、またはオペレーティングシステムによって制御される他のリソースの使用を含んでもよい。一般的に、そのようなリクエストは、コンピュータのオペレーティングシステムに作成され、これはオペレーティングシステムが一般的にリソースの割当てを任されている実体であるからである。しかしながら、理論的には、リクエストは、リソースの割当てを任されている任意のコンピュータシステムのソフトウェアまたはハードウェアに対して作成することができる。
リソースリクエストの一例は、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムによって用いられる、アプリケーションプログラム・インターフェース（ＡＰＩ）である。ＡＰＩは、オペレーティングシステムからリソースの使用をリクエストするためにプログラマにより用いられる関数呼出しである。例えば、Ｗｉｎｄｏｗｓ（登録商標）のＡＰＩの場合、プログラマは、モニタに描画したり、ディスクにアクセスしたり、プリンタに書き込んだり、インターネットリソースを用いたり、他の機能を実行するような、タスクを実行するために、新たなアプリケーションの各々をプログラミングする必要がない。その代わり、ＡＰＩは、オペレーティングシステムがそれらの機能を実行するように、プログラマがリクエストすることを可能にする。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
リソースリクエストは、リクエストされた機器または作成されたリソースが利用可能なときはいつでも実現される。しかしながら、コンピュータユーザまたは管理者は、特定のコンピュータリソースへのアクセスを限定したいかも知れない。例えば、管理者は、メモリアクセスを、メモリと同じコンピュータ上で起動されたアプリケーションだけに限定したいかも知れない。この機能は、機密のファイルが許可された個人によってだけ、アクセスされることを保証する。加えて、多くのコンピュータ・ウイルスは、コンピュータにアクセスするかまたは損害を与える手段としてコンピュータリソースリクエストを利用する。例えば、ＡＰＩリクエストを介してメモリにアクセスすることを試みるウイルスは、貴重なファイルを破壊することができ、あるいは、インターネット接続にアクセスするウイルスは、電子メールや他の機密事項を扱う通信を制御または監視することができる。
【０００４】
処理認証は、リソースをリクエストしているコンピュータ実体、およびそれを制御しているユーザが、所望するリソースの使用に適した許可を有していることを確かめる手段である。処理認証は、所望されていない、あるいは許可されていないＡＰＩ呼出しを監視し、除去する、セキュリティのレイヤを導入するので、それらＡＰＩ呼出しは、オペレーティングシステムまたはリソースの割当てを担当する他の実体によって決して実行されない。この結果、処理認証システムは、許可されていないユーザ侵入、求められていないアプリケーションまたはウイルスを効果的に締め出すことができ、かつユーザやアプリケーションによるシステムリソースへの未許可のアクセスを防止することができる。
【課題を解決するための手段】
【０００５】
本発明と合致するシステムおよび方法は、リソースコントローラおよびバスを有するコンピュータシステムのリソースリクエストを認証する。そのようなシステムおよび方法は、リソースコントローラに対して作成されたリソースリクエストに関してバスを監視し、リソースコントローラに対して作成された少なくとも１つのリソースリクエストをインターセプトし、該インターセプトされたリソースリクエストが本物であるか判定し、リソースリクエストが本物である場合、インターセプトされたリソースリクエストがリソースコントローラにより実行されるのを許可し、さもなければ、リクエストのタイムアウトを許可する。
【０００６】
本発明の更なる利点は、一部は続く説明で述べられ、一部は説明から明らかになり、また、本発明の実行により理解されてもよい。本発明の利点は、特に添付の特許請求の範囲に指定した構成要件および組合せによって実現され、達成される。
【０００７】
前述の一般的な説明および以下の詳細な説明の双方は単に例示的かつ説明的なものであり、特許請求の範囲で請求した本発明を限定するものではないことが理解されるべきである。
【発明を実施するための最良の形態】
【０００８】
本発明の典型的な実施形態を詳細に説明し、その実施例を添付の図面に示す。可能な場合はいつでも、同じ参照番号が、同一または類似の部分を参照するために全図面を通して用いられる。
【０００９】
リソースリクエストは、例えば、ソフトウェアアプリケーションまたはハードウェア機器のようなコンピュータシステム実体により生成されたリクエストであり、該リクエストにより、コンピュータシステムは、特定のシステムリソースの使用をリクエストする。異なるオペレーティングシステムは、アプリケーションまたはハードウェア機器に利用可能なリソースの異なる組合せを提供してもよく、異なるフォーマットを用いるリソースリクエストを実施してもよいが、多くのシステムでは、リクエストは、システムバスを介して、オペレーティングシステムか、他のリソースコントローラに送信される。例えば、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムは、コンピュータシステム実体がＡＰＩ呼出しまたは宣言を用いてリソースをリクエストするのを許可する。ＡＰＩ宣言を用いるためのフォーマット、プロトコル、プロシージャおよび詳細は、Ｗｉｎｄｏｗｓ（登録商標）ベースのアプリケーションプログラマ用ＶｉｓｕａｌＣ＋＋エディタ、ＶｉｓｕａｌＢａｓｉｃエディタまたは他のＷｉｎｄｏｗｓ（登録商標）プログラミングツールに公開されている。Ｗｉｎｄｏｗｓ（登録商標）以外のオペレーティングシステムまたはプラットフォームは、それらのリソースリクエストに対して、異なるフォーマットまたはプロシージャを代わりに用いてもよい。当業者であれば、本発明はＷｉｎｄｏｗｓ（登録商標）ベースコンピュータおよびその関連するＡＰＩリクエストでの使用に限定されないことがわかるであろう。しかしながら、説明を簡単にするために、以下の説明では、Ｗｉｎｄｏｗｓ（登録商標）ベースのコンピュータで用いられるＡＰＩリクエストを参照する。
【００１０】
図１は、Ｗｉｎｄｏｗｓ（登録商標）ベースのコンピュータの典型的な動作に整合したシステムリソースにアクセスするために処理アプリケーションによって実行されるステップを示すフローチャートを表す。ステップ１０２で、リクエストしている実体がオペレーティングシステムにリクエストを一斉通信すると、処理１００が起動する。Ｗｉｎｄｏｗｓ（登録商標）ベースのコンピュータでは、リクエストされうる各リソースは、特定の、予め決められた、特定のフォーマットに従わなければならないＡＰＩ宣言（リクエスト）を有する。ＡＰＩリクエストは、識別されたリソースを割当てるための動作をリクエストしている実体に命じるか、特定のタスク（予め決められた命令群）を実行するための動作をリクエストしている実体に対して命じる。既知のＡＰＩ呼出しのリストは、あらゆるＶｉｓｕａｌＣ＋＋エディタ、ＶｉｓｕａｌＢａｓｉｃエディタまたは他のＷｉｎｄｏｗｓ（登録商標）プログラミングツールで利用可能である。加えて、新たなＡＰＩ呼出しがプログラマによって常に開発されており、当業者であれば、本発明が現在利用可能なリソースリクエストに限定されないことがわかるであろう。
【００１１】
ステップ１０２では、リクエストしている実体は、システムバスを介してメッセージを一斉通信することにより、ＡＰＩリクエストをオペレーティングシステムに伝送する。ＡＰＩリクエストは、送信アプリケーションの処理ＩＤのような特定の識別情報および他の情報を含むヘッダと同様に、ＡＰＩフォーマットまたは定義によって要求される情報を含むことになる。Ｗｉｎｄｏｗｓ（登録商標）ベースのコンピュータでは、リクエストは、システムバスを介してリクエストしているアプリケーションによってブロードキャストされるので、オペレーティングシステムおよび全てのアプリケーションがそれを「聞く」ことができる。システムバスを聞いているアプリケーションおよびハードウェアの各々は、メッセージがそれに向けたものであるかどうかを決定するために、受信次第リクエストを解析する。オペレーティングシステムは、ＡＰＩリクエストを受信して解析すると、該リクエストをリソースリクエストとして識別し、図２によって以下にさらに説明するように、リクエストの実行を進める。その他のアプリケーションおよびハードウェア機器の全ては、メッセージがそれに向けられたものではないことを認識し、ＡＰＩリクエストを無視する。
【００１２】
リクエストしているアプリケーションは、ステップ１０４で、そのリクエストに対する応答に聞き耳を立てることになる。応答のフォーマットは、オペレーティングシステム・プラットフォームによって同様に決定され、Ｗｉｎｄｏｗｓ（登録商標）ベースのシステムでは、ＶｉｓｕａｌＣ＋＋エディタ、ＶｉｓｕａｌＢａｓｉｃエディタおよび他のＷｉｎｄｏｗｓ（登録商標）プログラミングツールにも開示された標準コマンドである。ＡＰＩリクエストに対する応答は（これもまたバスを介してブロードキャストされる）一般的に、メッセージの送信者を識別するヘッダ情報を含んでいない。その代わりに、リクエストしているアプリケーションは、処理の典型的な流れでは、オペレーティングシステムだけがリクエストに応答するので、オペレーティングシステムが送信者であるとみなす。応答は、リクエストの受け取りおよび未定の処理を、リクエストしているアプリケーションに通知する。ステップ１０４において、リクエストしているアプリケーションが応答を受け取らない場合、ステップ１０６で、リクエストはタイムアウトになる。アプリケーションは、一般的に、（応答が受信されなかった場合）処理が無期限にサスペンドされるのを防止するために、応答に対して所定の時間だけ待機するようにプログラムされている。「タイムアウト」は、リクエストに対する応答が割り当てられた時間内に受け取られなかったことを意味する。タイムアウトに応じて、リクエストしているアプリケーションは、リクエストを単純に断念してもよいし、あるいは、ユーザに対してエラーメッセージを発生し、特定の機能が完了されないという警報をユーザに出してもよい。加えて、リクエストしているアプリケーションのエラー処理ルーチンが、あたかもリクエストが作成されなかったかのように、通常の処理へ戻ることを容易にしてもよい。
【００１３】
しかしながら、ステップ１０４で、リクエストしているアプリケーションがオペレーティングシステムから応答を受信した場合には、リクエストしているアプリケーションは、リクエストの完了を待つことになる。その間、リクエストしているアプリケーションは、ステップ１０８で、オペレーティングシステムから更なる応答（すなわち、第２、第３などの）に聞き耳を立てていることになる。Ｗｉｎｄｏｗｓ（登録商標）ベースのシステムでは、リクエストしているアプリケーションに処理を戻すための典型的な方法は、コールバックリクエストを用いることである。ステップ１０８で、リクエストしているアプリケーションが、コールバックリクエストを受信する前にリソースリクエストに対する第２のリクエストを受信すると、リクエストしているアプリケーションは、ソフトウェアエラーを生成することになる。リクエストしているアプリケーションのエラー処理ルーチンは、エラーを処理することになり、ステップ１１２で、エラーが発生したことをユーザに警報するエラーメッセージを表示することにエラー処理を行ってもよい。エラー処理ルーチンは、また、リクエストしたアプリケーションの処理がエラーにもかかわらずその通常の流れを継続するのを可能にしてもよい。その場合、処理は、ステップ１０８へ戻り、アプリケーションは、オペレーティングシステムがリソースリクエストを処理し、コールバック機能を送信するのを待ち続ける。ルーチンは、リソースリクエストに対するその後の他の応答を受け取ると、ステップ１１２を繰り返すことになる。
【００１４】
その代わり、ステップ１１０で、リクエストしているアプリケーションが、リクエストが完了したことを示しているオペレーティングシステムからのコールバック機能を受信すると、リクエストしているアプリケーションは、ステップ１１４で、その通常の流れを処理し続けることになる。
【００１５】
図２は、リソースリクエストに応答し完了するために、Ｗｉｎｄｏｗｓ（登録商標）ベースのオペレーティングシステムによって実行されるステップを表しているフローチャートを示す。オペレーティングシステムは、システムバスの全域で全ての伝送されている一斉通信を聞く。オペレーティングシステムは、各メッセージの予め定義されたフォーマットとヘッダ情報とを解析することによって、送信されたメッセージから各リソースリクエスト（ＡＰＩリクエスト）を識別する。ステップ２０２で、リソースリクエストを受信して識別すると、オペレーティングシステムは、ステップ２０４で、プロセッサが処理する処理ルーチンのキューにリソースリクエストを置く。プロセッサが最終的にステップ２０６でキューのルーチンを処理すると、リソースリクエストは、キューの次のアイテムになる。
【００１６】
プロセッサがリソースリクエストに対する処理を開始すると、オペレーティングシステムは、ステップ２０８で、リクエストしているアプリケーションに応答を送信することになる。この応答は、リクエストが受信され、処理されていることを、リクエストしている実体に通信する。オペレーティングシステムは、ＡＰＩメッセージのヘッダに含まれた、処理識別からリクエストの送信元を識別することができる。応答は、処理識別によって識別された処理に送信され、オペレーティングシステムおよびリクエスト宣言によって要求された形態をとることになる。Ｗｉｎｄｏｗｓ（登録商標）ベースのコンピュータでは、ステップ２０４、２０６および２０８の順序を変更することが可能である。言い換えると、応答は、最初のリクエストを受信したとき、かつリソースリクエストがキューに置かれる前に、リクエストしているアプリケーションに送信されてもよい。当業者であれば、このステップの順序は本発明にとって重要でないことがわかるであろう。
【００１７】
また、オペレーティングシステムは、ステップ２１０で、リソースリクエストの処理をキルするためのリクエストを受信してもよい。例えば、そうようなリクエストは、コンピュータまたはリクエストしているアプリケーションをシャットダウンしようとユーザが試みた結果生じる。キルリクエストは、リクエストしているアプリケーションまたは他のアプリケーションによって送信されてよい。オペレーティングシステムが終了リクエストを受信しない場合、オペレーティングシステムはステップ２１２でリソースリクエストを処理し続ける。この場合、オペレーティングシステムの処理は、自然に終了することになり（リクエストは成し遂げられることになる）、オペレーティングシステムは、コールバックリクエストをリクエストしているアプリケーションに送信することによって、処理をアプリケーションに戻すことになる。
【００１８】
しかし、オペレーティングシステムは、キルリクエストを受信すると、リソースリクエストの処理を終了することになる。リソースリクエストがステップ２１４で現在処理されている場合には、オペレーティングシステムは、ステップ２１６で、リクエストの処理を終了する。しかし、リソースリクエストが現在処理されていない場合には、オペレーティングシステムは、ステップ２１８で、単にリクエストを無視し、その処理を決して試みない。いずれにせよ、リソースリクエストは完了されない。
【００１９】
本発明に合致したシステムおよび方法は、オペレーティングシステムによるリクエストが完了する前に、処理認証とも称される、リソースリクエストを認証するためのセキュリティ層を導入する。このように、許可されたアプリケーション、ハードウェアおよびユーザだけが、特定のシステムリソースへのアクセスを許可されてもよい。
【００２０】
処理認証は、従来の分散処理システム・アーキテクチャで構成されたコンピュータで実施されてもよい。図３は、本発明の実施形態が実施されうるコンピュータシステム３００を示すブロック図である。コンピュータシステム３００は、情報を通信するためのバス３０２または他の通信機構、およびバス３０２に接続された、情報を処理するためのプロセッサ３０４を含んでいる。また、コンピュータシステム３００は、プロセッサ３０４によって実行されるべき命令および情報を格納するために、バス３０２に接続されたランダムアクセスメモリ（ＲＡＭ）３０６または他の動的記憶装置のようなメインメモリを含んでいる。また、ＲＡＭ３０６は、プロセッサ３０４によって実行されるべき命令が遂行されている間、一時的な変数または他の中間的な情報を格納するために用いられてもよい。また、コンピュータシステム３００は、一時的な変数および他の情報、ならびにＲＡＭ３０６からの命令を格納するためのキャッシュ３１１を含んでいてもよい。ＲＡＭ３０６は、プロセッサ３０４がアプリケーションを動作させるのに必要な全ての情報、命令および変数を格納できなくてもよい。この場合、命令、変数および他の情報は、数多くの周知の方法にしたがって、一時的な格納のためにキャッシュ３１１に移動されてもよい。このデータは、プロセッサ３０４が情報または命令を要求するまで、キャッシュ３１１に格納しておくことができる。そして、必要なとき、データは、記憶装置３１０または他の形態の記憶媒体におかれている場合より、より高速でアクセスされる。コンピュータシステム３００は、さらに、プロセッサ３０４のための静的な情報および命令を格納するために、バス３０２に接続されたリードオンリメモリ（ＲＯＭ））３０８または他の静的記憶装置を含んでいる。例えば、磁気ディスクや光学ディスクからなる記憶装置３１０が設けられており、情報および命令を格納するためにバス３０２に接続されている。
【００２１】
コンピュータシステム３００は、コンピュータユーザに情報を表示するために、陰極線管（ＣＲＴ）のようなディスプレイ３１２にバス３０２を介して接続されていてもよい。入力装置３１４は、英数字および他のキーを含み、プロセッサ３０４へ情報およびコマンド選択を通信するためにバス３０２に接続されている。ユーザ入力装置の他のタイプは、指示情報およびコマンド選択をプロセッサ３０４に通信するため、およびディスプレイ３１２上でのカーソル移動を制御するためのマウス、トラックボールまたはカーソル指示キーのようなカーソル制御装置３１６である。この入力装置は、一般的に、機器が平面上の位置を特定することを可能にする、第１の軸（例えばｘ）および第２の軸（例えばｙ）からなる２つの軸で２つの自由度を有する。
【００２２】
本発明の態様は、オペレーティングシステムに対して作成されたリソースリクエストを認証するためのコンピュータシステム３００の使用を含んでいる。一実施例によれば、コンピュータシステム３００で動作する処理認証ルーチンは、メインメモリ３０６に格納されている１つ以上の命令からなる１つ以上のシーケンスを実行しているプロセッサ３０４に応じて、オペレーティングシステムに対して作成された各リソースリクエストをインターセプトして認証する。そのような命令は、記憶装置３１０のような他のコンピュータで可読な媒体からメインメモリ３０６に読み込まれてもよい。メインメモリ３０６に格納されている命令のシーケンスの実行は、ここで説明される処理ステップを実行するためにプロセッサ３０４を起動する。代替の実施例では、本発明を実施するために、ハードワイヤード回路が、ソフトウェア命令の代わりにまたは該命令と組み合せて用いられてもよい。ゆえに、本発明の原理と合致した実施例は、ハードウェア回路およびソフトウェアの如何なる特定の組合せにも限定されることはない。
【００２３】
ここで用いられる用語「コンピュータ可読媒体」は、実行するためにプロセッサ３０４に命令を提供することに関与するあらゆる媒体を指す。そのような媒体は、不揮発性媒体、揮発性媒体および伝送媒体を含むが限定されない、様々な形態をとってよい。例えば、不揮発性媒体は、記憶装置３１０のような光学または磁気ディスクを含む。揮発性媒体は、メインメモリ３０６のようなダイナミックメモリを含む。伝送媒体は、バス３０２を形成するワイヤを含めて、同軸ケーブル、銅線および光ファイバを含む。また、伝送媒体は、無線および赤外線データ通信において生成されるような音響または光波の形態をとることができる。
【００２４】
コンピュータ可読媒体の共通形態として、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープまたはあらゆる他の磁性媒体、ＣＤ−ＲＯＭ、あらゆる他の光学媒体、パンチカード、紙テープ、穴のパターンを有するあらゆる他の物理的な媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、あらゆる他のメモリチップまたはカートリッジ、後述するような搬送波、またはコンピュータが読むことができるあらゆる他の媒体が挙げられる。
コンピュータ可読媒体の様々な形態として、１つ以上の命令からなる１つ以上のシーケンスを、実行のためにプロセッサ３０４に伝送することが含まれていてもよい。例えば、命令は、まず、リモートコンピュータの磁気ディスク上に運ばれてもよい。リモートコンピュータは、そのダイナミックメモリに命令をロードし、モデムを用いて電話回線を介してその命令を送信することができる。コンピュータシステム３００に対してローカルなモデムは、電話回線上のデータを受信し、赤外線送信機を用いてデータを赤外線信号へ変換することができる。バス３０２に接続された赤外線検出器は、赤外線信号で伝播されたデータを受信し、バス３０２にデータを送出することができる。バス３０２は、データをメインメモリ３０６へ伝播し、そこから、プロセッサ３０４は命令を読み出して実行する。メインメモリ３０６によって受信された命令は、プロセッサ３０４による実行前または実行後のいずれかに、記憶装置３１０に随意に格納されてもよい。
【００２５】
また、コンピュータシステム３００は、バス３０２に接続された通信インターフェース３１８を含んでいる。通信インターフェース３１８は、ローカルネットワーク３２２に接続されているネットワークリンク３２０に結合している双方向データ通信を提供する。例えば、通信インターフェース３１８は、対応しているタイプの電話回線へのデータ通信接続を実現するための統合デジタル通信網（ＩＳＤＮ）カードまたはモデムであってもよい。他の例として、通信インターフェース３１８は、互換性を有するローカルエリアネットワーク（ＬＡＮ）へのデータ通信接続を実現するためのＬＡＮカードであってもよい。また、無線リンクが実施されてもよい。そのようなあらゆる実施例では、通信インターフェース３１８は、様々なタイプの情報を表しているデジタルデータストリームを搬送する電気、電磁気、または光学信号を送受信する。
【００２６】
ネットワークリンク３２０は、一般的に、１つ以上のネットワークを通して、データ通信を他のデータ機器へ提供する。例えば、ネットワークリンク３２０は、ローカルネットワーク３２２を通して、インターネット・サービス・プロバイダ（ＩＳＰ）３２６によって動作するデータ設備および／またはホストコンピュータ３２４に接続を提供する。ＩＳＰ３２６は、次に、インターネット３２８を通してデータ通信サービスを提供する。ローカルネットワーク３２２およびインターネット３２８の双方は、デジタルデータストリームを搬送する電気、電磁気または光学信号を用いる。様々なネットワークを介する信号、およびコンピュータシステム３００との間でデジタルデータを搬送する、ネットワークリンク３２０上のおよび通信インターフェース３１８を介する信号は、情報を搬送している搬送波の典型的な形態である。
【００２７】
コンピュータシステム３００は、ネットワーク（１つ以上）、ネットワークリンク３２０および通信インターフェース３１８を介して、プログラムコードを含む、メッセージを送信したり、データを受信することができる。インターネットの例では、サーバ３３０は、インターネット３２８、ＩＳＰ３２６、ローカルネットワーク３２２および通信インターフェース３１８を介して、アプリケーションプログラムのためにリクエストされたコードを送信してもよい。本発明に従えば、そのようなダウンロードされたアプリケーションは、コンピュータのオペレーティングシステムに対して作成された全てのリソースリクエストを認証する。受信されたコードは、記憶装置３１０または後の実行のために他の不揮発性記憶装置に受け取られ格納されるので、プロセッサ３０４によって実行されてもよい。このように、コンピュータシステム３００は、搬送波の形態でアプリケーションコードを取得してもよい。
【００２８】
コンピュータシステム３００は、図３では、１つのサーバ３３０に接続可能なように示されているが、当業者は、コンピュータシステム３００がインターネット３２８上の複数のサーバへの接続を確立してもよいことがわかるであろう。そのようなサーバの各々は、本発明と合致した方法でリクエストに応じてコンピュータシステム３００に情報を提供してもよいＨＴＭＬベースのインターネットアプリケーションを含んでいる。
【００２９】
本発明の原理と合致したシステムおよび方法は、コンピュータ３００のオペレーティングシステムに対して作成された全てのリソースリクエストを認証するための処理認証ルーチンを提供する。本発明の一態様によれば、処理認証ルーチンは、全てのリソースリクエストが認証されることを保証するために、コンピュータ３００の電源が入り、処理しているときはいつでも、処理していることを保証する。
【００３０】
図４は、本発明の原理に合致した、処理認証ルーチン４００によって実行されるステップを示しているフローチャートを表す。本発明の一態様によれば、コンピュータ３００が一度オンになると、ステップ４０２で、ルーチンを実行するための命令がプロセッサ３０４による実行のためにＲＡＭ３０６にロードされる。前述したように、ロードすることは、記憶装置３１０の内容をＲＡＭ３０６にコピーすること、またはネットワーク３２２上のホスト３２４から、またはインターネット３２８またはＩＳＰ３２６のいずれかを介してサーバ３３０からルーチンのコピーを取得することを含んでいてもよい。
【００３１】
加えて、ルーチン４００は、ステップ４０４で、シェル拡張としてそれ自体を登録する。シェル拡張は、ユーザのシェルの一部として、登録され、かつオペレーティングシステムによって認識された、あらゆるアプリケーションである。シェル拡張として登録されたアプリケーションは、それらが決してキャッシュされないので、オペレーティングシステムによって特別な処理をもたらされる。シェル拡張として登録するために、アプリケーションは、オペレーティングシステムに登録ＡＰＩコマンドを送信し、オペレーティングシステムは、シェル拡張としてルーチンを識別するために、Ｗｉｎｄｏｗｓ（登録商標）のシステム・レジストリを変更する。
【００３２】
処理認証ルーチン４００は、動作中、システムバス３０２を監視する。ルーチン４００は、ステップ４０６で、システムバス３０２全体にブロードキャストされた各メッセージを受信することになる。受信された各メッセージに対して、ルーチン４００は、ステップ４０８で、リクエストが処理４００を終了するためのリクエスト、すなわちキルリクエストであるかどうかを判定する。キルリクエストは、ルーチンが終了されるよう要求するオペレーティングシステムに対するブロードキャストＡＰＩリクエストである。ルーチン４００が終了されるか、キルされる場合、オペレーティングシステムは、認証なしでそれに対して作成された全てのリソースリクエストを自由に処理することになる。したがって、リクエストがキルリクエストである場合、ルーチン４００は、ステップ４１０で、それ自身の終了を防止することになる。終了を防止するためにルーチン４００によって取られるステップを含む典型的な方法が、図５のフローチャートに示されている。終了が一旦防止されると、処理はステップ４０２に戻り、ルーチン４００は、処理を続けるためにＲＡＭに再ロードする。
【００３３】
しかしながら、ステップ４０８で、メッセージがキルリクエストでない場合、ルーチン４００は、ステップ４１２で、ブロードキャストメッセージがＡＰＩリクエストであるかどうかを判定しなければならない。ルーチン４００は、オペレーティングシステムに対して作成された、あらゆるメッセージまたはリソースリクエストを識別するために、全てのブロードキャストメッセージを解析する。それは、オペレーティングシステムと同じ方法でこれらブロードキャストを識別する。メッセージがＡＰＩリクエストでない場合、処理は、ステップ４０６へ戻り、ここでルーチンは次のブロードキャストメッセージを待つ。
【００３４】
ステップ４１２で、メッセージがＡＰＩリクエストである場合には、ルーチン４００は、そのリクエストを認証、すなわちリクエストが本物であるか否かを判定する。一構成において、ルーチン４００は、リクエストを認証するための時間を用意するために、まず、ブロードキャストリクエストをインターセプトする。ゆえに、ルーチン４００は、ステップ４１４で、リクエストしているアプリケーションに応答を送信する。リクエストしているアプリケーションへのこの応答は、オペレーティングシステムがリソースリクエストの受け取りを確認するために送信する応答を模倣する、すなわち、該応答とあらゆる点で同一である。加えて、処理認証ルーチン４００は、ＡＰＩリクエストに含まれるヘッダ内の処理識別からリクエストしているアプリケーションを識別する。しかしながら、この応答は、処理認証ルーチンの処理識別を含んでいない。これは、処理認証ルーチンによる応答が、オペレーティングシステムによって送信されたかもしれないあらゆる応答を模倣することを保証するために実行される。アプリケーションによるこの応答の受け取りは、リクエストしているアプリケーションに、リクエストの完了およびその後のコールバックを待たせることになる。
【００３５】
また、ルーチン４００は、ステップ４１６で、リクエストの処理を終了するために、オペレーティングシステムにキルリクエストを送信する。オペレーティングシステムがリクエスト処理を終了することをリクエストすることにより、処理認証ルーチンは、リクエストが本物であったかどうかを決定するための時間を有する。ステップ４１６の完了時には、ルーチン４００は、リソースリクエストをインターセプトしている、すなわち、リクエストがプロセッサにより成し遂げられるのを防止している。
【００３６】
それから処理は、ステップ４１８へ進み、ルーチン４００は、リクエストを認証する、すなわち、リクエストが本物および／または許可されたものであるかを判定する。リクエストが本物であるかを判定するために、ルーチン４００は、一構成において、特定のリクエストが許可されているかを示す許可リストを保持してもよい。許可リストは、あらゆる既知の方法論を用いて、生成、設定、保持、変更および保護されてよい。例えば、リクエストを用いるための許可は、特定のユーザ、ユーザのグループ、特定のアプリケーションに与えられてもよいし、あるいはコンピュータシステムまたはそのユーザのその他の特徴に基づいてもよい。各ユーザまたはグループについて、ユーザまたは管理者は、例えば、以下の特定のリソースまたはリソースのグループに許可を与えるかまたは拒否してよい。これらのリソースは、例えば、１）アプリケーションを動作させる、２）複数のユーザに影響を及ぼすあらゆるツール（すなわちデバイス・ドライバ）のような管理ツールを用いる、３）リソースリクエストを自己認証する、４）ファイルやフォルダへのアクセスを制御する権利のようなディスクリソースを管理する、５）ユーザが遠隔で（すなわちネットワークを介して）ログオンすることができるかのようなホストにログオンする、６）ポートまたはＩＰアドレスへのアクセスを遮断するか許可する権利のようなネットワークリソースを用いる、または７）与えられたインターネットアドレスにアクセスする権利のようなインターネットリソースにアクセスする、のに必要なリソースである。加えて、ルーチン４００は、ユーザまたは管理者に、許可をセットまたは変更する能力を提供してもよい。
【００３７】
許可リストは、データベースの形態、あるいは、コンピュータ１００上、またはホスト１２４またはサーバ１３０のようなネットワーク化されたコンピュータ上のメモリに常駐の他の形態で保持されてもよい。一構成において、許可は、例えば、公開または秘密鍵方法を用いて暗号化されてもよく、これにより、許可リストへの未許可のアクセスが防止される。加えて、許可リストへのアクセスは、許可リストにアクセスするか該リストを変更するために、ＡＰＩリクエストの使用を要求するために実施されてもよい。許可リストを保護するために、管理者は、許可リストにアクセスするか該リストを変更するのに必要なＡＰＩリクエストを利用する許可をユーザが持たないように、許可を設定してもよい。このように、認証ルーチンは、ファイルにアクセスするためのＡＰＩリクエストをインターセプトし、リクエストが未許可であると判定し、およびリクエストの完了を防止するので、ユーザアプリケーションはアプリケーションにアクセスできない。
【００３８】
したがって、ステップ４１８で、ルーチン４００は、現在未定のリクエストが許可されているか判定するために許可リストにアクセスする。リクエストが許可されたものでない場合、ルーチン４００は何もしない。オペレーティングシステムによるリクエストの処理が既に終了しているので、リクエストは、決して成し遂げられない。加えて、ステップ４２０では、オペレーティングシステムがリクエストしているアプリケーションにコールバックを送信しないので、リクエストしているアプリケーションは、最終的にはタイムアウトになる。
【００３９】
一方、ステップ４１８で、ルーチン４００が、現在未定のリクエストが許可されているものであることを決定した場合、オリジナルのリクエストをオペレーティングシステムに再ブロードキャストする。この場合、再ブロードキャストは、リクエストしているアプリケーションのヘッダに処理識別を含むことになる。一構成において、処理認証ルーチンは、オリジナルのリクエストと同一の形態で再ブロードキャストされてもよいようにメモリにコピーを保持して、オリジナルのリクエストをキャッシュしてもよい。リクエストを再ブロードキャストすることにより、オペレーティングシステムは、もう一度、リクエストの処理を開始することになる。加えて、オペレーティングシステムは、リクエストしているアプリケーション（図２、ステップ２０８で示されるように）に応答を送信する。しかし、この場合、リクエストしているアプリケーションは、既に、リクエストの処理を待っていることになる。したがって、この第２の応答の受け取りは、図１、ステップ１０８で受信された応答として取り扱われることになる。すなわち、リクエストは、ステップ１１２で、リクエストしているアプリケーションのエラー処理によって処理され、アプリケーションは、ステップ１１０で、オペレーティングシステムからのコールバックを待ち続けることになる。
【００４０】
リソースリクエストが本物だったかどうかに関わらず、典型的な構成では、ルーチン４００がＡＰＩリクエストを監査する。監査は、処理認証ルーチンによってインターセプトされたリソースリクエストの記録の作成を要求する。そのような記録は、コンピュータ３００の記憶装置３１０、あるいは、ホスト３２４またはサーバ３３０のような他のネットワーク化されたコンピュータに関連する記憶装置のいずれかで、全てのリソースリクエストのログを生成することにより作成することができる。加えて、監査は、データベースとして保持されてもよい。検査の形式がどうであれ、ルーチンは、リクエストの時刻、リクエストされたリソース、リクエストを要求しているアプリケーション、アプリケーションにログオンしたユーザ、機器識別、ユーザが属するユーザグループ、およびリクエストが許可されたか否か、などの情報を記録してもよい。監査は、ローカルに保持されてもよいし、またはネットワーク化されたコンピュータ上に保持されてもよく、いずれにせよ、ログは、異なる（一緒にネットワーク化されてもよいが）コンピュータ上でそれぞれ動作している１つ以上の処理認証ルーチンによってリストされたエントリを含んでよい。ステップ４０６へ戻ると、ルーチン４００は、他のブロードキャストに聞き耳を立てることになる。
【００４１】
次に、図５を参照すると、図４のステップ４１０でルーチンを処理しているコンピュータから独立した処理認証ルーチンの終了を防止するために、処理認証ルーチン４００によって実行されるステップを表すフローチャートが示されている。一般的に、Ｗｉｎｄｏｗｓ（登録商標）ベースのコンピュータでは、アプリケーションを終了させるためには２つの方法がある。第１は、アプリケーションの停止が要求されうる。この一例は、コンピュータをシャットダウンした場合に起こる。シャットダウンの間、オペレーティングシステムは、コンピュータをシャットダウンできるよう、各プログラムに終了することをリクエストする。第２は、プログラムがキルされうる。このタイプのキルリクエストの例は、Ｗｉｎｄｏｗｓ（登録商標）ベースの機器のユーザが「control-alt-delete」をタイプした場合に起こる。いずれにせよ、ルーチン４００は、好ましくは、それ自身の終了を防止することになる。さもなければ、未許可のユーザは、単にルーチンをキルすることによって、処理認証ルーチンを回避してもよい。
【００４２】
処理認証ルーチン４００が終了リクエストをオペレーティングシステムから受信すると、ステップ５０６で、まず、全てのユーザ許可をリセットする。ユーザ許可をリセットすることは、全てのレジストリ設定を、初期ブートアップでロードされたように、デフォルト設定にリセットすることを含んでいる。そのような設定は、現在ログオンしているユーザがいないことを示すように、レジストリ設定を変更することにより、コンピュータ１００からいずれのユーザもログオフさせることを含むか、あるいは現在処理しているアプリケーションがないことを示すように、レジストリ設定を変更することを含む。当業者であれば、コンピュータ上の許可をリセットすることを要求する動作は、アプリケーションが動作しているプラットフォームおよびオペレーティングシステムに非常に依存しているということがわかるであろう。その結果、本発明のシステムおよび方法は、処理が動作しているコンピュータによって命令される方法でユーザ許可がリセットされることだけを必要とする。
【００４３】
それから、ルーチン４００は、ステップ５０８で、全ての処理しているアプリケーションをアンロードすることになる。処理しているアプリケーションをアンロードすることは、コンピュータを再起動する前に、全ての処理しているアプリケーションを終了することを指す。一構成において、これは、処理しているアプリケーションの各々に対して、終了リクエストをオペレーティングシステムに送信することによって達成されてもよい。他の構成において、これは、オペレーティングシステムがコンピュータを再起動することをリクエストすることによって達成されてもよい。一般的に、オペレーティングシステムは、再起動をリクエストすると、全ての処理しているアプリケーションを自動的に終了する。最後に、ルーチンは、ステップ６１０で、コンピュータを再起動するリクエストをオペレーティングシステムにブロードキャストする。一旦、コンピュータが再起動されると、処理認証ルーチンは、再び、ＲＡＭにロードされる（図４、ステップ４０２）。
【００４４】
キルリクエストが代わりにハードキルである場合、処理認証ルーチン４００は、オペレーティングシステム行きのインターセプトされたＡＰＩリクエストとして、リクエストを受信することになる。しかしながら、ルーチン４００は、ステップ５１０で、ハードキル・リクエストがオペレーティングシステムに届くことができるようにしてもよい。一構成において、ルーチンは、オペレーティングシステムへのリクエストをインターセプトし、認証し、そして再ブロードキャストする。他の構成において、処理認証ルーチンは、ハードキル・リクエストを検出した場合、認証なしで、リクエストが到達し、オペレーティングシステムにより処理されるのを許可する代わりに、リクエストを単にインターセプトしない。
【００４５】
他の構成において、ルーチン４００は、ルーチン４００の終了をリクエストするために、全てのユーザおよびコンピュータ実体に許可を単に与えないだけである。この場合、ルーチン４００は、リクエストをインターセプトし、許可されたリクエストであるか決定するために許可証リストをチェックし、許可されたリクエストでないと判定し、リクエストが単にタイムアウトになることを許可して、他の未許可のＡＰＩと同様に再ブロードキャストしないことになる。しかしながら、ルーチン４００は、該ルーチンがリクエストをインターセプトする前にオペレーティングシステムがリクエストに応答し、ルーチン４００を終了するというリスクを冒す。
【００４６】
ルーチン４００がオペレーティングシステムにキルリクエストを受信させ、処理させることを許す場合、ルーチン４００は、以下のように継続する。一旦、キルリクエストがオペレーティングシステムに達すると、オペレーティングシステムは、ステップ５１２で、処理認証ルーチンにハードキル・リクエストを送信することになる。そのシャットダウン・ルーチンの一部として、本発明と合致したシステムおよび方法は、ステップ５０８で、オペレーティングシステムに再起動リクエストを送信することになる。再起動すると、処理認証アプリケーションは、再ロードし（図４、ステップ４０２）、常時、動作している処理認証アプリケーションなしで、コンピュータが処理するのを防止する。
【００４７】
デジタル捺印は、本発明の原理と合致した、処理認証の一部として含まれてもよい。デジタル捺印することは、実行されている如何なるファイルでもオリジナル文書であることを保証する。デジタル捺印は、特有のラインコードのような、特定のワークステーションに対して固有であるファイルに書かれた、バイナリコードのセグメントからなる。捺印コードはランダムに生成されるので、２つのワークステーションが同じデジタル捺印を有することはない。処理認証ルーチンは、リソースを実行またはリクエストしようとしているワークステーション上のあらゆるファイルを読み（例えば、入出力するファイルに対するＡＰＩリクエストを用いて）、デジタル捺印を探す。捺印が存在しない場合、アクセスは許可されない。
【００４８】
発明の他の実施形態は、明細書の考慮とここに開示される発明の実行から当業者にとって明白になる。明細書および実施例は例示的なものとしてのみ考慮され、発明の真の範囲と精神は特許請求の範囲で示されていることとする。
【図面の簡単な説明】
【００４９】
本明細書の一部に組み込まれ、かつ構成する添付の図面は、説明とともに、本発明のいくつかの実施形態を示し、本発明の原理を説明するのに用いられる。
【図１】Ｗｉｎｄｏｗｓ（登録商標）ベースのコンピュータの処理と整合したＡＰＩリクエストを作成するリクエストしているアプリケーションによって実行されるステップを示すフローチャートである。
【図２】Ｗｉｎｄｏｗｓ（登録商標）ベースのコンピュータの一般的な処理と整合したＡＰＩリクエストに応答するために、Ｗｉｎｄｏｗｓ（登録商標）ベースのコンピュータのオペレーティングシステムによって実行されるステップを示すフローチャートである。
【図３】本発明のシステムおよび方法が実施されうる典型的なコンピュータを示す図である。
【図４】本発明の原理に合致した処理認証ルーチンによって実行されるステップを示すフローチャートである。
【図５】本発明の原理に合致した、処理認証ルーチンが動作しているコンピュータシステムから独立して処理認証ルーチンが終了されるのを防止するために実行されるステップを示すフローチャートである。
【図１】
2005508059.tif 000003
【図２】
2005508059.tif 000004
【図３】
2005508059.tif 000005
【図４】
2005508059.tif 000006
【図５】
2005508059.tif 000007
【国際公開パンフレット】
2005508059.tif 000008
2005508059.tif 000009
2005508059.tif 000010
2005508059.tif 000011
2005508059.tif 000012
2005508059.tif 000013
2005508059.tif 000014
2005508059.tif 000015
2005508059.tif 000016
2005508059.tif 000017
2005508059.tif 000018
2005508059.tif 000019
2005508059.tif 000020
2005508059.tif 000021
2005508059.tif 000022
2005508059.tif 000023
2005508059.tif 000024
2005508059.tif 000025
2005508059.tif 000026
2005508059.tif 000027
2005508059.tif 000028
2005508059.tif 000029
2005508059.tif 000030
2005508059.tif 000031
2005508059.tif 000032
2005508059.tif 000033
2005508059.tif 000034
2005508059.tif 000035
2005508059.tif 000036
2005508059.tif 000037
2005508059.tif 000038
2005508059.tif 000039
【手続補正書】
【提出日】平成15年3月19日(2003.3.19)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2005508059.tif 000040
【図２】
2005508059.tif 000041
【図３】
2005508059.tif 000042
【図４】
2005508059.tif 000043
【図５】
2005508059.tif 000044
【国際調査報告】
2005508059.tif 000045