(57)【要約】【課題】【解決手段】計算機能へのアクセスを制御する方法であって、識別値（１３０）を有する１次記述子（１３２）を提供され、１次記述子と機能インジケータ（１３６）とを関連付けている実行システム（１００）による実行用の計算リソース（１２０）を準備し、識別値を有し、計算リソース（１２０）に暗号化により割り当てられた２次記述子（１３８）にアクセスし、機能インジケータ（１３６）を基に計算リソースに対して実行システムの計算機能（５５０，５１０ａ）へのアクセスを許可することを含む。【選択図】  図１Ａ
2013516004.tif 000002
【特許請求の範囲】
【請求項１】
計算機能へのアクセスを制御する方法であって、
実行システムによる実行用の計算リソースを準備することであって、前記実行システムは、識別値を有する１次記述子が設けられ、機能インジケータを前記１次記述子と関連付けていることと、
前記識別値を有する２次記述子にアクセスすることであって、前記２次記述子は前記計算リソースに暗号化により割り当てられていることと、
前記機能インジケータに基づいて、前記計算リソースに対して前記実行システムの計算機能へのアクセスを許可することと、
を備える、方法。
【請求項２】
前記計算リソースは暗号化されている、請求項１に記載の方法。
【請求項３】
前記２次記述子の計算リソースへの暗号化による割り当ては、前記リソースを前記２次記述子と組み合わせることと、前記組み合わせに暗号化により署名することとを含む、請求項１に記載の方法。
【請求項４】
前記組み合わせへの暗号化による署名は、前記１次記述子に割り当てられた秘密暗号化鍵を用いて前記組み合わせから導出された値を暗号化することを含む、請求項３に記載の方法。
【請求項５】
前記計算リソースの実行中に、前記計算リソースに暗号化により割り当てられた前記２次記述子を検証することをさらに備える、請求項１に記載の方法。
【請求項６】
前記２次記述子の検証は、前記１次記述子に割り当てられた公開暗号化鍵を用いて、前記計算リソースと前記２次記述子との組み合わせから導出された値を復号化することを含む、請求項５に記載の方法。
【請求項７】
前記計算リソースの実行前に前記２次記述子の第１のインスタンスを生成することと、
前記計算リソースの実行前に前記２次記述子の第２のインスタンスを生成することと、
前記記述子の前記２つのインスタンスを比較して、前記計算リソースの実行が許可されているかを判定することと、
をさらに備える、請求項１に記載の方法。
【請求項８】
前記２次記述子の前記第１のインスタンスを暗号化することをさらに備える、請求項７記載の方法。
【請求項９】
前記２次記述子の前記第２のインスタンスを暗号化することをさらに備える、請求項８に記載の方法。
【請求項１０】
前記２次記述子の前記第１のインスタンスは、前記２次記述子の前記第２のインスタンスと共通する第１データ値と、前記２次記述子の前記第２のインスタンスと共通ではない第２データ値とを有する、請求項７に記載の方法。
【請求項１１】
前記計算リソースと前記２次記述子の前記第１のインスタンスに対して、前記計算リソースを実行する命令を含むインナーコンテナを割り当てることと、
前記インナーコンテナと前記２次記述子の前記第２のインスタンスに対して、前記計算リソースを実行する前記命令をデータとして表すアウターコンテナを割り当てることと
をさらに備える、請求項７に記載の方法。
【請求項１２】
前記アウターコンテナに暗号化により署名することをさらに備える、請求項１１に記載の方法。
【請求項１３】
前記計算リソースから命令を受け付けて第２の計算リソースにアクセスすることと、
システム上で前記第２の計算リソースを実行することと、
前記２次記述子を前記第２の計算リソースに暗号化により割り当てることと、
前記機能インジケータに基づいて、計算機能へのアクセスを前記実行された第２の計算リソースに提供することと、
をさらに備える、請求項１に記載の方法。
【請求項１４】
前記第２の計算リソースは、前記第１の計算リソースが実行を終了した後に、実行を継続する、請求項１３に記載の方法。
【請求項１５】
前記計算リソースは第１のシステム上で実行され、前記第２の計算リソースは第２のシステム上で実行される、請求項１３に記載の方法。
【請求項１６】
前記２次記述子を前記第２の計算リソースに暗号化により割り当てることは、前記２次記述子のインスタンスを含む記憶場所にアクセスすることを含む、請求項１３に記載の方法。
【請求項１７】
第２の識別値を有する第２の２次記述子に暗号化により割り当てられた第２の計算リソースにアクセスすることと、
前記第２の計算リソースを実行することと、
第２の識別値を有する第２の１次記述子に暗号化により割り当てられた第２の機能インジケータにアクセスすることと、
前記実行された第２の計算リソースに、前記第２の機能インジケータに基づいて計算機能へのアクセスを提供することと
をさらに備える、請求項１に記載の方法。
【請求項１８】
計算機能へのアクセスを制御するシステムであって、
識別値を有する１次記述子の提供を含む実行用の計算リソースを準備するよう構成された開発コンピュータ・システムと、
前記計算リソースを実行するよう構成された実行コンピュータ・システムと、を備え、前記実行は、
前記１次記述子と機能インジケータとを関連付けることと、
前記識別値を有する２次記述子にアクセスすることであって、前記２次記述子は前記計算リソースに暗号化により割り当てられていることと、
前記機能インジケータに基づいて前記計算リソースに対して前記実行システムの計算機能へのアクセスを許可することと、を備える、システム。
【請求項１９】
計算機能へのアクセスを制御するシステムであって、
識別値を有する１次記述子の提供を含む実行用の計算リソースを準備する手段と、
前記計算リソースを実行する手段と、を備え、前記実行は、
機能インジケータを前記１次記述子と関連付けることと、
前記識別値を有する２次記述子にアクセスすることであって、前記２次記述子は前記計算リソースに暗号化により割り当てられていることと、
前記機能インジケータに基づいて前記計算リソースに対して計算機能へのアクセスを許可することと、を備える、システム。
【請求項２０】
計算機能へのアクセスを制御するためのコンピュータ・プログラムを記憶するコンピュータ可読媒体であって、前記コンピュータ・プログラムは、
実行システムによる実行用の計算リソースを準備することであって、前記実行システムは、識別値を有する１次記述子を提供され、機能インジケータを前記１次記述子と関連付けていることと、
前記識別値を有する２次記述子にアクセスすることであって、前記２次記述子は、前記計算リソースに暗号化により割り当てられていることと、
前記機能インジケータに基づいて前記計算リソースに対して前記実行システムの計算機能へのアクセスを許可することと、
をコンピュータに実行させるための命令を含む、コンピュータ・プログラムを記憶するコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算リソースの安全な実行に関する。
【背景技術】
【０００２】
コンピュータソフトウェア等の計算リソースのベンダ(vendor)は、これらのリソースを第三者に供給する際にリスクを負う。ベンダは、計算リソースの特定の要素へのアクセスを制限しようとする場合がある。場合によっては、あるグループには特定の要素へのアクセスを認めるが、別のグループについてはアクセスを拒否することがある。一方では、リソースの特定の側面は、すべてのグループに分かりにくくすべき場合がある。悪意のある行為者(actor)がリソース上で加えられた制限を免れようと試みる場合もある。
【発明の概要】
【課題を解決するための手段】
【０００３】
一態様では、概して、計算機能（computational feature：計算フィーチャ）へのアクセスを制御する方法であって、識別値を有する１次記述子が設けられ、かつ、機能インジケータ（feature indicator：フィーチャインジケータ）を１次記述子と関連付けている実行システムによる実行用の計算リソースを準備することと、前記識別値を有し、かつ、暗号化して前記計算リソースに割り当てられた２次記述子にアクセスすることと、前記機能インジケータを基に前記計算リソースに対して前記実行システムの計算機能へのアクセスを許可することとを備える。
【０００４】
諸態様は以下の特徴のうちの１つ又は複数を含むことができる。
【０００５】
計算リソースが暗号化されている。
【０００６】
暗号化して２次記述子の計算リソースへ割り当てることは、リソースを２次記述子と組み合わせて、暗号化して組み合わせに署名することを含む。
【０００７】
暗号化して組み合わせへ署名することは、１次記述子に割り当てられた秘密暗号化鍵を用いて組み合わせから導出された値を暗号化することを含む。
【０００８】
この方法は、計算リソースの実行中に、計算リソースに暗号化により割り当てられた２次記述子を検証することをさらに含む。
【０００９】
２次記述子を検証することは、１次記述子に割り当てられた公開暗号化鍵を用いて、計算リソースと２次記述子との組み合わせから導出された値を復号化することを備える。
【００１０】
この方法は、計算リソースの実行前に２次記述子の第１のインスタンスを生成することと、計算リソースの実行前に２次記述子の第２のインスタンスを生成することと、記述子の２つのインスタンスを比較して、計算リソースの実行が許可されているかどうかを判断することとをさらに備える。
【００１１】
この方法は、２次記述子の第１のインスタンスを暗号化することをさらに備える。
【００１２】
この方法は、２次記述子の第２のインスタンスを暗号化することをさらに備える。
【００１３】
２次記述子の第１のインスタンスは、２次記述子の第２のインスタンスと共通して第１データ値と、２次記述子の第２のインスタンスと共通せず第２データ値とを有する。
【００１４】
この方法は、計算リソースと２次記述子の第１のインスタンスに、計算リソースを実行する命令を含むインナーコンテナを割り当てることと、インナーコンテナと２次記述子の第２のインスタンスに、計算リソースを実行する命令をデータとして表すアウターコンテナを割り当てることとをさらに備える。
【００１５】
この方法は、アウターコンテナに暗号化により署名することをさらに備える。
【００１６】
この方法は、計算リソースから第２の計算リソースへアクセスする命令を受け付けることと、システム上で第２の計算リソースを実行することと、２次記述子を第２の計算リソースに暗号化により割り当てることと、機能インジケータに基づいて、計算機能へのアクセスを第２の実行された計算リソースに提供することとをさらに備える。
【００１７】
第２の計算リソースは、第１の計算リソースが実行を終了した後に、実行を継続する。
【００１８】
計算リソースは第１のシステム上で実行され、第２の計算リソースは第２のシステム上で実行される。
【００１９】
２次記述子を第２の計算リソースに暗号化により割り当てることは、２次記述子のインスタンスを含む記憶場所にアクセスすることを含む。
【００２０】
この方法は、第２の識別値を有する第２の２次記述子に暗号化により割り当てられた第２の計算リソースにアクセスすることと、第２の計算リソースを実行することと、第２の識別値を有する第２の１次記述子に暗号化により割り当てられた第２の機能インジケータにアクセスすることと、実行された第２の計算リソースに、第２の機能インジケータに基づいて計算機能へのアクセスを提供することとをさらに備える。
【００２１】
他の態様では、概して、計算機能へのアクセスを制御するシステムは、識別値を有する１次記述子の提供を含む実行用の計算リソースを準備するよう構成された開発コンピュータ・システムと、計算リソースを実行するよう構成された実行コンピュータ・システムとを備える。前記計算リソースの実行は、機能インジケータを１次記述子と関連付けることと、識別値を有し、かつ、計算リソースに暗号化により割り当てられた２次記述子にアクセスすることと、機能インジケータを基に計算リソースに対して実行システムの計算機能へのアクセスを許可することとを備える。
【００２２】
他の態様では、概して、計算機能へのアクセスを制御するシステムは、識別値を有する１次記述子の提供を含む実行用の計算リソースを準備する手段と、計算リソースを実行する手段とを備える。前記計算リソースの実行は、機能インジケータを１次記述子と関連付けることと、識別値を有し、かつ、計算リソースに暗号化により割り当てられた２次記述子にアクセスすることと、機能インジケータを基に計算リソースに対して計算機能へのアクセスを許可することとを備える。
【００２３】
他の態様では、概して、コンピュータ可読媒体は、計算機能へのアクセスを制御するためのコンピュータ・プログラムを記憶する。コンピュータ・プログラムは、コンピュータに、識別値を有する１次記述子が提供され、かつ、機能インジケータを１次記述子と関連付けている実行システムによる実行用の計算リソースを準備させ、識別値を有し、かつ、計算リソースに暗号化により割り当てられた２次記述子にアクセスさせ、機能インジケータを基に計算リソースに対して実行システムの計算機能へのアクセスを許可させる命令を備える。
【００２４】
諸態様は以下の利点のうちの１つ又は複数を有することができる。
【００２５】
計算リソースに記述子を暗号化により割り当てることにより、許可なく割り当てを変更することが出来ない。記述子に割り当てられた機能インジケータを基に計算機能へのアクセスを提供することにより、許可なく計算機能にアクセスすることが出来ない。
【００２６】
本発明の他の特徴及び利点は、以下の説明及び特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【００２７】
【図１Ａ】実行システム及び関連するコンポーネントの概略図である。
【図１Ｂ】実行システム及び関連するコンポーネントの概略図である。
【図２Ａ】データフロー・グラフのブロック図である。
【図２Ｂ】実行システムのブロック図である。
【図３Ａ】鍵コンテナのブロック図である。
【図３Ｂ】コンポーネントコンテナのブロック図である。
【図４Ａ】ブランドトークンを生成するための実行システムの一部を示す図である。
【図４Ｂ】実行スクリプトを生成するための実行システムの一部を示す図である。
【図４Ｃ】スクリプトコンテナを生成するための実行システムの一部を示す図である。
【図５Ａ】スクリプトコンテナにアクセスするための実行システムの一部を示す図である。
【図５Ｂ】実行スクリプトにアクセスするための実行システムの一部を示す図である。
【図５Ｃ】機能をイネーブル及びディスエーブルするための実行システムの一部を示す図である。
【図６Ａ】別のブランドトークンを生成するための実行システムの一部を示す図である。
【図６Ｂ】別のブランドトークンにアクセスするための実行システムの一部を示す図である。
【図７】ブランドを割り当てる手続きを示すフローチャートである。
【図８】機能インジケータを割り当てる手続きを示すフローチャートである。
【図９】実行可能コンポーネントを実行するための手続きを示すフローチャートである。
【図１０】機能へのアクセスを提供する手続きを示すフローチャートである。
【発明を実施するための形態】
【００２８】
１  概要
計算リソースを計算システム上で実行する際、そのリソースは、特定の方法で動作し、計算システム上の特定の機能にアクセスする。このリソースを実行している悪意のある行為者は、このリソースの供給元や権限者(authority)によって実行に課せられた制限を克服するべく脆弱性を利用しようと試みる可能性がある。例えば、悪意のある行為者は、リソースそのものを変更して、このリソースが元来使用するよう設計されていないシステムの機能を使用するようにリソースを動作させようと試みるかもしれない。従って、計算システムは、関連付けられた計算リソースの完全性を保護し、行為者によって許可なくリソースを変更又は改ざんされることのないようにする場合がある。場合によっては、リソースの権限者は、たとえその行為者がリソースの実行については許可されていたとしても、リソースの基本となる構造や設計にはいかなる行為者もアクセスできないようにしようとする場合がある。
【００２９】
さらに、計算リソースの権限者は、そのリソースが実行される計算システムの権限者とは異なる実体であり得る。例えば、計算システム用のシステムソフトウエアを提供するシステム権限者は、そのシステムソフトウエアと共に使用するためのリソースとしてのソフトウエアモジュールをリソース権限者が開発できるようにすることがある。この場合、システム権限者は、リソース権限者がシステムのある機能にアクセスできるようにするが、その他の機能にはアクセスできないようにしようとする場合がある。したがって、ある計算リソースには利用可能な機能の特定の集合へのアクセスを提供し、かつ、その他の計算リソースには他の利用可能な機能の集合のそれぞれへのアクセスをさらに提供するための機構をシステムが備える場合があり、これらの集合は互いに重複してもしていなくてもよい。
【００３０】
複合計算システムは、多くの異なる計算リソースと関連付けられていてもよく、これらの計算リソースのすべては、計算リソースの複数のインスタンスの形式で実行されてもよく、互いに相互作用してもよい。例えば、システムが１つの計算リソースを実行すると、それが第２の計算リソースの実行を引き起こす場合がある。同時に、第３の計算リソースが、第２の計算リソースの別のインスタンスの実行を引き起こすかもしれない。この種の複合計算システムは、ある計算リソースのどのインスタンスが計算リソースの別のどのインスタンスと関連付けられているかについて追跡するような機構を備えていてもよい。さらに、システムは、このような情報を用いて、オペレータやユーザによって実行される第１のリソース等の計算リソースうちのただ一つのアクセス特権を基に、特定の機能へのアクセスを許可してもよい。このシナリオでは、第１の計算リソースと関連付けられた計算リソースの実行されるすべてのインスタンスは、第１の計算リソースにアクセス可能な機能にのみアクセスすることになる。
【００３１】
図１Ａは、関連付けられた主要素間の相互関係を示す計算システムの配置の一例を表すブロック図である。実行システム１００は、実行モジュール１１０を備え、実行可能コンポーネント１２０を処理する。実行可能コンポーネント１２０は、コンピュータ・プログラム、ソフトウエアコード、その他の種類の実行可能な要素等の実行可能な任意の個別の計算構成要素を備える。
【００３２】
実行可能コンポーネント１２０は、コンポーネントコンテナ１２２に記憶可能である。コンポーネントコンテナ１２２内の実行可能コンポーネント１２０は、実行システム１００が利用可能な対称曖昧化(obscuring)鍵１１２を用いて随意暗号化されていてもよい。コンポーネントコンテナ１２２はさらに、実行可能コンポーネント１２０に関するその他の情報を備えており、ブランド１３０及び電子コンポーネント署名１２４を含む。ブランド１３０は、機能５１０、５１０ａのどちらがこのコンポーネントと共に使用可能であるかを示すコンポーネント用の識別子である。ブランド１３０と関連付けられたコンポーネントは、同じブランドと結びつく他のコンポーネントと同じ機能５１０、５１０ａにアクセスする。機能５１０、５１０ａは、実行システム１００の異なる要素であってもよい。例えば、機能５１０、５１０ａは、コマンド、命令、ソフトウエア・プロセス、ハードウエア装置、データファイル、その他の種類の要素、又はこれらの組み合わせに相当可能である。
【００３３】
実行システム１００は、１つ以上のブランド１３０、１３０ａ、１３０ｂをさらに含む鍵コンテナ１３２にアクセスする。実行モジュール１１０は、鍵コンテナ１３２を入力として受け取る。入力としてのシステムの部分とシステムのその他の部分との関係は、図において矢印で表されており、本発明の図面において使用される決まりごととする。鍵コンテナ１３２内の各ブランド１３０は、ブランド公開鍵１３４と関連付けられる。実行システム１００は、ブランド公開鍵１３４を用いて、コンポーネントコンテナ１２２内のブランド１３０が有効であることを検証する。各ブランド１３０はさらに、機能インジケータ(feature indicator)１３６と関連付けられ、ブランド１３０と関連付けられた実行システム１００の機能５１０、５１０ａを記載する。ブランド１３０と関連付けられたコンポーネント１２０は、機能インジケータ１３６によって記載された機能５１０、５１０ａにのみアクセス可能である。
【００３４】
実行システム１００は、コンポーネントコンテナ１２２にアクセスすることにより、実行可能コンポーネント１２０を実行する。実行システム１００は、コンポーネント署名１２４が有効であるかどうかを判断する署名検証モジュール１４０を備える。署名検証モジュール１４０は、ブランド公開鍵１３４を用いて、有効性の確認を行う。実行可能コンポーネント１２０が暗号化されている場合、署名検証モジュール１４０は、検証済みのコンポーネントコンテナ１２２を復号化モジュール１４２に渡し、曖昧化鍵１１２を用いて復号化する。これにより実行可能コンポーネント１２０は、実行システム１００により利用可能となる。
【００３５】
実行システム１００はさらに、ブランドトークン化モジュール１４４を備える。ブランドトークン化モジュール１４４は、コンポーネント１２０と関連付けられたブランド１３０を含むブランドトークン１３８を作成する。ブランドトークン１３８は、コンポーネント１２０を実行しながら、コンポーネントと関連したブランド１３０を維持するために使用される。
【００３６】
実行モジュール１１０がコンポーネント１２０を実行するときに、ブランドトークン化モジュール１４４は、コンポーネント１２０にブランドトークン１３８を確実にアタッチ（添付）する。実行中、コンポーネント１２０は、ブランドトークン１３８内のブランド１３０と関連付けられた機能インジケータ１３６によって記載される実行システム１００の機能にのみアクセス可能である。
【００３７】
図１Ｂは、計算システムの配置の別の例を示すブロック図である。図１Ｂにおいて、ブランドトークン１３８は、ブランド１３０をその他の実行可能コンポーネント１２０ａに関連付けるためにも使用される。実行可能コンポーネント１２０によって別の実行可能コンポーネント１２０ａのインスタンスの実行が引き起こされる場合には、実行コンテキストモジュール１４６によって、ブランドトークン１３８が該他の実行可能コンポーネント１２０ａにアタッチされこととなる。したがって、該他の実行可能コンポーネント１２０ａがそのコンポーネントコンテナ１２２ａ内にブランド１３０を備えていなくても、該他の実行可能コンポーネント１２０ａは、ブランドトークン１３８内のブランド１３０と関連付けられた機能インジケータ１３６によって記載される機能にのみアクセス可能となる。ブランドトークン１３８は、実行コンテキストモジュール１４６ａを用いて、データコンポーネント１２１等の実行不可能コンポーネントにアタッチされてもよい。図において、実行コンテキストモジュールは、複数のインスタンス１４６、１４６ａ、１４６ｂとして示されているが、実施態様に応じて、唯一のインスタンスのみが必要となる場合もある。
【００３８】
実施可能コンポーネント１２０、１２０ａのうちの１つはさらに、ネットワーク１０４を介してアクセスされる２次又はリモートシステム等の別の実行システム１００ａ上の実行可能コンポーネント１２０ｂにアクセスしてもよい。他の実行システム１００ａも、曖昧化鍵１１２にアクセス可能な実行モジュール１１０ａを備え、ブランド１３０を含む鍵コンテナ１３２ａにアクセスする。実行コンテキストモジュール１４６ｂによって、ブランドトークン１３８が他の実行システム１００ａによって処理される実行可能コンポーネント１２０ｂにアタッチされることを可能にする。したがって、コンポーネントコンテナ１２２ｂがブランド１３０を含んでいなくても、実行可能コンポーネント１２０ｂはブランド１３０の下で動作することになる。実行システム１００は、標準的なネットワークプロトコル、標準リモート手続き呼び出しプロトコル、特別仕様プロトコル、別の種類のプロトコル、又はこれらの組み合わせに従って、他の実行システム１００ａと相互作用してもよい。
【００３９】
いくつかの実施態様では、実行可能コンポーネント１２０は、コンポーネント（データコンポーネント１２１又は実行可能コンポーネント１２０のいずれか）を表すグラフ内の頂点、及びコンポーネント間のデータの流れを表すグラフ内の有向リンク又は「辺」とともに有向グラフで表される「データフロー・グラフ」を用いて実装される。グラフはモジュールの実体である。各グラフは、１つ以上の別のグラフで構成可能であり、特定のグラフは、より大きいグラフ内のコンポーネントとなりうる。グラフィカル開発環境（ＧＤＥ）により、実行可能なグラフを特定し、グラフコンポーネント用のパラメータを定義するためのユーザインタフェースが提供される。このようなグラフに基づく計算を実施するシステムは、米国特許番号５，９６６，０７２、「Executing Computations Expressed As Graphs」（グラフとして表された操作の実行）に記載され、その内容は引用によりここに組み込まれる。
【００４０】
図２Ａを参照すると、データフロー・グラフ２０１の一例は、データフロー・グラフ２０１の実行可能コンポーネント２０４ａ〜２０４ｊによって処理されるデータのコレクションを提供する入力データ集合コンポーネント２０２を備える。例えば、データ集合コンポーネント２０２は、データベースシステムと関連付けられたデータ記録又はトランザクション処理システムと関連付けられたトランザクションを備えうる。各実行可能コンポーネント２０４ａ〜２０４ｊは、データフロー・グラフ２０１全体によって定義される演算の一部と関連付けられる。作業要素(work elements)（例えば、データコレクションの個々のデータ記録）は、１つ以上のコンポーネントの入力ポートを登録し、出力作業要素（場合によっては、入力作業要素又は入力作業要素の処理済版である）は一般に、コンポーネントの１つ以上の出力ポートを残す。グラフ２０１において、コンポーネント２０４ｅ、２０４ｇ、２０４ｊからの出力作業要素は、出力データ集合コンポーネント２０２ａ〜２０２ｃに記憶される。
【００４１】
図２Ｂは、記憶システム２１０と連結され、データフロー・グラフ等の１つ以上の安全なプログラムを用いて処理されるデータソース２１２から受信するデータを処理するよう構成された実行システム１００の一例を示す図である。データソース２１２は、記憶装置やオンラインデータストリームへの接続等の１つ以上のデータ源を備えてもよく、それぞれのデータ源は、いろいろな記憶形式（例えば、データベース・タブレット、表計算ファイル、フラットテキストファイル、又はメインフレームにより使用されるネイティブフォーマット）のいずれかでデータを記憶してもよい。実行システム１００は、記憶システム２１０内に記憶される本明細書に記載された記述子（鍵コンテナ等）を用いて安全性を提供する安全層２１４及び動作システム２１６を備える。いくつかの実施態様では、安全層２１４は、動作システム２１６の一部である。
【００４２】
実行システム１００は、データ源２１２からデータを受信し処理する。データ源２１２を提供する記憶装置は、例えば、動作システム２１６（例えば、ハードドライブ２１８）を実行するコンピュータに接続された記憶媒体上に記憶されるなど、実行システム１００に対してローカルであってもよいし、例えば、リモート接続を介して動作システム２１６を実行するコンピュータと通信するリモートシステム（例えば、メインフレーム２２０）上にホストされるなど、実行システム１００に対してリモートであってもよい。
【００４３】
データ記憶システム２１０は、開発システム２３０内で開発者２３４により開発済みの安全なプログラム２３２を受信してもよい。開発者２３４は、本明細書に記載の記述子を暗号化により割り当てるよう構成された開発システム２３０を用いて、実行システム１００内の実行用の安全なプログラムを開発することができる。開発システム２３０は、いくつかの実施態様では、データフロー・グラフ（例えば、上述のＧＤＥを用いた）開発アプリケーション用のシステムである。ここで記載の機能に加えて、このようなシステムの他の機能は、米国特許公開番号２００７／００１１６６８、発明の名称：「Managing Parameters For Graph-Based Applications」内により詳細に記載されており、その内容は引用によりここに組み込まれる。
【００４４】
開発システム２３０及び実行システム１００はそれぞれ、ＵＮＩＸオペレーティングシステム等の適切なオペレーティングシステムの制御の下、１つ以上の汎用コンピュータ・システム上で動作してもよく、記憶システム２１０は、コンピュータ・システムと一体化した又は通信する記憶媒体を備えうる。例えば、コンピュータ・システムは、ローカル（例えばＳＭＰコンピュータなどのマルチプロセッサ・システム）、又はローカル分散型（例えばクラスタ又はＭＰＰとして結合された複数プロセッサ）、又はリモート、又はリモート分散型（例えばＬＡＮ及び／又はＷＡＮを介して結合された複数プロセッサ）、又はそれらの任意の組み合わせのいずれかの、複数の中央処理ユニット（ＣＰＵ）を使用するコンピュータ・システムの構成を含む、多重ノード並列計算環境を含むことができる。
【００４５】
２  コンテナ
図３Ａに示すように、鍵コンテナ１３２は、複数のブランド１３０、１３０ａ、１３０ｂを含むことができる。１つの実行可能コンポーネント１２０は、１つのブランド１３０ａに従って動作し、別の実行可能コンポーネントは、別のブランド１３０ｂに従って動作可能である。ある実行可能コンポーネント１２０に関して、そのコンポーネントと関連付けられたブランド１３０が鍵コンテナ１３２内で利用可能であれば、実行システム１００はその実行可能コンポーネント１２０を処理する。いくつかの例では、鍵コンテナ１３２は、データファイル、記憶場所、又は別の種類のコンテナでありうる。
【００４６】
各ブランド１３０は、対応する公開鍵１３４を有し、これにより、署名検証モジュール１４０は、実行可能コンポーネント１２０とブランド１３０との関連付けが有効であるかどうかを判断可能である。各ブランド１３０はさらに、有効期限インジケータ(expiration indicator)１３５を有し、これにより、ブランド権限者は、ブランド１３０が有効である期限を設定可能となる。さらに、各ブランド１３０は、機能インジケータ１３６を有し、機能インジケータ１３６は、このブランド１３０に従って動作する実行可能コンポーネント１２０が利用可能な実行システム１００の機能５１０を記載する。
【００４７】
図３Ｂに示すように、コンポーネントコンテナ１２２は、コンポーネント３００に関連する要素を有する。コンポーネント３００は、例えば、実行可能コンポーネント１２０であるかもしれない。いくつかの例では、実行可能コンポーネント１２０によって使用される情報を有し、それ自身は実行可能ではないデータコンポーネント１２１のような他のタイプのコンポーネント３００を使用することができる。いくつかの例では、コンポーネントコンテナ１２２は、データファイル、記憶場所、又は別の種類のコンテナとなりうる。
【００４８】
コンポーネント３００は、無許可の視聴や分析に対してコンポーネントの構造や内容を曖昧にするために随意暗号化される。暗号化モジュール３４２は、曖昧化鍵１１２を用いて、コンポーネント３００を暗号化する。暗号化モジュール３４２は、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、ＡＥＳ（ｔｈｅ  Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、その他の標準暗号化プロトコル、又はこれらの組み合わせ等の標準的な暗号化プロトコルに基づいていてもよい。暗号化モジュール３４２は、特別仕様の暗号化プロトコルを単独で又は標準の暗号化プロトコルと組み合わせて使用してもよい。
【００４９】
コンポーネントコンテナ１２２は、コンポーネント３００と関連付けられたブランド１３０を含む。ブランド１３０は、コンポーネント３００に機能の集合を割り当てるために使用される。
【００５０】
コンポーネントコンテナ１２２は、コンポーネント署名１２４を有し、コンポーネントコンテナ１２２の内容の有効性を確認するために使用される。署名生成モジュール３４０は、電子署名プロトコルに従ってコンポーネント３００及びブランド１３０を処理してコンポーネント署名１２４を作成する。プロトコルとしては、ＲＳＡ、ＤＳＡ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ａｌｇｏｒｉｔｈｍ）、楕円曲線プロトコル、又はその他の種類の暗号化プロトコル等の電子署名に使用される標準的な暗号化プロトコルでよい。署名生成モジュール３４０は、特別仕様の電子署名プロトコルを単独で又は標準の暗号化プロトコルと組み合わせて使用してもよい。
【００５１】
コンポーネント署名１２４は、ブランド秘密鍵３３４を用いて生成される。ブランド秘密鍵３３４は、コンポーネントコンテナ１２２の権限者が利用可能であり、コンポーネント３００を扱う実行システム１００では利用可能ではない。実行システム１００は、コンポーネント署名１２４が生成されてから、ブランド１３０とコンポーネント３００とが変更されていないことを検証できるのみである。したがって、コンポーネント署名１２４は、ブランド１３０をコンポーネント３００と関連付ける他に、コンポーネント３００の完全性を確保する、暗号化による安全な手段である。
【００５２】
さらに、コンポーネントコンテナ１２２は、このコンポーネントコンテナ１２２に特有の識別子であるコンテナ番号３０２を有する。コンポーネントコンテナはさらに、コンテナフォーマット３０４を有し、このコンポーネントコンテナ１２２を構成するデータの特定の配置を示すものである。コンポーネントコンテナ１２２はさらに、コンポーネントタイプ３０６を有し、コンポーネントタイプ３０６は、コンポーネント３００が暗号化されているかどうかを含む、コンポーネントコンテナ１２２に含まれるコンポーネント３００を構成するデータの特定の配置を示す。
【００５３】
３  ブランドトークン化
上述のように、実行システム１００は、ブランドトークン１３８を実行可能コンポーネント１２０、１２０ａ、１２０ｂにアタッチし、実行の前にブランド１３０を各コンポーネントに関連付ける。実行システム１００は、各実行の前にこれらのトークン化工程を行い、この関連付けを安全にするので、悪意のある行為者がブランド１３０を変更又は置き換えようと実行処理の妨害を試みる場合、このような悪意のある行為を検出可能である。
【００５４】
図４Ａに示すように、実行システム１００は、ブランドトークン１３８ａ、１３８ｂの複数のインスタンスを使用する。各インスタンスは、コンポーネントのコンポーネントコンテナから生成され、この例では実行可能コンポーネント１２０のコンポーネントコンテナ１２２である。
【００５５】
実行システム１００は、署名検証モジュール１４０を用いて、コンポーネント署名１２４を検証する。署名検証モジュール１４０は、実行可能コンポーネント１２０又はブランド１３０はコンポーネントコンテナ１２２が作成された後のある時点で修正されたか、さもなければ改ざんされたかを判断するためにブランド公開鍵１３４を使用する。実行可能コンポーネント１２０又はブランド１３０のいずれかが改ざんされている場合、署名検証モジュール１４０は、矛盾を検出しコンポーネントコンテナ１２２を拒否する。
【００５６】
ブランドトークン化モジュール１４４、１４４ａは、コンポーネントコンテナ１２２の内容を用いて、ブランドトークンインスタンス１３８ａ、１３８ｂを生成する。ブランドトークン化モジュールの２つの例が示されているが、いくつかの実装では、１つのインスタンスのみが必要となることもある。ブランドトークン化モジュール１４４、１４４ａは、コンポーネントコンテナからのブランド１３０をブランドトークン１３８ａ、１３８ｂの各インスタンス内に配置する。ブランドトークン化モジュール１４４はさらに、コンポーネントタイプ３０６を用いて、実行可能コンポーネント１２０が暗号化されているかどうかを示すフラグ４０６を生成する。
【００５７】
さらに、乱数生成器４１０は、ブランドトークン１３８ａ、１３８ｂの各インスタンスに対して異なるソルト４１２を使用する。したがって、ブランドトークン１３８ａ、１３８ｂの各インスタンスは、その他のインスタンスとは異なる特有の乱数値を含むことになる。
【００５８】
図４Ｂに示すように、ブランドトークン化モジュール１４４は、実行スクリプト４２０を生成する。実行スクリプト４２０は、実行可能コンポーネント１２０のインスタンスを実行するための命令を備えており、いくつかの形式のうちの任意のものを取ることが出来る。実行スクリプト４２０は、実行可能コンポーネント１２０を適切に処理するのに必要な特定の情報を実行モジュール１１０に示す解釈された又はコンパイルされたコマンドの集合であってもよい。
【００５９】
実行可能コンポーネント１２０は、実行スクリプト４２０と関連付けられる。例えば、実行スクリプト４２０は、実行可能コンポーネント１２０そのものを構成する命令を含んでいてもよく、又はその代わりに実行可能コンポーネント１２０へのポインタや参照を有してもよい。実行スクリプト４２０内の命令の１つは、このポインタもしくは参照にアクセスしてもよい。
【００６０】
実行可能コンポーネント１２０がコンポーネントコンテナ１２２に配置される前に暗号化されている場合には、復号化モジュール１４２が曖昧化鍵１１２を用いて実行可能コンポーネント１２０の復号化を取り扱う。
【００６１】
ブランドトークン１３８ａのインスタンスの１つは、実行スクリプト４２０と共に使用される。ブランドトークン化モジュール１４４は、実行番号４０８を生成し、それをブランドトークンインスタンス１３８ａ内に配置することによりブランドトークンインスタンス１３８ａを終了する。同じ実行番号４０８が、実行可能コンポーネント１２０の実行のためのトークン化プロセスで使用されるブランドトークン１３８のすべてのインスタンスに当てはまる。ブランドトークン化モジュール１４４は、ブランドトークン１３８ａのこのインスタンスに割り当てる実行番号４０８を追跡し、その他のインスタンス用に同じ実行番号４０８を使用する。
【００６２】
ブランドトークンインスタンス１３８ａが一旦終了すると、暗号化モジュール３４２は、曖昧化鍵１１２を用いてブランドトークンインスタンスを暗号化する。ブランドトークン化モジュール１４４はその後、実行スクリプト４２０内に暗号化されたブランドトークン４３８ａを配置する。実行可能コンポーネント１２０と同様に、実行スクリプト４２０は、暗号化されたブランドトークン４３８ａそのものを構成するデータを含んでもよく、又はその代わりに暗号化ブランドトークン４３８ａへのポインタや参照を有してもよい。
【００６３】
図４Ｃに示すように、ブランドトークン化モジュール１４４は、スクリプトコンテナ４３０を生成し、その内部に実行スクリプト４２０を配置する。いくつかの実装において、スクリプトコンテナ４３０は、データファイル又はデータ構造である。ブランドトークン化モジュール１４４はさらに、ブランドトークン１３８ａの第１のインスタンスに使用された同じ実行番号４０８を加えることによって、ブランドトークン１３８ｂの第２のインスタンスを終了する。ブランドトークン１３８ｂの第２のインスタンスは、暗号化モジュール３４２で暗号化され、暗号化されたブランドトークン４３８ｂは、スクリプトコンテナ４３０内部に配置される。
【００６４】
トークン化署名生成モジュール４５０は、スクリプトコンテナ４３０を基にスクリプトコンテナ署名４２４を生成する。トークン化署名生成モジュール４５０は、実行システム１００で利用可能なトークナイザ秘密鍵４５２を用いる。スクリプトコンテナ署名４２４は、コンポーネントの実行が始まる際に、スクリプトコンテナ４３０の有効性を確実にするメカニズムを提供する。
【００６５】
トークン化署名生成モジュール４５０は、他で記載されるその他の署名生成モジュールと同じような方法で動作し、電子署名プロトコルに従ってスクリプトコンテナ４３０を処理することにより、スクリプトコンテナ署名４２４を作成する。プロトコルとしては、ＲＳＡ、ＤＳＡ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ａｌｇｏｒｉｔｈｍ）、楕円曲線プロトコル、又はその他の種類の暗号化プロトコル等の電子署名に使用される標準的な暗号化プロトコルでよい。トークン化署名生成モジュール４５０は、特別仕様の電子署名プロトコルを単独で又は標準の暗号化プロトコルと組み合わせて使用してもよい。スクリプトコンテナ４３０が確立されたのち、実行可能コンポーネント１２０に対して、安全な実行のための準備を行う。
【００６６】
４  ブランド化された実行
図５Ａに示すように、実行モジュール１１０は、実行可能コンポーネント１２０を含むスクリプトコンテナ４３０を受け取る。実行モジュール１１０は、実行可能コンポーネント１２０の安全な実行を考慮して構成された、スクリプトコンテナ４３０の内容を検証するために必要な工程を実行する。
【００６７】
実行モジュール１１０は、コンテナ署名検証モジュール５５０を用いてスクリプトコンテナ署名４２４を検証する。コンテナ署名検証モジュール５５０は、コンテナ公開鍵４５４を用いて、スクリプトコンテナ４３０が作成された後のある時期にスクリプトコンテナ４３０が修正されたか、さもなければ改ざんされたかを判断する。コンテナ署名検証モジュール５５０は、何らかの矛盾を検出し、スクリプトコンテナ４３０を拒否する。実行モジュール１１０はさらに、検証済みのスクリプトコンテナ４３０から暗号化されたブランドトークン４３８ｂを抽出し、曖昧化鍵１１２を用いて復号化モジュール１４２を適用する。
【００６８】
図５Ｂに示すように、実行モジュール１１０は、前もって復号化モジュール１４２によって復号化された、ブランドトークン１３８ｂの復号化されたインスタンスを取得する。実行モジュール１１０はさらに、検証済みのスクリプトコンテナ４３０から前もって取得した実行スクリプト４２０内に含まれる命令を実行する。実行スクリプト４２０は、実行可能コンポーネント１２０と共に別の暗号化されたブランドトークン４３８ａを含む。実行モジュール１１０は、この暗号化されたブランドトークン４３８ａに復号化モジュール１４２を適用する。
【００６９】
図５Ｃに示すように、トークン検証モジュール１４８は、実行スクリプト４２０から抽出されたブランドトークン１３８ａの第１のインスタンスの内容とスクリプトコンテナ４３０から抽出されたブランドトークン１３８ｂの第２のインスタンスとを比較する。ブランドトークン化モジュール１４４によって作成されたようなブランドトークン１３８ａ、１３８ｂの２つのインスタンスは、ランダムソルト４１２ａ、４１２ｂを除いて同一の内容を有することになる。ソルト４１２ａ、４１２ｂは異なるが、ブランド１３０及び実行番号４０８を含み、内容は同じである場合、トークン検証モジュール１４８は、実行モジュール１１０に検証済みのブランド１３０を提供する。
【００７０】
ブランドトークン１３８ａの１つのインスタンスが実行スクリプト４２０と共に実行モジュール１１０に到着し、ブランドトークン１３８ｂの別のインスタンスがスクリプトコンテナ４３０と共に到着しているので、ブランドトークン１３８ａ、１３８ｂのこの２つのインスタンスは、実行可能コンポーネント１２０の信ぴょう性及びブランド１３０との関連付けを検証するのに使用可能である。新しいスクリプトコンテナ４３０は、一致する実行番号４０８でブランドトークン１３８を有することにならないので、いかなる特定の実行スクリプト４２０も、新しいスクリプトコンテナ４３０内部に配置することによって再使用することはできない。実行モジュール１１０が予測するように、実行スクリプト４２０からのブランドトークンインスタンスとスクリプトコンテナ４３０からのブランドトークンインスタンスは、異なるランダムソルト４１２ａ、４１２ｂを有することにならないので、実行スクリプト４２０からのブランドトークンインスタンス１３８ａは、スクリプトコンテナ４３０と共に使用できない。さらに、ブランドトークンインスタンス１３８ａは、暗号化されたブランドトークン４３８ａのように曖昧化鍵１１２で暗号化されているので、スクリプトコンテナ４３０用の新しいブランドトークンインスタンスは、許可されてない行為者によって実行スクリプト４２０内部のブランドトークンインスタンス１３８ａから生成されることはできない。
【００７１】
ブランドトークンインスタンス１３８ａ、１３８ｂが有効なブランド１３０であることを表すことがトークン検証モジュール１４８によって実行モジュール１１０に通知されると、実行モジュール１１０は、鍵コンテナ１３２にアクセスし、ブランドトークンインスタンス１３８ａ、１３８ｂ内のブランド１３０に対応する鍵コンテナ内のブランド１３０に関連付けられた有効期限インジケータ１３５及び機能インジケータ１３６にアクセスする。実行モジュール１１０は、機能インジケータ１３６を用いて、実行可能コンポーネントが利用可能な機能集合５００内のいくつかの機能５１０ａ、５１０ｂ、５１０ｃ、５１０ｄをイネーブルにし、機能集合５００内の他の機能５１２ａ、５１２ｂをディスエーブルにする。
【００７２】
実行モジュール１１０は、実行スクリプト４２０から実行可能コンポーネント１２０にアクセスし、ブランド１３０の機能インジケータ１２０に従ってイネーブルとなった機能５１０のみを用いて実行可能コンポーネントが実行できるようにする。
【００７３】
５  ブランド化された実行コンテキストの保持
ブランド１３０と関連付けられた実行可能コンポーネント１２０は、他の実行コンポーネント１２０ａの実行を開始することができる。これらの他の実行可能なコンポーネント１２０ａは、例えばそのコンテナファイル１２２ａ内のブランド１３０とは直接関連付けられないかもしれないが、その代わりに実行中、ブランド１３０と関連付けられる。他の実行可能コンポーネント１２０ａは、たとえ他の実行可能コンポーネント１２０ａが他の機能５１２ａ、５１２ｂにアクセスしていた場合にも、その実行が別のコンテキストではじめられた場合には、最初の実行可能コンポーネント１２０と関連付けられたブランド１３０の機能インジケータ１３６に従ってイネーブルとなった機能５１０のみにアクセスすることになる。従って、最初の実行可能コンポーネント１２０は、他の実行可能コンポーネント１２０ａを用いてディスエーブルになった機能５１２ａ、５１２ｂへアクセスすることから制限される。
【００７４】
さらに、他の実行可能コンポーネント１２０ａ、１２０ｂは、最初の実行可能コンポーネント１２０が実行を終えた後であっても、実行可能コンポーネント１２０ｂのようなさらに他の実行可能コンポーネントの実行を開始することができる。これらのコンポーネント１２０、１２０ａ、１２０ｂの全てにアクセス可能な機能５１０がそのブランド１３０の機能インジケータ１３６に従って決定されるように、実行システム１００は、最初の実行可能コンポーネント１２０と関連付けられたブランド１３０を追跡する。
【００７５】
いくつかの実装では、実行システム１００は、複数の実行可能コンポーネント１２０を処理し、ブランド１３０をこれらの実行可能コンポーネント１２０と関連付ける。例えば、実行システム１００は、１つの実行可能コンポーネント１２０の実行を終えた後、他の実行可能コンポーネント１２０ａ用に実行可能コンポーネント１２０の情報を保持するメカニズムを付加してこの情報を保持してもよい。さらに、このメカニズムは、他のコンポーネント、又は悪意のある行為者が保持された情報にアクセスしたり変更したりするのを許可せず、又、メカニズムは、不要なオーバヘッドを追加する又は安全でないポイントとして作用する追加の要素をもたない。
【００７６】
図６Ａに示すように、実行システム１００は、実行可能コンポーネント１２０のブランド１３０を検証するのに使用されるブランドトークン１３８ａ、１３８ｂのインスタンスの内容についてトークン検証モジュール１４８からの情報を受け取る実行コンテキストモジュール１４６を備える。実行コンテキストモジュール１４６は、一時(transient)コンテナ６２２及び一時コンテナ６２２の方向に向いた環境レファレンス６１０を生成する。環境リファレンス６１０は、実行可能コンポーネント１３０の実行環境６０５のコンテキスト内に存在する。いくつかの例において、実行環境６０５は、記憶場所、変数、データファイル、又は実行可能コンポーネント１２０の実行に関連する他の種類の情報、又はこれらの種類の情報の組み合わせを含む。
【００７７】
一時コンテナ６２２は、一般に実行システム１００によって利用可能ではない。その代り、一時コンテナ６２２は、環境リファレンス６１０にアクセスすることによってのみ利用可能である。その結果、環境リファレンス６１０は、実行可能コンポーネント１３０の実行環境６０５においてのみ利用可能である。実行可能コンポーネント１２０が他の実行可能コンポーネント１２０ａの実行を開始する場合、他の実行可能コンポーネント１２０ａは、環境リファレンス６１０へのアクセスを認められる。なぜならば、実行を開始する原因となった実行可能コンポーネント１２０と同じ実行環境６０５で動作しているからである。いくつかの例において、一時コンテナ６２２は、環境リファレンス６１０を用いることなく実行システム１００の通常のファイルシステムを用いてアクセス可能ではないデータファイルであってもよい。一時コンテナ６２２は、別の実行システム１００ａによって扱われる実行可能コンポーネント１２０ｂに提供されうる。
【００７８】
実行コンテキストモジュール１４６は、トークン検証モジュール１４８から取得した情報を用いて、ブランドトークン１３８ｃの新しいインスタンスを生成する。ブランドトークン１３８ｃのこのインスタンスは、ブランドトークン１３８ａ、１３８ｂの他のインスタンスと同じブランド１３０、フラグ４０６および実行番号４０８を有し、さらに乱数生成器４１０から取得した新しいランダムソルト４１２ｃを有する。実行コンテキストモジュール１４６は、一時コンテナ６２２内部にブランドトークン１３８ｃの新しいインスタンスを配置する。
【００７９】
図６Ｂは、実行可能コンポーネント１２０ａを有するが、ブランド１３０を有さないコンポーネントコンテナ１２２ａを示す図である。実行モジュール１１０は、実行可能コンポーネントの実行環境６０５にアクセスすることにより、実行可能コンポーネント１２０ａを準備する。この実行可能コンポーネント１２０ａのこの実行が別の実行可能コンポーネント１２０により開始されたものであるならば、この実行可能コンポーネント１２０ａは、他の実行可能コンポーネント１２０と同じ実行環境６０５内で動作することになるので、一時コンテナ６２２への環境リファレンス６１０が利用可能となるであろう。実行モジュール１１０は、一時コンテナ６２２内部のブランドトークンインスタンス１３８ｃにアクセスし、ブランドトークン内のブランド１３０を取得する。ブランドトークンインスタンス１３８ｃはさらに、その有効性を確認するために、同じブランドトークン１３８ａ、１３８ｂの他のインスタンスと比較可能である。例えば、悪意のある行為者がブランドトークン１３８ａ、１３８ｂの他のインスタンスのうちの１つを一時コンテナ６２２内にコピーしていた場合、一時コンテナ６２２内のブランドトークン１３８ｃのインスタンスは、他のインスタンスと同じランダムソルト４１２ａ、４１２ｂを有することになり、したがって、無効であると断定される。
【００８０】
ブランドトークン化モジュール１４４、１４４ａは、実行モジュール１１０からのブランド１３０を起動させ取得する。ブランドトークン化モジュールは、図において２つのインスタンス１４４、１４４ａとして示されているが、実装によっては、１つのインスタンスのみが必要である場合もある。ブランドトークン化モジュール１４４、１４４ａは次に、ブランドトークン１３８ｄ、１３８ｅの新しいインスタンスを構成し、新しい実行可能コンポーネント１２０ａのコンポーネントコンテナ１２２ａ内のコンポーネントタイプ３０６から決定されたブランド１３０と、フラグ４０６ａ及び乱数発生器４１０から得られた新しいソルト４１２ｄ、４１２ｅとを含める。ブランドトークン１３８ｄ、１３８ｅのこれら新しいインスタンスはその後、ブランドトークン化モジュール１４４、１４４ａによって使用され、図４Ａ〜４Ｃについて上述したような実行可能コンポーネント１２０を準備する。
【００８１】
６  手順
図７は、実行可能コンポーネント１２０に暗号化によりブランド１３０を割り当てるのに使用される手続き７００の一例を示すフローチャートである。手続きは、７０２において、実行可能コンポーネント１２０及びブランド１３０に基づいてコンポーネントコンテナ１２２用のデジタル署名を生成する。手続きは、７０４において、デジタル署名を検証し、７０６においてブランドトークン１３８ａ、１３８ｂの複数のインスタンスにブランド１３０を割り当てる。手続きは、７０８において、ブランドトークン１３８ａの１つのインスタンスを暗号化し、７１０において、それを実行スクリプト４２０にアタッチする。手続き７１２において、ブランドトークン１３８ｂの別のインスタンスを暗号化し、７１４において、暗号化されたブランドトークンを、実行スクリプト４２０と共にスクリプトコンテナ４３０にアタッチする。手続き７１６において、スクリプトコンテナ４３０に基づいてスクリプトコンテナ４３０用のデジタル署名を生成する。
【００８２】
図８は、ブランド１３０に割り当てられた機能インジケータ１３６にアクセスするのに使用される手続き８００の一例を示すフローチャートである。手続きは、８０２において、デジタル署名を検証し、スクリプトコンテナ４３０にアクセスする。手続きは、８０４において、ブランドトークン１３８ｂのインスタンスを復号化し、８０６において、スクリプトコンテナ４３０内の実行スクリプト４２０にアクセスする。手続き８０８において、ブランドトークン１３８ａの別のインスタンスを復号化し、８１０において、実行スクリプト４２０内の実行可能コンポーネント１２０にアクセスする。手続きは、８１２において、ブランドトークン１３８ａ、１３８ｂの２つのインスタンスを検証する。ブランドトークン１３８ａ、１３８ｂ内のブランド１３０を用いて、手続き８１４において、鍵コンテナ１３２内のブランド１３０に割り当てられた機能インジケータ１３６を取得する。
【００８３】
図９は、実行システム１００上で実行可能コンポーネント１２０を実行するのに使用される手続き９００の一例を示すフローチャートである。手続きは、９０２において、一時コンテナ６２２を生成し、９０４において、一時コンテナ６２２を指す環境リファレンスを生成する。手続きは、９０６において、実行可能コンポーネント１２０に関連付けられたブランド１３０を含むブランドトークンインスタンス１３８ｃのインスタンスを生成する。手続きは、９０８において、一時コンテナ６２２にブランドトークンインスタンス１３８ｃのインスタンスを割り当てる。手続きは、９１０において、環境リファレンス６２２以外の一時コンテナ６２２への他のリファレンスを削除する。手続きは、９１２において、実行可能コンポーネント１２０を実行し、実行可能コンポーネント１２０の実行環境６０５内に環境リファレンス６１０を配置する。
【００８４】
図１０は、機能インジケータ１３６に基づいて、実行システムの機能５１０へのアクセスを実行可能コンポーネント１２０に提供するのに使用される手続き１０００の一例を示すフローチャートである。手続きは、１００２において、ブランド１３０と関連付けられた取得済みの機能インジケータ１３６にアクセスする。手続きは、１００４において、機能インジケータ１３６によって記載された機能５１０と実行システム１００に提供される機能集合５００内の対応する機能５１０とを特定する。手続きは、１００６において、実行可能コンポーネント１２０がアクセスするための機能５１０をイネーブルにする。手続きは、１００８において、実行可能コンポーネント１２０によって開始された実行を有する別の実行可能コンポーネント１２０ａとブランド１３０とを関連付ける。
【００８５】
７  実施態様
上述の計算機能へのアクセスを制御する方法は、コンピュータ上での実行されるソフトウエアを用いて実施可能である。例えば、このソフトウエアは、１つ又は複数のプログラムされた又はプログラム可能なコンピュータ・システム（分散、クライアント／サーバ、又はグリッドなど、様々なアーキテクチャのものにすることができる）上で実行される１つ又は複数のコンピュータ・プログラム内の手順を形成し、それぞれのコンピュータ・システムは、少なくとも１つのプロセッサと、少なくとも１つのデータ記憶システム（揮発性及び不揮発性のメモリ及び／又は記憶素子を含む）と、少なくとも１つの入力装置又はポートと、少なくとも１つの出力装置又はポートを備える。このソフトウエアは、例えば、データフロー・グラフの設計及び構成に関連する他のサービスを提供する、より大きいプログラムの１つ又は複数のモジュールを形成することができる。このグラフのノード及び要素は、コンピュータ可読媒体に保管されたデータ構造又はデータ・リポジトリに記憶されたデータ・モデルに適合するその他の編成済みデータとして実現することができる。
【００８６】
このソフトウエアは、汎用又は専用プログラマブル・コンピュータによって読み取り可能であるＣＤ−ＲＯＭなどの記憶媒体上で提供するか、或いはそれが実行されるコンピュータに対しネットワークの通信媒体により配信（伝搬信号としてコード化）することができる。すべての機能は、専用コンピュータ上で、又はコプロセッサなどの専用ハードウエアを使用して、実行することができる。このソフトウエアは、ソフトウエアによって指定された計算の種々の部分が種々のコンピュータによって実行される分散方式で実現することができる。このようなコンピュータ・プログラムはそれぞれ、本明細書に記載された手順を実行するために記憶メディア又はデバイスがコンピュータ・システムによって読み取られた時にコンピュータを構成し操作するために、好ましくは、汎用又は専用プログラマブル・コンピュータによって読み取り可能な記憶メディア又はデバイス（例えば、ソリッドステート・メモリ又はメディア、或いは磁気又は光メディア）上に保管されるか又はそれにダウンロードされる。又、本発明のシステムは、コンピュータ・プログラムとともに構成されたコンピュータ可読記憶媒体として実現されるものと見なすこともでき、このように構成された記憶媒体により、コンピュータ・システムは本明細書に記載された機能を実行するように特定かつ定義済みの方式で動作する。
【００８７】
本発明のいくつかの実施形態について説明してきた。それにもかかわらず、本発明の思想及び範囲を逸脱せずに様々な変更が可能であることが理解されるであろう。例えば、上記のステップのいくつかは、順序とは無関係なものにすることができ、従って、上記のものとは異なる順序で実行することができる。
【００８８】
上記は説明のためのものであって、特許請求の範囲によって定義される本発明の範囲を限定するためのものではないことを理解されたい。例えば、上記の機能ステップのいくつかは、全体的な処理に実質的に影響を及ぼさずに異なる順序で実行することができる。その他の実施形態は以下の特許請求の範囲の範囲内である。
【図１Ａ】
2013516004.tif 000003
【図１Ｂ】
2013516004.tif 000004
【図２Ａ】
2013516004.tif 000005
【図２Ｂ】
2013516004.tif 000006
【図３Ａ】
2013516004.tif 000007
【図３Ｂ】
2013516004.tif 000008
【図４Ａ】
2013516004.tif 000009
【図４Ｂ】
2013516004.tif 000010
【図４Ｃ】
2013516004.tif 000011
【図５Ａ】
2013516004.tif 000012
【図５Ｂ】
2013516004.tif 000013
【図５Ｃ】
2013516004.tif 000014
【図６Ａ】
2013516004.tif 000015
【図６Ｂ】
2013516004.tif 000016
【図７】
2013516004.tif 000017
【図８】
2013516004.tif 000018
【図９】
2013516004.tif 000019
【図１０】
2013516004.tif 000020
【国際調査報告】
2013516004.tif 000021
2013516004.tif 000022
2013516004.tif 000023