(57)【要約】【課題】  実行効率を落とすことなく、細かい粒度のアクセス制御によって、タスク間の安全な協調作業を可能とする。【解決手段】  本発明にかかるマルチタスク実行システム１は、操作対象オブジェクトに対して固有鍵を生成して付与する固有鍵生成付与機能１０３と、前記操作対象オブジェクトに対する操作を行うためのシステムコールが操作主体タスクによって呼び出された場合、前記固有鍵を用いて該操作主体タスクの権限データを復号し、復号した該権限データに基づいて該システムコールを実行することができるか否かについて判断するシステムコール処理機能１０４とを具備する。【選択図】  図１
2006190050.tif 000002
【特許請求の範囲】
【請求項１】
操作対象オブジェクトに対して固有鍵を生成して付与する固有鍵生成付与機能と、
前記操作対象オブジェクトに対する操作を行うためのシステムコールが操作主体タスクによって呼び出された場合、前記固有鍵を用いて該操作主体タスクの権限データを復号し、復号した該権限データに基づいて該システムコールを実行することができるか否かについて判断する権限データ確認機能とを具備することを特徴とするマルチタスク実行システム。
【請求項２】
前記操作主体タスクからの権限データ生成要求に応じて、該操作主体タスクについての認証処理を行うタスク認証機能と、
前記認証処理結果に基づいて前記権限データを生成する権限データ生成機能とを具備することを特徴とする請求項１に記載のマルチタスク実行システム。
【請求項３】
前記操作主体タスクについての認証処理が行われているか否かについて管理するタスク情報記憶機能を具備し、
前記タスク認証機能は、前記タスク情報記憶機能を参照して、前記操作主体タスクについての認証処理が行われていない場合に、該操作主体タスクについての認証処理を行うように構成されていることを特徴とする請求項２に記載のマルチタスク実行システム。
【請求項４】
前記タスク認証機能は、前記操作主体タスクについての認証処理が行われている場合、該操作主体タスクの子タスクについての認証処理を行わないように構成されていることを特徴とする請求項３に記載のマルチタスク実行システム。
【請求項５】
前記操作主体タスクは、ユーザのログイン認証処理を行うログインタスクであり、前記子タスクは、前記ログイン認証処理後に実行されるログインシェルタスクであることを特徴とする請求項４に記載のマルチタスク実行システム。
【請求項６】
前記権限データ確認機能は、第１の条件に基づいて前記システムコールを実行することができると判断された場合に、前記権限データに基づいて該システムコールを実行することができるか否かについて判断するように構成されていることを特徴とする請求項１に記載のマルチタスク実行システム。
【請求項７】
前記権限データ確認機能によって、前記権限データに基づいて前記システムコールを実行することができると判断された場合に、第２の条件に基づいて該システムコールを実行することができるか否かについて判断するシステムコール処理機能を具備することを特徴とする請求項１に記載のマルチタスク実行システム。
【請求項８】
前記タスク情報記憶機能は、ユーザ制御から独立して動作するタスクに対しては、該タスクについての認証処理が行われているか否かについて管理しないように構成されていることを特徴とする請求項３に記載のマルチタスク実行システム。
【請求項９】
前記固有鍵生成付与機能は、前記固有鍵として、共通鍵暗号アルゴリズムで用いられる共通鍵を生成するように構成されている請求項１に記載のマルチタスク実行システム。
【請求項１０】
前記固有鍵生成付与機能は、前記固有鍵として、公開鍵暗号アルゴリズムで用いられる公開鍵及び秘密鍵のペアを生成するように構成されている請求項１に記載のマルチタスク実行システム。
【請求項１１】
前記権限データとして、前記操作主体タスクを識別するタスクＩＤと、前記システムコールを識別するシステムコールＩＤと、前記システムコールにおける操作モードと、前記権限データの有効期間を設定することができることを特徴とする請求項１に記載のマルチタスク実行システム。
【請求項１２】
第１のタスク及び第２のタスクに対して固有鍵を生成して付与する固有鍵生成付与機能を具備しており、
前記第１のタスクは、前記固有鍵を用いて該第２のタスク用の権限データを暗号化し、暗号化した該権限データを該第２のタスクに送信するように構成されており、
前記第２のタスクは、前記第１のタスクから送信された前記権限データを前記固有鍵で復号することができた場合、該第１のタスクが正当なタスクであると判断するように構成されていることを特徴とするマルチタスク実行システム。
【請求項１３】
オペレーティングシステムにおいて、操作対象オブジェクトに対して固有鍵を生成して付与する工程と、
前記オペレーティングシステムにおいて、前記操作対象オブジェクトに対する操作を行うためのシステムコールが操作主体タスクによって呼び出された場合、前記固有鍵を用いて該操作主体タスクの権限データを復号し、復号した該権限データに基づいて該システムコールを実行することができるか否かについて判断する工程とを有することを特徴とするマルチタスク実行方法。
【請求項１４】
オペレーティングシステムにおいて、第１のタスク及び第２のタスクに対して固有鍵を生成して付与する工程と、
前記第１のタスクにおいて、前記固有鍵を用いて該第２のタスク用の権限データを暗号化し、暗号化した該権限データを該第２のタスクに送信する工程と、
前記第２のタスクにおいて、前記第１のタスクから送信された前記権限データを前記固有鍵で復号することができた場合、該第１のタスクが正当なタスクであると判断する工程とを有することを特徴とするマルチタスク実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同時に複数のタスクを並列的に実行することが可能な現代的なオペレーティングシステム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を用いたマルチタスク実行システム及びマルチタスク実行方法に関する。
【背景技術】
【０００２】
近年、個人の使用するパーソナルコンピュータ（ＰＣ：Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）から、電子商取引（ＥＣ：Ｅｌｅｃｔｒｉｃ  Ｃｏｍｍｅｒｃｅ）等のサービスを提供するサーバコンピュータ、さらにはスーパーコンピュータまで、事実上あらゆるコンピュータ（計算機）が「マルチタスク環境」を提供するものとなっている。
【０００３】
ここでいう「マルチタスク環境」とは、コンピュータが扱う処理の単位である「タスク」を複数個同時に実行できる環境であり、近い将来には、携帯電話のようなリソースの限られたプラットフォームにおいてもこのようなマルチタスク環境を提供することが期待されている。
【０００４】
一般に、このようなマルチタスク環境を提供するオペレーティングシステムでは、複数の独立したタスクが同時に実行され得るだけでなく、複数の独立したタスクが協調して１つの仕事を成し遂げることができる。
【０００５】
このような協調作業は、「タスク間通信」や「複数のタスクによるファイルやメモリ等の共有」といった形態で実現される。
【０００６】
しかしながら、特に複数の利害の異なるユーザが同時に１つのコンピュータを利用することが可能な「マルチユーザシステム」では、同一コンピュータ上で動作するタスクは、異なるユーザによって実行されたものである可能性があるため、任意のタスク間で自由に協調作業を行うことができるのは問題である。
【０００７】
また、単一のユーザしか利用しないコンピュータであっても、コンピュータシステム自体を管理するためのタスク等、ユーザ自身が直接実行したものではないタスクが存在することは一般的であるため、このようなコンピュータであっても任意のタスク間で自由に協調作業が行えてしまうのは問題となり得る。
【０００８】
このような問題を解決するために、「タスク間の血縁関係」や「ファイル等の特定リソースへのアクセス権」や「利用者識別子」といった性質を利用して、タスク間の協調作業を制限する方法が知られている。
【０００９】
典型的マルチタスクオペレーティングシステムである「ＵＮＩＸ（登録商標）」では、「タスク間の血縁関係」を利用してタスク間の協調作業を制限する方法として、血縁関係にあるタスク間での通信手段として用いられるパイプを用いる方法が知られている。
【００１０】
また、「ファイル等の特定リソースへのアクセス権」を利用してタスク間の協調作業を制限する方法として、任意のタスク間での双方向通信手段として用いられるＵＮＩＸ（登録商標）ドメインソケットを用いる方法が知られている。
【００１１】
また、「利用者識別子」を利用する方法として、非同期型単方向通信であるシグナル及び共有メモリを用いる方法が知られている。
【００１２】
これらの方法によれば、それぞれの条件に適ったタスク間でのみ協調作業を許可することができるため、任意のタスク間で自由に協調作業が行われてしまうという問題点を解決することができる。
【００１３】
しかしながら、これらの方法は、いずれも任意のタスク間での協調作業の制限を行う粒度が粗く、原則的に、同一ユーザによって実行されたタスク間では協調作業を制限することができないという問題点があった。
【００１４】
さらに、ＵＮＩＸ（登録商標）では、コンピュータシステムを管理するための特権ユーザとして「ｒｏｏｔユーザ」が存在するが、かかる「ｒｏｏｔユーザ」の下で動作するタスク（ｒｏｏｔタスク）は、あらゆる制限を受けることなく、任意のタスクに対して任意の操作を行うことが可能であるため、ｒｏｏｔタスクからの干渉は防ぐことができないという問題点があった。
【００１５】
同様の特権ユーザという概念は、多くのマルチタスクオペレーティングシステムで採用されているため、かかる特権ユーザによる攻撃から他のタスクを保護することが、セキュリティ的に重要な課題と言える。なお、近年発生した攻撃の多くは、特権ユーザの下で動作するタスクがセキュリティホールにより乗っ取られた結果発生したものである。
【００１６】
かかる問題点を解決するための方法として、「トラステッドオペレーティングシステム」と呼ばれる、より厳格な形式でアクセス権限管理を実現したオペレーティングシステムが知られている。
【００１７】
例えば、非特許文献１に示されている「ＳＥＬｉｎｕｘ」というオペレーティングシステムでは、「必須アクセス制御（Ｍａｎｄａｔｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ：ＭＡＣ）」と呼ばれる技術によって、上述のアクセス権限管理が実現されている。「必須アクセス制御」は、コンピュータシステム上に存在するほとんどのオブジェクト（ファイルやタスク等）に対して、従来の利用者識別子を用いる場合よりも細かい粒度のアクセス権限を割り当て、割り当てたアクセス権限に基づくアクセス制御を強制するという技術である。
【００１８】
かかる必須アクセス制御技術は、上述のｒｏｏｔタスクにも適用されるため、たとえ、ｒｏｏｔタスクであっても任意のタスクに対して干渉することは不可能となり、タスク間で安全な協調作業を行うことが可能な環境を実現できる。
【００１９】
また、特許文献１には、プログラムの実行単位として「タスク」よりもさらに細かい単位である「スレッド」を用いたアクセス制御が開示されている。特許文献１に係るアクセス制御は、特定スレッドの所定スレッドに対する所望操作を許可するか否かについて明示的に設定するように構成されている。
【００２０】
具体的には、特許文献１によれば、操作対象のスレッドに対して所望操作を行うことを許可又は拒否されたスレッド（操作を行うスレッド）の情報を記述した操作権限情報（すなわち、所定スレッドへの所望操作を行うことをどのスレッドに対して許可するかについて示す情報）を、当該操作対象のスレッドに割り当てることで、細粒度でのアクセス制御を実現している。
【特許文献１】特開平７-２００３１７号公報
【非特許文献１】「Ｓｅｃｕｒｉｔｙ-Ｅｎｈａｎｃｅｄ  Ｌｉｎｕｘ」、［平成１６年１２月２３日検索］、インターネット＜ＵＲＬ：http://www.nsa.gov/selinux/＞
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかしながら、従来のトラステッドオペレーティングシステムでは、コンピュータシステム上に存在する全てのオブジェクトに対して、通常のオペレーティングシステムでも存在していた所有者というラベルの他に、アクセス権限管理用の新たなラベル付けを行う必要があり、システム管理のコストが増大するという問題点があった。
【００２２】
また、オブジェクトに対する適切なアクセス権限付与が行えないと、セキュリティホールとなる危険があるが、オブジェクトの数が増えると、この作業は困難性を増すといった問題点が指摘されている。したがって、このようなトラステッドオペレーティングシステムを日常的に運用することは、通常のオペレーティングシステムの運用と比較してはるかに難しい。
【００２３】
また、スレッドは、コンピュータシステムの中で動的に生成や消滅を繰り返す種類のオブジェクトであるため、特許文献１に示すアクセス制御では、コンピュータシステム上で新たなスレッドの生成・消滅が行われるたびに、操作権限情報が与えられている既存のスレッドに対して、割り当てる操作権限情報の見直しを行う必要が生じ、実行効率を落とすことになるという問題点があった。
【００２４】
そこで、本発明は、以上の点に鑑みてなされたもので、実行効率を落とすことなく、細かい粒度のアクセス制御によって、タスク間の安全な協調作業を可能とするマルチタスク実行システム及びマルチタスク実行方法を提供することを目的とする。
【課題を解決するための手段】
【００２５】
本発明の第１の特徴は、操作対象オブジェクトに対して固有鍵を生成して付与する固有鍵生成付与機能と、前記操作対象オブジェクトに対する操作を行うためのシステムコールが操作主体タスクによって呼び出された場合、前記固有鍵を用いて該操作主体タスクの権限データを復号し、復号した該権限データに基づいて該システムコールを実行することができるか否かについて判断する前記権限データ確認機能とを具備するマルチタスク実行システムであることを要旨とする。
【００２６】
かかる発明によれば、前記権限データ確認機能が、操作対象オブジェクトに付与された固有鍵で操作主体タスクの権限データを復号でき、かつ、当該権限データによって許容されている場合に、当該操作主体タスクが当該操作対象オブジェクトに対する操作を行うことを許容するように構成されているので、タスク間の安全な協調作業を実現することができる。
【００２７】
また、かかる発明によれば、操作対象オブジェクトに対してではなく、操作主体タスクに対して権限データを生成するため、コンピュータシステム上で新たなオブジェクト（タスクを含む）の生成・消滅が行われるたびに、付与されている権限データの見直しを行う必要がなくなる。
【００２８】
すなわち、かかる発明によれば、新たに操作主体タスクを生成するとき、操作主体タスクの実行中に操作権限を新たに得る又は放棄するときに、当該操作主体タスクに対してのみ操作対象オブジェクトに対する操作権限を設定すればよいことになるため、既存の操作対象オブジェクトに対する操作権限の見直しという煩雑な操作が必要ではなくなる。
【００２９】
本発明の第１の特徴において、前記操作主体タスクからの権限データ生成要求に応じて、該操作主体タスクについての認証処理を行うタスク認証機能と、前記認証処理結果に基づいて前記権限データを生成する権限データ生成機能とを具備するように構成されていてもよい。
【００３０】
本発明の第１の特徴において、前記操作主体タスクについての認証処理が行われているか否かについて管理するタスク情報記憶機能を具備し、前記タスク認証機能が、前記タスク情報記憶機能を参照して、前記操作主体タスクについての認証処理が行われていない場合に、該操作主体タスクについての認証処理を行うように構成されていてもよい。
【００３１】
本発明の第１の特徴において、前記タスク認証機能が、前記操作主体タスクについての認証処理が行われている場合、該操作主体タスクの子タスクについての認証処理を行わないように構成されていてもよい。
【００３２】
本発明の第１の特徴において、前記操作主体タスクが、ユーザのログイン認証処理を行うログインタスクであり、前記子タスクが、前記ログイン認証処理後に実行されるログインシェルタスクであってもよい。
【００３３】
本発明の第１の特徴において、前記権限データ確認機能が、第１の条件に基づいて前記システムコールを実行することができるか否かについて判断し、該システムコールを実行することができると判断した場合に、復号した前記権限データに基づいて該システムコールを実行することができるか否かについて判断するように構成されていてもよい。
【００３４】
本発明の第１の特徴において、前記権限データ確認機能によって、前記権限データに基づいて前記システムコールを実行することができると判断された場合に、第２の条件に基づいて該システムコールを実行することができるか否かについて判断するシステムコール処理機能を具備するように構成されていてもよい。
【００３５】
本発明の第１の特徴において、前記タスク情報記憶機能が、ユーザ制御から独立して動作するタスクに対しては、該タスクについての認証処理が行われているか否かについて管理しないように構成されていてもよい。
【００３６】
本発明の第１の特徴において、前記固有鍵生成付与機能が、前記固有鍵として、共通鍵暗号アルゴリズムで用いられる共通鍵を生成するように構成されていてもよい。
【００３７】
本発明の第１の特徴において、前記固有鍵生成付与機能が、前記固有鍵として、公開鍵暗号アルゴリズムで用いられる公開鍵及び秘密鍵のペアを生成するように構成されていてもよい。
【００３８】
本発明の第１の特徴において、前記権限データとして、前記操作主体タスクを識別するタスクＩＤと、前記システムコールを識別するシステムコールＩＤと、前記システムコールにおける操作モードと、前記権限データの有効期間を設定することができるように構成されていてもよい。
【００３９】
本発明の第２の特徴は、第１のタスク及び第２のタスクに対して固有鍵を生成して付与する固有鍵生成付与機能を具備しており、前記第１のタスクが、前記固有鍵を用いて該第２のタスク用の権限データを暗号化し、暗号化した該権限データを該第２のタスクに送信するように構成されており、前記第２のタスクが、前記第１のタスクから送信された前記権限データを前記固有鍵で復号することができた場合、該第１のタスクが正当なタスクであると判断するように構成されているマルチタスク実行システムであることを要旨とする。
【００４０】
本発明の第３の特徴は、オペレーティングシステムにおいて、操作主体タスクに対して固有鍵を生成して付与する工程と、前記オペレーティングシステムにおいて、前記操作主体タスクから前記システムコールが呼び出された場合、前記固有鍵を用いて該操作主体タスクの権限データを復号し、復号した該権限データに基づいて該システムコールを実行することができるか否かについて判断する工程とを有するマルチタスク実行方法であることを要旨とする。
【００４１】
本発明の第４の特徴は、オペレーティングシステムにおいて、第１のタスク及び第２のタスクに対して固有鍵を生成して付与する工程と、前記第１のタスクにおいて、前記固有鍵を用いて該第２のタスク用の権限データを暗号化し、暗号化した該権限データを該第２のタスクに送信する工程と、前記第２のタスクにおいて、前記第１のタスクから送信された前記権限データを前記固有鍵で復号することができた場合、該第１のタスクが正当なタスクであると判断する工程とを有するマルチタスク実行方法であることを要旨とする。
【発明の効果】
【００４２】
以上説明したように、本発明によれば、実行効率を落とすことなく、細かい粒度のアクセス制御によって、タスク間の安全な協調作業を可能とするマルチタスク実行システム及びマルチタスク実行方法を提供することができる。
【発明を実施するための最良の形態】
【００４３】
（本発明の第１の実施形態に係るマルチタスク実行システムの構成）
図１乃至図４を参照して、本発明の第１の実施形態に係るマルチタスク実行システム１の構成について説明する。
【００４４】
本実施形態に係るマルチタスク実行システム１は、同時に複数のタスク２０４を並列的に実行することができる現代的なオペレーティングシステム１０１において、複数のタスク２０４が柔軟かつ安全に協調動作を行う環境を実現するためにタスク権限を管理するように構成されている。
【００４５】
本明細書において、「操作を行うオブジェクト」とは、能動的に他のオブジェクト（操作対象オブジェクト）に対して所望操作を行える類のものでなければならないため、「プロセス（他のプロセスとは独立したメモリ空間を備える実行単位）」や「スレッド（他のスレッドとメモリ空間を共有する実行単位）」等の、プログラムをコンピュータ上で動作させる際の単位となるオブジェクトでなければならない。
【００４６】
本明細書では、プロセスとスレッドとを区別する必要がないため、以降、「操作を行うオブジェクト」を総称して「操作主体タスク」と呼ぶことにする。
【００４７】
本実施形態に係るマルチタスク実行システム１は、オペレーティングシステム１０１と、複数のオブジェクトとを具備している。ここで、オブジェクトには、オペレーティングシステム１０１の管理下で動作するタスク２０４-Ｘと、オペレーティングシステム１０１及びタスク２０４-Ｘの操作対象となるファイル２０１-Ｘ及びメモリ２０２-Ｘと、通信用のソケット２０３-Ｘ等が含まれる。
【００４８】
タスク間通信を行う場合等では、タスク２０４-Ｘも、操作対象となる可能性があるため、タスク２０４-Ｘは、操作主体タスクとしての役割を果たすと共に、操作対象オブジェクトとしての役割を演じる場合もある。
【００４９】
タスク２０４-Ｘを含むオブジェクトには、マルチタスク実行システム１内で当該オブジェクトを一意に識別可能な固有鍵を割り当てるための固有鍵割当領域２０５-Ｘが割り当てられている。
【００５０】
かかる固有鍵割当領域２０５-Ｘは、他のタスクからアクセスできないように構成されている。この「他のタスクからはアクセスできない」という性質は、トラステッドオペレーティングシステムによって提供されるアクセス管理機能や、オペレーティングシステムのみがアクセス可能な鍵によって当該固有鍵割当領域２０５-Ｘを暗号化する方法等で実現することができる。
【００５１】
かかる固有鍵は、後述するように、オペレーティングシステム１０１内の擬似乱数生成機能１０２及び固有鍵生成付与機能１０３によって生成され、細粒度の操作権限の管理が必要とされるオブジェクトに対して付与されるものである。
【００５２】
本実施形態に係るマルチタスク実行システム１において、タスク２０４-Ｘは、当該固有鍵によって検証可能なデータを所有することをもって、オブジェクトに対する操作権限を持つものと判断されることになる。
【００５３】
以降では、そのようなオブジェクトに付与された固有鍵で検証可能なデータのことを「権限データ」と呼ぶ。
【００５４】
一般に、操作主体タスク２０４-Ｘによる操作対象オブジェクトに対する操作は、オペレーティングシステム１０１が提供するシステムコールによって実施される。
【００５５】
図１に示すように、本実施形態に係るマルチタスク実行システム１のオペレーティングシステム１０１は、擬似乱数生成機能１０２と、固有鍵生成付与機能１０３と、システムコール処理機能１０４と、権限データ確認機能１０５と、権限データ生成機能１０６と、タスク情報記憶機能１０７と、権限データ保存機能１０８と、タスク認証機能１０９と、認証情報継承機能１１０とを具備している。
【００５６】
擬似乱数生成機能１０２は、図２に示すように、キー入力やマウス入力や各種割込や熱雑音や乱数生成ハードウエア等のエントロピー源を元データとして暗号学的に強い擬似乱数ビット列を生成するように構成されている。
【００５７】
固有鍵生成付与機能１０３は、擬似乱数生成機能１０２によって生成された擬似乱数ビット列に基づいて、マルチタスク実行システム１内でユニークな固有鍵を生成するように構成されている。
【００５８】
例えば、固有鍵生成付与機能１０３は、固有鍵として、共通鍵暗号アルゴリズムで用いられる共通鍵や、公開鍵暗号アルゴリズムで用いられる公開鍵及び秘密鍵のペアを生成するように構成されている。
【００５９】
固有鍵生成付与機能１０３は、生成した固有鍵を操作対象オブジェクトに対して付与するように構成されている。すなわち、固有鍵生成付与機能１０３は、生成した固有鍵を、操作対象オブジェクトの持つ固有鍵割当領域２０５に保存するように構成されている。
【００６０】
システムコール処理機能１０４は、操作主体タスク２０４-１によって呼び出された操作対象オブジェクト２０１-１に対する操作を行うためのシステムコールを受信した場合、権限データ確認機能１０５に対して、当該システムコールの実行可否について問い合わせるように構成されている。
【００６１】
また、システムコール処理機能１０４は、権限データ確認機能１０５によって当該システムコールが実行可能である旨の回答を受けた場合、当該システムコールを実行する、すなわち、操作主体タスク２０４-１が操作対象オブジェクト２０１-１に対する所望操作を行うことを許可するように構成されている。
【００６２】
権限データ確認機能１０５は、システムコール処理機能１０４からの問い合わせに応じて、固有鍵生成付与機能１０３から取得した操作対象オブジェクト２０１-１用の固有鍵を用いて、タスク情報記憶機能１０７に記憶されている操作主体タスク２０４-１の権限データを復号し、復号した当該権限データに基づいて当該システムコールを実行することができるか否かについて判断するように構成されている。
【００６３】
権限データ生成機能１０６は、タスク認証機能１０９による操作主体タスクについての認証処理結果に基づいて、当該操作主体タスクの権限データを生成するように構成されている。
【００６４】
図３に示すように、権限データ生成機能１０６は、各オブジェクトに対する権限データとして、「実行ファイル名」と、「タスクＩＤ」と、「システムコール種別」と、「操作モード」と、「有効開始時刻」と、「有効終了時刻」とを設定することができる。
【００６５】
「実行ファイル名」及び「タスクＩＤ」は、いずれも、当該オブジェクトに対して操作を行うことができる操作主体タスクを識別するものである。ここで、「実行ファイル名」及び「タスクＩＤ」の２種類の情報で、操作主体タスクを指定可能としているのは、権限データを生成する時点で既にタスクとして存在する場合と、その時点では未だタスクとしては存在していない場合という２通りのケースに対応するためである。
【００６６】
一般に、ある実行ファイルが実行されてタスクとなったときにオペレーティングシステム１０１から割り当てられる「タスクＩＤ」は、当該実行ファイルの実行以前の段階では確定不能である。
【００６７】
ただし、操作主体タスクを指定するための情報としての「実行ファイル名」及び「タスクＩＤ」の使い分けは、上述の例に制限されるものではなく、既に実行中のタスクを「実行ファイル名」によって指定してもよいし、両者を併用してもよい。
【００６８】
さらに、操作主体タスクを指定せず、当該権限データを所有するタスクであれば、どのタスクでも当該オブジェクトに対する操作を行うことができることを示す権限データを実現するために、「実行ファイル名」及び「タスクＩＤ」に、ワイルドカード（図３における「＊」）を使用可能なように構成されていてもよい。
【００６９】
「システムコール種別」は、当該オブジェクトに対して行うことを許可するシステムコールの種別を示す（すなわち、当該オブジェクトに対して行うことを許可するシステムコールを識別する）ものである。また、「操作モード」は、当該オブジェクトに対して行うことを許可するシステムコールにおける操作モードを示すものである。
【００７０】
さらに、「有効開始時刻」と「有効終了時刻」とによって、当該権限データの有効期間を設定することができる。権限データの有効期間を定めることで、システムコール実行後に、不要な権限データが悪用される危険を抑えることができる。
【００７１】
なお、権限データは、図３の例では、表形式として表現されているが、表現形式はこれに限定されるものではない。
【００７２】
権限データ生成機能１０６は、生成した権限データを、当該操作対象オブジェクトの固有鍵で暗号化するように構成されている。この結果、権限データは、特定の操作対象オブジェクトと一意に結び付けられることになるため、当該権限データを、他の操作対象オブジェクトに流用することはできなくなる。
【００７３】
権限データ生成機能１０６は、暗号化した権限データを、タスク情報記憶機能１０７における操作主体タスク用領域に記憶するように構成されている。
【００７４】
タスク情報記憶機能１０７は、マルチタスク実行システム１上に存在する個々のタスク２０４-Ｘに対応して独立した操作主体タスク用領域を保持しており、操作主体タスク用の権限データを当該操作主体タスク用領域に記録するように構成されている。
【００７５】
また、タスク情報記憶機能１０７は、特定の操作主体タスクについての認証処理が行われているか否かについて管理するように構成されている。具体的には、図４に示すように、タスク情報記憶機能１０７は、「タスクＩＤ」と、当該タスクＩＤによって識別される操作主体タスクについての認証処理が行われているか否かについて示す「認証処理」とを関連付けて記憶している。
【００７６】
権限データ保存機能１０８は、既にタスクとして存在するのではなく、今後いずれかの時点でタスクとなる実行ファイルに対して、予め権限データを割り当てておくことを可能とするために、権限データをファイルとして保存するように構成されている。かかる実行ファイルには、権限データの他、例えば、起動日時や起動コマンドや引数等の情報が含まれている。
【００７７】
例えば、オペレーティングシステム１０１は、かかる実行ファイルに記憶されている起動日時に、当該実行ファイルに記憶されている起動コマンドや引数に従って、特定タスクを生成するように構成されている。
【００７８】
タスク認証機能１０９は、操作主体タスクからの権限データ生成要求（システムコール）に応じて、当該操作主体タスクについての認証処理を行うように構成されている。
【００７９】
すなわち、上述の権限データは、操作主体タスクからの権限データ生成要求（システムコール）により生成されるが、任意のタスクが、任意のオブジェクトに対する操作を行うことができることを示す権限データを取得できてしまうのでは、何ら権限管理を行っていないことに等しくなる。したがって、タスク認証機能１０９は、そのような権限データを生成可能なタスクを制限する、すなわち、正しいタスクであると判断した上で権限データの生成及び記録を行うように構成されている。
【００８０】
ここで、タスク認証機能１０９は、通常のオペレーティングシステムがユーザ認証処理を行うために利用している機能を流用して上述の認証処理を行うように構成されていてもよいし、独自の認証処理を行うための機能を用意して上述の認証処理を行うように構成されていてもよい。
【００８１】
また、タスク認証機能１０９は、タスク情報記憶機能１０７を参照して、操作主体タスクについての認証処理が行われていない場合に、当該操作主体タスクについての認証処理を行うように構成されていてもよい。
【００８２】
また、タスク認証機能１０９は、操作主体タスクについての認証処理が行われている場合、当該操作主体タスクの子タスクについての認証処理を行わないように構成されている。
【００８３】
認証情報継承機能１１０は、操作主体タスクの子タスクに対して、当該操作主体タスクについての認証処理が既に行われているという情報を継承させるように構成されている。
【００８４】
すなわち、認証情報継承機能１１０は、タスク情報記憶機能１０７に記録されている当該操作主体タスク２０４-１に対応する認証済情報及び権限データを、それ以降、当該操作主体タスク２０４-１によって生成される子タスクに対して継承させるように構成されている。
【００８５】
かかる認証情報継承機能１１０は、一般的なオペレーティングシステム１０１に対する追加機能として実現される必要があるが、例えば、ＵＮＩＸ（登録商標）におけるオペレーティングシステムの場合には、子タスクが、親タスク自身に関するタスク情報（認証済情報や権限データ等）を複製するという形で生成されているため、特別には必要とされない。
【００８６】
いずれにしても、認証処理を行った操作主体タスクにのみ権限データの付与を許し、かつ、認証処理が既に行われているという情報を子タスクに継承可能とすることで、一般的な利用形態、すなわち、コンピュータにログインした後は、ログイン後に実行されるタスク（一般的なのは、ログインシェルと呼ばれるコマンド解釈系だが、ウインドウ環境では、ウインドウマネージャ等がその役割を果たすことも多い）の子タスクとして、様々な仕事を行うという形態で、コンピュータを利用する際の利便性が確保されることになる。
【００８７】
上述のように、本実勢形態に係るオペレーティングシステム１０１は、操作対象オブジェクト２０１-１を操作するためのシステムコールが操作主体タスク２０４-１によって呼び出された場合であって、当該操作対象オブジェクト２０１-１に対する操作権限を管理している場合に、当該システムコールを呼び出した操作主体タスク２０４-１が適切な権限データを持ったものであるか否かを確認することによって、当該システムコールの実行可否を判断するように構成されている。
【００８８】
（本発明の第１の実施形態に係るマルチタスク実行システムの動作）
図５乃至図９を参照して、本発明の第１の実施形態に係るマルチタスク実行システムの動作について説明する。
【００８９】
第１に、図５を参照して、本実施形態に係るマルチタスク実行システム１のオペレーティングシステム１０１において、権限データを生成する動作について説明する。
【００９０】
権限データ生成機能１０６は、ステップＳ１０１において、システムコール処理機能１０４を介して操作主体タスク２０４-１から権限データ生成要求（システムコール）を受けると、ステップＳ１０２において、タスク情報記憶機能１０７を参照して、当該操作主体タスク２０４-１についての認証処理が既に行われているか否かについて判断する。
【００９１】
当該認証処理が既に行われていると判断された場合、本動作はステップＳ１０４に進み、当該認証処理が未だ行われていないと判断された場合、本動作はステップＳ１０３に進む。
【００９２】
ステップＳ１０３において、タスク認証機能１０９が、後述するように、操作主体タスク２０４-１についての認証処理を行う。
【００９３】
ステップＳ１０４において、認証処理の結果が肯定的であった場合、すなわち、受信した権限データ生成要求が正当であると認められた場合、本動作はステップS１０５に進み、認証処理の結果が否定的であった場合、すなわち、受信した権限データ生成要求が正当であると認められなかった場合、本動作は異常終了する。
【００９４】
なお、権限データ生成要求の正当性の判断基準として、操作主体タスク２０４-１及び操作対象オブジェクト２０１-１が同一のユーザに属する場合、当該操作主体タスク２０４-１が当該操作対象オブジェクトに対して任意の操作を行うことができることを示す権限データを付与可能とするという方針をデフォルトとする。
【００９５】
そして、操作主体タスクが属するユーザと異なるユーザに属する操作対象オブジェクトに対して、当該操作主体タスクが所望操作を行うことができることを示す権限データを付与する必要があるケースのように、上述のデフォルト方針では、うまく機能しないケースでのみ、事前に明示的な設定を要請するように構成されることが好ましい。この結果、トラステッドオペレーティングシステムにおけるような煩雑な事前設定を強いることを回避しつつ、権限データを取得する前提として上述の認証処理を要求することによって、実行中の操作主体タスク２０４-１が、プログラム中のセキュリティホールなどのために乗っ取られたような場合でも、マルチタスク実行システム１における他の操作対象オブジェクト２０１-１に対して悪い行為がなされることを防ぐ。
【００９６】
権限データ生成機能１０６は、ステップＳ１０５において、当該操作主体タスクが当該当該操作対象オブジェクトに対して所望操作を行うことができることを示す権限データを生成し、ステップＳ１０６において、当該該権限データを当該操作対象オブジェクト用の固有鍵で暗号化してタスク情報記憶機能１０７の当該操作主体タスク用領域に記録する。
【００９７】
第２に、図６を参照して、操作主体タスク２０４-１についての認証処理について説明する。
【００９８】
ステップＳ２０１において、タスク認証機能１０９は、上述の権限データ生成要求（システムコール）を呼び出したタスク２０４-１が、権限データの生成を要求することが許可されたタスクであるか否かについて判断する。かかる判断は、上述のように、当該タスクの所有者についての認証処理を行うことで実現される。
【００９９】
かかる認証処理は、一般的なオペレーティングシステムへのログイン時に用いられるユーザ名及びパスワードを用いるものでも良いし、暗証番号やワンタイムパスワードや指紋等のバイオメトリックデータやスマートカード上の秘密鍵等の様々な技術を用いることができる。
【０１００】
認証処理に用いられる技術に応じて、ユーザは、適切な情報（パスワードや指紋データやスマートカード上の秘密鍵等）を、マルチタスク実行システム１に提示した結果、正規ユーザと判断された場合、本動作はステップＳ２０３に進み、それ以外の場合、本動作は異常終了する。
【０１０１】
ステップＳ２０３において、タスク認証機能１０９は、当該操作主体タスク２０４-１についての認証処理が完了した旨を示す情報（認証済情報）をタスク情報記憶機能１０７に記録する。
【０１０２】
第３に、図７及び図８を参照して、本実施形態に係るマルチタスク実行システム１において、操作主体タスク２０４-１によって呼び出されたシステムコール（操作対象オブジェクト２０１-１に対する操作を行う）を実行する動作を説明する。
【０１０３】
図７の例では、オペレーティングシステム１０１は、通常条件（第１の条件）に基づいてシステムコールを実行することができるか否かについて判断し、当該システムコールを実行することができると判断した場合に、復号した権限データに基づいて当該システムコールを実行することができるか否かについて判断するように構成されている。
【０１０４】
図７の例におけるマルチタスク実行システム１は、一般的な粗粒度の権限管理しか行えないオペレーティングシステムにおいて、より細粒度の権限管理を実現する方式、すなわち、オペレーティングシステムが提供する協調作業の制限を強化する方式を採用している。
【０１０５】
図７に示すように、ステップＳ３０１において、システムコール処理機能１０４は、ユーザＩＤ等の通常条件（第１の条件）に基づいて当該システムコールを実行することができるか否かについて判断する。
【０１０６】
可能であると判断された場合、本動作は、ステップＳ３０２に進み、不可であると判断された場合、本動作は、ステップＳ３０６においてエラー処理を行う（すなわち、当該システムコールを実行することなく終了する）。
【０１０７】
ステップＳ３０２において、権限データ確認機能１０５は、操作対象オブジェクト２０１-１に固有鍵が付与されているか否かについて判断する。
【０１０８】
付与されていない場合、本動作は、ステップＳ３０７において、そのまま当該システムコールを実行し、付与されている場合、本動作は、ステップＳ３０３に進む。
【０１０９】
ステップＳ３０３において、権限データ確認機能１０５は、タスク情報記憶機能１０７内の操作主体タスク２０４-１用領域に、権限データが保存されているか否かについて判断する。保存されている場合、本動作はステップＳ３０４に進み、保存されていない場合、本動作はステップＳ３０６に進む。
【０１１０】
ステップＳ３０４において、権限データ確認機能１０５は、保存されている権限データが、当該操作対象オブジェクトに付与されている固有鍵によって復号できるか否かについて判断する。復号できた場合、本動作はステップＳ３０５に進み、復号できなかった場合、本動作はステップＳ３０６に進む。
【０１１１】
ステップＳ３０６において、権限データ確認機能１０５は、当該システムコールによって実行しようとしている処理内容が権限データに記載されているか否か（すなわち、当該システムコールを実行することができるか否か）について判断する。
【０１１２】
判断結果が肯定的であった場合、ステップＳ３０７において、システムコール処理機能１０４が、当該システムコールを実行する。一方、判断結果が否定的であった場合、ステップＳ３０６において、システムコール処理機能１０４が、当該システムコールを実行することなく終了する。
【０１１３】
一方、図８の例では、オペレーティングシステム１０１は、復号した権限データに基づいてシステムコールを実行することができるか否かについて判断し、当該システムコールを実行することができると判断した場合に、通常条件（第２の条件）に基づいて当該システムコールを実行することができるか否かについて判断するように構成されている。
【０１１４】
図８の例におけるマルチタスク実行システム１は、トラステッドオペレーティングシステムのように細分化された権限管理を必須としているオペレーティングシステムにおいて、権限設定を一時的にオーバーライドした形での操作を許容するための方式、すなわち、オペレーティングシステムが提供する協調作業の制限を緩和する方式を採用している。
【０１１５】
図８に示すように、ステップＳ４０１において、権限データ確認機能１０５は、操作対象オブジェクト２０１-１に固有鍵が付与されているか否かについて判断する。付与されていない場合、本動作はステップＳ４０６に進み、付与されている場合、本動作はステップＳ４０２に進む。
【０１１６】
ステップＳ４０２において、権限データ確認機能１０５は、タスク情報記憶機能１０７内の操作主体タスク２０４-１用領域に、権限データが保存されているか否かについて判断する。保存されている場合、本動作はステップＳ４０３に進み、保存されていない場合、本動作はステップＳ４０６に進む。
【０１１７】
ステップＳ４０３において、権限データ確認機能１０５は、保存されている権限データが、当該操作対象オブジェクトに付与されている固有鍵によって復号できるか否かについて判断する。復号できた場合、本動作はステップＳ４０４に進み、復号できなかった場合、本動作はステップＳ４０６に進む。
【０１１８】
ステップＳ４０４において、権限データ確認機能１０５は、当該システムコールによって実行しようとしている処理内容が権限データに記載されているか否か（すなわち、当該システムコールを実行することができるか否か）について判断する。
【０１１９】
判断結果が肯定的であった場合、ステップＳ４０５において、システムコール処理機能１０４が、当該システムコールを実行する。一方、判断結果が否定的であった場合、ステップＳ４０６において、システムコール処理機能１０４が、ユーザＩＤ等の通常のトラステッドオペレーティングシステムにおける条件（第２の条件）に基づいて当該システムコールを実行することができるか否かについて判断する。
【０１２０】
可能であると判断された場合、ステップＳ４０５において、システムコール処理機能１０４が、当該システムコールを実行する。一方、不可であると判断された場合、システムコール処理機能１０４は、ステップＳ４０７において、エラー処理を行う（すなわち、当該システムコールを実行することなく終了する）。
【０１２１】
第４に、図９を参照して、例えば、ＵＮＩＸ（登録商標）に見られるように、操作主体タスクが自身のタスク情報を複製することで子タスクを生成するように構成されているオペレーティングシステムにおいて、デーモンタスクの実行時に必要な処理について説明する。
【０１２２】
デーモンタスクとは、他のタスクとは親子関係なしに存在し、マルチタスク実行システム１上のサービス等を提供するタスク、すなわち、ユーザ制御から独立して動作するタスクの総称である。
【０１２３】
デーモンタスクは、ネットワークからの要求に応じてサービスを提供するために用いられることが多く、したがって、攻撃の対象となることも最も多い種類のタスクである。そのため、デーモンタスクが、任意の権限データを取得できてしまうと、マルチタスク実行システム１に対する危険が増加することになる。
【０１２４】
したがって、オペレーティングシステム１０１は、デーモンタスクを生成する場合には、タスク情報記憶機能１０７から、デーモンタスクに係る認証処理済情報を削除する必要がある。
【０１２５】
すなわち、タスク情報記憶機能は、ユーザ制御から独立して動作するタスク（デーモンタスク）に対しては、当該デーモンタスクについての認証処理が行われているか否かについて管理しないように構成されている。
【０１２６】
タスク情報記憶機１０７から認証済情報を削除されたデーモンタスクに対して権限データを生成するためには、当該デーモンタスクについての認証処理を実施しなければならないが、前述の通り、当該認証処理では、デーモンタスクのユーザに対する認証処理が必須となる。したがって、デーモンタスクのユーザについての認証処理を行う機会は存在しないことから、攻撃者に乗っ取られたデーモンタスクが、マルチタスク実行システム１に対して悪い行為を行うことは困難とすることができる。
【０１２７】
デーモンタスクも、一般のタスクと同じように、特定のタスクの子タスクとして生成されるため、タスク情報記憶機能１０７内に、親タスクの認証済情報又は権限データが保持されている場合、デーモンタスクに対して当該親タスクの認証済情報又は権限データ継承させないようにする必要がある。
【０１２８】
図９に示すように、オペレーティングシステム１０１は、デーモンタスク作成時に、ステップＳ５０１において、タスク情報記憶機能１０７内に、デーモンタスクに係る認証済情報が記憶されているか否かについて判断する。
【０１２９】
記憶されていると判断された場合、ステップＳ５０２において、オペレーティングシステム１０１は、当該認証済情報を削除する。一方、記憶されていないと判断された場合、本動作はステップＳ５０３に進む。
【０１３０】
ステップＳ５０３において、オペレーティングシステム１０１は、タスク情報記憶機能１０７内に、デーモンタスクに係る権限データが記憶されているか否かについて判断する。
【０１３１】
記憶されていると判断された場合、ステップＳ５０４において、オペレーティングシステム１０１は、当該権限データを削除する。一方、記憶されていないと判断された場合、本動作は終了する。
【０１３２】
（本発明の第１の実施形態に係るマルチタスク実行システムの作用・効果）
本発明の第１の実施形態に係るマルチタスク実行システムによれば、権限データ確認機能１０５が、操作対象オブジェクト２０１-１に付与された固有鍵で操作主体タスク２０４-１の権限データを復号でき、かつ、当該権限データによって許容されている場合に、当該操作主体タスク２０４-１が当該操作対象オブジェクト２０１-１に対する操作を行うことを許容するように構成されているので、タスク間の安全な協調作業を実現することができる。
【０１３３】
また、本発明の第１の実施形態に係るマルチタスク実行システムによれば、操作対象オブジェクト２０１-１に対してではなく、操作主体タスク２０４-１に対して権限データを生成するため、コンピュータシステム上で新たなオブジェクト（タスクを含む）の生成・消滅が行われるたびに、付与されている権限データの見直しを行う必要がなくなる。
【０１３４】
すなわち、本発明の第１の実施形態に係るマルチタスク実行システムによれば、新たに操作主体タスク２０４-１を生成するとき、操作主体タスク２０４-１の実行中に操作権限を新たに得る又は放棄するときに、当該操作主体タスク２０４-１に対してのみ操作対象オブジェクト２０１-１に対する操作権限を設定すればよいことになるため、既存の操作対象オブジェクト２０１-１に対する操作権限の見直しという煩雑な操作が必要ではなくなる。
【０１３５】
（変更例１）
図１０及び図１１を参照して、本実施形態の変更例１に係るマルチタスク実行システム１について説明する。
【０１３６】
図１０に示すように、本変更例に係るマルチタスク実行システム１は、上述の第１の実施形態に係るオペレーティングシステム１０１に加えて、ユーザのログイン認証処理を行うログインタスク（操作主体タスク）３０１と、当該ログイン認証処理後に実行されるログインシェルタスク（子タスク）３０２とを具備している。
【０１３７】
以下、図１０及び図１１を参照して、本変更例１に係るマルチタスク実行システム１におけるログイン処理（ＵＮＩＸ（登録商標）におけるオペレーティングシステムの例）について説明する。
【０１３８】
ステップＳ６０１において、ユーザが、ユーザ端末のディスプレイ上に表示されたログインプロンプトに対してユーザ名を入力すると、オペレーティングシステム１０１が、ログイン認証処理を行うためのｌｏｇｉｎタスク（ログインタスク３０１）を生成する。
【０１３９】
そして、ユーザが、ユーザ端末のディスプレイ上に表示されたパスワードプロンプトに対してパスワードを入力すると、マルチタスク実行システム１におけるｌｏｇｉｎタスク３０１が、入力されたパスワードが当該ユーザのものであるか否かについてパスワードデータベース等を参照することで、当該ユーザのログイン認証処理を行う。
【０１４０】
ログイン認証処理が失敗した場合、ｌｏｇｉｎタスク３０１が、既定の試行回数だけ、パスワードの再入力を求め、その後、全てのログイン認証処理が失敗した場合、本動作は、エラー終了となる。
【０１４１】
一方、ログイン認証処理が成功した場合、ステップＳ６０２において、ｌｏｇｉｎタスク３０１は、当該ユーザについてのログイン認証処理が完了した旨（認証済情報）を、タスク情報記憶機能１０５において、ログイン処理後に実行される操作主体タスク用領域に記録する。
【０１４２】
ステップＳ６０３において、ｌｏｇｉｎタスクは、ｆｏｒｋシステムコールを呼び出すことによって、当該ｌｏｇｉｎタスク自身の内容を複製して子タスクを生成する。
【０１４３】
ステップＳ６０４において、生成された子タスクは、ｅｘｅｃｖｅシステムコール（引数は、ログインシェルタスク）を呼び出すことによって、ログインシェルタスク（初期プログラム、コマンド通訳系プログラム）の実行を開始する。
【０１４４】
ここで、タスク情報記憶機能１０７内のログインシェルタスク用領域には、認証済情報が記録されているため、当該ログインシェルタスク及び当該ログインシェルタスクからさらに生成される子タスク（デーモンタスクを除く）は、それ以降、タスク認証機能１０９による認証処理を要求されることなく自由に権限データを取得できることになるため、一般的なシステム利用形態における利便性が確保されることになる。
【０１４５】
一方、親タスクであるｌｏｇｉｎタスクは、ステップＳ６０５において、ｆｏｒｋシステムコール処理の終了後に、タスク情報記憶機能１０７に登録されている認証済情報を削除した上で、子タスクであるログインシェルタスクの終了を待機する。
【０１４６】
ｌｏｇｉｎタスクが、タスク情報記憶機能１０７から認証済情報を削除するのは、当該ｌｏｇｉｎタスクが、万一攻撃者に乗っ取られた場合に、マルチタスク実行システム１に悪影響を及ぼす危険性を可能な限り排除するためである。
【０１４７】
なお、ログイン認証処理として一般的なのは、上述の通り、パスワードを用いた認証処理であるが、本発明は、これらに制限されるものではない。すなわち、本変更例に係るマルチタスク実行システム１は、パスワードそのものではなく、認証済であるか否かという抽象的な情報を保持しているため、スマートカードや公開鍵暗号のような他の認証機構をログイン認証手段として用いるシステムにも容易に適用可能である。
【０１４８】
（変更例２）
図１２乃至図１４を参照して、本実施形態の変更例２に係るマルチタスク実行システム１について説明する。本変更例２では、操作対象オブジェクトが共に「タスク」となるケースを対象としている。このように、タスクが操作対象オブジェクトとなるケースは、例えば、タスク間通信を実施する際等に見ることができる。図１２は、タスクＡ（２０４-１）とタスクＢ（２０４-２）との間でタスク間通信を行う場合の例について示す。
【０１４９】
本変更例２において、固有鍵生成付与機能１０３は、タスクＡ（第１のタスク）２０４-１及びタスクＢ（第２のタスク）２０４-２に対して、タスクＡとタスクＢとの間のタスク間通信用の固有鍵を生成して付与するように構成されている。
【０１５０】
また、タスクＡは、上述の固有鍵を用いて、タスクＢ用の権限データを暗号化し、暗号化した当該権限データをタスクＢに送信するように構成されている。
【０１５１】
また、タスクＢは、タスクＡから送信された当該権限データを当該固有鍵で復号することができた場合、タスクＡが正当なタスクであると判断するように構成されている。
【０１５２】
以下、図１３を参照して、本変更例２に係るマルチタスク実行システム１において、タスクＡとタスクＢとの間で、タスク間通信が行われる動作について説明する。
【０１５３】
ステップＳ７０１において、タスクＡ及びタスクＢは、固有鍵生成付与機能１０３によって生成された当該タスク間通信用の固有鍵を取得して、それぞれ固有鍵割当領域２０５-７及び２０５-８に保存する。
【０１５４】
ステップＳ７０２において、タスクＡ及びタスクＢは、権限データ生成機能１０６によって生成された相手タスク用の権限データを取得し、それぞれ固有鍵割当領域２０５-７及び２０５-８に保存する。
【０１５５】
ステップＳ７０３において、タスクＡ及びタスクＢは、相手タスクに対する通信データの先頭に、当該相手タスク用の権限データを置く。そして、そのような通信データを受け取ったタスクＡ及びタスクＢは、当該通信データの先頭に置かれた権限データが自身の固有鍵によって正しく検証（復号）できるか否かについて判断する。
【０１５６】
検証（復号）に成功した場合、タスクＡ及びタスクＢは、通信相手が正当なタスクであると判断し、当該通信データについての受信処理を行う。一方、検証（復号）に失敗した場合、タスクＡ及びタスクＢは、通信相手が正当なタスクでないと判断し、当該通信データについて受信処理を行うことなく廃棄する。
【０１５７】
本変更例２に係るマルチタスク実行システム１では、権限データの検証作業の実行をタスク自身に委ねることにより、オペレーティングシステムの介在を排除することが可能となる。
【０１５８】
本変更例２に係るマルチタスク実行システム１は、「操作主体はタスクである」、「操作内容はシステムコールではない」、「操作内容は実行されるコンテキストから一意に決まる」という性質を有するため、権限データの内容としては、図１４に示すように、「タスクＩＤ」及び「有効期間」のみを記述すれば良い。また、既に、操作主体はタスクとして存在しているため、タスクＩＤにワイルドカードを許容する必要もない。
【０１５９】
なお、本変更例２に係るマルチタスク実行システム１では、固有鍵が、他のタスクから読み出せないように保持することが必須であり、権限データも、同様に、他のタスクから読み出せないようになっていることが望ましい。
【０１６０】
オペレーティングシステムの保護範囲外に存在するタスクのメモリ上に、このような重要データを安全に保管するための方式としては、例えば、特開２００４-２７２８１６号公報に開示されている保持タスク以外からのメモリへのアクセスを防止する技術等が利用可能である。
【図面の簡単な説明】
【０１６１】
【図１】本発明の第１の実施形態に係るマルチタスク実行システムの全体構成図である。
【図２】本発明の第１の実施形態に係るマルチタスク実行システムにおける鍵の生成方法の一例を説明するための図である。
【図３】本発明の第１の実施形態に係るマルチタスク実行システムの権限データの一例を示す図である。
【図４】本発明の第１の実施形態に係るマルチタスク実行システムのタスク情報保存機能における記憶内容の一例を示す図である。
【図５】本発明の第１の実施形態に係るマルチタスク実行システムにおいて、権限データ生成要求を処理する動作を示すフローチャートである。
【図６】本発明の第１の実施形態に係るマルチタスク実行システムにおけるタスク認証機能の動作を示すフローチャートである。
【図７】本発明の第１の実施形態に係るマルチタスク実行システムにおいて、システムコールを処理する動作を示すフローチャートである。
【図８】本発明の第１の実施形態に係るマルチタスク実行システムにおいて、システムコールを処理する動作を示すフローチャートである。
【図９】本発明の第１の実施形態に係るマルチタスク実行システムにおいて、デーモンタスクを生成する際の動作を示すフローチャートである。
【図１０】本発明の変更例１に係るマルチタスク実行システムの全体構成図である。
【図１１】本発明の変更例１に係るマルチタスク実行システムの動作を示すフローチャートである。
【図１２】本発明の変更例２に係るマルチタスク実行システムの全体構成図である。
【図１３】本発明の変更例２に係るマルチタスク実行システムの動作を示すフローチャートである。
【図１４】本発明の変更例２に係るマルチタスク実行システムにおける権限データの一例を示す図である。
【符号の説明】
【０１６２】
１…マルチタスク実行システム
１０１…オペレーティングシステム
１０２…擬似乱数生成機能
１０３…固有鍵生成付与機能
１０４…システムコール処理機能
１０５…権限データ確認機能
１０６…権限データ生成機能
１０７…タスク情報記憶機能
１０８…権限データ保存機能
１０９…タスク認証機能
１１０…認証情報継承機能
２０１…ファイル
２０２…メモリ領域
２０３…ソケット
２０４…タスク
２０５…固有鍵割当領域
【図１】
2006190050.tif 000003
【図２】
2006190050.tif 000004
【図３】
2006190050.tif 000005
【図４】
2006190050.tif 000006
【図５】
2006190050.tif 000007
【図６】
2006190050.tif 000008
【図７】
2006190050.tif 000009
【図８】
2006190050.tif 000010
【図９】
2006190050.tif 000011
【図１０】
2006190050.tif 000012
【図１１】
2006190050.tif 000013
【図１２】
2006190050.tif 000014
【図１３】
2006190050.tif 000015
【図１４】
2006190050.tif 000016