(57)【要約】      （修正有）【課題】ユーザ本位のセキュリティ・モデルではなく、アプリケーション本位のセキュリティ・モデルを提供する。【解決手段】アプリケーションを実行する前に、アプリケーションに関連したデジタル署名などの認証情報に基づいてアプリケーションが認証され、続いてアプリケーションに関連したセキュリティ情報が検索される。次に、セキュリティ情報を用いて、アプリケーションに添付されるトークン３００を生成する。セキュリティ情報は、アプリケーションに関連した原則アカウント３０２、グループ・アカウントのリスト３０４、および対応する特権リスト３０６を含むことができる。【選択図】図３
2006024205.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションにセキュリティを提供する方法であって、
前記アプリケーションに関連した認証情報に基づいて前記アプリケーションを認証するステップと、
前記アプリケーションに関連したセキュリティ情報を検索するステップと、
前記セキュリティ情報を含む、前記アプリケーションのためのトークンを生成するステップと
を備えたことを特徴とする方法。
【請求項２】
携帯用コンピューティング装置上で実行するために前記アプリケーションを認証するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記アプリケーションに関連したデジタル署名に基づいて前記アプリケーションを認証するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項４】
前記アプリケーションが実行される携帯用コンピューティング装置によりアクセス可能な証明書ストアに格納されたデジタル証明書を用いて、前記デジタル署名を認証するステップをさらに備えたことを特徴とする請求項３に記載の方法。
【請求項５】
前記セキュリティ情報を検索するステップは、前記アプリケーションがアクセスすることが認証されているリソースを含む特権リストを識別するステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記セキュリティ情報を検索するステップは、前記アプリケーションに関連した原則アカウントを識別するステップを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記セキュリティ情報を検索するステップは、前記アプリケーションに関連したグループ・アカウントのリストを識別するステップを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記トークンを前記アプリケーションに添付するステップと、
前記添付されたトークンを用いて前記アプリケーションを起動するステップと
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項９】
セキュリティ・ローダを用いて前記トークンを添付するステップをさらに備えたことを特徴とする請求項８に記載の方法。
【請求項１０】
別のアプリケーションに対応するセキュリティ情報を含む、前記アプリケーションについての偽装トークンを生成するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項１１】
アカウント・データベースから前記セキュリティ情報を検索するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項１２】
前記アカウント・データベースと共にトークン生成装置を用いて前記トークンを生成するステップをさらに備えたことを特徴とする請求項１１に記載の方法。
【請求項１３】
アプリケーションがリソースにアクセスすることを認証する方法であって、
前記アプリケーションに添付されたトークンを検索するステップと、
前記リソースが前記トークン内の特権リストに含まれるかどうかを決定するステップと、
前記選択されたリソースが前記特権リスト内に含まれる場合には、前記アプリケーションが前記リソースにアクセスすることを認証するステップと
を備えたことを特徴とする方法。
【請求項１４】
前記選択されたリソースが前記特権リスト内に含まれない場合には、前記アプリケーションが前記リソースにアクセスすることを拒否するステップをさらに備えたことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記アプリケーションを実行する前に前記トークンを生成するステップをさらに備えたことを特徴とする請求項１３に記載の方法。
【請求項１６】
前記トークンを生成する前に前記アプリケーションを認証するステップをさらに備えたことを特徴とする請求項１５に記載の方法。
【請求項１７】
アプリケーションがセキュリティ保護されたオブジェクトにアクセスすることを認証する方法であって、
前記アプリケーションに添付されたトークンを検索するステップと、
前記トークン内に列挙された原則アカウントを識別するステップと、
前記セキュリティ保護されたオブジェクトについてのアカウント制御リストが、前記原則アカウントを認証するかどうかを決定するステップと、
前記セキュリティ保護されたオブジェクトについての前記アカウント制御リストが前記原則アカウントを認証する場合には、前記アプリケーションが前記セキュリティ保護されたオブジェクトにアクセスすることを許可するステップと
を備えたことを特徴とする方法。
【請求項１８】
前記セキュリティ保護されたオブジェクトについての前記アカウント制御リストが前記原則アカウントを認証しない場合には、前記アプリケーションがセキュリティ保護されたオブジェクトにアクセスすることを拒否するステップをさらに備えたことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記トークン内に列挙されたグループ・アカウントを識別するステップと、
前記セキュリティ保護されたオブジェクトについての前記アカウント制御リストが前記グループ・アカウントを認証するかどうかを決定するステップと、
前記セキュリティ保護されたオブジェクトについての前記アカウント制御リストが前記グループ・アカウントを認証する場合には、前記アプリケーションがセキュリティ保護されたオブジェクトにアクセスすることを許可するステップと、
前記セキュリティ保護されたオブジェクトについての前記アカウント制御リストが前記グループ・アカウントを認証しない場合には、前記アプリケーションがセキュリティ保護されたオブジェクトにアクセスすることを拒否するステップと
をさらに備えたことを特徴とする請求項１７に記載の方法。
【請求項２０】
前記アプリケーションを実行する前に前記トークンを生成するステップをさらに備えたことを特徴とする請求項１７に記載の方法。
【請求項２１】
前記トークンを生成する前に前記アプリケーションを認証するステップをさらに備えたことを特徴とする請求項２０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、電子セキュリティの分野に関し、より詳細には、アプリケーション本位のセキュリティ・モデルに関する。
【背景技術】
【０００２】
個人および企業が、電子コンピューティングの装置を用いることにさらに依存するようになるに従って、電子アプリケーションおよびそれらのデータにセキュリティを提供する必要性が増える。コンピューティング装置のユーザは、ユーザの私的なデータが他の認証されていない人またはグループに公開されないことを確信する必要がある。さらに、電子サービスのプロバイダも、プロバイダのサービスと共に用いられるアプリケーションが、他のプロバイダからのアプリケーションにより破損されないことを確信する必要がある。こうした破損により、不十分なサービス品質がもたらされるか、またはサービスを提供することが完全にできなくなり、したがって、顧客に迷惑がかかり、サービス・プロバイダの評判が低下する。
【０００３】
これまでのデスクトップ・コンピューティング環境においては、大部分のアプリケーションは、単一の開発者によって提供されるか、または他の開発者からのアプリケーションと共に機能し協働するように特別に設計されるかのいずれかである。例えば、デスクトップ環境において、ワードプロセッサ、スプレッドシート、電子メール・アプリケーション、およびインターネット・ブラウザのような一般的なアプリケーションは、単一の開発者によって設計されることが多い。さらに、たとえ異なる開発者によって設計されたとしても、一般に、デスクトップ・アプリケーションが互いに有効に機能するという相互信頼がある。したがって、一般に、デスクトップのセキュリティ問題は、主に、システム内の信頼できないアプリケーションではなく、システムにアクセスする信頼できないユーザに重点が置かれる。したがって、デスクトップ・セキュリティ・システムは、一般に、ユーザ本位のセキュリティ・モデルを実行するものである。
【０００４】
例示的なデスクトップ・セキュリティ・モデルにおいて、各ユーザまたはユーザのグループは、対応するセキュリティ・アカウントを有する。ユーザがコンピューティング装置またはコンピューティング装置のネットワークにログオンするとき、ユーザは、本人であることを認証するためにパスワードを入力する。次に、そのユーザの対応するアカウントおよび特権を含む、ユーザのためのトークンが生成される。特権は、例えば、システムを停止する、装置ドライバを読み込む、システム時間を変更するといった、種々のシステム関連の操作を行うためのアカウントの権利である。例示的な従来技術のトークン１００が、図１に示される。トークン１００は、ユーザのアカウントを含むユーザ・アカウント・エントリ１０２と、そのユーザがメンバーである全てのグループのアカウントを含むグループ・アカウント・リスト１０４とを含む。トークン１００は、そのユーザに関連した特権の各々を列挙する特権リスト１０６も含む。
【０００５】
トークンを用いて、対応するユーザが、システム内のセキュリティ保護されたオブジェクトにアクセスすることが認証されているかどうかを決定する。具体的には、システム内のセキュリティ保護されたオブジェクトの各々は、セキュリティ保護されたオブジェクトに関する各アカウントのアクセス権を識別する任意のアクセス制御リスト（ＤＡＣＬ）を有する。ＤＡＣＬは、アクセス制御エントリ（ＡＣＥ）と呼ばれる多数のエントリを有し、各々が、特定のアカウントのアクセス権を指定する。例示的な従来技術のＤＡＣＬが、図２に示される。ＤＡＣＬ２１０が、ＡＣＥ２１２−２１６を含む。ユーザ・トークン１００および１０１の両方が、セキュリティ保護されたオブジェクト２００にアクセスしようとしている。ＡＣＥ２１２により示されるように、Ａｎｄｒｅｗは、セキュリティ保護されたオブジェクト２００へのアクセス権を持たないので、ユーザ・トークン１００が、セキュリティ保護されたオブジェクト２００にアクセスすることが拒否された。拒否されたトークン１００のアクセスが、図２に示される点線で表されている。対照的に、ＡＣＥ２１４で示されるように、グループＡはセキュリティ保護されたオブジェクト２００への書き込みアクセス権を有するので、ユーザ・トークン１０１が、セキュリティ保護されたオブジェクト２００にアクセスすることが許可された。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
デスクトップ・コンピュータとは違って、例えば、携帯電話および個人用情報端末（ＰＤＡ）のような携帯用コンピューティング装置は、一般に、多数の異なるサービス・プロバイダからの多数の異なるアプリケーションを含む。例えば、単一の携帯電話は、電話サービス・プロバイダ、ソフトウェア・プロバイダ、および従業員に電話を支給している会社からのアプリケーションを含むことができる。サービス・プロバイダおよび会社は、信頼できないアプリケーションが、ネットワーク上またはその企業システムに接続されている装置上で実行されることが可能になることを懸念する傾向がある。したがって、ユーザ本位のセキュリティ・モデルが、あるアプリケーションおよびそのデータをシステム上で実行している他のアプリケーションから保護するとは限らないので、上述のようなユーザ本位のセキュリティ・モデルが携帯用装置にとって理想的というわけでない。したがって、業界において、効果的なアプリケーション本位のセキュリティ・モデルに対する必要性がある。本発明は、これらのおよび他の必要性を満たすものである。
【課題を解決するための手段】
【０００７】
本発明は、アプリケーションにセキュリティを提供するためのシステムおよび方法に向けられる。アプリケーションを実行する前に、アプリケーションに関連した認証情報に基づいて、アプリケーションが認証される。この認証情報は、例えば、デジタル署名とすることができる。アプリケーションが認証されると、アプリケーションに関連したセキュリティ情報が検索される。セキュリティ情報は、アプリケーションがアクセスすることが認証されているグローバル・リソースを識別する特権リストを含むことができる。セキュリティ情報はまた、アプリケーションに関連した原則アカウントを含むこともできる。セキュリティ情報は、アプリケーションがメンバーであるグループ・アカウントのリストを含むこともできる。識別されると、セキュリティ情報が、アプリケーションのために生成されるトークン内に含められる。次に、アプリケーションが起動され、対応するトークンが添付される。
【０００８】
本発明の態様によると、添付されたトークンを用いて、アプリケーションがシステム上のリソースにアクセスすることが認証されるかどうかを決定する。リソースへのアクセス要求が受信されると、トークン内の特権リストが調べられる。選択されたリソースが特権リスト内に含まれている場合には、アプリケーションが、システム上のリソースにアクセスすることが認証される。
【０００９】
本発明の別の態様によると、添付されたトークンを用いて、アプリケーションが、システム上のセキュリティ保護されたオブジェクトにアクセスすることが認証されているかどうかを決定することができる。オブジェクトにアクセスする要求が受信されると、トークン内で原則アカウントおよびグループ・アカウントのリストが検索される。次に、検索されたアカウントが、オブジェクトについてのアクセス制御リストに対して参照され、そのアプリケーションが、オブジェクトにアクセスすることが認証されているかどうかを決定する。
【００１０】
本発明の追加の特徴および利点が、添付の図面を参照して進むと、例示的実施例の以下の詳細な説明から明らかにされるであろう。
【発明を実施するための最良の形態】
【００１１】
添付の図面に関連して、以下の詳細な説明を読んだ後に、例示的実施例がより良く理解されるであろう。
【００１２】
本発明の主題は、法的要件を満たす限定性を持つものとして説明される。しかしながら、この説明自体は、本発明の範囲を制限するように意図されるものではない。むしろ、発明者らは、現在または将来の他の技術と共にこの文書に記載されたものと類似した異なる動作または要素を含むように、特許請求の主題を他の方法でも具体化できると考えている。
【００１３】
上述のように、本発明は、ユーザ本位のセキュリティ・モデルではなく、アプリケーション本位のセキュリティ・モデルを提供するものである。したがって、本発明は、これらに限られるものではないが、例えば、携帯電話および個人用情報端末（ＰＤＡ）のような携帯用コンピューティング装置の内蔵されたシステムによく適している。こうした装置は、多数の異なるプロバイダからの多数の異なるアプリケーションを特色とする傾向がある。本発明によると、システム内の関係しているアプリケーションの各々には、原則セキュリティ・アカウントが割り当てられる。原則セキュリティ・アカウントは、ユーザ本位のモデルの個人のユーザ・アカウントに類似している。さらに、個人のユーザが多数のグループ・アカウントのメンバーであることができるように、各々のアプリケーションが１つまたはそれ以上のグループ・アカウントのメンバーであることができる。
【００１４】
実行前に、アプリケーションは、アプリケーションに関連した認証情報を用いて認証される。認証されると、アプリケーション・トークンが生成され、アプリケーションに添付される。次に、アプリケーションは、添付されたトークンを用いて起動される。トークンは、アプリケーションの対応するアカウントおよび特権を含むことができる、アプリケーションのセキュリティ情報を有する。アプリケーション本位の文脈において、特権は、例えばネットワークにアクセスする、ディスク・ドライブにアクセスする等といった、グローバル・リソースにアクセスするアプリケーションの権利である。本発明による例示的なアプリケーション・トークン３００が、図３に示される。トークン３００は、アプリケーションの原則アカウントを含む原則アカウント・エントリ３０２と、アプリケーションがメンバーである全てのグループのアカウントを含むグループ・アカウント・リスト３０４とを含む。トークン３００はまた、アカウントに関連した特権の各々を列挙する特権リスト３０６も含む。以下に詳細に説明されるように、トークン３００を用いて、対応するアプリケーションにセキュリティを提供する。
【００１５】
本発明に従ってアプリケーションにセキュリティを提供するための例示的なシステムのブロック図が、図４に示される。一般的に、証明書ストア４１０が、アプリケーションの識別を認証するために用いられる署名権限の証明書を格納する。アカウント・データベース４１２は、アプリケーションのリスト、対応する原則アカウント、グループ・アカウント、および特権を含むことができるセキュリティ情報を格納する。アカウント・データ・サーバ４１４が、アカウント・データベース４１２にインターフェースを提供する。トークン生成装置４１６が、アカウント・データベース４１２に格納されるアプリケーション・セキュリティ情報を含むアプリケーション・トークンを生成する。セキュリティ・ローダ４１８が、トークンを対応するアプリケーションに添付する。
【００１６】
本発明に従ってアプリケーションにセキュリティを提供するための例示的なシステムのブロック図が、図５に示される。ステップ５１０において、アプリケーションを実行するための要求が受信される。ステップ５１２において、アプリケーションを実行する前に、アプリケーションに関連した認証情報に基づいて、アプリケーションの識別が認証される。例えば、アプリケーションは、関連したデジタル署名を有することができる。トークン生成装置４１６は、アプリケーションからデジタル署名を検索することができ、証明書ストア４１０から対応するデジタル署名証明書を検索することもできる。デジタル証明書は、認証された証明書権限からのものであり、デジタル署名を認証するために用いられる。
【００１７】
ステップ５１４において、トークン生成装置４１６が、アプリケーションの対応するセキュリティ情報を検索する。セキュリティ情報は、アカウント・データベース・サーバ４１４を介して、アカウント・データベース４１２から検索することができる。上述のように、セキュリティ情報は、原則アカウント、グループ・アカウントのリスト、および関連した特権のリストを含むことができる。ステップ５１６において、アプリケーション・トークンが生成される。アプリケーション・トークンは、アプリケーションの対応するセキュリティ情報を含む。ステップ５１８において、セキュリティ・ローダ４１８が、アプリケーションにトークンを添付する。ステップ５２０において、アプリケーションが、添付されたトークンを用いて起動される。
【００１８】
理解すべきように、システム内の全てのアプリケーションが特定の対応するトークンを持つ必要はなく、必ずしも図４の方法を用いる必要はない。例えば、実行されているアプリケーションがモジュール・セクション内にある場合には、デフォルト・トークンを生成し、アプリケーションに割り当てることができる。デフォルト・トークンは、例えば、システム・レベルのセキュリティ・グループに対応するグループ・アカウントを含むことができる。
【００１９】
本発明に従ってリソースにアクセスするためにアプリケーションを認証する例示的な方法のフロー図が、図６に示される。ステップ６１０において、アプリケーションがグローバル・リソースにアクセスするための要求が受信される。例えば、アプリケーションが携帯電話上で実行される場合には、アプリケーションは、接続されている電話ネットワークにアクセスしようと試みることができる。ステップ６１２において、アプリケーションの対応するトークンが検索される。
【００２０】
ステップ６１４において、トークン内に含まれる特権リストが調べられ、アプリケーションがアクセスしようとしているリソースを特権リストが列挙しているかどうかを決定する。リソースが特権リスト内に含まれ、アプリケーションがリソースにアクセスすることが認証される場合には、ステップ６１６において、アプリケーションがリソースにアクセスすることが許可される。リソースが特権リスト内に含まれず、アプリケーションがリソースにアクセスすることが認証されない場合には、ステップ６１８において、アプリケーションがリソースにアクセスすることが否定される。
【００２１】
本発明に従ってセキュリティ保護されたオブジェクトにアクセスするためにアプリケーションを認証する例示的な方法のフローチャートが、図７に示される。ステップ７１０において、アプリケーションがセキュリティ保護されたオブジェクトにアクセスするための要求が受信される。例えば、インターネット・ブラウザ・アプリケーションは、セキュリティ保護されたオブジェクトである、保存されたパスワードを含むファイルにアクセスしたいと思う。ステップ７１２において、アプリケーションの対応するトークンが検索される。
【００２２】
ステップ７１４において、トークン内に列挙されたアカウントが識別される。前述のように、トークンは、原則アカウントと、アプリケーションがメンバーであるグループ・アカウントのリストとを含むことができる。ステップ７１６において、トークン内に列挙されたアカウントが、セキュリティ保護されたオブジェクトについてのアクセス制御リストに対して参照され、アカウントが、セキュリティ保護されたオブジェクトにアクセスすることが認証されるかどうかを決定する。セキュリティ保護されたオブジェクトについてのアクセス制御リストは、アクセス制御エントリ（ＡＣＥ）と呼ばれる多数のエントリを有する任意のアクセス制御リスト（ＤＡＣＬ）とすることができ、各々が、特定のアカウントのアクセス権を指定する。
【００２３】
アカウントがアクセス制御リスト内の認証されたアカウントとして参照される場合には、ステップ７１８において、アプリケーションがセキュリティ保護されたオブジェクトにアクセスすることが許可される。アカウントがアクセス制御リスト内の認証されたアカウントとして参照されない場合には、ステップ７２０において、アプリケーションがセキュリティ保護されたオブジェクトにアクセスすることが拒否される。
【００２４】
本発明は、１つのアプリケーションが、別のアプリケーションのセキュリティ証明書を偽装することを可能にできる。この偽装手順は、クライアントがセキュリティ保護されたオブジェクトにアクセスすることを可能にする前に、サーバ・アプリケーションがクライアントのアクセス権を確認しなければならないときに特に有用である。偽装を可能にするために、サーバは、クライアントのセキュリティ証明書を偽装する偽装トークンを生成することができる。図７に関連して上述されたように、偽装トークン内のアカウントが識別され、セキュリティ保護されたオブジェクトのアクセス制御リストに対して参照される。
【００２５】
本発明は、アプリケーション・トークンに対して多数の機能を用いることを可能にすることもできる。こうした機能は、デスクトップ・セキュリティ・システムにおいて生成されたもののような、ユーザ・トークンに対して利用可能な機能のサブセットに類似したものにすることができる。こうした機能は、これらに限られるものではないが、例えば、トークン内のグループ・アカウント情報を変更すること、アクセス・トークンの特権リスト内の選択された特権をイネーブルまたはディスエーブルにすること、および既存のトークンの制限されたバージョンである新しいトークンを作成することを含むことができる。
【００２６】
上記から明らかなように、本発明の種々のシステム、方法、および態様の全てまたは一部を、ハードウェア、ソフトウェア、またはこれら両方の組み合わせで具体化することができる。ソフトウェアで具体化される場合、本発明の方法および装置、或いはその特定の態様または部分を、プログラム・コード（すなわち、命令）の形態で具体化することができる。このプログラム・コードは、制限はしないが、フロッピー(登録商標)・ディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、フラッシュ・メモリ、ハードディスク・ドライブ、または他の機械可読記憶媒体を含む、磁気、電気、または光記憶媒体のようなコンピュータ可読媒体上に格納することができ、プログラム・コードが、コンピュータまたはサーバのような機械に読み込まれ、機械によって実行されるときに、機械が本発明を実施するための装置になる。プログラム・コードを実行するコンピュータは、一般に、プロセッサ、プロセッサによって可読な記憶媒体（揮発性および非揮発性メモリおよび／または記憶素子を含む）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。プログラム・コードは、高レベルの手続き型プログラミング言語またはオブジェクト指向のプログラミング言語で実装することができる。代替的に、プログラム・コードは、アセンブリ言語または機械言語で実装することができる。いずれにせよ、言語は、コンパイラ型言語またはインタープリタ型言語とすることができる。
【００２７】
本発明は、電気配線またはケーブル布線上で、光ファイバを通して、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、インターネット、またはイントラネットを含むネットワーク上で、或いは他の何らかの形態の伝送を介してといった、何らかの伝送媒体上で伝送されるプログラム・コードの形態で具体化することもでき、プログラム・コードがコンピュータのような機械に読み込まれ、機械によって実行されるときに、機械が本発明を実施するための装置になる。
【００２８】
汎用プログラム上に実装されるとき、プログラム・コードは、プロセッサと協働して、特定の論理回路に類似して動作する固有の装置を提供することができる。
【００２９】
さらに、本発明は、コンピュータ・ネットワークの一部として、または分散コンピューティング環境内に配置することができる何らかのコンピュータまたは他のクライアント、若しくはサーバ装置と共に実施することができる。この点において、本発明は、あらゆる数のメモリまたはストレージ・ユニット、並びにあらゆる数のメモリまたはストレージ・ユニットにわたって生じるあらゆる数のアプリケーションおよびプロセスを有する、いずれかのコンピュータ・システムまたは環境に関するものであり、本発明に従ったデータベース・ストア内のオブジェクトの持続性の方法と共に用いることができる。本発明は、遠隔またはローカル・ストレージを有するネットワーク環境或いは分散コンピューティング環境内に配置されたサーバ・コンピュータおよびクライアント・コンピュータを備えた環境に適用することができる。本発明はまた、プログラミング言語の機能、解釈、遠隔またはローカル・サービスと共に情報を生成し、送受信するための実行能力を有する独立型コンピューティング装置に適用することもできる。
【００３０】
分散コンピューティングは、コンピューティング装置とシステムとの間のやり取りによって、コンピュータ・リソースおよびサービスの共有を容易にする。これらのリソースおよびサービスは、これらに限られるものではないが、情報のやり取り、キャッシュ・ストレージ、およびファイルのためのディスク・ストレージを含む。分散コンピューティングは、ネットワーク接続を利用し、クライアントが、企業全体に役立つために、その全体的パワーを活用することを可能にする。この点で、種々の装置が、本発明のオブジェクトの持続性の方法と共に実行される処理に関与できるアプリケーション、オブジェクト、またはリソースを有することができる。
【００３１】
図８は、例示的なネットワーク環境または分散コンピューティング環境の概略図である。分散コンピューティング環境は、コンピューティング・オブジェクト１０ａ、１０ｂ等とコンピューティング・オブジェクトまたは装置１１０ａ、１１０ｂ、１１０ｃ等とからなる。これらのオブジェクトは、プログラム、方法、データ・ストア、プログラム可能な論理などを含むことができる。これらのオブジェクトは、ＰＤＡ、テレビ、ＭＰ３プレーヤ、パーソナル・コンピュータ等といった、同じまたは異なる装置の一部を含むことができる。各々のオブジェクトは、通信ネットワーク１４によって別のオブジェクトと通信することができる。このネットワーク自体は、図８のシステムにサービスを提供する他のコンピューティング・オブジェクトおよびコンピューティング装置を含むことができ、多数の相互接続されたネットワークを表すことができる。本発明の態様によると、各々のオブジェクト１０ａ、１０ｂ等、または１１０ａ、１１０ｂ、１１０ｃ等は、ＡＰＩ、または他のオブジェクト、ソフトウェア、ファームウェア、および／またはハードウェアを利用できるアプリケーションを含み、本発明のオブジェクトの持続性の方法を実施するために用いられるプロセスの使用を要求することができる。
【００３２】
１１０ｃのようなオブジェクトが、別のコンピューティング装置１０ａ、１０ｂ等または１１０ａ、１１０ｂ等上で、ホストとして扱われることができることも理解できる。したがって、示される物理的環境は、コンピュータのような接続された装置を示すが、こうした例図は例示的なものにすぎず、代替的に、物理的環境は、ＰＤＡ、テレビ、ＭＰ３プレーヤ等、インターフェースのようなソフトウェア・オブジェクト、ＣＯＭオブジェクトなどの種々のデジタル装置を含むものとして示すかまたは記載することができる。
【００３３】
分散コンピューティング環境をサポートする種々のシステム、コンポーネント、およびネットワーク構成がある。例えば、コンピューティング・システムは、有線または無線システムによって、ローカル・ネットワークまたは広く分散されたネットワークによって、互いに接続することができる。現在のところ、多くのネットワークが、広く分散されたコンピューティングのためのインフラストラクチャを提供し、多くの異なるネットワークを含むインターネットに接続されている。インフラストラクチャのいずれも、本発明に付随された例示的な通信のために用いることができる。
【００３４】
インターネットは、通例、コンピュータ・ネットワーキング技術分野において公知の、プロトコルのＴＣＰ／ＩＰスイートを利用するネットワークおよびゲートウェイの集合を参照する。ＴＣＰ／ＩＰは、「Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ」の頭文字である。インターネットは、ユーザが、ネットワーク上で対話し、情報を共有するのを可能にするネットワーキング・プロトコルを実行するコンピュータによって相互接続される、地理的に分散された遠隔コンピュータ・ネットワークのシステムとして説明することができる。したがって、こうした広範囲の情報共有のために、インターネットのような遠隔ネットワークは、開発者が、本質的に制限はしないが特化された動作またはサービスを実行するようにソフトウェア・アプリケーションを設計できるオープンシステムへと大きく発展した。
【００３５】
このように、ネットワーク・インフラストラクチャは、クライアント／サーバ、ピア・ツー・ピア、またはハイブリッド・アーキテクチャのようなネットワーク・トポロジーのホストを可能にする。「クライアント」は、関連していない別のクラスまたはグループのサービスを利用するクラスまたはグループのメンバーである。したがって、コンピューティングにおいて、クライアントは、別のプログラムによって提供されるサービスを要求するプロセス、すなわち大ざっぱに言って命令またはタスクの組である。クライアント・プロセスは、他のプログラムまたはサービス自体についての作業の詳細を「知る」必要なく、要求されたサービスを利用することができる。クライアント／サーバ・アーキテクチャ、特にネットワーク・システムにおいて、クライアントは、通常、例えばサーバのような別のコンピュータによって提供される共有ネットワーク・リソースにアクセスするコンピュータである。状況次第で、コンピュータをクライアント、サーバ、またはその両方と考えることもできるが、図８の例においては、コンピュータ１１０ａ、１１０ｂ等は、クライアントと考えることができ、コンピュータ１０ａ、１０ｂ等は、サーバと考えることができる。これらのコンピューティング装置のいずれも、本発明のオブジェクトの持続性の技術に関係する方法における処理データとすることができる。
【００３６】
サーバは、典型的には、インターネットのような遠隔またはローカル・ネットワーク上でアクセス可能な遠隔コンピュータ・システムである。クライアント・プロセスは、第１のコンピュータ・システムにおいてアクティブであり、サーバ・プロセスは第２のコンピュータ・システムにおいてアクティブであり、通信媒体上で互いに通信し、よって分散機能が与えられ、多数のクライアントがサーバの情報収集能力を利用することが可能になる。本発明の持続性の機構に従って利用されるいずれのソフトウェア・オブジェクトも、多数のコンピューティング装置にわたって分散させることができる。
【００３７】
クライアントおよびサーバは、プロトコルレイヤによって与えられる機能を用いて互いに通信することができる。ハイパーテキスト転送プロトコル（ＨＴＴＰ）は、ワールド・ワイド・ウェブ（ＷＷＷ）または「ウェブ」と共に用いられる一般的なプロトコルである。一般的には、インターネット・プロトコル（ＩＰ）アドレスのようなコンピュータ・ネットワーク・アドレスまたはユニバーサル・リソース・ロケータ（ＵＲＬ）のような他の参照を用いて、サーバまたはクライアント・コンピュータを互いに識別することができる。ネットワーク・アドレスは、ＵＲＬアドレスと呼ぶことができる。何らかの利用可能な通信媒体上で通信を提供することができる。
【００３８】
このように、図８は、本発明を用いることができる、サーバがネットワーク／バスを介してクライアント・コンピュータと通信状態にある、例示的なネットワークまたは分散環境を示す。ネットワーク／バス１４は、ＬＡＮ、ＷＡＮ、インターネット、或いは、携帯用コンピュータ、手持ち式コンピュータ、小型軽量クライアント、ネットワーク・アプライアンス、若しくはＶＣＲ、ＴＶ、オーブン、照明、加熱器等のような本発明による他の装置といった、多数のクライアントまたは遠隔コンピューティング装置１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅ等を有する何らかの他のネットワーク媒体とすることができる。このように、本発明は、持続性のオブジェクトを維持することが望ましいあらゆるコンピューティング装置に適用できると考えられる。
【００３９】
例えば、通信ネットワーク／バス１４がインターネットであるネットワーク環境において、サーバ１０ａ、１０ｂ等は、クライアント１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅ等が、ＨＴＴＰのような多数の周知のプロトコルのいずれかを介して通信するサーバとすることができる。分散コンピューティング環境の特性に応じて、サーバ１０ａ、１０ｂ等は、クライアント１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅ等として扱われることもできる。
【００４０】
通信は、必要に応じて、有線にすることも無線にすることもできる。クライアント装置１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅ等は、通信ネットワーク／バス１４を介して通信することもしないこともあり、これと関連した独立の通信を有することができる。例えば、ＴＶまたはＶＣＲの場合には、その制御のためのネットワーク態様があることもないこともある。各々のクライアント・コンピュータ１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅ等およびサーバ・コンピュータ１０ａ、１０ｂ等には、種々のアプリケーション・プログラム・モジュールまたはオブジェクト１３５、およびファイルまたはデータ・ストリームを格納することができ、或いはファイルまたはデータ・ストリームの一部をダウンロードし、伝送し、またはマイグレートすることができる種々のタイプの記憶素子またはオブジェクトが搭載され得る。いずれのコンピュータ１０ａ、１０ｂ、１１０ａ、１１０ｂ等も、本発明に従って処理されたデータを格納するためのデータベース、メモリ、または他の記憶素子２０の維持および更新を担当することができる。このように、本発明は、コンピュータ・ネットワーク／バス１４にアクセスし、コンピュータ・ネットワーク／バス１４と対話できるクライアント・コンピュータ１１０ａ、１１０ｂ等と、クライアント・コンピュータ１１０ａ、１１０ｂ等および他の同様の装置と対話できるサーバ・コンピュータ１０ａ、１０ｂ等と、データベース２０とを有するコンピュータ・ネットワーク環境に用いることができる。
【００４１】
図８および以下の説明は、本発明を実施することができる適切なコンピューティング装置の簡単な一般的説明を提供するように意図される。例えば、図８に示されるクライアントおよびサーバ・コンピュータまたは装置のいずれもこの形態を取ることができる。しかしながら、手持ち式、携帯型、および他のコンピューティング装置、並びに全ての種類のコンピューティング・オブジェクトを、本発明と共に使用できると考えられる、すなわちコンピューティング環境において、どこででもデータを生成し、処理し、受信し、および／または伝送できることを理解すべきである。汎用コンピュータが以下に説明されるが、これは一例にすぎず、本発明は、ネットワーク／バスの相互運用性および対話性を有する小型軽量クライアントを用いて実施することができる。このように、本発明は、非常にわずかなまたは最小のクライアント・リソースが関係しているネットワーク化されたホスト・サービスの環境、例えば、クライアント装置のサーバが、アプライアンス内に配置されたオブジェクトのようなネットワーク／バスへのインターフェースとしてだけ扱われるネットワーク化された環境において、実施することができる。本質的に、データを格納できる、或いはデータを検索しまたは別のコンピュータに伝送することができるあらゆる場所が、本発明のオブジェクトの持続性の方法の動作に望ましいまたは適した環境である。
【００４２】
必須ではないが、本発明は、装置またはオブジェクトについてのサービスの開発者が使用するための、および/または保安により動作するアプリケーションまたはサーバ・ソフトウェア内に含まれるオペレーティング・システムを介して実施することができる。ソフトウェアは、クライアント・ワークステーション、サーバ、または他の装置のような１つまたはそれ以上のコンピュータによって実行される、プログラム・モジュールといったコンピュータにより実行可能な命令との一般的な関連において説明することができる。一般的に、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。典型的には、種々の実施形態において、プログラム・モジュールの機能を所望のように組み合わせるか、または分散させることができる。さらに、本発明は、他のコンピュータ・システム構成およびプロトコルと共に実施することができる。本発明と共に用いるのに適した他の公知のコンピューティング・システム、環境、および／または構成は、これらに限られるものではないが、パーソナル・コンピュータ（ＰＣ）、現金自動預け払い機、サーバ・コンピュータ、手持ち式またはラップトップ型装置、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、プログラム可能な家庭用電化製品、ネットワークＰＣ、アプライアンス、照明、環境制御の素子、小型コンピュータ、大型コンピュータなどを含む。
【００４３】
図９は、このように、本発明を実施することができる適切なコンピューティング・システム環境１００の例を示すものであるが、上記に明らかにされているように、コンピューティング・システム環境１００は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲を制限するものとして提案することを意図するものではない。コンピューティング環境１００は、例示的なオペレーティング環境１００に示されるコンポーネントのいずれか１つまたは組み合わせに関して、何らかの依存または要件を有するものとして解釈されるべきではない。
【００４４】
図９を参照すると、本発明を実施するための例示的なシステムが、コンピュータ１１０の形態の汎用コンピューティング装置を含む。コンピュータ１１０のコンポーネントは、これらに限られるものではないが、処理ユニット１２０、システム・メモリ１３０、およびシステム・メモリを含む種々のシステム・コンポーネントを処理ユニット１２０に結合させるシステム・バス１２１を含むことができる。システム・バス１２１は、メモリ・バスまたはメモリ・コントローラ、周辺バス、および種々のバス・アーキテクチャのいずれかを用いるローカル・バスを含むバス構造の幾つかのタイプのいずれかにすることができる。例として、制限はしないが、こうしたアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、およびＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バス（メザニン・バスとしても知られている）を含む。
【００４５】
コンピュータ１１０は、典型的には、種々のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスできる何らかの使用可能媒体とすることができ、揮発性および非揮発性媒体、取り外し可能および固定媒体の両方を含む。例として、制限はしないが、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータのような情報の保管のための、何らかの方法または技術で実装される揮発性および非揮発性、取り外し可能および固定媒体の両方を含む。コンピュータ記憶媒体は、これらに限られるものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリまたは他のメモリ技術、ＣＤＲＯＭ、デジタル多目的ディスク（ＤＶＤ）または他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶装置、或いは所望の情報を格納するために用いることができ、コンピュータ１１０によってアクセスできる他の何らかの媒体を含む。通信媒体は、典型的には、コンピュータ可読命令、データ構造、プログラム・モジュール、または搬送波のような変調されたデータ信号の他のデータ、或いは他の転送機構を具体化し、何らかの情報伝達媒体を含む。「変調されたデータ信号」という用語は、特性の１つまたはそれ以上が、信号内の情報をエンコードするような方法で設定または変更された信号を意味する。例として、制限はしないが、通信媒体は、有線ネットワークまたは直接有線接続のような有線媒体、および音響、ＲＦ、赤外線、および他の無線媒体のような無線媒体を含む。上記のいずれの組み合わせも、コンピュータ可読媒体の範囲内に含めるべきである。
【００４６】
システム・メモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１およびランダム・アクセス・メモリ（ＲＡＭ）１３２のような揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時のようなコンピュータ１１０内の素子間の情報の転送を助ける基本ルーチンを含む、基本入力／出力システム１３３（ＢＩＯＳ）が、一般的に、ＲＯＭ１３１に格納される。ＲＡＭ１３２は、一般的に、直ちにアクセス可能なおよび／または処理ユニット１２０によって現在動作しているデータおよび／またはプログラム・モジュールを含む。例として、制限はしないが、図９は、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６、およびプログラム・データ１３７を含む。
【００４７】
コンピュータ１１０はまた、他の取り外し可能／固定の揮発性／不揮発性のコンピュータ記憶媒体を含むこともできる。単なる例として、図８は、固定の非揮発性の磁気媒体から読み取るかまたはこれに書き込むハードディスク・ドライブ１４１、取り外し可能な非揮発性の磁気ディスク１５２から読み取るかまたはこれに書き込む磁気ディスク・ドライブ１５１、およびＣＤ−ＲＷ、ＤＶＤ−ＲＷまたは他の光媒体のような取り外し可能な非揮発性の光ディスク１５６から読み取るかまたはこれに書き込む光ディスク・ドライブ１５５を示す。例示的なオペレーティング環境に用いることができる他の取り外し可能／固定の、揮発性／不揮発性のコンピュータ記憶媒体は、これらに限られるものではないが、磁気テープ・カセット、フラッシュ・メモリ・カード、デジタル多目的ディスク、デジタル・ビデオ・テープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどを含む。ハードディスク・ドライブ１４１は、典型的には、インターフェース１４０のような固定のメモリ・インターフェースを介して、システム・バス１２１に接続され、磁気ディスク・ドライブ１５１および光ディスク・ドライブ１５５は、典型的には、インターフェース１５０のような取り外し可能なメモリ・インターフェースによってシステム・バス１２１に接続される。
【００４８】
上述され、図９に示されるドライブおよび関連したコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、およびコンピュータ１１０のための他のデータの保存を提供する。図９において、例えば、ハードディスク・ドライブ１４１が、オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６、およびプログラム・データ１４７を格納するものとして示される。これらのコンポーネントは、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６、およびプログラム・データ１３７と同じにすることも、異なるものにすることもできることに注意されたい。オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６、およびプログラム・データ１４７は、少なくともこれらが異なるコピーであることを示すように、ここでは異なる番号が付されている。ユーザは、キーボード１６２のような入力装置、およびマウス、トラックボール、またはタッチ・パッドのような位置指示装置１６１を介して、コマンドおよび情報をコンピュータ１１０に入力することができる。他の入力装置（図示せず）は、マイクロフォン、ジョイスティック、ゲームバッド、衛星放送受信アンテナ、スキャナなどを含むことができる。これらのおよび他の入力装置は、システム・バス１２１に結合されるユーザ入力インターフェース１６０を介して、処理ユニット１２０に接続されることが多いが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス（ＵＳＢ）のような他のインターフェースおよびバス構造によって接続することもできる。グラフィックス・インターフェース１８２をシステム・バス１２１に接続することもできる。１つまたはそれ以上のグラフィックス処理ユニット（ＧＰＵ）１８４が、グラフィックス・インターフェース１８２と通信できる。モニタ１９１または他のタイプの表示装置も、ビデオ・インターフェース１９０のようなインターフェースを介してシステム・バス１２１に接続され、ビデオ・メモリ１８６と通信できるようになる。モニタ１９１に加えて、コンピュータはまた、出力周辺インターフェース１９５を通して接続することができるスピーカ１９７およびプリンタ１９６のような他の周辺出力装置を含むこともできる。
【００４９】
コンピュータ１１０は、遠隔コンピューティング１８０のような１つまたはそれ以上の遠隔コンピュータへの論理接続を用いて、ネットワークまたは分散環境内で動作することができる。遠隔コンピュータ１８０は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、または他の共通ネットワーク・ノードとすることができ、図９にはメモリ記憶装置１８１だけが示されているが、典型的には、コンピュータ１１０に関して上述された素子の多くまたは全てを含む。図９に示される論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）１７１およびワイド・エリア・ネットワーク（ＷＡＮ）１７３を含むが、他のネットワーク／バスを含むこともできる。こうしたネットワーク環境は、家庭、事務所、企業全体のコンピュータ・ネットワーク、イントラネット、およびインターネット内に普及している。
【００５０】
ＬＡＮネットワーク環境に用いられるとき、コンピュータ１１０は、ネットワーク・インターフェースまたはアダプタ１７０を通してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境に用いられるとき、コンピュータ１１０は、典型的には、モデム１７２、またはインターネットのようなＷＡＮ１７３上で通信を確立するための他の手段を含む。内蔵式にも外付け式にもすることができるモデム１７２は、ユーザ入力インターフェース１６０または他の適切な機構を介して、システム・バス１２１に接続することができる。ネットワーク環境において、コンピュータ１１０またはその一部に関して示されるプログラム・モジュールは、遠隔メモリ記憶装置に格納することができる。例として、制限はしないが、図９は、メモリ装置１８１上に常駐するものとして遠隔アプリケーション・プログラム１８５を示す。図示されるネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を用い得ることが理解されるであろう。
【００５１】
（結論）
このように、アプリケーションにセキュリティを提供するためのシステムおよび方法が開示された。アプリケーションが認証され、アプリケーションと関連したセキュリティ情報が検索される。次に、セキュリティ情報を用いて、アプリケーションに添付されるトークンを生成する。セキュリティ情報は、原則アカウント、グループ・アカウントのリスト、および対応する特権リストを含むことができる。
【００５２】
本発明が種々の図の好ましい実施例と併せて説明されたが、他の類似した実施例を用いることができること、或いは本発明から逸脱することなく本発明の同じ機能を実行するために、説明した実施例に修正および追加をなし得ることを理解すべきである。したがって、本発明は、いずれかの単一の実施例に制限されるべきではなく、むしろ、添付の特許請求の範囲に従った広がりおよび範囲において解釈すべきである。
【図面の簡単な説明】
【００５３】
【図１】従来技術のユーザ・トークンを示す図である。
【図２】従来技術の自由裁量のアクセス制御リストを示す図である。
【図３】本発明のとおりに例示的されたアプリケーション・トークンを示す図である。
【図４】本発明のとおりに、アプリケーションにセキュリティを提供する例示的システムのブロック図である。
【図５】本発明のとおりに、アプリケーションにセキュリティを提供する例示的フローチャートである。
【図６】本発明のとおりに、アプリケーションがリソースにアクセスすることを認証する例示的方法のフローチャートである。
【図７】本発明のとおりに、アプリケーションがセキュリティ保護されたオブジェクトにアクセスすることを認証する例示的方法のフローチャートである。
【図８】本発明を実装することができる種々のコンピューティング装置を有する例示的ネットワーク環境を表すブロック図である。
【図９】本発明を実装することができる例示的コンピューティング装置を例示的に表すブロック図である。
【符号の説明】
【００５４】
１０ａ、１０ｂ、１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅ：コンピューティング・オブジェクト
１４：ネットワーク／バス
２０：データベース
１２１：システム・バス
２００：セキュリティ保護されたオブジェクト
３００：トークン
３０２：原則アカウント・エントリ
３０４：グループ・アカウント・リスト
３０６：特権リスト
【図１】
2006024205.tif 000003
【図２】
2006024205.tif 000004
【図３】
2006024205.tif 000005
【図４】
2006024205.tif 000006
【図５】
2006024205.tif 000007
【図６】
2006024205.tif 000008
【図７】
2006024205.tif 000009
【図８】
2006024205.tif 000010
【図９】
2006024205.tif 000011
【外国語明細書】
2006024205000001.pdf